Box Office Ticket Stub Afteruse Receipt Lens

This lens checks that a box-office ticket stub cannot later be spent as clean fan endorsement, likeness custody, sponsor proof, archive extraction, or broadcast reenactment consent unless the game preserves the original ticket row, attendee or explicit absence, purchase window context, cited admission scope, requested afteruse, harmed claimant, proof bridge, selected posture, after-state, and future route effect.

Entry Oracle

entry_state:
  trigger_kind: state_pressure
  source_ticket_stub_row_visible: true
  attendee_visible_or_explicit_absence: true
  purchase_window_context_visible: true
  cited_admission_scope_visible: true
  requested_afteruse_visible: true
  harmed_claimant_visible_or_explicit_absence: true
  proof_bridge_or_explicit_absence_visible: true
  future_reader_consumes_ticket_state: true
  player_can_certify_restrict_bridge_reopen_split_quarantine_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_ticket_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry is driven by fixed time, raw ticket totals, dashboard health, or a ticket stub with no named future reader trying to consume it.

Checks

1. Docket Preserves Ticket Stub Custody And Afteruse

ticket_stub_docket:
  source_ticket_stub_row: required
  attendee_or_absence: required
  purchase_window_context: required
  cited_admission_scope: required
  requested_afteruse: required
  future_reader_or_route: required
  harmed_claimant_or_absence: required
  proof_bridge_or_explicit_absence: required
  selected_ticket_posture: required
  ticket_afteruse_state_after: required
  future_reader_or_route_effect: required
  counter_deltas: required

2. Review Branches Diverge

Required branch families:

  • certify_ticket_stub_scope;
  • restrict_ticket_stub_reader;
  • attach_attendee_bridge;
  • reopen_harmed_ticket_claimant;
  • split_admission_from_likeness_custody;
  • quarantine_ticket_afteruse;
  • false_ticket_stub_default;
  • future_effect_any.

3. Default Mutates Future Play

false_ticket_stub_default:
  false_clean_ticket_stub: true
  source_ticket_stub_row_or_absence: required
  hidden_or_overbroad_admission_scope: required
  capturing_reader_or_route: required
  harmed_claimant_or_absence: required
  ticket_afteruse_state_after: required
  future_reader_effect: required
  counter_deltas_min: 3
  durable_mutation: true

Progress Metric

Satisfied when the sibling TypeScript binding, focused card/rite/event content, and a lens-scoped durable replay show one selected branch changing named counters and future route state without treating a ticket stub as universal fan endorsement, likeness custody, sponsor proof, archive extraction, or broadcast reenactment consent.

Replay Evidence

latest_replay:
  session_id: lens-storyteller-lens-box-office-ticket-stub-afteruse-receipt-v1-20260711t0112z-certify-scope
  seed: ticket-stub-afteruse-20260711
  replay_path: lens/replays/box-office-ticket-stub-afteruse-receipt.certify-scope.replay.json
  selected_rite: storyteller.rite.box_office_ticket_stub_afteruse_review.v1
  selected_branch: certify_ticket_stub_scope
  required_flags:
    - ticket_stub.branch.certify_ticket_stub_scope
    - future_route.named_scope_required
  required_counter_mutations:
    ticketStubProgress: ">= 2"
    futureRouteCost: ">= 1"