game_move_rank v1

Parsed JSON subset returned to callers:

Updated

Invariants

  • Every move_id in ranked_moves must be copied from caller legal_moves (subset allowed).
  • ranked_moves is non-empty; rank integers are 1..k each exactly once for k rows.
  • confidence values are numeric in [0,1] (not boolean / NaN).

Input

Field Type Notes
player_view JSON object Seat-filtered projection
legal_moves non-empty list Minimum move_id per row
objective string Strategic goal description
heuristic_scores JSON object Keys ⊆ legal move_id; numeric values ; may omit keys
style string balanced | aggressive | defensive | teaching
temperature, timeout_sec optional Knobs

Output

Parsed JSON subset returned to callers:

Field Content
ranked_moves {move_id, rank, confidence, reason} rows
overall_plan string summary
risk_notes list of strings

Hidden information

Only encode information in player_view + legal_moves that the active seat may know; heuristic keys must likewise avoid undisclosed futures.

Failure modes

  • TransportFailure — chat transport errors.
  • ParseFailure — assistant output not valid JSON.
  • SchemaFailure — input or output rejected vs contract schemas.
  • GatewayFailure — upstream/provider errors.

Verification

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

Changelog

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