Room Occupancy Ledger / 房间占用账本
Room Occupancy Ledger is the visible card for 第七穹顶占用栈. It enters play when a reachable room, counter, ward bay, corridor bay, booth, or stage threshold has more meaningful claims than it can safely hold.
The card prevents a common false-clean shortcut: a producer cannot move a protected person, proof bundle, public queue, sponsor package, edit lane, or fan oxygen burden into a room without naming who is displaced and which reader will care later.
Card promise
The ledger records:
- the room node or equivalent holding surface;
- current occupant and pending claimants;
- capacity limit and care/security/air/silence requirement;
- displacement target or explicit absence;
- authority, handler, proof, public receipt, and release condition or explicit absence;
- future reader that will accept, tax, reject, or weaponize the occupancy state;
- default narrator if the room is overbooked, hidden, or left unresolved.
Entry conditions
Create or refresh this card when all are true:
entry_state:
trigger_kind: state_pressure
concrete_room_or_threshold_present: true
access_state_known_or_explicitly_absent: true
capacity_conflict_present: true
at_least_two_claims_or_one_claim_plus_default_pressure: true
displacement_or_release_question_present: true
future_reader_reads_occupancy: true
player_can_assign_or_record_explicit_absence: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: trueValid claim sources include protected witness support, artist refusal boundary, claimant intake, fan oxygen air demand, archive proof storage, black-box edit custody, sponsor stop-loss package, live floor crew load, production triage, correction slot pressure, or route asset custody.
Required card fields
card_id: storyteller.card.room_occupancy_ledger.v1
state: unopened | ledger_open | reassigned | split_shift | displaced_with_receipt | sealed_occupied | defaulted | recovery_only
source_pressure:
source_surface: protected_witness | artist_boundary | claimant_intake | fan_oxygen | archive_proof | blackbox_edit | sponsor_package | live_floor | production_triage | correction_slot | route_asset | equivalent
source_row_or_asset_id: <stable source id>
room:
node_id: ward_air_room | cutroom_blackbox | archive_counter_seven | public_intake_bay | sponsor_bridge_booth | service_corridor_chain | stage_threshold | equivalent
room_state_before: empty | occupied | reserved | sealed_occupied | overbooked | captured | hostile | recovery_only | equivalent
capacity_limit: one_body | one_proof_bundle | one_queue | air_limited | silence_limited | escort_limited | edit_limited | public_limited | equivalent
access_state_reference: storyteller.card.facility_access_map.v1 | explicit_absence | equivalent
occupancy_claims:
- claim_id: <id>
claimant: protected_witness | artist | fan_queue | archive | sponsor | inspector | editor | claimant_public | crew | route_asset | blackout_system | equivalent
desired_occupant: person | proof_bundle | queue | edit_lane | sponsor_package | medical_air | crew_lane | broadcast_surface | equivalent
care_or_security_requirement: air | silence | escort | seal | checksum | public_receipt | lawful_counter | sponsor_privacy | none | equivalent
if_displaced: hostile | exposed | proof_contaminated | oxygen_debt | contract_capture | edit_delay | route_blocked | recovery_only | equivalent
selected_resolution:
selected_claim: <claim id>
displaced_claim_or_absence: <claim id or explicit_absence>
authority_or_absence: <permit seal public receipt sponsor order archive seal or explicit_absence>
handler_or_absence: <handler or explicit_absence>
receipt_or_absence: <public/lawful/private receipt or explicit_absence>
release_condition_or_absence: <condition or explicit_absence>
future_reader: route_asset | claimant_floor | fan_oxygen_audit | archive_reader | sponsor_gate | broadcast_reality | live_floor | correction_slot | equivalent
default_if_unresolved:
default_narrator: fan_oxygen_or_medical_queue_first | editor_auto_patch_first | archive_queue_first | claimant_queue_first | sponsor_package_first | low_rank_staff_first | security_or_blackout_first | equivalent
room_state_after: captured | hostile | hidden_displacement | overbooked | recovery_only | equivalentBranch families recorded by the card
House protected person or boundary
A body, artist boundary, witness, or child voice receives the room.
Expected relief: harm, seizure, or reprisal pressure falls.
Expected cost: proof storage, fan oxygen, sponsor package, edit lane, crew lane, or route asset pressure rises.
House proof, body, or route asset
A tape, black-box copy, legal body, archive duplicate, or route asset receives the room.
Expected relief: custody integrity, proof chain, route availability, or archive legitimacy improves.
Expected cost: person care, public queue, fan oxygen, sponsor privacy, or live floor capacity worsens.
House public or claimant queue
A public intake, fan oxygen, claimant, or pirate/public receipt queue receives the room.
Expected relief: public legitimacy, oxygen accountability, or claimant pressure improves.
Expected cost: witness exposure, sponsor pressure, archive delay, security heat, or route asset delay rises.
Split shift or rotate occupancy
The producer records alternating use with a handoff receipt.
Expected relief: two claims remain partially alive.
Expected cost: ambiguity, handler burden, proof contamination, public distrust, or default risk rises.
Displace with receipt
The producer moves one claim out and records who accepted the cost.
Expected relief: chosen room use proceeds.
Expected cost: displaced claim becomes named future pressure, not invisible loss.
Hide displacement or overbook
The producer treats the room as if it can hold everyone or silently moves a weaker claim.
Expected result: overflow/default is armed and a future reader can harden the hidden displacement.
Required deltas
A resolved ledger row must mutate at least three surfaces:
counter_deltas_required:
relief: at_least_one
cost: at_least_one
future_reader_or_route_effect: at_least_oneUseful counters and states:
room_occupancy_pressureroom_overflow_riskward_air_capacityprotected_boundary_integritywitness_exposureproof_chain_integrityarchive_debtfan_oxygen_resentmentpublic_receipt_legitimacysponsor_stop_loss_pressurecontract_captureedit_debtlive_floor_capacityhandler_burdenroute_asset_pressurefuture_route_acceptancebroadcast_reality_drift
Non-goals
- Not a room inventory list.
- Not a fixed-turn upkeep card.
- Not a generic resource counter.
- Not satisfied by “room full” prose.
- Not valid if displacement is hidden from every future reader.