Egress Bottleneck Default / 通行瓶颈默认
Egress Bottleneck Default fires or arms when a live-floor movement bottleneck is hidden, under-specified, or falsely filed as safe for everyone.
The default is not a panic cutscene. It is the system choosing which flow moves first when the player does not name the physical bottleneck.
Trigger
default_trigger:
event: storyteller.event.egress_bottleneck_default.v1
source_card: storyteller.card.live_floor_egress_ledger.v1
trigger_kind: state_pressure
breach_kind: ledger_absent | throughput_hidden | protected_flow_hidden | deferred_flow_hidden | support_missing | receipt_missing | future_reader_hidden | universal_safe_exit_claimed | sponsor_tunnel_unfiled | one_way_scar_unrecorded | equivalent
no_fixed_turn_trigger: trueThe event must not trigger from fixed turn count, day/week cadence, chapter quota, raw crowd count, dashboard state, or lens health.
Default narrators
When the player does not choose, one of these narrators must choose for them:
| Narrator | Protected by default | Typical harm |
|---|---|---|
security_grid | sealed doors, checkpoint order, sponsor bridge route | access/crowd/claimant flows blocked |
safety_marshal | largest visible crowd outflow | proof, performer, or route asset waits |
sponsor_tunnel | sponsor package, glamour arrival, private exit | public and access-caption hostility |
fan_oxygen_queue | oxygen outflow and public air | camera return, lawful proof, or sponsor route delayed |
access_caption_reader | caption-guided accessible exit | silent service move becomes unlawful or hostile |
archive_runner | proof bundle or checksum bag | crew and crowd support degrade |
blackout_system | dead-air evacuation and powered-door survival | broadcast slot becomes recovery-only |
crowd_current | whichever direction is already moving | one-way scar, injury review, or missing witness |
Required payload
default_event_required:
event: storyteller.event.egress_bottleneck_default.v1
source_row_or_absence: <row id or explicit_absence>
egress_node: <node id or explicit_absence>
throughput_limit_or_absence: <limit or explicit_absence>
default_narrator: security_grid | safety_marshal | sponsor_tunnel | fan_oxygen_queue | access_caption_reader | archive_runner | blackout_system | crowd_current | equivalent
protected_flow_by_default: <flow id or explicit_absence>
harmed_or_deferred_flow: <flow id or explicit_absence>
missing_inputs:
protected_flow_named: present | absent
deferred_flow_named: present | absent
handler: present | absent
support: present | absent
receipt: present | absent
future_reader: present | absent
egress_state_after: one_way_scarred | captured | hostile | public_only | lawful_only | sponsor_only | proof_contaminated | stage_recovery_only | blocked | contradiction_pending | equivalent
future_reader_effect: fan_oxygen_review | access_class_escalation | facility_route_block | room_occupancy_conflict | crew_hazard_review | route_asset_costlier | broadcast_capacity_scar | public_table_required | lawful_review_required | recovery_only | equivalent
counter_deltas_min: 3Branch consequences
The default must produce one immediate relief or capture, one visible harm or cost, and one future reader mutation. Examples:
- the fan oxygen queue gets out, but a sponsor tunnel claim becomes hostile and the public table demands a receipt;
- the sponsor tunnel moves first, but access-caption readers file a class path scar and fan oxygen resentment rises;
- proof reaches archive, but crew cannot return to the board and a live-floor crew review opens;
- blackout evacuation protects bodies, but the broadcast slot becomes recovery-only and capacity liability reads the dead-air scar.
Failure cases
The event is invalid if it only changes mood, reputation, money, or a generic crowd pressure counter. It must name a default narrator, a protected flow, a harmed/deferred flow, missing inputs, a future reader, and at least three durable deltas.