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:

OperationReliefRequired scar
Clear scoped capacityselected reader receives named scopeexcluded reader or future addendum
Reservefuture reader protectedcurrent sponsor, audience, or management pressure
Splitmultiple readers partially servedambiguity, handler burden, inspection heat
Borrow forwardimmediate crisis stabilizedmaturity trigger and future claimant
Convert publicpublic receipt or fan oxygen improvessponsor pressure, refund audit, inspection heat
Convert sponsorsponsor stop-loss narrowscontract capture, public distrust, fan resentment
Convert lawfulproof or custody improvespublic delay, sponsor hostility, edit debt
Pawn route assetimmediate default narrowsroute capture, release cost, future hostility
Fold blackoutunsafe broadcast blockedblackout pressure and recovery-only route
Refuse/defaultfalse-clean capacity blocked or institution files firstdurable 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_state

Failure 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.