Encounter Availability Routing / 遇见可用性分流机制

Encounter Availability Routing makes character access a durable management/RPG resource. It answers a gap left after the archive, recovery ward, floor crew, fan delegate, and proxy-posture systems: after a production choice changes law, schedule, room access, sponsor control, public exposure, or broadcast reality, who can the producer still meet?

The mechanic treats encounter access as a route asset with gates. A person can be public-only, lawful-only, private-only, sponsor-only, relay-only, ward-held, floor-locked, substitute-only, missed, or recovery-only. The player must choose which gate to use and which other encounter becomes narrower or lost.

Design rule

A route-critical person is not globally available. Availability is produced by state, gate, handler, and prior cost.

A valid implementation must show:

  • the target person, NPC, role, or explicit absence;
  • the source pressure that made the encounter relevant;
  • at least two active gates;
  • the encounter need;
  • current availability;
  • rival or lost encounter;
  • handler or explicit absence;
  • a state boundary that is not a fixed turn/day trigger;
  • a future reader that consumes the result;
  • a branch that opens or preserves one access path while costing, narrowing, or losing another.

Entry contract

entry_state:
  trigger_kind: state_pressure
  route_critical_target_present: true
  target_or_explicit_absence_present: true
  source_pressure_present: true
  access_gate_count_min: 2
  rival_or_lost_encounter_present: true
  future_reader_or_route_consumes_result: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true

Valid pressure sources include Broadcast Schedule, Schedule Contract Slots, Broadcast Reality, Route Assets and Custody, 制作分诊台机制, 直播现场班组负荷机制, 代理人姿态链机制, 设施通行封控机制, 播出实在漂移, 复原病房出院压迫机制, 粉丝委任分裂机制, protected witness payroll, archive custody, sponsor stop-loss, or equivalent live pressure.

Core data model

availability_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
    sponsor_gate: open | stop_loss_capture | appointment_required | absent
    editor_gate: open | masked | final_cut_hold | checksum_required | absent
    ward_gate: open | care_hold | discharge_pressure | protection_required | absent
    floor_gate: open | crew_locked | skeleton_risk | refusal_armed | absent
    relay_gate: open | pirate_only | relay_exposed | lawful_appeal_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 | substitute_only | missed | recovery_only
  rival_or_lost_encounter: <other target route 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: <route rite proof audit apology recruitment broadcast reality or equivalent>

The state boundary is a narrative or mechanical boundary already created by state. It is not a countdown.

Play loop

  1. A route needs a person: witness, handler, editor, inspector, sponsor bridge, fan delegate, ward patient, floor captain, archive clerk, pirate relay, or recruitable ally.
  2. A prior branch has changed access gates: schedule, legal, facility, public, sponsor, editor, ward, floor, relay, or handler.
  3. 遇见可用性账本 records the target, source pressure, gates, rival encounter, and future reader.
  4. The player opens 遇见窗口仲裁.
  5. The selected branch opens, narrows, trades, defers, substitutes, or loses an encounter.
  6. If the availability row is absent or falsely clean, 错过遇见默认 fires or is armed.

Branch model

Reserve private meeting

  • Relief: source safety, witness protection, route asset access, or ward custody improves.
  • Cost: public receipt distrust, sponsor pressure, handler fatigue, or lawful-access cost rises.
  • Future: private route opens with public disclosure or addendum debt.

Seat lawful interview

  • Relief: legal admissibility, archive legibility, and compliance improve.
  • Cost: bureau favor debt, lawful-only routing, fan mandate fracture, or schedule pressure rises.
  • Future: public route needs addendum or counter-receipt.

Broadcast public call

  • Relief: public legitimacy, anti-capture force, or fan visibility improves.
  • Cost: witness exposure, inspection heat, sponsor pressure, pirate exposure, or relay risk rises.
  • Future: lawful appeal, relay protection, or public-only route remains.

Trade sponsor access

  • Relief: immediate slot pressure, stop-loss pressure, or schedule pressure falls.
  • Cost: contract capture, public distrust, route-asset capture, or future recovery cost rises.
  • Future: sponsor route opens while public route becomes costlier or substitute-only.

Route through editor or relay

  • Relief: retaliation risk, immediate exposure, or access block decreases.
  • Cost: edit debt, source ambiguity, relay custody risk, or inspection heat rises.
  • Future: source disclosure, split public/lawful route, or contradiction-pending state is armed.

Overload access

The player keeps the encounter by spending floor, ward, handler, facility, or schedule capacity.

  • Relief: immediate contact, proof contact, or slot survival occurs.
  • Cost: crew load, blackout risk, ward custody damage, handler fatigue, or proxy hostility rises.
  • Future: access scar, hostile follow-up, or recovery route remains.

Defer, substitute, or default

  • Relief: immediate overload, legal exposure, or sponsor noise may fall.
  • Cost: missed encounter risk, route asset access loss, substitute weakness, or future recovery cost rises.
  • Future: missed, substitute-only, recovery-only, or blocked route is recorded.

Counter contract

Every resolution must mutate at least three durable surfaces. At least one must be relief and at least one must be cost.

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

Integration notes

Character hooks

  • Yu Lan can be private historian, public receipt carrier, lawful archive witness, or adverse leak.
  • Shen Luo can arrange sponsor access that saves schedule pressure while capturing future route language.
  • Han Yanshuang can open lawful access while narrowing public legitimacy.
  • Baiya can preserve encounter through editor route while increasing edit debt and source ambiguity.
  • 海盗频段童声 can make a missed encounter public-only or relay-only before law can erase it.
  • Call-Sheet Captain can expose floor-locked reality and turn a route into safety, crew, or blackout pressure.

Missability and recovery

This mechanic is missable when the player assumes a person remains available after choosing a gate, treats lawful access as public access, treats sponsor access as neutral access, overuses ward/floor/facility capacity without scar, or uses a substitute without narrowing the route.

Recovery is allowed only through visible cost: substitute proxy, lawful appeal, public counter-receipt, sponsor unwind, source disclosure, ward repair, crew repair, facility extraction, apology hearing, or replacement route asset.

Replay evidence expectation

mechanic: storyteller.mechanic.encounter_availability_routing.v1
session_id: lens-storyteller-encounter-availability-routing-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  target_or_explicit_absence_present: true
  source_pressure_present: true
  access_gate_count_min: 2
  rival_or_lost_encounter_present: true
  future_reader_or_route_consumes_result: true
  no_fixed_turn_trigger: true
assignment:
  ledger: storyteller.card.encounter_availability_ledger.v1
  rite: storyteller.rite.encounter_window_arbitration.v1
branch_result:
  selected_branch: reserve_private_meeting | seat_lawful_interview | broadcast_public_call | trade_sponsor_access | route_through_editor_or_relay | overload_access | defer_substitute_or_default
  availability_before: <state>
  availability_after: <state>
  opened_encounter: <target or explicit_absence>
  narrowed_or_lost_encounter: <target route or explicit_absence>
  future_reader_or_route_effect: <effect>
  event_seen_or_armed: storyteller.event.missed_encounter_default.v1 | none
  counter_deltas:
    relief:
      - <relief counter/state>
    cost:
      - <cost counter/state>

Non-goals

  • Not a static calendar.
  • Not a hub scene selector.
  • Not a fixed turn miss timer.
  • Not a relationship meter.
  • Not a universal recovery layer.
  • Not valid if an encounter opens without naming the gate, rival encounter, future reader, and cost.