Encounter Availability Ledger / 遇见可用性账本

Encounter Availability Ledger records when a management, legal, schedule, facility, sponsor, editor, fan, recovery-ward, or broadcast-reality decision changes whether a person can still be met.

The card exists to prevent Storyteller from treating characters as permanently available dialogue buttons. A producer can win a ruling, buy a slot, protect a ward bed, seat a fan delegate, or force a clean edit and still lose access to the one person needed to carry the next route. The ledger makes that loss playable before it becomes a silent default.

This is not a calendar timer. It is a state ledger for route-critical encounter access.

Creation trigger

Create or refresh this card when all of the following are true:

  1. A route, proof, rite, custody handoff, recruitment, testimony, apology, discharge, safety decision, or broadcast correction requires a named person, named NPC, or explicit role.
  2. At least two gates can alter that person’s availability: schedule slot, legal status, facility access, floor crew coverage, sponsor capture, inspector recognition, editor custody, public exposure, fan mandate, recovery ward hold, pirate relay, handler burden, or equivalent.
  3. Choosing one access route can make another encounter public-only, lawful-only, sponsor-only, private-only, relay-only, delayed, hostile, substitute-only, missed, or recovery-only.
  4. A future reader will consume the encounter state instead of assuming the person is still freely reachable.
  5. The trigger is a live game state, not a fixed turn number, day count, chapter quota, raw content target, or lens-health state.

Required row shape

card_id: storyteller.card.encounter_availability_ledger.v1
encounter_row:
  row_id: <stable id>
  target_entity: <character npc role or explicit_absence>
  target_kind: recruitable | witness | handler | inspector | editor | sponsor_bridge | fan_delegate | ward_patient | floor_captain | pirate_relay | archive_clerk | equivalent
  encounter_need: recruit | interview | testimony | custody_handoff | apology | counterproof | route_unlock | safety_signoff | discharge_hold | correction_slot | equivalent
  source_pressure:
    source_system: schedule_contract | broadcast_reality_drift | facility_lockdown | recovery_discharge | fan_delegate_mandate | live_floor_load | proxy_posture | sponsor_capture | archive_custody | equivalent
    source_row_or_result_id: <stable id>
    preserved_relief: <relief already earned>
    preserved_cost: <cost already created>
  access_gates:
    schedule_gate: open | occupied | narrowed | public_slot | private_slot | lawful_slot | absent
    legal_gate: open | lawful_only | injunction | inspector_hold | unlicensed | absent
    facility_gate: open | locked | escort_required | ward_hold | floor_locked | absent
    public_gate: private | public_only | hostile_public | fan_mandate_required | absent
    handler_gate: available | exhausted | captured | conflicted | explicit_absence
  availability_before: unoffered | available | contested | private_only | lawful_only | public_only | sponsor_only | relay_only | ward_held | floor_locked | hostile | substitute_only | missed | recovery_only
  rival_or_lost_encounter: <other target or explicit_absence>
  state_boundary: before_air | before_discharge_signoff | before_route_asset_spent | before_witness_exposed | before_slot_reassigned | before_default_narrator | equivalent
  future_reader_or_route: <stable id>

The state_boundary is an in-world condition. It must not be encoded as a fixed numbered turn, fixed day interval, or chapter count.

Availability states

StateMeaningRequired consequence
availableThe target can be met through current gates.Future route may proceed but still records cost.
contestedTwo or more gates claim incompatible access.A hearing, split, reservation, or default must appear.
private_onlyThe target can be met only off public route.Public proof or legitimacy becomes harder.
lawful_onlyInspector/legal channel allows access but public route does not.Public addendum or fan receipt may be required.
public_onlyBroadcast/public exposure can reach the target but lawful custody is weak.Inspection heat, witness exposure, or relay risk rises.
sponsor_onlySponsor or management controls access.Contract capture or public distrust rises.
relay_onlyPirate or off-channel route can reach the target.Relay custody, source ambiguity, or legal heat rises.
ward_heldRecovery ward or care pressure blocks ordinary encounter.Discharge, protection, or medical/legal burden must be paid.
floor_lockedLive floor or call sheet prevents access.Crew load, blackout risk, or replacement route appears.
hostileThe target can be encountered only as adverse actor.Hostile claim, leak, or counterproof is armed.
substitute_onlyThe original target is gone for this route; a substitute may carry a scarred version.Route effect must be weaker, narrower, or costlier.
missedThe route-critical encounter was lost.Default event must fire or be armed.
recovery_onlyNormal encounter is blocked but a costly recovery path remains.The recovery cost and blocked route must be named.

Assignable fields

Any rite or event consuming this card must record or explicitly lack:

  • target entity;
  • encounter need;
  • source pressure and preserved prior relief/cost;
  • at least two access gates;
  • current availability state;
  • rival or lost encounter;
  • handler or explicit absence;
  • state boundary;
  • future reader or route effect.

A high-status character, legal order, sponsor payment, or clean edit cannot satisfy this card by itself. The implementation must say what access gate changed and which encounter became unavailable, narrower, hostile, substitute-only, or recovery-only.

Branch payload expectation

encounter_resolution:
  selected_branch: reserve_private_meeting | seat_lawful_interview | broadcast_public_call | trade_sponsor_access | route_through_editor_or_relay | force_or_overload_access | defer_substitute_or_default
  availability_before: <state>
  availability_after: <state>
  opened_encounter: <target or route>
  narrowed_or_lost_encounter: <target route or explicit_absence>
  future_reader_or_route_effect: <effect>
  counter_deltas:
    relief:
      - <at least one relief state>
    cost:
      - <at least one cost state>
    durable_state:
      - <availability or route state>

At least three counters or durable states must change. One encounter opening cleanly while every rival encounter remains available is invalid.

Primary counters and states

  • encounter_availability
  • missed_encounter_risk
  • route_asset_access
  • character_posture
  • proxy_availability
  • handler_fatigue
  • schedule_pressure
  • slot_scope
  • legal_admissibility
  • inspection_heat
  • bureau_favor_debt
  • sponsor_stop_loss_pressure
  • contract_capture
  • public_receipt_legitimacy
  • public_receipt_distrust
  • fan_mandate_fracture
  • witness_exposure
  • ward_custody_integrity
  • crew_load
  • blackout_risk
  • edit_debt
  • source_ambiguity
  • pirate_exposure
  • relay_custody_risk
  • future_recovery_cost

Play examples

Yu Lan historian access

Yu Lan can be reachable as public historian, private receipt holder, lawful archive witness, or hostile leak. Reserving her privately can protect the source but weaken public receipt legitimacy.

Han Yanshuang lawful-only interview

Han Yanshuang can make a target legally admissible while turning a public route into lawful-only processing. Compliance improves, but public addendum pressure and bureau favor debt rise.

Baiya editor route

Baiya can route an encounter through cutroom custody. Retaliation or exposure may fall, but edit debt and source ambiguity rise.

Du Mian floor lock

Call-Sheet Captain can reveal that the person needed for a route is physically locked to the live floor. Forcing access may keep a meeting but arm blackout or crew refusal risk.

Non-goals

  • Not a fixed schedule calendar.
  • Not a turn-count miss timer.
  • Not a generic relationship meter.
  • Not a social hub inventory.
  • Not a way to make every character always available.
  • Not valid if legal, sponsor, edit, or schedule success opens a target without naming who or what became unavailable.