Fire Curtain / Egress Interlock Lens
This lens observes a simultaneous-command contradiction. F2 has a valid empty-house containment drop. Aisle B later has a valid occupied-egress veto. The sponsor broadcast tries to make the red curtain mean both containment success and safe route, while Usher Lin says stop. The lens succeeds only when the game preserves command order and prevents the broadcast cue from silently taking physical floor authority.
Entry oracle
pressure_intake:
rite_id: storyteller.rite.fire_curtain_interlock_intake.v1
choice: 0
option_id: record_dual_safety_conflict
exact_assignments:
drop_trace: storyteller.card.fire_curtain_drop_test_trace.v1
aisle_census: storyteller.card.fire_curtain_occupied_aisle_census.v1
stop_order: storyteller.card.usher_lin_stop_order.v1
sponsor_cue: storyteller.card.fire_curtain_sponsor_safehouse_cue.v1
required_outputs:
- fire_curtain_interlock.intake_recorded
- fire_curtain_interlock.pressure.drop_test_passed
- fire_curtain_interlock.pressure.aisle_occupied
- fire_curtain_interlock.pressure.usher_stop_order_visible
- fire_curtain_interlock.pressure.sponsor_claimed_route_clearance
collision_entry:
event_id: storyteller.event.fire_curtain_egress_collision.v1
option: 0
option_id: open_interlock_hearing
requires_intake_and_four_pressure_flags: true
requires_all_seven_cards: true
required_outputs:
- fire_curtain_interlock.collision_opened
- fire_curtain_interlock.drop_authority_visible
- fire_curtain_interlock.egress_authority_visible
- fire_curtain_interlock.usher_claim_pending
- fire_curtain_interlock.sponsor_broadcast_claim_pending
- fire_curtain_interlock.state.contested_interlock
interlock_state_after: contested_interlock
review_gate:
review_id: storyteller.rite.fire_curtain_egress_interlock_review.v1
repeatable: false
exact_slot_count: 7
requires_all_collision_flags: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_curtain_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if the seven cards alone open the collision or review, if intake records are treated as a chosen command order, or if the review resolves without every collision flag.
Checks
1. Seven exact cards expose seven non-substitutable surfaces
review_assignments:
docket: storyteller.card.fire_curtain_interlock_docket.v1
drop_trace: storyteller.card.fire_curtain_drop_test_trace.v1
aisle_census: storyteller.card.fire_curtain_occupied_aisle_census.v1
control_chain: storyteller.card.fire_curtain_control_chain_receipt.v1
stop_order: storyteller.card.usher_lin_stop_order.v1
sponsor_cue: storyteller.card.fire_curtain_sponsor_safehouse_cue.v1
future_route: storyteller.card.fire_curtain_future_route_interlock.v1The docket supplies the incident row; the drop trace supplies containment evidence; the aisle census supplies current egress state; the control-chain receipt keeps curtain-operator authority separate from floor-egress authority; Usher Lin’s stop order supplies the current floor veto; the sponsor cue records the proposed safehouse claim; and the future-route interlock names who would spend the red-curtain cue. No selected-posture card exists.
2. Seven review branches are ordered and mechanically distinct
exact_review_outputs:
certify_drop_not_egress: [drop_test_only, separate_egress_clearance_required]
clear_aisle_then_repeat_drop: [aisle_cleared_retest_due, repeat_drop_witness_required]
hold_last_person_window: [last_person_window_held, manual_hold_witness_required]
split_floor_and_broadcast_cues: [floor_broadcast_split, broadcast_cue_cannot_drive_egress]
honor_usher_lin_stop_order: [usher_veto_honored, usher_lin_signoff_required]
quarantine_safehouse_cue: [sponsor_cue_quarantined, interlock_witness_pair_required]
air_synchronized_safety_claim: [false_synchronized_clearance, false_interlock_default_pending]The tuple order is interlock state after review, then future-route effect. Every choice sets its exact branch/state/future flags and four declared counter deltas. Only zero-based choice 6 may arm the default.
3. Reachability and missability are real
All seven choices must resolve from the same exact post-collision state. Focused checks must reject missing intake flags, missing collision flags, an incorrect card ID, a card absent from hand, no selected option, and a second review attempt. The review is nonrepeatable, so resolving one branch makes the other six missable for this incident.
The entry chain is exactly:
- create a source
storyteller, lens-scoped session; - assign the four pressure cards and resolve
storyteller.rite.fire_curtain_interlock_intake.v1choice 0; - resolve
storyteller.event.fire_curtain_egress_collision.v1option 0; - assign all seven exact review cards;
- resolve
storyteller.rite.fire_curtain_egress_interlock_review.v1with the selected choice.
4. The false default is branch-bound
default_gate:
source_branch: air_synchronized_safety_claim
exact_pending_triple:
fire_curtain_interlock.default_pending: true
event.false_fire_curtain_interlock_default.armed: true
future_route.false_interlock_default_pending: true
requires_aired_claim: broadcast_reality.fire_curtain_synchronized_safety_claim_aired
terminals:
cut_broadcast_restore_floor_veto: [floor_veto_restored, floor_stop_precedes_sponsor_cue]
evacuate_side_passage_then_drop: [side_passage_then_drop, side_passage_witness_required]
accept_synchronized_safehouse_reality: [synchronized_safehouse_reality_hardened, sponsor_cue_controls_egress]The default is unreachable from the first six branches. Every terminal clears the triple, resolves the event, preserves fire_curtain_interlock.false_synchronized_clearance_scar, and records its exact state, future effect, and counters.
5. Two durable replay surfaces prove both sides
lens/replays/fire-curtain-egress-interlock.drop-not-egress.replay.json is valid only if it records the exact intake and collision chain, resolves review choice 0 certify_drop_not_egress, and finishes with:
expected_final:
fire_curtain_interlock.state.drop_test_only: true
future_route.separate_egress_clearance_required: true
fire_curtain_interlock.default_pending: false
unresolved_fire_curtain_interlock_event: falseThe shared simulator may queue an unrelated global event after the target review. Such a queue is neither evidence for nor a failure of this lens: no extra action may resolve it inside the four-action proof, and no unresolved fire-curtain interlock event may remain.
lens/replays/fire-curtain-egress-interlock.false-default.replay.json is valid only if it resolves the same intake and collision chain, resolves review choice 6 air_synchronized_safety_claim, proves the exact pending triple, resolves storyteller.event.false_fire_curtain_interlock_default.v1 through one stable terminal, and finishes with the triple cleared plus fire_curtain_interlock.false_synchronized_clearance_scar visible.
A replay does not satisfy the lens if the review is immediately available from a large starter catalog, if the intake or collision action is absent, if the target rite merely appears in a catalog, or if final state lacks its exact branch and future-route outputs.
Anti-authority boundary
The F2 empty-house result proves only one tested containment drop. The aisle B record proves only current occupation. Usher Lin’s stop order proves a current floor veto. The sponsor cue proves only that a route-clearance claim was proposed; if choice 6 airs it, the later scar proves only that the false claim entered Broadcast Reality. None grants evacuation clearance, audience or performer consent, sponsor safehouse authority, archive ownership, inspection authority beyond the named test, or universal broadcast permission.
Non-overlap oracle
safety-curtain-tag-afteruseremains the old-tag portability lane: can a past inspection tag be cited after context changes?mezzanine-fire-door-wedge-afteruseremains the temporary-crossing-proof lane: can one emergency mark be reused by a later reader?fly-interlock-restartremains the post-double-actuation recovery lane: after two incompatible fly-system actions have already fired, which restart evidence can safely restore motion?- This lens is the current-command interlock lane: in what order may containment drop and occupied egress proceed, and can the broadcast red-curtain cue overrule the physical floor?
The lens fails if its proof can be satisfied solely by old-tag custody, wedge custody, or generic afteruse fields without a live drop command, occupied egress census, split control-chain receipt, sponsor cue, and Usher Lin veto.