Balcony Comp List Afteruse Receipt Lens

This lens checks that a balcony comp list can prove a named courtesy admission, but cannot later be spent as clean fan endorsement, sponsor permission, archive likeness custody, route-asset consent, or broadcast reenactment proof unless the game preserves the inviter, guest row, courtesy scope, claimed afteruse, harmed claimant, proof bridge, selected posture, after-state, future-reader effect, and counter movement.

Entry Oracle

entry_state:
  trigger_kind: state_pressure
  source_comp_list_row_visible: true
  inviter_or_absence_visible: true
  courtesy_scope_visible: true
  claimed_afteruse_visible: true
  guest_identity_or_absence_visible: true
  harmed_claimant_visible_or_explicit_absence: true
  proof_bridge_or_explicit_absence_visible: true
  future_reader_consumes_comp_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_guest_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

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

Checks

1. Docket Preserves Comp List Custody And Afteruse

balcony_comp_docket:
  source_comp_list_row: required
  inviter_or_absence: required
  guest_identity_or_absence: required
  courtesy_scope: required
  claimed_afteruse: required
  future_reader_or_route: required
  harmed_claimant_or_absence: required
  proof_bridge_or_explicit_absence: required
  selected_comp_posture: required
  comp_afteruse_state_after: required
  future_reader_or_route_effect: required
  counter_deltas: required

2. Review Branches Diverge

Required branch families:

  • certify_comp_list_scope;
  • restrict_comp_list_reader;
  • attach_inviter_bridge;
  • reopen_harmed_guest_claimant;
  • split_courtesy_from_likeness_custody;
  • quarantine_comp_afteruse;
  • false_comp_list_default;
  • future_effect_any.

3. Default Mutates Future Play

false_comp_list_default:
  false_clean_comp_list: true
  source_comp_list_row_or_absence: required
  hidden_or_overbroad_courtesy_scope: required
  capturing_reader_or_route: required
  harmed_claimant_or_absence: required
  comp_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 the comp list as universal fan endorsement, sponsor permission, archive likeness custody, route-asset consent, or broadcast reenactment proof.

Replay Evidence

latest_replay:
  session_id: lens-storyteller-lens-balcony-comp-list-afteruse-receipt-v1-20260716t0740z-certify-scope
  seed: balcony-comp-list-afteruse-20260716
  replay_path: lens/replays/balcony-comp-list-afteruse-receipt.certify-scope.replay.json
  selected_rite: storyteller.rite.balcony_comp_list_afteruse_review.v1
  selected_branch: certify_comp_list_scope
  required_flags:
    - balcony_comp.branch.certify_comp_list_scope
    - future_route.comp_named_scope_required
  required_counter_mutations:
    balconyCompProgress: ">= 2"
    futureRouteCost: ">= 1"