Ticket Stub Reissue Liability Lens
This lens checks that a reissued fan ticket stub becomes a playable liability row instead of a clean replacement.
Entry Oracle
entry_state:
trigger_kind: state_pressure
original_stub_row_visible: true
old_holder_visible: true
new_claimant_visible: true
reissue_authority_visible_or_explicit_absence: true
displaced_reader_visible: true
future_reader_consumes_reissue_state: 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 the packet opens from a fixed timer, raw ticket count, generic refund total, dashboard state, or lens-health state.
Checks
1. Docket preserves the displaced holder
ticket_stub_reissue_docket:
original_stub_row: required
old_holder: required
new_claimant: required
reissue_authority_or_absence: required
displaced_reader: required
selected_liability_posture: required
future_route_effect: required
counter_deltas: required2. Review branches diverge
Required branch families:
certify_narrow_reissue;compensate_displaced_holder;quarantine_double_claim;sponsor_public_copy;false_clean_reissue_default;future_effect_any.
3. Default mutates future play
false_clean_ticket_reissue_default:
false_clean_copy: true
original_stub_row: required
omitted_holder: required
sponsor_or_public_narrator: required
displaced_reader: required
future_reader_effect: required
counter_deltas_min: 3
durable_mutation: true4. Runtime rollup status is explicit
The packet includes focused source JSON5 objects under game-content/storyteller. It is evaluator-bound now; public runtime rollup can be refreshed later without changing the wiki contract.