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: trueThe 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: required2. 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: trueProgress 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"