Narration Priority Stack / 叙述优先栈线

Narration Priority Stack is a pressure storyline for the moment when several claimants can speak a contested version into reality before the producer finishes formal resolution.

The game already has systems that create these armed voices: unpaid insolvency rows name default narrators, briefing order gives first-notice claimants leak or injunction power, dormant claims can breach into hostile narration, and counter-broadcast forks create rival carriers. This storyline binds those voices into one playable question:

Who gets to narrate first, who is excluded, and what future route becomes harder because that voice became reality?

Why this is the next useful expansion

The current mesh is strong at creating creditor rows, briefing advantages, dormant resurfacing, correction scarcity, cutroom scarcity, and route custody collisions. The gap is downstream: once several actors are armed to narrate, the engine needs a visible priority surface before one voice silently becomes canon.

Without this storyline:

  • a sponsor countercopy can become reality without showing which public or lawful claimant was excluded;
  • an inspector injunction can overwrite public receipts without a playable appeal cost;
  • a pirate or fan leak can become public truth without showing source custody or witness exposure;
  • an editor checksum can settle continuity without showing who lost access;
  • an insolvency default narrator can fire as an isolated bad event instead of colliding with other armed narrators;
  • route assets can become captured or recovery-only without proving who spoke ownership first.

Bound content pack

This storyline binds:

State-triggered entry

Open this storyline when all are true:

  1. at least two active narration claims target the same version, proof object, correction row, route asset, public record, or lawful record;
  2. each claim has a claimant, narration right, and priority basis;
  3. at least one claim can preempt before formal resolution;
  4. at least one excluded claimant can retaliate, appeal, leak, countercopy, refuse, or become hostile;
  5. proof anchor, channel, or explicit absence is visible;
  6. resolution can mutate current pressure and future route effect.

Never open from fixed turn number, arbitrary day interval, chapter quota, content count, or lens-health state.

Storyline spine

Beat 1 — Armed voices enter the same target

Two or more source systems point at the same target version.

Examples:

The claims enter 叙述优先栈.

Beat 2 — Priority basis is made visible

The stack shows why each claimant can speak first: first notice, unpaid creditor right, proof custody, channel access, legal seal, fan receipt, route asset custody, blackout authority, or explicit absence in a rival claim.

A famous character or faction is not enough. The voice must have a concrete priority basis.

Beat 3 — The producer runs the hearing

The player runs 叙述优先听证. The rite requires selected claim or no-voice branch, countered claims, excluded claimants, proof/channel or absence, priority basis, accepted cost, and future route effect.

Beat 4 — A voice wins, splits, waits, or is refused

Valid outcomes:

  • seat one narrator;
  • counterclaim before first voice;
  • split narration window;
  • escrow proof and delay;
  • blackout fold;
  • no valid resolution / hostile capture.

Each outcome changes at least three counters or durable states, with relief and cost.

Beat 5 — Future routes inherit the captured version

Later content must inherit whether the version is sponsor-captured, lawful-only, public-only, source-captured, false-owner, blackout-folded, split-canon, contradiction-pending, or recovery-only.

Branch map

Branch A — Sponsor countercopy seated

The player seats Orion Breath or a sponsor/management countercopy first to keep the slot alive.

selected_response: seat_one_narrator
selected_claimant: sponsor
state_after_any: [claim_seated, sponsor_captured]
relief_any: [slot_pressure_down, budget_strain_down, sponsor_stop_loss_pressure_down]
cost_any: [contract_capture_up, public_receipt_distrust_up, fan_oxygen_resentment_up]
future_route_effect_any: [captured, public_audit_required, clean_version_blocked, recovery_only]

Branch B — Inspector/archive lawful voice seated

The player seats Inspector Rhee Archive, Han Yanshuang, or archive lawful voice first.

selected_response: seat_one_narrator
selected_claimant_any: [inspector, archive]
state_after_any: [claim_seated, lawful_only]
relief_any: [admissibility_up, archive_fraud_down, custody_clarity_up]
cost_any: [inspection_heat_up, public_delay_up, lawful_injunction_risk_up]
future_route_effect_any: [lawful_only, appeal_required, public_route_costlier, recovery_only]

Branch C — Public/pirate voice seated or counterbriefed

The player seats Yu Lan, fan public, pirate relay, or audience witness before private capture.

selected_response_any: [seat_one_narrator, counterclaim]
selected_claimant_any: [fan_public, pirate, audience_witness]
state_after_any: [claim_seated, public_only, claim_countered]
relief_any: [private_capture_blocked, public_receipt_legitimacy_up, fan_trust_up]
cost_any: [public_panic_up, sponsor_retaliation_up, witness_exposure_up, inspection_heat_up]
future_route_effect_any: [public_only, hostile, blackout_pressure_up, sponsor_retaliation]

Branch D — Source/editor voice controls the checksum

The player seats or counters Baiya, cutroom, archive source, or black-box holder.

selected_response_any: [seat_one_narrator, counterclaim, escrow_and_delay]
selected_claimant_any: [editor, cutroom, archive_source, black_box]
state_after_any: [source_captured, claim_countered, claim_escrowed]
relief_any: [source_integrity_up, slot_legibility_up, continuity_hazard_down]
cost_any: [edit_debt_up, source_ambiguity_up, public_distrust_up]
future_route_effect_any: [split_canon, contradiction_pending, lawful_only, recovery_only]

Branch E — Split narration window

The player lets two voices speak under named terms rather than pretending one clean reality exists.

selected_response: split_narration_window
voices_min: 2
state_after: claim_split
terms_present: true
relief_any: [capture_blocked, contradiction_visible, private_overwrite_blocked]
cost_any: [source_ambiguity_up, claimant_retaliation_up, future_correction_cost_up]
future_route_effect_any: [split_canon, contradiction_pending, public_audit_required, lawful_appeal_required]

Branch F — Escrow or blackout fold

The player refuses all unsafe voices by locking proof/channel or letting the slot go black.

selected_response_any: [escrow_and_delay, blackout_fold]
state_after_any: [claim_escrowed, claim_blackout_fold]
relief_any: [hostile_capture_delayed, false_clean_broadcast_blocked, source_proof_preserved]
cost_any: [slot_pressure_up, insolvency_row_created, black_screen_pressure_up, audience_stability_down, ending_scar_pressure_up]
future_route_effect_any: [costlier, recovery_only, blackout_pressure_up, contradiction_pending]

Branch G — Hostile capture

The player hides excluded claimants, lacks proof/channel, breaks split terms, or lets a preemptive voice expire uncontested.

selected_response: no_valid_resolution
emitted_event: storyteller.event.hostile_narration_capture.v1
state_after_any: [claim_hostile, claim_captured, claim_recovery_only]
future_route_effect_any: [captured, blocked, hostile, public_only, lawful_only, recovery_only]

Character hooks

  • Orion Breath can keep a slot solvent through countercopy capture.
  • Shen Luo can phrase sponsor seating or split terms, but contract capture and manager debt rise.
  • Han Yanshuang can seat lawful narration with bureau cost.
  • Inspector Rhee Archive can harden admissibility, but may narrow the version into lawful-only.
  • Yu Lan can seat public witness narration, but public panic and witness exposure rise.
  • Baiya can seat source continuity or escrow checksum, but edit debt and ambiguity rise.

Missability and recovery

This storyline is missable when the implementation:

  • lets a default narrator, leak, injunction, countercopy, source release, refusal, or blackout become reality without priority state;
  • records no target version shared by rival claims;
  • omits excluded claimants;
  • omits proof/channel or explicit absence;
  • gives all voices safe simultaneous seating;
  • treats hostile capture as flavor instead of route mutation.

Recovery is allowed only with visible scar:

  • public audit after sponsor capture;
  • lawful appeal after public capture;
  • sponsor buyback after fan leak;
  • source checksum release after editor capture;
  • witness protection after public exposure;
  • route asset rescue after false-owner narration;
  • fan refund bond after public-only rupture;
  • ending scar audit after blackout fold or split canon.

Replay/session evidence shape

storyline: storyteller.storyline.narration_priority_stack.v1
session_id: lens-narration-priority-stack-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  active_narration_claims:
    - claim_id: <claim a>
      source_surface: <surface>
      target_version: <version>
      claimant: <claimant>
      priority_basis: <basis>
    - claim_id: <claim b>
      source_surface: <surface>
      target_version: <same version>
      claimant: <claimant>
      priority_basis: <basis>
  target_version_shared: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.narration_priority_stack.v1
  rite: storyteller.rite.narration_priority_hearing.v1
review:
  selected_claim_or_absence: <claim id or explicit_no_voice>
  excluded_claimants: []
  proof_anchor_or_absence: <anchor>
  channel_or_absence: <channel>
  accepted_cost: <cost>
branch_runs:
  seat_one_narrator:
    selected_claimant: <claimant>
    state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
  counterclaim:
    countered_claim: <claim>
    state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
  split_narration_window:
    voices: []
    terms: <terms>
    future_route_effect: split_canon
    counter_deltas: {}
  hostile_capture:
    event: storyteller.event.hostile_narration_capture.v1
    captured_version_state: <state>
    future_route_effect: <effect>
assertions:
  - state_triggered_entry
  - shared_target_version
  - competing_claimants_visible
  - priority_basis_visible
  - proof_channel_or_absence_named
  - excluded_claimants_visible
  - branch_outcomes_diverge
  - hostile_capture_durable
  - future_route_effect_mutates

Non-goals

  • Not a new chapter phase.
  • Not a turn-count progression.
  • Not a generic debate or reputation meter.
  • Not a governance page.
  • Not a bulk count expansion.
  • Not a replacement for insolvency, briefing, dormant claim, correction, cutroom, archive, public contrition, or route custody systems.
  • Not a way to make every claimant’s narration safely true at once.