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: trueValid 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
- A route needs a person: witness, handler, editor, inspector, sponsor bridge, fan delegate, ward patient, floor captain, archive clerk, pirate relay, or recruitable ally.
- A prior branch has changed access gates: schedule, legal, facility, public, sponsor, editor, ward, floor, relay, or handler.
- 遇见可用性账本 records the target, source pressure, gates, rival encounter, and future reader.
- The player opens 遇见窗口仲裁.
- The selected branch opens, narrows, trades, defers, substitutes, or loses an encounter.
- 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_availabilitymissed_encounter_riskroute_asset_accesscharacter_postureproxy_availabilityhandler_fatigueschedule_pressureslot_scopelegal_admissibilityinspection_heatbureau_favor_debtsponsor_stop_loss_pressurecontract_capturepublic_receipt_legitimacypublic_receipt_distrustfan_mandate_fracturewitness_exposureward_custody_integritycrew_loadblackout_riskedit_debtsource_ambiguitypirate_exposurerelay_custody_riskfuture_recovery_cost
Integration notes
- With 代理人姿态链机制, a proxy can be recruited, retained, exposed, traded, or missed because the encounter gate changed.
- With 直播现场班组负荷机制, a person can be available narratively but floor-locked mechanically.
- With 复原病房出院压迫机制, a ward-held target cannot be spent as free witness, fan speaker, or recruit.
- With 粉丝委任分裂机制, public encounter access can represent only a scoped constituency unless mandate proof is recorded.
- With 播出实在漂移, airing a version of access can change what the game treats as real.
- With Route Assets and Custody, the target, meeting slot, substitute, handler, or route scar becomes a custody-bearing route asset.
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.