Narration Priority Hearing / 叙述优先听证
Narration Priority Hearing is an assignable rite for resolving 叙述优先栈 rows before a claimant’s voice crystallizes a contested version.
The rite is used when the producer can still choose who speaks first, who is countered, which proof is escrowed, whether the version is split, or whether the slot must go black rather than let a hostile voice win.
Inputs
inputs:
stack_card: storyteller.card.narration_priority_stack.v1
target_version: <version id>
competing_claims_min: 2
selected_claim: <claim id or explicit_no_voice>
countered_claims:
- <claim id>
excluded_claimants:
- <claimant>
proof_anchor_or_absence: <proof id or explicit_absence>
channel_or_absence: <channel id or explicit_absence>
priority_basis: first_notice | unpaid_creditor | proof_custody | channel_access | legal_seal | fan_receipt | route_asset_custody | explicit_absence
accepted_cost: <finite cost or explicit_absence>
no_fixed_turn_trigger: trueThe rite is invalid if the selected claim has no proof/channel explanation, if excluded claimants are hidden, or if the player can seat every claimant safely for free.
Assignment slots
The implementation may express the rite through card assignment, staff selection, route choice, or hearing UI, but it must expose equivalent slots:
- Presiding surface — correction slot, cutroom, archive enforcement, insolvency hearing, claimant briefing, dormant claim review, counter-broadcast fork, or route asset custody.
- Selected voice — claimant whose narration is allowed first.
- Counterweight — proof, caller, editor checksum, public receipt, legal seal, pirate channel, sponsor escrow, handler, or explicit absence.
- Excluded claimant — at least one claimant late, countered, blocked, or knowingly harmed.
- Future route effect — what becomes protected, captured, costlier, split, public-only, lawful-only, or recovery-only.
Branches
Branch A — Seat one narrator
The player gives first binding voice to one claimant and accepts the cost of excluding others.
selected_response: seat_one_narrator
claim_state_after: claim_seated
required: [selected_claim, excluded_claimants, proof_anchor_or_absence, channel_or_absence]
relief_any: [version_legible, claimant_trust_up, slot_pressure_down, custody_clarity_up]
cost_any: [excluded_retaliation_up, future_correction_cost_up, route_asset_pressure_up]
future_route_effect_any: [protected, costlier, public_only, lawful_only, captured]Branch B — Counterclaim before first voice
The player spends proof, caller capacity, source custody, or public receipt to stop a claimant from speaking uncontested.
selected_response: counterclaim
claim_state_after_any: [claim_countered, claim_preempted]
relief_any: [private_capture_blocked, legal_overreach_blocked, public_panic_softened, source_capture_blocked]
cost_any: [proof_spent, handler_burden_up, edit_debt_up, sponsor_pressure_up]
future_route_effect_any: [costlier, split_canon, appeal_required, public_audit_required]Branch C — Split narration window
The player allows two voices under explicit split terms, making the contradiction playable instead of hidden.
selected_response: split_narration_window
claim_state_after: claim_split
voices_min: 2
terms_present: true
relief_any: [capture_blocked, contradictory_truth_visible]
cost_any: [source_ambiguity_up, claimant_retaliation_up, correction_slot_cost_up]
future_route_effect_any: [split_canon, contradiction_pending, public_audit_required, lawful_appeal_required]Branch D — Escrow proof and delay
The player prevents anyone from speaking first by locking proof, channel, or route asset custody behind a later surface.
selected_response: escrow_and_delay
claim_state_after: claim_escrowed
escrow_any: [proof_anchor, edit_checksum, legal_seal, public_receipt, sponsor_escrow, route_asset, blackout_warrant]
relief_any: [hostile_capture_delayed, false_owner_risk_down]
cost_any: [slot_pressure_up, insolvency_row_created, public_delay_up, inspection_heat_up]
future_route_effect_any: [costlier, lawful_only, public_only, recovery_only]Branch E — Blackout fold
The player refuses unsafe narration and lets absence speak.
selected_response: blackout_fold
claim_state_after: claim_blackout_fold
relief_any: [false_clean_broadcast_blocked, source_proof_preserved]
cost_any: [black_screen_pressure_up, audience_stability_down, ending_scar_pressure_up]
future_route_effect_any: [recovery_only, blackout_pressure_up, contradiction_pending]Branch F — No valid resolution
If the player omits proof, hides excluded claimants, breaks split terms, refuses cost, or allows a preemptive voice to expire uncontested, 敌性叙述夺取 fires or becomes default-ready.
selected_response: no_valid_resolution
emitted_event: storyteller.event.hostile_narration_capture.v1
claim_state_after_any: [claim_hostile, claim_captured, claim_recovery_only]
future_route_effect_any: [captured, blocked, hostile, public_only, lawful_only, recovery_only]Output contract
Every successful resolution must output:
output:
selected_response: <branch>
target_version: <version id>
selected_claim_or_absence: <claim id or explicit_no_voice>
losing_or_excluded_claimants:
- <claimant>
proof_anchor_or_absence: <anchor>
channel_or_absence: <channel>
claim_states_after: {}
counter_deltas: {}
future_route_effect: <effect>At least three counter or durable-state deltas are required. At least one must be relief, and at least one must be cost.
Non-goals
- Not a cutscene courtroom.
- Not a generic debate minigame.
- Not a safe universal briefing action.
- Not a fixed turn escalation.
- Not valid if it produces a clean version without excluded claimant accounting.