Adverse Coalition Lock / 反向同盟锁机制

Adverse Coalition Lock defines the pressure state where two or more non-player factions stop bidding separately and combine their leverage to lock a route asset, proof object, person, public receipt, lawful copy, edit copy, or broadcast slot that the player had already made useful.

The point is not to add another claimant. The point is to make an already-green branch remain playable when previous enemies learn from the player’s success. 派系承诺账本 can create coalition_formed; this mechanic turns that state into assignable pressure instead of ambient threat text.

Design gap covered

The current mesh already supports:

The missing mechanic is hostile coordination. Sponsor, inspector, archive, editor, fan public, pirate relay, claimant family, or management proxy pressure may be individually costed, but two losing rows can still combine into a lock: one faction supplies money or law, the other supplies silence, proof custody, public noise, edit priority, or carrier access. The player must then break the coalition, split it, buy a stand-down, expose contradiction, or let it harden.

Entry state

Open coalition lock only from state pressure:

entry_state:
  trigger_kind: state_pressure
  coalition_rows_min: 2
  coalition_rows_share_target: true
  coalition_members_any:
    - sponsor
    - inspector
    - archive
    - editor
    - fan_public
    - pirate_relay
    - claimant_family
    - management_proxy
  each_member_has_prior_spend_or_loss: true
  target_asset_has_prior_use_or_relief: true
  combined_lock_can_change_future_route: true
  no_fixed_turn_trigger: true

The mechanic fails if the lock appears because of a numbered turn, day interval, chapter quota, content count, lens health, or generic difficulty escalation.

Required lock row

A valid coalition row records:

coalition_row:
  coalition_id: <stable id>
  target_asset_id: <route asset/proof/person/slot>
  member_rows:
    - faction: <faction>
      source_surface: <source storyline or card>
      prior_spend_or_loss: <what this faction already spent or lost>
      demanded_control: <what this faction now wants>
    - faction: <second faction>
      source_surface: <source storyline or card>
      prior_spend_or_loss: <what this faction already spent or lost>
      demanded_control: <what this faction now wants>
  lock_terms:
    - <combined demand>
  contradiction_or_absence: <proof/absence that may break the coalition>
  harmed_if_hardened: <claimant/person/route>
  future_route_effect_if_unbroken: <blocked/captured/costlier/recovery_only>

A famous faction name is insufficient. Each member must show what it contributes to the lock and what earlier scar made the alliance plausible.

Coalition states

StateMeaningRequired consequence
coalition_watchlistedTwo compatible hostile or controlling rows exist but have not locked the target.Future offer may mature if the same target is reused.
coalition_declaredMembers openly name a combined demand.Player must break, split, expose, buy down, freeze, decoy, or default.
quiet_coalitionMembers coordinate through silence, retainer, edit hold, or private legal notice.Public/player visibility is weak; hardening risk rises.
coalition_lock_activeCombined terms block clean use of the target.At least one current rite or route option becomes blocked or costlier.
coalition_splitPlayer separates members or assigns them incompatible seats.One member weakens; ambiguity or retaliation persists.
coalition_exposedContradiction, public receipt, oath, checksum, or trace proof breaks the shared story.Coalition loses clean pressure; exposure cost rises.
standdown_boughtManager, sponsor, legal, public, or edit price pauses the lock.Immediate lock falls; debt or capture rises.
lock_frozenThe target is quarantined under proof, audit, public notice, or edit escrow.False capture falls; schedule, fan, sponsor, or handler cost rises.
decoy_releaseA sacrificial copy, public stub, or edit decoy absorbs the lock.Real target survives; source ambiguity, edit debt, or public distrust rises.
lock_hardenedCoalition narrates the target first.Target becomes captured, hostile, false-owner, route-limited, or recovery-only.
coalition_recovered_with_scarLater recovery restores partial use.Route returns with higher cost and remembered coalition scar.

Branch families

Break by contradiction

Use public receipt, audit oath, archive mismatch, checksum, source tape, witness trace, pirate timestamp, fan oxygen stub, or prior session provenance to prove the coalition members cannot both be true.

Expected result:

selected_branch: break_by_contradiction
state_after_any: [coalition_exposed, coalition_split]
relief_any: [clean_lock_broken, false_owner_pressure_down, route_asset_pressure_down]
cost_any: [inspection_heat_up, public_exposure_up, source_ambiguity_up, faction_hostility_up]
future_route_effect_any: [unlocked_with_scar, public_audit_required, lawful_conversion_required]

Split the coalition

Seat one member under a constrained role and make the other member’s demand visible as harmed or unserved.

Expected result:

selected_branch: split_coalition
state_after: coalition_split
relief_any: [one_member_pressure_down, target_use_partially_unblocked]
cost_any: [retaliation_pressure_up, coalition_watchlist_remains, future_route_cost_up]
future_route_effect_any: [costlier, split_custody, public_only, lawful_only]

Buy a stand-down

Spend money, schedule scar, sponsor escrow, manager favor, legal stay, public apology, edit slot, or fan oxygen collateral to pause the lock.

Expected result:

selected_branch: buy_standdown
state_after: standdown_bought
relief_any: [immediate_route_unblocked, blackout_or_lockout_delayed]
cost_any: [contract_capture_up, bureau_favor_debt_up, edit_debt_up, fan_oxygen_resentment_up, future_blackmail_cost_up]
future_route_effect_any: [unlocked_with_debt, sponsor_gate_required, recovery_cost_up]

Freeze the target

Quarantine the target instead of letting either member define it.

Expected result:

selected_branch: freeze_target
state_after: lock_frozen
relief_any: [false_capture_blocked, counterfeit_compliance_down, hostile_claim_delayed]
cost_any: [schedule_pressure_up, public_distrust_up, route_asset_pressure_up, handler_burden_up]
future_route_effect_any: [quarantined, recovery_only, delayed]

Decoy release

Release a copy, redaction, public stub, sacrificial permit, or checksum decoy to satisfy the coalition while preserving the true route asset.

Expected result:

selected_branch: decoy_release
state_after: decoy_release
relief_any: [primary_asset_protected, immediate_lock_softened]
cost_any: [source_ambiguity_up, edit_debt_up, public_receipt_distrust_up, future_fraud_cost_up]
future_route_effect_any: [split_canon, contradiction_pending, costlier]

Default into hardened lock

If the player hides the coalition, lacks proof, accepts quiet terms, or lets the alliance narrate first, the lock hardens.

Expected result:

selected_branch: default_harden
state_after: lock_hardened
emitted_event: storyteller.event.coalition_lock_hardening.v1
asset_state_after_any: [captured, hostile, false_owner, sponsor_only, lawful_only, editor_only, public_only, recovery_only]
future_route_effect_any: [blocked, costlier, captured, hostile, recovery_only]

Counter contract

Every resolved coalition lock must mutate at least three counters or durable states. At least one must be relief and at least one must be cost.

Primary surfaces:

  • coalition_pressure
  • coalition_lock_strength
  • coalition_trace_legitimacy
  • route_asset_pressure
  • custody_gap
  • false_owner_pressure
  • sponsor_stop_loss_pressure
  • contract_capture
  • inspection_heat
  • bureau_favor_debt
  • archive_debt
  • edit_debt
  • source_ambiguity
  • public_receipt_legitimacy
  • public_receipt_distrust
  • fan_oxygen_resentment
  • pirate_exposure
  • witness_retaliation_risk
  • handler_burden
  • future_blackmail_cost
  • future_recovery_cost
  • black_screen_pressure

Miss and recovery

The mechanic is missed when a coalition is treated as generic pressure, when only one member row is recorded, when a route asset becomes captured without naming the combined terms, or when the player can dissolve the coalition without cost.

Recovery requires a scarred action: public contradiction, lawful freeze, sponsor unwinding, edit-source reveal, witness rescue, route-asset exchange, fan oxygen bond, or recovery-only broadcast. Recovery cannot erase the source rows that made the coalition plausible.

Replay evidence shape

mechanic_id: storyteller.mechanic.adverse_coalition_lock.v1
session_id: lens-storyteller-adverse-coalition-lock-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  coalition_rows_min: 2
  target_asset_id: <stable target>
  target_asset_state_before: <state>
  coalition_member_rows:
    - source_surface: <surface>
      faction: <faction>
      prior_spend_or_loss: <state>
      demanded_control: <control>
    - source_surface: <surface>
      faction: <faction>
      prior_spend_or_loss: <state>
      demanded_control: <control>
  combined_lock_terms:
    - <term>
  no_fixed_turn_trigger: true
branch_result:
  selected_branch: break_by_contradiction | split_coalition | buy_standdown | freeze_target | decoy_release | default_harden
  coalition_state_after: <state>
  target_asset_state_after: <state>
  emitted_event: storyteller.event.coalition_lock_hardening.v1 | none
  future_route_effect: <effect>
  counter_deltas:
    relief:
      - <relief>
    cost:
      - <cost>

Non-goals

  • Not a new faction economy simulator.
  • Not a generic difficulty spike.
  • Not a fixed-turn callback.
  • Not a raw content-count package.
  • Not a governance or dashboard page.
  • Not a way to erase prior faction losses, overcommitments, or route-asset scars.
  • Not a duplicate of three-key release; this mechanic handles hostile alliance formation after prior faction rows exist.