clay-borg/scenarios/ground/gr-a12-ground-nd.yaml
tegwick 290ad06c31 T08 iter 4: GROUND-OU/ND choices and Support consent
Closes the three rules deferred in iter 2 and 3 because each needed a
decision from a player rather than a default I would have invented:

- GR-A11 GROUND-OU: restore a Denied Problem, protect a face-up one
  from Deny, or cancel an Attack aimed at the chooser.
- GR-A12 GROUND-ND: remove a Blame token, break a relation involving
  the chooser, or reject a Reverse.
- GR-L02 / GR-A05: the Support target answers after Reveal — accept or
  decline a Bond where no relation exists, flip or break an existing
  Rivalry. A Bond can no longer form without consent.

Each choice is validated against the state it claims to act on: a
restore needs a Denied Problem, a cancel needs an Attack actually aimed
at the chooser, a Blame removal needs that token present, a break needs
that relation to exist. GR takes no sub-choice, and OU and ND may only
use choices from their own list.

GR-A09 ordering follows the U8 default: an OU cancellation is chosen at
step 1 and applies first, so a Protection token is spent only when it
is what actually cancels.

14 scenarios pass; AM-1 coverage 41/58 (70%), up from 34/58.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:27:25 +02:00

47 lines
1.2 KiB
YAML

scenario: ground/gr-a12-ground-nd
description: >
GROUND—ND removes a Blame token from its player (GR-A12, GR-T02). The
choice must name a token that is actually there, and a relation break
must name a relation that exists.
covers: [GR-A12, GR-T02, GR-T03]
provisional: false
seed: 42
setup:
players: 3
preset: standard-3p
patch:
"lead": 0
"players.0.blame_from": [1]
commands:
- actor: P1
cmd: select_action
args: { action: GROUND }
- actor: P2
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
- actor: P3
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
- actor: SYSTEM
cmd: reveal
# GR-T02: P3 has no Blame token in front of P1.
- actor: P1
cmd: choose_ground_mode
args: { mode: ND, choice: remove_blame, seat: 2 }
# GR-A12: no relation with P2 exists to break.
- actor: P1
cmd: choose_ground_mode
args: { mode: ND, choice: break_relation, seat: 1 }
- actor: P1
cmd: choose_ground_mode
args: { mode: ND, choice: remove_blame, seat: 1 }
- actor: SYSTEM
cmd: resolve
expect:
events:
- kind: BlameRemoved
player: 0
owner: 1
state:
"players.0.blame_from": []
rejects: [4, 5]