Route Crossover Docket / 路线交叉案卷

Route Crossover Docket records the rows behind a route crossing before a future route, character gate, forced main, schedule slot, route asset, or ending consumes the crossing as playable route state.

The docket is not a compound route label. It proves which route sides are being crossed, which verbs each side contributes, which scar or reader limit travels, and what future reader is asking to spend the result.

Required payload

route_crossover_docket:
  card_id: storyteller.card.route_crossover_docket.v1
  entry_context:
    route_crossover_pair_visible: true
    source_route_rows_min: 2
    future_reader_or_route_consumes_crossover: true
  source_route_rows:
    - row_id: <stable row id>
      source_surface: route_tag_momentum_ledger | on_screen_slot_readback | weekly_broadcast_cycle_audit | route_matrix | explicit_absence_register | equivalent
      route_family: company | intimacy | liquidation | resistance | chaos | staging | equivalent
      route_verb: stabilize | package | sacrifice | bind | protect | audit | exit | hijack | preserve | stage | equivalent
      reader_scope: public | lawful | sponsor | archive | character | route_asset | ending | explicit_absence | equivalent
      scar_or_cost: <scar debt contradiction or explicit_absence>
      reader_that_rejected_or_absence: <reader or explicit_absence>
  crossover_pair:
    primary_family: company | intimacy | liquidation | resistance | chaos | staging | equivalent
    secondary_family: company | intimacy | liquidation | resistance | chaos | staging | equivalent
    named_crossing: company_intimacy | company_resistance | liquidation_resistance | intimacy_exit | staging_resistance | equivalent
  primary_route_verb: <verb>
  secondary_route_verb: <verb>
  hinge_surface_or_absence: <character facility proof route_asset schedule_slot or explicit_absence>
  consuming_reader_or_route: <future reader route forced_main schedule_slot character_gate ending or equivalent>
  selected_posture: certify_bounded_crossover | split_route_verbs | assign_hinge_surface | convert_route_side | publish_crossover_contradiction | quarantine_crossover_claim | spend_crossover_with_scar | false_route_crossover_default
  crossover_state_after: bounded_crossover | split_verbs_required | hinge_required | converted_with_cost | addendum_required | quarantined_crossover | spent_with_crossover_scar | false_crossover | recovery_only
  harmed_or_deferred_reader: <reader or explicit_absence>
  future_reader_or_route_effect: accepted_with_scope | addendum_required | split_required | hinge_required | route_asset_costlier | ending_scar_required | blocked | recovery_only | equivalent

The card fails if it records only company_resistance, romance_exit, route crossover unlocked, or a route-affinity score without source rows, route verbs, hinge surface, crossover state after, and future reader effect.

Row rules

Every route side must answer:

  1. Which row created the route pressure?
  2. Which verb and reader scope does this side actually contribute?
  3. Which scar, rejected reader, or explicit absence travels with it?
  4. What future route is trying to consume the crossing?

Valid entry surfaces

Create or update this docket when:

  • a schedule slot asks to combine two route families;
  • a character gate requires a hybrid route posture;
  • a forced main claims a route crossing as its premise;
  • a route asset, facility, proof row, or relationship becomes the hinge between route families;
  • an ending reader consumes a crossing rather than pure momentum.

Do not create it from fixed turn count, raw route tag count, dashboard state, or lens health.

Non-goals

  • Not a route score.
  • Not a route-tag ledger replacement.
  • Not a relationship meter.
  • Not valid unless source_route_rows, crossover_pair, primary_route_verb, secondary_route_verb, crossover_state_after, and future_reader_or_route_effect remain visible.