game_move_explain v1

Single JSON object:

Updated

Invariants

  • Returned move_id must equal selected_move_id verbatim (post-parse check).
  • The model discusses only legal_moves content; selected_move_id is validated before any LLM call.

Input

Field Type Notes
player_view JSON object Seat-filtered projection
legal_moves non-empty list Rows include move_id (plus optional echoes)
selected_move_id string Must be legal before chat
utterance, temperature, timeout_sec optional Extra context

Output

Single JSON object:

  • move_id — duplicates selected_move_id
  • explanation — non-empty prose
  • facts_used — list of strings
  • caveats — list of strings

Hidden information

Do not place opponent secrets in player_view fields when wiring prompts; treat private as model-visible only when policy allows.

Verification

Task-internal validation and JSON schema checks per contract.json verification_policy.

Changelog

  • v1 — Maintained in catalog; see git history for semantic changes.

Examples

Minimal illustration (see sidecar examples for real payloads):

{}