Answerability Seat Assignment / 应责席指派

Answerability Seat Assignment is the assignable rite that chooses who must remain answerable after a proof, public statement, legal conversion, management report, or route-asset rescue becomes usable.

The rite is deliberately not a guilt hearing. It is a routing action: choose the seat, record absence or proxy, mutate future reader access, and price the body that will carry the next counterclaim.

Assignment slots

assigned_slots:
  docket: storyteller.card.answerability_seat_docket.v1
  source_resolution: storyteller.card.answerability_source_resolution.v1
  source_surface: storyteller.card.answerability_source_surface.v1
  unresolved_harm: storyteller.card.answerability_unresolved_harm.v1
  future_reader: storyteller.card.answerability_future_reader.v1
  proposed_seat_holder: storyteller.card.answerability_proposed_seat_holder.v1
  candidate_actor: storyteller.card.answerability_candidate_actor_or_absence.v1
  proxy_or_absence: storyteller.card.answerability_proxy_or_absence.v1
  proof_anchor: storyteller.card.answerability_proof_anchor_or_absence.v1
  usher: storyteller.character.ruan_ting_empty_seat_usher.v1
  handler: storyteller.card.answerability_handler_or_absence.v1
  accepted_cost: storyteller.card.answerability_seat_cost_or_absence.v1
  harmed_reader: storyteller.card.answerability_harmed_reader_if_hidden.v1

The rite fails if any exact assignment is missing, substituted, off-hand, or unselected. Invalid input never arms a default. The default is armed only after all thirteen real cards are assigned and the player explicitly selects suppress_or_default (choice 9).

Branch families

Seat producer or management

Management accepts the answerable body so the route can continue.

seat_state_after: seated_with_cost
relief: route_continues | answerability_clarity_up
cost: producer_license_pressure_up | management_pressure_up | future_counterclaim_cost_up
future_effect: producer_body_required_before_next_clean_report

Seat artist or harmed performer

The performer or harmed artist is publicly seated with consent boundaries.

seat_state_after: artist_seat_with_boundary
relief: artist_trust_up | public_receipt_legitimacy_up
cost: artist_boundary_risk_up | witness_exposure_up | sponsor_pressure_up
future_effect: artist_route_unlocked_with_scar | sponsor_clean_route_costlier

Seat sponsor or sponsor proxy

A sponsor adjuster accepts remedy or package answerability.

seat_state_after: sponsor_proxy_accepted_with_capture
relief: sponsor_stop_loss_pressure_down | slot_pressure_down
cost: contract_capture_up | public_receipt_distrust_up | fan_resentment_up
future_effect: sponsor_only_route | public_unwind_required

Seat inspector or lawful body

Legal or inspection authority accepts a narrow answerability seat.

seat_state_after: lawful_body_seated
relief: custody_clarity_up | lawful_appeal_unlocked
cost: inspection_heat_up | bureau_favor_debt_up | public_route_costlier
future_effect: lawful_only_or_archive_only_acceptance

Seat worker or operator

A low-rank worker, usher, clerk, or operator carries the row. This branch requires protection or it arms scapegoat pressure.

seat_state_after: worker_seated_protected | worker_scapegoat_armed
relief: source_row_legibility_up | answerability_clarity_up
cost: worker_exposure_up | protected_witness_payroll_due_up | handler_burden_up
future_effect: worker_protection_required_before_reuse

Seat public delegate

A fan/public delegate becomes the body that can audit future remedy.

seat_state_after: public_delegate_seated
relief: public_receipt_legitimacy_up | fan_audit_route_unlocked
cost: public_queue_capture_risk_up | sponsor_pressure_up | oxygen_liability_up
future_effect: public_audit_required | sponsor_clean_route_contested

Split seat

Two future readers get different answerable bodies, preventing universal clean reuse.

seat_state_after: split_answerability
relief: incompatible_readers_can_proceed_narrowly
cost: seat_split_debt_up | route_delay_up | contradiction_pressure_up
future_effect: reader_specific_acceptance_required

Preserve empty seat

Absence is recorded as a fact rather than cropped out.

seat_state_after: empty_seat_preserved
relief: false_clean_answerability_blocked
cost: empty_seat_risk_up | future_counterclaim_cost_up | public_contradiction_up
future_effect: correction_or_recovery_required_before_clean_route

Default / false clean seat

Hiding absence, accepting an uncosted proxy, coercing a low-rank worker, or trying to proceed without a seat are narrative reasons to choose suppress_or_default. The runtime does not infer that choice from missing input or passive expiry; the fully assigned choice 9 alone arms the empty-seat default.

seat_state_after: false_clean_answerability | worker_scapegoat_armed | proxy_capture
emitted_event: storyteller.event.empty_answerability_seat_default.v1
future_effect: blocked | costlier | sponsor_only | lawful_only | hostile | recovery_only

Handler rules

  • 阮停 can preserve a refusal, proxy, or empty chair, but cannot declare it clean.
  • Shen Luo can place management or sponsor proxy, but contract capture must rise.
  • Han Yanshuang can narrow to lawful body, but public and sponsor readers remain limited.
  • Baiya can make the seat legible on cut or checksum, but edit debt remains.
  • Yu Lan can publish the empty seat or delegate row, but exposure and public contradiction rise.

A famous handler is not a clean override.

Resolution contract

Every branch must record:

resolution_required:
  seat_state_before: <state>
  seat_state_after: <state>
  selected_seat_holder: <holder_or_empty>
  proxy_or_absence: <proxy_or_absence>
  proof_anchor_or_absence: <anchor_or_absence>
  future_reader_or_route: <reader_or_route_id>
  counter_deltas:
    relief: [<at_least_one>]
    cost: [<at_least_one>]
    future: [<at_least_one>]

Exact runtime order

The two-day playable review uses these exact required slots: docket, source_resolution, source_surface, unresolved_harm, future_reader, proposed_seat_holder, candidate_actor, proxy_or_absence, proof_anchor, usher, handler, accepted_cost, and harmed_reader. Expiry leaves the row unresolved; it does not arm the default.

Its stable choices are:

  1. protect_recruit_usher
  2. seat_producer_management
  3. seat_artist_with_boundary
  4. accept_sponsor_proxy_with_receipt
  5. seat_inspector_lawful_body
  6. guard_worker_from_scapegoat
  7. publicize_absence
  8. split_answerability
  9. preserve_empty_seat
  10. suppress_or_default

Only the first grants the bounded 阮停 route asset; only the last arms storyteller.event.empty_answerability_seat_default.v1. Source/public parity and all branch effects are covered by lens/storyteller-ruan-ting-empty-seat-usher.runtime.test.ts.

Non-goals

  • Not a generic legal vote.
  • Not a confession scene.
  • Not proof aggregation.
  • Not a clean proxy-selection UI.
  • Not fixed-turn content.