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: true

Valid source rows include:

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 stateReader AReader BCollision
lawful_onlyinspector accepts controlled interviewpublic route wants broadcast testimonylawful success cannot be cited as public legitimacy
private_onlyhandler protects targetfan delegate wants visible receiptprivate access cannot satisfy public mandate
sponsor_onlysponsor unlocks a slotarchive or public reader wants neutral sourcesponsor access becomes capture if reused cleanly
public_onlycrowd sees targetlawful reader needs admissible custodypublic availability can become legal heat
relay_onlypirate channel reaches targetinspector or archive needs chain of custodyrelay access opens proof but poisons admissibility
floor_lockedlive floor reader keeps broadcast stableencounter route needs the person elsewheremoving them creates blackout, crew, or missed-route cost
delayed_with_receiptschedule reader accepts displacementencounter reader treats target as still availabledelay receipt cannot become free availability
substitute_onlyroute asset accepts proxyrecruitment reader wants original personsubstitute 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_scope
  • accepted_with_public_addendum
  • accepted_lawful_only
  • accepted_public_only
  • sponsor_captured
  • neutrality_contested
  • proof_requires_disclosure
  • route_asset_narrowed
  • target_recovery_only
  • reader_hostile
  • reader_blocked
  • default_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: 1

Primary surfaces:

  • availability_reader_collision
  • encounter_availability
  • schedule_preemption_pressure
  • slot_scope
  • lawful_access_integrity
  • public_receipt_legitimacy
  • public_receipt_distrust
  • sponsor_stop_loss_pressure
  • contract_capture
  • source_ambiguity
  • proof_chain_integrity
  • inspection_heat
  • fan_mandate_fracture
  • ward_custody_integrity
  • crew_load
  • blackout_risk
  • relay_custody_risk
  • route_asset_pressure
  • future_route_acceptance
  • missed_encounter_pressure
  • future_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.