Broadcast Capacity Liability Cascade / 播出容量责任级联机制
Broadcast Capacity Liability Cascade is the cross-surface mechanism that keeps schedule capacity from being laundered as clean availability after it has already been promised, occupied, borrowed, folded, or converted.
The mechanism sits between Broadcast Schedule, Blackout Incidents, Broadcast Slot Contracts, Schedule Preemption Claims, Sponsor Makegood Inventory, Recovery Inventory Triage, Management Compression Desk, Fan Oxygen, and Route Assets and Custody.
Its observed objects are 播出容量责任账本, 播出容量责任复核, and 容量责任默认.
Design promise
A broadcast slot is not only occupied or free. It can carry liability.
When the same capacity is claimed by sponsor stop-loss, public oxygen, lawful proof, correction, management compression, recovery inventory, route asset access, or blackout containment, the game must show who currently owns the row, who else is harmed, which authority justifies the use, who narrates default, and what downstream reader consumes the scar.
Inputs
The mechanism can be seeded by any of these state objects:
- a slot contract row that can make public reality;
- a schedule preemption collision;
- a correction slot auction result;
- a sponsor makegood shortfall;
- a recovery inventory allocation or capture;
- a public oxygen or fan refund liability;
- a lawful proof, archive, inspection, or checksum lane;
- a management compression report that marks overbooking as clean yield;
- a broadcast insolvency row paid with schedule, public, sponsor, proof, or route capacity;
- a blackout incident that still occupies capacity.
The mechanism must reject entry from fixed timing, raw count, chapter quota, dashboard state, or generic pressure without a named capacity row.
State model
capacity_liability_state:
capacity_row_id: <stable id>
source_surface: slot_contract | preemption | correction | sponsor_makegood | recovery_inventory | public_oxygen | lawful_proof | management_compression | insolvency | blackout | equivalent
capacity_surface: live_slot | correction_slot | sponsor_makegood_frame | public_contrition_minute | fan_oxygen_refund_window | lawful_proof_window | edit_checksum_lane | recovery_inventory_row | route_asset_bridge | blackout_fold | equivalent
capacity_state: free | scoped_free | reserved | occupied | borrowed_forward | pledged | split | converted | sponsor_captured | public_only | lawful_only | oxygen_liability | route_asset_captured | blackout_folded | defaulted | recovery_only | contradiction_pending
authority_or_absence: <contract proof receipt seal mandate sponsor clause checksum witness or explicit_absence>
claimants:
primary: <claimant>
competing: [<claimant>]
harmed_or_excluded: <reader or explicit_absence>
default_actor: <actor>
future_reader_or_route: <reader route slot or route asset>Transition rules
1. A capacity row cannot be free if any living reader still has a claim
If a row has an unpaid, unscoped, or unresolved claimant, free must become scoped_free, reserved_with_claim, overbooked, borrowed_forward, public_only, sponsor_only, lawful_only, oxygen_liability, recovery_only, blackout_folded, or default_ready.
2. Borrow-forward requires maturity
Borrowing future capacity is allowed only if a maturity trigger and future claimant are recorded. Valid maturity triggers include sponsor stop-loss, fan refund audit, archive challenge, correction demand, route asset access, blackout recovery, management review, and public reader challenge.
3. Conversion changes reader scope
Converting capacity to public oxygen, sponsor makegood, lawful proof, recovery inventory, route asset pawn, or blackout fold must change who can read it later. The mechanism fails if conversion leaves the row universally available.
4. Blackout folds do not release clean capacity
A blackout fold can stabilize an immediate crisis, but the folded slot remains a scar until a recovery route names cost, claimant, proof, and future reader.
5. Management cannot count overbooking as clean yield
If management compression tries to count occupied, borrowed, split, folded, or public-only capacity as clean schedule efficiency, 容量责任默认 must arm unless the report names the scar and future reader.
Playable operations
播出容量责任复核 exposes these operations:
| Operation | Relief | Required scar |
|---|---|---|
| Clear scoped capacity | selected reader receives named scope | excluded reader or future addendum |
| Reserve | future reader protected | current sponsor, audience, or management pressure |
| Split | multiple readers partially served | ambiguity, handler burden, inspection heat |
| Borrow forward | immediate crisis stabilized | maturity trigger and future claimant |
| Convert public | public receipt or fan oxygen improves | sponsor pressure, refund audit, inspection heat |
| Convert sponsor | sponsor stop-loss narrows | contract capture, public distrust, fan resentment |
| Convert lawful | proof or custody improves | public delay, sponsor hostility, edit debt |
| Pawn route asset | immediate default narrows | route capture, release cost, future hostility |
| Fold blackout | unsafe broadcast blocked | blackout pressure and recovery-only route |
| Refuse/default | false-clean capacity blocked or institution files first | durable default state |
Default rule
容量责任默认 must fire or arm when a capacity row is hidden, absent-but-filed, double-booked, borrowed without maturity, sponsor-captured without harmed reader, public oxygen converted without public liability, blackout-erased, or management-greenwashed.
The default must mutate at least three surfaces: one relief/capture surface, one cost surface, and one future route or reader surface.
Replay evidence shape
mechanic_id: storyteller.mechanic.broadcast_capacity_liability_cascade.v1
session_id: capacity-liability-cascade-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_surface: <surface>
finite_capacity_surface_present: true
liability_claims_min: 2
future_reader_present: true
no_fixed_turn_trigger: true
objects:
ledger: storyteller.card.broadcast_capacity_liability_ledger.v1
rite: storyteller.rite.broadcast_capacity_liability_review.v1
branch_runs:
resolved_branch:
selected_branch: <operation>
selected_capacity_row: <row>
primary_claimant_state_after: <state>
excluded_reader_state_after: <different_state>
future_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default_branch:
event_seen_or_armed: storyteller.event.capacity_liability_default.v1
failed_requirement: <requirement>
default_actor: <actor>
future_route_effect: <effect>
assertions:
- finite_capacity_row_visible
- claimants_and_default_actor_visible
- borrow_forward_has_maturity
- conversion_changes_reader_scope
- blackout_fold_keeps_scar
- management_greenwash_defaults
- future_reader_consumes_capacity_stateFailure cases
The mechanism fails if schedule capacity is a pure timer, if slot_free is true while an unresolved claim exists, if one row satisfies every reader, if future capacity is borrowed without maturity, if blackout folds disappear, if fan oxygen becomes sponsor inventory without a public scar, if sponsor settlement hides public or lawful harm, if management efficiency erases overbooking, or if future routes cannot read the capacity state.