Broadcast Schedule Capacity Lens / 播出档期容量 Lens

This page revises the older “schedule is HP” lens into a state-driven executable contract. It preserves the same bound test handle while removing fixed sequence evidence and adding explicit observes / observed_through links.

The lens observes whether Broadcast Schedule and Blackout Incidents behave as finite producer-license capacity. A schedule slot is not flavor, not a passive timer, and not generic stress. It is a board object that can be free, scoped, occupied, folded, scarred, or escalated into 播出容量责任级联线.

This lens observes:

It is observed through:

Observable promise

The producer license must expose finite schedule capacity. Accepting, binding, or occupying a broadcast contract must reduce available capacity. Completing, releasing, folding, or breaching a contract must mutate the slot state. A blackout incident must remain a capacity scar unless a recovery branch explicitly pays for release.

The lens fails if the game silently creates extra slots, deletes blackout pressure, hides slot authority, hides the reader scope, or treats schedule pressure as a generic morale/stress number.

State-triggered entry oracle

entry_state_required:
  trigger_kind: state_pressure
  producer_license_present_or_explicit_absence: true
  schedule_capacity_surface_present: true
  schedule_slots_total_visible: true
  schedule_slots_free_visible: true
  schedule_slots_occupied_visible: true
  at_least_one_capacity_claim_or_contract_present: true
  future_reader_or_route_possible: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Entry must fail if it depends on a fixed sequence position, arbitrary calendar interval, chapter quota, raw content count, dashboard state, lens-health state, or generic escalation without a named schedule capacity surface.

Required slot object

A schedule slot or equivalent row must record:

schedule_slot_row:
  slot_id: <stable id>
  slot_kind: main_broadcast | correction | rehearsal | legal_airing | public_contrition | sponsor_package | emergency_patch | counterbroadcast | blackout_containment | equivalent
  capacity_state: free | optioned | occupied | bound_with_scope | preempted | split | folded_blackout | breached | released_with_scar | recovery_only | blocked
  occupying_source_or_absence: <contract claim route event blackout or explicit_absence>
  reader_scope_or_absence: public | lawful | sponsor | archive | editor | fan_public | route_asset | management | blackout | split | explicit_absence
  authority_or_absence: producer_license | schedule_contract | mirror_right | archive_receipt | fan_mandate | sponsor_letter | inspector_stamp | pirate_packet | explicit_absence
  future_reader_or_route: <reader route slot or explicit_absence>

The lens fails if capacity is only expressed as timer, deadline, stress, busy, or available without row identity, source, reader scope, authority, and future reader.

Required transitions

Accept or bind a contract

A contract or claim that occupies a slot must reduce free capacity and create an occupied row.

transition_accept_or_bind:
  capacity_state_before: free | optioned | scoped_free
  capacity_state_after: occupied | bound_with_scope | split | preempted
  schedule_slots_free_delta: -1
  schedule_slots_occupied_delta: +1
  occupying_source_visible: true
  reader_scope_visible: true

Complete or release a slot

Completing a slot may free it only if no unresolved blackout, liability, reader scope, or future claimant remains.

transition_complete_or_release:
  source_row_visible: true
  unresolved_claims_or_scar_absent: true
  capacity_state_after_any: [free, scoped_free, released_with_scar]
  future_reader_or_route_updated: true

Fold into blackout

A failed or unsafe slot may become a blackout incident. It must not disappear.

transition_blackout_fold:
  source_slot_id: <slot id>
  event_or_incident: blackout_incident
  occupied_or_scarred_capacity_remains: true
  capacity_state_after_any: [folded_blackout, recovery_only, blocked]
  schedule_slots_occupied_or_scarred_delta_min: 1
  future_route_effect_any: [blackout_pressure_up, recovery_only, blocked, ending_costlier]

Capacity exhaustion

When no free or scoped-free slot can lawfully satisfy a new forced or urgent claim, the run must show a crisis, preemption, liability ledger, breach/default, blackout fold, or explicit refusal.

transition_capacity_exhaustion:
  schedule_slots_free: 0
  incoming_capacity_claim_present: true
  allowed_outcome_any:
    - preemption_hearing
    - slot_contract_breach_default
    - off_slot_encounter_default
    - broadcast_capacity_liability_ledger
    - capacity_liability_default
    - blackout_fold
    - explicit_refusal_with_scar
  forbidden_outcome: silent_extra_slot

Escalation to capacity liability

When a row is claimed by more than one reader, or when occupied capacity is borrowed, folded, sponsor-converted, public-converted, lawful-converted, or management-greenwashed, the surface should hand off to 播出容量责任账本 or 容量责任默认.

This is the difference between the system lens and the new storyline lens:

Oracle assertions

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

  1. Primary links existobserves and observed_through point to concrete wiki pages.
  2. Capacity surface is visible — total/free/occupied or equivalent state is inspectable.
  3. Accepted contract occupies capacity — accepted or bound rows reduce availability.
  4. Reader scope is visible — every occupied row knows who can read it.
  5. Authority is visible — producer license, contract, receipt, mandate, stamp, packet, or explicit absence is recorded.
  6. Release is conditional — completion frees capacity only when unresolved claims and scars are absent or explicitly converted.
  7. Blackout remains a scar — folded slots do not release clean capacity.
  8. Exhaustion does not create free capacity — zero free slots must produce preemption, breach, liability, blackout, or refusal.
  9. Future reader consumes state — downstream route, audit, correction, preemption, contract review, blackout recovery, or capacity liability reads the result.
  10. No fixed trigger — the proof does not depend on fixed turn, day, week, raw count, dashboard, or lens-health triggers.

Replay evidence expectation

lens_id: storyteller.broadcast_schedule.capacity_001
session_id: lens-broadcast-schedule-capacity-v2-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  producer_license_present_or_explicit_absence: true
  schedule_capacity_surface_present: true
  schedule_slots_total_visible: true
  schedule_slots_free_visible: true
  schedule_slots_occupied_visible: true
  no_fixed_turn_trigger: true
slot_rows_before:
  - slot_id: <slot>
    capacity_state: <state>
    occupying_source_or_absence: <source_or_absence>
    reader_scope_or_absence: <scope_or_absence>
transitions:
  accept_or_bind:
    capacity_state_after: occupied | bound_with_scope | split | preempted
    schedule_slots_free_delta: -1
    schedule_slots_occupied_delta: +1
  complete_or_release:
    unresolved_claims_or_scar_absent: true
    capacity_state_after: free | scoped_free | released_with_scar
  blackout_fold:
    source_slot_id: <slot>
    occupied_or_scarred_capacity_remains: true
    future_route_effect: <effect>
  exhaustion:
    schedule_slots_free: 0
    incoming_capacity_claim_present: true
    outcome: preemption_hearing | breach_default | off_slot_default | capacity_liability_ledger | capacity_liability_default | blackout_fold | explicit_refusal_with_scar
assertions:
  - primary_links_exist
  - finite_schedule_slots_visible
  - accepting_or_binding_contract_occupies_slot
  - occupying_source_and_reader_scope_visible
  - completing_releasing_or_folding_slot_mutates_capacity_state
  - blackout_incident_keeps_capacity_scar
  - no_free_extra_slot_when_capacity_exhausted
  - capacity_claim_collision_routes_to_liability_ledger_or_default
  - replay_evidence_records_seed_session_state_assignments_events_deltas_and_future_reader
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger

Progress metric

broadcastScheduleCapacityProgress = 0..8:

  • 0: capacity surface absent.
  • 1: total/free/occupied or equivalent capacity state visible.
  • 2: at least one contract or claim can occupy a row.
  • 3: occupied row records source, reader scope, authority, and future reader.
  • 4: acceptance/binding decreases free capacity and increases occupied/scarred capacity.
  • 5: completion/release mutates the same row and does not erase unresolved scars.
  • 6: blackout fold keeps capacity scar and future route effect.
  • 7: capacity exhaustion produces preemption, breach/default, liability, blackout, or refusal instead of silent extra capacity.
  • 8: capacity claim collision hands off to liability ledger/default with seed/session evidence.

Non-goals

  • Not a timer check.
  • Not a chapter pacing rule.
  • Not a raw count target.
  • Not a generic economy or stress meter.
  • Not a management governance page.
  • Not valid if schedule capacity can be overfilled, released from blackout, or reused without visible row state and future reader.