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