scenario: ground/gr-p05-solve-legality description: > GR-P05, ruled by ground-game 2026-08-03: SOLVE is legal only where it can do something. P1 holds no Clarify and is refused Problem 1; P2 holds one, is admitted, and claims it. The prior-round-claim half of GR-P05 is asserted in `bot::tests::validate_enforces_all_four_solve_conditions` rather than here, because reaching a second round costs a dozen commands to test one rejection. The rule is asserted here rather than only in `legal_commands`, because a rule enforced by the offer alone constrains only clients that ask what is legal — a scenario file would walk straight past it. That is what the AM-1 coverage gate surfaced when GR-P05 was added with no scenario. covers: [GR-P05, GR-A02, GR-P03] provisional: false seed: 42 setup: players: 3 preset: standard-3p patch: "lead": 1 "players.0.hand": [{ suit: Change }] "players.1.hand": [{ suit: Repair }] commands: # 0 — P1 holds no Clarify: refused. - actor: P1 cmd: select_action args: { action: SOLVE, problem: 1 } # 1 — P2 holds one: admitted. - actor: P2 cmd: select_action args: { action: SOLVE, problem: 1 } - actor: P1 cmd: select_action args: { action: INVESTIGATE, problem: 2 } - actor: P3 cmd: select_action args: { action: INVESTIGATE, problem: 3 } - actor: SYSTEM cmd: reveal - actor: SYSTEM cmd: resolve expect: rejects: [0] state: "problems.1.claimed_by": 1