Schedule Preemption Claims / 档期抢占认领机制

Schedule Preemption Claims is the management mechanism for deciding which playable object is allowed onto the licensed broadcast schedule when multiple live claims cannot all appear on the same surface.

It exists because Storyteller’s core rule is not merely that schedule is scarce. A thing that receives the slot becomes broadcast reality. A thing pushed off-slot becomes missable, hostile, pirate-visible, lawful-only, recovery-only, or folded into blackout debt unless the player records the displacement.

Distinction from adjacent mechanisms

  • 制作分诊台机制 asks which crisis receives finite operational staffing. This mechanism asks which crisis receives the reality-making slot.
  • 直播现场班组负荷机制 asks whether the floor can safely carry a slot. This mechanism asks what the slot is allowed to carry.
  • 更正档期竞拍机制 handles public correction after a version exists. This mechanism handles preemption before or during live assignment, when encounter availability itself is at stake.

Entry state

Open or update this mechanism when all of the following are true:

entry_state:
  trigger_kind: state_pressure
  competing_slot_claims_min: 2
  finite_schedule_surface_present: true
  at_least_one_claim_changes_encounter_or_route_availability: true
  legal_or_broadcast_authority_contested_or_explicitly_absent: true
  displaced_claim_can_default: true
  future_reader_consumes_preemption_result: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true

Valid finite schedule surfaces include live slot, rehearsal slot, licensed apology surface, public testimony window, legal airing window, route-asset debut, emergency delay slot, counterbroadcast aperture, black-screen containment window, or equivalent.

Primary objects

ObjectMeaningRequired observable fields
preemption_docketthe visible set of claims seeking the same schedule surfaceslot id, capacity, authority, claims, displacement risk
slot_claima character, proof, route asset, faction demand, or public claim asking to appearclaimant, requested surface, proof/license, if-on-slot result, if-off-slot default
slot_authoritywho can certify or seize the slotproducer license, schedule contract, inspector stamp, sponsor letter, archive receipt, pirate aperture, explicit absence
displacement_receiptthe record that a losing claim was delayed, narrowed, split, or refusedreason, future reader, recovery cost, hostile risk
encounter_availability_statethe route/character state after slot decisionavailable, delayed, narrowed, missed, hostile, lawful-only, public-only, pirate-only, recovery-only, blackout-folded

A valid implementation must expose at least two slot_claim rows or one row plus a named live object that will be displaced.

Slot claim fields

slot_claim:
  claim_id: <stable id>
  claimant_surface: artist | fan_public | sponsor | inspector | archive | editor | pirate | witness | route_asset | production_desk | equivalent
  requested_surface: live_slot | rehearsal_slot | legal_airing | public_testimony | route_debut | emergency_delay | counterbroadcast | blackout_containment | equivalent
  proof_or_authority: producer_license | schedule_contract | mirror_right | archive_receipt | fan_mandate | sponsor_letter | inspector_stamp | pirate_packet | explicit_absence
  requested_encounter_or_route: <card_or_rite_or_route_asset_or_explicit_absence>
  if_on_slot: unlock | stabilize | recruit_window | lawful_use | public_use | sponsor_relief | drift_down | equivalent
  if_off_slot: miss | hostile | delayed_with_receipt | lawful_only | public_only | pirate_only | blackout_folded | recovery_only | equivalent
  future_reader: <stable reader or route id>

State machine

StateMeaningRequired consequence
collision_openat least two claims compete for the same schedule surfaceplayer can award, split, defer, sell, counterbroadcast, or default
official_slot_awardedone claim receives the licensed slotone or more displaced claims mutate visibly
split_surfacethe player divides public, lawful, sponsor, edit, or pirate surfaceseach side receives narrower availability and durable ambiguity
lawful_deferrala claim is delayed with inspector/archive receiptimmediate slot pressure falls while lawful-only or bureau debt rises
sponsor_preemptedsponsor/management buys or seizes the slotstop-loss pressure falls while capture and public distrust rise
pirate_aperture_openoff-slot claim reaches audience through pirate/counterbroadcast surfaceprivate capture drops while relay risk and inspection heat rise
off_slot_hostiledisplaced claim receives no acceptable receiptfuture encounter becomes hostile, missed, or costlier
blackout_foldedschedule cannot legally or safely carry any claimblack-screen debt occupies capacity and reality drift rises
recovery_only_windowordinary encounter availability is lost but scarred recovery remainsfuture recovery must cite the displaced claim and pay cost

Branch contract

Every branch must mutate at least three durable states. At least one must be relief and at least one must be cost. At least one must affect a future encounter, route asset, legal reader, archive reader, or broadcast-reality state.

Branch A — Award official slot

The player gives the schedule surface to one claim with a valid authority.

Expected outcome:

branch: award_official_slot
relief_any: [selected_route_unlocked, encounter_available, lawful_use_unlocked, broadcast_reality_stabilized]
cost_any: [off_slot_debt_up, displaced_claim_hostility_up, sponsor_or_inspection_pressure_up, route_asset_narrowness_up]
future_effect_any: [selected_available_with_cost, displaced_delayed_with_receipt, displaced_hostile, displaced_recovery_only]

Branch B — Split the surface

The player separates public, lawful, sponsor-safe, edited, or pirate parts of the slot.

Expected outcome:

branch: split_surface
relief_any: [multiple_claims_partially_available, public_capture_blocked, legal_continuity_preserved]
cost_any: [source_ambiguity_up, schedule_pressure_up, audience_confusion_up, archive_review_required]
future_effect_any: [public_only, lawful_only, sponsor_only, contradiction_pending]

Branch C — Lawful deferral with receipt

The player delays a claim through inspector/archive/legal authority and records why it did not appear.

Expected outcome:

branch: lawful_deferral_with_receipt
relief_any: [slot_collision_down, legal_breach_down, selected_slot_cleaner]
cost_any: [bureau_favor_debt_up, public_distrust_up, missed_encounter_pressure_up]
future_effect_any: [delayed_with_receipt, lawful_only, audit_required, route_costlier]

Branch D — Sponsor or management preemption

The player lets sponsor, management, or contract pressure take the slot.

Expected outcome:

branch: sponsor_or_management_preemption
relief_any: [sponsor_stop_loss_pressure_down, immediate_slot_pressure_down, budget_strain_down]
cost_any: [contract_capture_up, public_receipt_distrust_up, fan_oxygen_resentment_up, artist_boundary_pressure_up]
future_effect_any: [sponsor_route_unlocked_with_capture, public_route_blocked_or_costlier, hostile_delegate_or_artist]

Branch E — Pirate or public off-slot breach

The displaced claim finds an off-network public aperture.

Expected outcome:

branch: pirate_or_public_off_slot_breach
relief_any: [private_capture_down, hidden_claim_visible, public_receipt_legitimacy_up]
cost_any: [inspection_heat_up, relay_custody_risk_up, black_screen_pressure_up, sponsor_retaliation_up]
future_effect_any: [public_only, pirate_only, lawful_appeal_required, counterbroadcast_chain_open]

Branch F — Let blackout or default choose

The player hides the collision, leaves no authority, or cannot record displacement.

Expected outcome:

branch: blackout_or_default_selects
emitted_or_armed_event: storyteller.event.off_slot_encounter_default.v1
cost_any: [black_screen_slots_up, reality_drift_up, missed_encounter_pressure_up, off_slot_debt_up]
future_effect_any: [missed, hostile, blackout_folded, recovery_only]

Counter and state contract

Primary counters and durable states:

  • schedule_preemption_pressure
  • live_slot_claim_strength
  • slot_legality
  • slot_authority_clarity
  • encounter_availability
  • off_slot_debt
  • displacement_receipt_legitimacy
  • missed_encounter_pressure
  • hostile_recruit_pressure
  • recovery_only_window
  • sponsor_stop_loss_pressure
  • contract_capture
  • inspection_heat
  • bureau_favor_debt
  • fan_oxygen_resentment
  • public_receipt_distrust
  • archive_signature_legitimacy
  • route_asset_custody
  • broadcast_reality_drift
  • black_screen_slots
  • relay_custody_risk

Replay evidence contract

mechanic: storyteller.mechanic.schedule_preemption_claims.v1
session_id: lens-storyteller-schedule-preemption-claims-v1-<timestamp>
seed: <deterministic seed>
entry_state:
  trigger_kind: state_pressure
  slot_surface: <surface id>
  competing_slot_claims_min: 2
  finite_schedule_surface_present: true
  authority_present_or_explicit_absence: true
  displaced_claim_can_default: true
  no_fixed_turn_trigger: true
docket:
  claims_before:
    - claim_id: <claim a>
      claimant_surface: <surface>
      proof_or_authority: <proof or explicit_absence>
      requested_encounter_or_route: <id>
      if_on_slot: <effect>
      if_off_slot: <effect>
    - claim_id: <claim b>
      claimant_surface: <surface>
      proof_or_authority: <proof or explicit_absence>
      requested_encounter_or_route: <id>
      if_on_slot: <effect>
      if_off_slot: <effect>
resolution:
  selected_branch: award_official_slot | split_surface | lawful_deferral_with_receipt | sponsor_or_management_preemption | pirate_or_public_off_slot_breach | blackout_or_default_selects
  awarded_claim_or_absence: <claim id or explicit_absence>
  displaced_claims_after: {}
  encounter_availability_after: {}
  event_seen_or_armed: storyteller.event.off_slot_encounter_default.v1 | none
  counter_deltas:
    relief: []
    cost: []

Non-goals

  • Not a fixed turn, fixed day, or calendar timer.
  • Not a generic action-point or priority queue.
  • Not another correction slot after a public version has already settled.
  • Not a crew-count or call-sheet coverage check.
  • Not valid if every losing claim simply waits unchanged.
  • Not valid if official broadcast solves public, lawful, sponsor, archive, fan, and route availability for free.