Broadcast Insolvency Ledger Lens / 播出破产账本 Lens

This lens observes whether 播出破产账本线 and 播出破产账本机制 correctly turn unpaid crisis relief into playable broadcast solvency pressure.

It exists because the current mesh can already create many kinds of deferred cost: 制作分诊台 can starve tickets, 更正档期竞拍线 can displace rival corrections, 和解反震账本 can preserve relief while leaving debt, 处理人负荷账本 can make people finite, and 结局伤痕账本线 can preserve terminal scars. The remaining implementation risk is promise laundering: the player saves every surface with delayed payment, then the broadcast economy never asks who is owed, what can be seized, or who narrates default.

The lens must fail any implementation where solvency is a single cash number, a hidden upkeep tax, a fixed scheduled phase, or a generic game-over condition.

This lens observes:

It is observed through:

Observable promise

Storyteller must remember when a saved broadcast has unpaid creditors. A replay must prove that at least two payable obligations collide, that each row names creditor, owed object, collateral, harmed claimant, default narrator, and future route effect, and that paying, converting, pawning, airing on credit, cancelling, or defaulting produces non-equivalent future states.

This is not a finance mini-game. It is a route-state mechanism for artist trust, editor liens, fan oxygen liability, sponsor capture, legal seals, handler recovery, route asset pawn, schedule scar, and broadcast reality drift.

State-triggered entry oracle

A valid implementation opens the insolvency surface from live unpaid obligations, not from fixed sequence or content count.

Minimum entry evidence:

entry_state:
  source_surfaces_min: 2
  source_surfaces_any:
    - production_triage
    - correction_slot
    - settlement_aftershock
    - handler_burden
    - cutroom_priority
    - audience_stability
    - broadcast_schedule
    - route_asset
    - ending_scar
  live_payable_rows_min: 2
  payable_capacity_less_than_claims: true
  creditors_named_min: 2
  collateral_conflict_or_explicit_absence_present: true
  default_narrator_known_for_each_unpaid_row: true
  no_fixed_turn_trigger: true

The lens fails if the surface opens only because a numbered turn, chapter beat, generic monthly upkeep, global budget threshold, or content quota was reached.

Required observable content

Ledger card

播出破产账本 or an equivalent object must record at least two live rows or one live row plus one contested collateral object.

Each row must include:

insolvency_row_id: <stable id>
source_surface: production_triage | correction_slot | settlement_aftershock | handler_burden | cutroom_priority | audience_stability | broadcast_schedule | route_asset | ending_scar | equivalent
creditor: artist | editor | sponsor | inspector | fan_public | archive | handler | witness | pirate | route_claimant | facility | blackout_system | split
owed_object: cash | oxygen_refund | edit_lane | legal_cover | public_apology | handler_recovery | proof_license | schedule_slot | route_asset_access | facility_access | safehouse | broadcast_warrant | equivalent
collateral_at_risk: route_asset | master_tape | edit_checksum | fan_oxygen_queue | public_receipt | artist_trust | sponsor_contract | legal_seal | facility_room | handler_availability | schedule_slot | explicit_absence
row_state_before: payable_open | payable_contested | payable_prioritized | payable_split | payable_pawned | payable_broadcast_on_credit | equivalent
harmed_claimant_if_paid: <claimant>
harmed_claimant_if_defaulted: <claimant>
default_narrator: sponsor | inspector | fan_public | archive | editor | pirate | blackout_system | route_claimant | public_audience
future_route_effect_before: protected | costlier | blocked | captured | hostile | public_only | lawful_only | recovery_only | blackout_pressure_up | contradiction_pending

The lens fails if the row only records budget, cash, debt, deficit, salary, or insolvent without creditor, collateral, harmed claimant, default narrator, and future route effect.

Solvency hearing rite

播出偿付听证 or equivalent must require:

  • ledger;
  • selected row;
  • competing row or contested collateral;
  • named payment source or explicit absence;
  • handler/witness or explicit absence when person cost is involved;
  • proof/receipt or explicit absence when public or legal reality is involved;
  • harmed claimant.

Accepted payment sources include sponsor bridge, public refund pool, edit credit, legal cover, artist deferral, handler recovery budget, oxygen reserve, route asset pawn, facility access, schedule slot, producer credit, or explicit absence.

The lens fails if the player can discharge insolvency by spending a generic money point without naming what competing row worsens.

Default event

播出破产违约 or equivalent must fire or be recorded when a live row is ignored, underpaid, hidden, falsely discharged, paid with wrong capacity, or broadcast on credit without later discharge.

The event must mutate creditor posture, collateral custody, harmed claimant posture, broadcast reality, schedule lane, audience stability, route asset access, handler availability, or ending scar state.

Required durable states

A satisfying implementation must expose durable states equivalent to at least eight of:

  • broadcast_insolvency_ledger_open
  • payable_open
  • payable_contested
  • payable_prioritized
  • payable_split
  • payable_pawned
  • payable_converted_to_public_debt
  • payable_cancelled
  • payable_broadcast_on_credit
  • payable_defaulted
  • payable_blackout_fold
  • broadcast_recovery_only_from_insolvency

Branch divergence oracle

At least five branch families must be playable and non-equivalent.

Branch A — Pay artist or witness first

Expected evidence:

selected_branch: pay_artist_or_witness_first
creditor_any: [artist, witness, handler]
relief_any: [artist_trust_up, witness_available, handler_recovery_funded, live_body_continuity_protected]
cost_any: [sponsor_pressure_up, edit_debt_up, public_refund_delay_up, legal_heat_up, route_asset_pressure_up]
competing_row_after_any: [delayed, payable_contested, payable_pawned, payable_broadcast_on_credit, default_ready]
future_route_effect_any: [protected, costlier, public_only, recovery_only, blackout_pressure_up]

Branch B — Pay editor or proof first

Expected evidence:

selected_branch: pay_editor_or_proof_first
creditor_any: [editor, archive, inspector]
relief_any: [edit_checksum_released, source_tape_credible, continuity_patch_stable, legal_seal_preserved]
cost_any: [artist_trust_down, fan_oxygen_resentment_up, sponsor_retaliation_up, handler_recovery_unfunded, public_distance_up]
competing_row_after_any: [delayed, public_only, sponsor_captured, recovery_only, default_ready]
future_route_effect_any: [lawful_only, protected, ending_costlier, contradiction_pending]

Branch C — Accept sponsor bridge

Expected evidence:

selected_branch: accept_sponsor_bridge
payment_source: sponsor_bridge
relief_any: [slot_pressure_down, budget_strain_down, immediate_default_down]
cost_any: [contract_capture_up, public_receipt_distrust_up, artist_trust_down, fan_oxygen_resentment_up, clean_ending_seizure_risk_up]
competing_row_after_any: [sponsor_captured, suppressed, public_audit_required, counterbroadcast_ready, recovery_only]
future_route_effect_any: [captured, costlier, sponsor_capture, clean_version_blocked]

Branch D — Convert to public debt

Expected evidence:

selected_branch: convert_to_public_debt
payment_source_any: [public_refund_pool, fan_oxygen_queue, public_receipt]
relief_any: [public_receipt_legitimacy_up, audience_stability_up, private_capture_blocked]
cost_any: [sponsor_pressure_up, inspection_heat_up, witness_exposure_up, oxygen_liability_up, schedule_scar_up]
competing_row_after_any: [lawful_only, sponsor_retaliation, public_audit_required, delayed, default_ready]
future_route_effect_any: [public_only, public_audit_required, ending_costlier, contradiction_pending]

Branch E — Pawn route asset or proof

Expected evidence:

selected_branch: pawn_route_asset_or_proof
collateral_at_risk_any: [route_asset, master_tape, edit_checksum, legal_seal, public_receipt, facility_room, schedule_slot]
relief_any: [broadcast_survives, immediate_default_down, selected_creditor_paid_or_paused]
cost_any: [route_asset_pressure_up, source_ambiguity_up, facility_access_pressure_up, future_fraud_cost_up, public_distrust_up]
collateral_after_any: [pawned, seized, split, captured, delayed, recovery_only]
future_route_effect_any: [blocked, captured, hostile, costlier, recovery_only]

Branch F — Broadcast on credit

Expected evidence:

selected_branch: broadcast_on_credit
row_state_after: payable_broadcast_on_credit
broadcast_goes_live: true
creditor_unpaid_and_visible: true
default_narrator_armed: true
relief_any: [slot_airing_kept, audience_churn_delayed, immediate_blackout_avoided]
cost_any: [future_default_right_armed, public_receipt_distrust_up, sponsor_or_editor_or_fan_claim_hardened]
future_route_effect_any: [costlier, hostile, blackout_pressure_up, contradiction_pending, recovery_only]

Branch G — Controlled cancellation or blackout fold

Expected evidence:

selected_branch: controlled_cancellation_or_blackout_fold
false_clean_broadcast_blocked: true
source_proof_preserved_or_harmed_claimant_named: true
relief_any: [false_clean_blocked, proof_preserved, public_harm_not_laundered]
cost_any: [schedule_scar_up, audience_churn_up, sponsor_pressure_up, black_screen_pressure_up, ending_scar_pressure_up]
row_state_after_any: [payable_cancelled, payable_blackout_fold, payable_recovery_only]
future_route_effect_any: [blocked, recovery_only, blackout_pressure_up, ending_costlier]

Branch H — Default narrator takes over

Expected evidence:

selected_branch: default_narrator_takes_over
event_seen: storyteller.event.broadcast_insolvency_default.v1
failed_requirement_any: [no_payable_capacity, wrong_capacity_spent, harmed_claimant_hidden, collateral_missing, public_debt_suppressed, row_hidden, creditor_unpaid]
default_narrator_any: [sponsor, inspector, archive, editor, fan_public, pirate, blackout_system, route_claimant, public_audience]
row_state_after_any: [payable_defaulted, seized, sponsor_captured, public_only, lawful_only, recovery_only, contradiction_pending]
future_route_effect_any: [blocked, costlier, captured, hostile, public_only, lawful_only, recovery_only, blackout_pressure_up, contradiction_pending]
counter_deltas_min: 3

Oracle assertions

A binding check should fail unless all assertions below are true.

  1. Primary links existobserves and observed_through arrays point to concrete Storyteller pages.
  2. Entry is state-driven — the surface opens from unpaid obligation collision, not fixed chronology or global upkeep.
  3. At least two live claims exist — one bill cannot satisfy the lens unless it competes with a named collateral object required elsewhere.
  4. Rows are concrete — creditor, owed object, collateral, harmed claimant, default narrator, source surface, and future route effect are all visible.
  5. Capacity is named — the hearing spends or lacks sponsor bridge, public refund pool, edit credit, legal cover, artist deferral, handler recovery, oxygen reserve, route asset pawn, facility access, schedule slot, producer credit, or equivalent.
  6. Payment has opportunity cost — selecting one row mutates a competing row, collateral object, harmed claimant, schedule lane, route asset, or future route effect.
  7. Broadcast-on-credit is not clean success — it preserves an unpaid row and arms a future default narrator.
  8. Cancellation is playable — controlled cancellation, blackout fold, or recovery-only broadcast is a branch with relief and cost, not just failure text.
  9. Default mutates future play — default changes at least three durable surfaces and records source row provenance.
  10. No universal bailout — no branch can satisfy all artists, editors, sponsors, fans, inspectors, handlers, route assets, schedule, and broadcast reality pressure for free.
  11. Earlier relief remains true — insolvency may scar a saved branch, but it cannot retcon the earlier branch as never having succeeded.
  12. Replay provenance exists — passing evidence includes session id, seed, source rows, ledger rows, offered hearing, selected branch, competing row mutation, default or no-default reason, counter deltas, and future route effects.

Progress metric

broadcastInsolvencyLedgerProgress = 0..9:

  • 0: no unpaid obligation collision.
  • 1: at least two source surfaces create payable pressure or collateral conflict.
  • 2: 播出破产账本 or equivalent enters play.
  • 3: rows name creditor, owed object, collateral, harmed claimant, default narrator, and future route effect.
  • 4: 播出偿付听证 or equivalent offers selected row, competing row/collateral, payment source, handler/proof/absence, and harmed claimant.
  • 5: at least three branch choices are visible and gated by ledger state or capacity.
  • 6: at least two successful branches produce distinct row states and competing-row/collateral mutations.
  • 7: broadcast-on-credit or controlled cancellation produces durable future route pressure.
  • 8: 播出破产违约 or equivalent mutates future play for ignored, hidden, underpaid, wrong-capacity, or unpaid-credit branch.
  • 9: replay/session evidence proves at least five branch families including one payment, one public/sponsor/collateral conversion, one broadcast-on-credit or cancellation, and one default.

Evidence shape

lens_id: storyteller.lens.broadcast_insolvency_ledger.v1
session_id: lens-broadcast-insolvency-ledger-v1-<timestamp>
seed: <deterministic-seed>
source_rows:
  - source_session_id: <session that created payable pressure>
    source_seed: <seed>
    source_surface: production_triage | correction_slot | settlement_aftershock | handler_burden | cutroom_priority | audience_stability | broadcast_schedule | route_asset | ending_scar | equivalent
    source_object_id: <ticket row correction row settlement row burden row scar row route asset or proof object>
entry_state:
  payable_capacity_less_than_claims: true
  creditors_named_min: 2
  collateral_conflict_or_explicit_absence_present: true
ledger:
  card: card.broadcast_insolvency_ledger
  rows:
    - row_id: <row a>
      creditor: <creditor>
      owed_object: <object>
      collateral_at_risk: <collateral>
      harmed_claimant_if_paid: <claimant>
      harmed_claimant_if_defaulted: <claimant>
      default_narrator: <narrator>
      row_state_before: <state>
      future_route_effect_before: <effect>
    - row_id: <row b>
      creditor: <creditor>
      owed_object: <object>
      collateral_at_risk: <collateral>
      default_narrator: <narrator>
offered:
  rite: storyteller.rite.broadcast_solvency_hearing.v1
  choices:
    - pay_artist_or_witness_first
    - pay_editor_or_proof_first
    - accept_sponsor_bridge
    - convert_to_public_debt
    - pawn_route_asset_or_proof
    - broadcast_on_credit
    - controlled_cancellation_or_blackout_fold
    - default_narrator_takes_over
branch_runs:
  payment_branch:
    selected_row: <row id>
    payment_source: <source>
    selected_row_after: <state>
    competing_row_after: <state>
    collateral_after: <state>
    future_route_effect_after: <effect>
    counter_deltas: {}
  conversion_or_pawn_branch:
    selected_row: <row id>
    branch: sponsor_bridge | public_debt | route_asset_pawn | proof_pawn
    selected_row_after: <state>
    harmed_claimant_after: <claimant>
    future_route_effect_after: <effect>
    counter_deltas: {}
  credit_or_cancellation_branch:
    branch: broadcast_on_credit | controlled_cancellation_or_blackout_fold
    row_state_after: <state>
    default_narrator_armed_or_false_clean_blocked: true
    future_route_effect_after: <effect>
    counter_deltas: {}
  default_branch:
    event: storyteller.event.broadcast_insolvency_default.v1
    failed_requirement: <requirement>
    default_narrator: <narrator>
    row_state_after: <state>
    future_route_effect_after: <effect>
    counter_deltas: {}
assertions:
  - state_triggered_from_unpaid_obligation_collision
  - ledger_rows_name_creditor_collateral_harmed_claimant_and_default_narrator
  - hearing_spends_named_payable_capacity
  - selected_payment_mutates_competing_row_or_collateral
  - broadcast_on_credit_preserves_future_default
  - cancellation_blackout_is_playable_failure
  - default_event_mutates_future_route_state

Failure cases

The lens must fail if any of these are true:

  • entry is triggered by fixed chronology, content count, or a generic upkeep phase;
  • only one abstract debt exists and no competing collateral or second creditor is visible;
  • rows lack creditor, owed object, collateral, harmed claimant, default narrator, or future route effect;
  • hearing can be resolved with generic money and no competing-row mutation;
  • sponsor bridge, public conversion, edit proof, artist recovery, handler recovery, route asset pawn, and cancellation all resolve to equivalent success;
  • broadcast-on-credit deletes the unpaid row;
  • cancellation/blackout is only a failure popup and does not protect proof or name harmed claimant;
  • default event is flavor-only;
  • route asset, ending scar, public receipt, broadcast reality, handler availability, or schedule mutation lacks source ledger provenance.

Non-goals

  • Not a general economy dashboard.
  • Not raw budget tuning.
  • Not a shop, salary table, upkeep calendar, or governance metric.
  • Not a fixed turn-count trigger.
  • Not bulk filler content.
  • Not satisfied by page existence; proof must come from ledger rows, solvency hearing choices, competing-row mutation, broadcast-on-credit or cancellation pressure, default event/default state, and replay/session deltas.