Availability Reader Collision Docket / 可用性读者冲突案卷
Availability Reader Collision Docket records the moment when one route has already produced an availability state, but two future readers try to consume that state with incompatible assumptions.
This card exists because Storyteller now has strong surfaces for encounter availability and schedule preemption. A target can become private_only, lawful_only, public_only, sponsor_only, relay_only, floor_locked, ward_held, substitute_only, missed, or recovery_only. The gap is the next reader: a lawful interview is not public testimony, sponsor access is not neutral access, a private meeting is not recruitment proof, and a displaced slot claim is not a clean delay.
The docket prevents availability from becoming a universal key.
Creation trigger
Create or refresh this card when all are true:
entry_state:
trigger_kind: state_pressure
source_availability_row_present: true
source_availability_state_present: true
source_history_preserved: true
future_readers_min: 2
readers_have_incompatible_access_demands: true
at_least_one_reader_controls_route_or_encounter_progress: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_count_trigger: trueValid source rows include:
- a row from 遇见可用性账本;
- a selected or displaced row from 档期抢占案卷;
- a floor lock or overrun row from 通告单负荷账本;
- a public representation row from 粉丝委任账本;
- an explicit absence recorded by a prior rite or default event.
Required row shape
card_id: storyteller.card.availability_reader_collision_docket.v1
collision_row:
row_id: <stable id>
source_availability_row_id: <stable id>
source_system: encounter_availability | schedule_preemption | live_floor_load | recovery_ward | fan_delegate | facility_lockdown | route_asset | equivalent
source_availability_state: private_only | lawful_only | public_only | sponsor_only | relay_only | floor_locked | ward_held | delayed_with_receipt | hostile | substitute_only | missed | recovery_only | equivalent
target_or_slot: <character npc role slot route asset or explicit_absence>
source_history_preserved: true
readers:
- reader_id: <reader-a>
reader_type: public | lawful | sponsor | editor | ward | floor | fan_delegate | archive | route_asset | producer_license | equivalent
wants: <access demand>
minimum_acceptance_surface: <surface>
- reader_id: <reader-b>
reader_type: public | lawful | sponsor | editor | ward | floor | fan_delegate | archive | route_asset | producer_license | equivalent
wants: <access demand>
minimum_acceptance_surface: <surface>
incompatibility: public_vs_lawful | sponsor_vs_neutral | private_vs_proof | ward_vs_floor | relay_vs_admissible | off_slot_vs_available | substitute_vs_original | equivalent
default_if_unresolved: <capture or hostile state>
future_route_or_reader_effect: <stable id or effect>Reader collision examples
| Source state | Reader A | Reader B | Collision |
|---|---|---|---|
lawful_only | inspector accepts controlled interview | public route wants broadcast testimony | lawful success cannot be cited as public legitimacy |
private_only | handler protects target | fan delegate wants visible receipt | private access cannot satisfy public mandate |
sponsor_only | sponsor unlocks a slot | archive or public reader wants neutral source | sponsor access becomes capture if reused cleanly |
public_only | crowd sees target | lawful reader needs admissible custody | public availability can become legal heat |
relay_only | pirate channel reaches target | inspector or archive needs chain of custody | relay access opens proof but poisons admissibility |
floor_locked | live floor reader keeps broadcast stable | encounter route needs the person elsewhere | moving them creates blackout, crew, or missed-route cost |
delayed_with_receipt | schedule reader accepts displacement | encounter reader treats target as still available | delay receipt cannot become free availability |
substitute_only | route asset accepts proxy | recruitment reader wants original person | substitute must weaken or scar the original route |
Assignment fields
Any consuming rite must record or explicitly lack:
- source availability row id;
- source availability state;
- target, slot, route asset, or explicit absence;
- at least two future readers;
- each reader’s minimum acceptance surface;
- incompatibility kind;
- selected recognition surface;
- excluded, scoped, or harmed reader;
- proof bridge, handler, or explicit absence;
- future route effect.
Valid reader states after resolution
accepted_with_scopeaccepted_with_public_addendumaccepted_lawful_onlyaccepted_public_onlysponsor_capturedneutrality_contestedproof_requires_disclosureroute_asset_narrowedtarget_recovery_onlyreader_hostilereader_blockeddefault_capture_armed
Counter contract
Every resolution must mutate at least three durable surfaces:
counter_contract:
relief_min: 1
cost_min: 1
future_reader_or_route_effect_min: 1Primary surfaces:
availability_reader_collisionencounter_availabilityschedule_preemption_pressureslot_scopelawful_access_integritypublic_receipt_legitimacypublic_receipt_distrustsponsor_stop_loss_pressurecontract_capturesource_ambiguityproof_chain_integrityinspection_heatfan_mandate_fractureward_custody_integritycrew_loadblackout_riskrelay_custody_riskroute_asset_pressurefuture_route_acceptancemissed_encounter_pressurefuture_recovery_cost
Missability
This card is missed when implementation:
- lets one availability state satisfy all future readers;
- turns lawful-only access into public proof;
- treats sponsor-only access as neutral encounter access;
- treats private/editor access as public receipt;
- treats delayed-with-receipt as free availability;
- treats substitute-only as original recruitment;
- hides the excluded reader;
- uses fixed turn number, day interval, chapter quota, raw content count, dashboard state, or lens health as entry trigger.
Non-goals
- Not a new ruling.
- Not a replacement for 裁定读者冲突线.
- Not a social hub.
- Not a calendar cooldown.
- Not a universal recovery card.
- Not valid if availability becomes clean consensus without reader-specific scope.