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: true

The 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: required

2. 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: true

4. 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.