forge-lcdl

game_move_rank v1

Parsed JSON subset returned to callers:

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.