On-Screen Slot Readback / 上屏槽位回读线

On-Screen Slot Readback is the storyline for the final broadcast moment when a schedule contract stops being future debt and becomes city-recognized reality.

上屏仪式 already defines the broad validation order: mirror right, protection level, slot completeness, narrative credibility, cost payment, and route tag. Nearby packets bind slot authority, prevent wrong mirror-right overreach, preserve prep receipts, and check live-floor coverage. This storyline fills the remaining final-air gap: every filled ritual slot must be read back as a concrete row before the route tag hardens.

Playable question

At premiere, does the producer certify the assembled slots, narrow a slot’s scope, substitute a bad slot, split the route tag, attach a sacrifice cost, delay or fold the broadcast, or let false slot closure harden?

The answer must name:

  • the source schedule contract or explicit absence;
  • the intended final broadcast version;
  • each meaningful slot row;
  • the assigned card, character, scene, proof, sacrifice, or ending;
  • the validation state for that slot;
  • the route tag being claimed;
  • the harmed reader if the slot is overcredited;
  • the future reader or route that consumes the ritual state.

Gap diagnosis

The current corpus already covers several adjacent moments:

The uncovered seam is the last compositional readback. A route can have legal slot authority, a correct mirror right, a valid prep receipt, and enough crew, while still turning a missing sacrifice, wrong object slot, hidden proof gap, or incompatible ending into a clean route tag. This storyline prevents aired_successfully from erasing slot-level scars.

State-triggered entry

Open this storyline only when final-air pressure exists:

entry_state_required:
  trigger_kind: state_pressure
  final_broadcast_or_reverse_airing_ready: true
  source_schedule_contract_present_or_explicit_absence: true
  intended_final_version_visible: true
  slot_rows_visible: true
  claimed_route_tag_visible: true
  at_least_one_slot_validation_contested_or_costed: true
  future_reader_consumes_ritual_state: true
  player_can_certify_narrow_substitute_split_attach_delay_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_slot_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The premiere date, D-0, or broadcast countdown may appear as provenance. It cannot be the canonical trigger. Valid entry is a final-air version whose slot rows can change future play.

Bound content pack

Storyline spine

Beat 1 - Final version enters readback

A schedule contract, correction, memorial air, public testimony, route debut, blackout counterbroadcast, or reverse airing is ready to become recognized city reality.

Create or refresh On-Screen Slot Readback Ledger. It must not be a generic success receipt. It is the slot table for the intended final version.

Beat 2 - Slot rows expose the composition

Each relevant row names slot kind, assigned object, required right or proof, reader scope, validation state, missing or incompatible input, and future effect.

Valid slot kinds include:

  • lead_slot
  • object_slot
  • scene_slot
  • narrative_slot
  • material_slot
  • sacrifice_slot
  • ending_slot
  • reverse_air_slot
  • blackout_slot
  • equivalent custom slot

Beat 3 - Readback prices final closure

Run On-Screen Ritual Readback. The player chooses whether the route can close as claimed, needs a narrower result, needs replacement, splits route tags, attaches cost, delays/folds, or defaults.

Beat 4 - Route tag hardens with scars

The route tag after readback must be visible: company, intimacy, liquidation, resistance, chaos, public-only, lawful-only, sponsor-captured, blackout-folded, reverse-aired, recovery-only, or equivalent.

The branch must also leave at least one future route or reader effect. A route tag is not a sticker; it is a future reader state.

Beat 5 - False closure becomes durable

If the slot table is hidden or overcredited, False Slot Closure Default fires or remains armed. It records the false closure claim, hidden or invalid slot, captured route tag, harmed reader, ritual state after, and future reader effect.

Branch map

BranchImmediate reliefCost/scarFuture state
Certify slot packagebroadcast closes inside named slot tableproof, schedule, reader, or sacrifice cost risescertified_with_scope
Narrow slot scopefalse universal route tag is blockedroute becomes public-only, lawful-only, sponsor-only, or costliernarrowed_route_tag
Substitute slotmissing or invalid row is replacedsubstitute debt, trust loss, proof burden, or route delaysubstituted_with_scar
Split route tagincompatible rows both remain legiblesource ambiguity, correction cost, handler burdensplit_route_tag
Attach sacrifice costunpaid closure becomes pricedtrauma, oxygen, money, body, relationship, or future debt risespaid_with_scar
Delay or foldfalse finality is blockedschedule pressure, blackout risk, sponsor/public pressuredelayed, folded, or recovery-only
False slot closure defaultfast route closure may proceedcaptured tag, hostile future reader, drift, blackout scarfalse_closure, captured, blocked, recovery-only

Integration notes

Missability and recovery

This storyline is missed when implementation:

  • stores only broadcast_complete, aired_successfully, route_tag, or ending_unlocked;
  • lets one filled slot satisfy lead, object, scene, material, sacrifice, and ending requirements;
  • claims a route tag while hiding a missing, incompatible, unpaid, or overbroad slot;
  • treats a sponsor payment, public cheer, lawful seal, rehearsal mark, or edit patch as universal slot closure;
  • creates no harmed reader, future route effect, or durable scar.

Recovery requires visible scar: late slot readback, route tag narrowing, substitute slot, public correction, lawful addendum, sacrifice cost, delayed airing, blackout fold, or recovery-only route.

Replay evidence expectation

storyline_id: storyteller.storyline.on_screen_slot_readback.v1
session_id: lens-on-screen-slot-readback-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  final_broadcast_or_reverse_airing_ready: true
  source_schedule_contract_present_or_explicit_absence: true
  intended_final_version_visible: true
  slot_rows_visible: true
  future_reader_consumes_ritual_state: true
offered:
  card: storyteller.card.on_screen_slot_readback_ledger.v1
  rite: storyteller.rite.on_screen_ritual_readback.v1
branch_result:
  selected_posture: certify_slot_package | narrow_slot_scope | substitute_slot | split_route_tag | attach_sacrifice_cost | delay_or_fold | false_slot_closure_default
  ritual_state_after: <state>
  route_tag_after: <tag>
  future_reader_effect: <effect>
  event_seen_or_armed: storyteller.event.false_slot_closure_default.v1 | none
  counter_deltas:
    relief: []
    cost: []
    future: []

Non-goals

  • Not a replacement for slot contract authority.
  • Not a mirror-right audit duplicate.
  • Not a rehearsal contamination lens.
  • Not a generic UI checklist.
  • Not valid if a final broadcast closes without observable slot rows.