Why
In combat, get_game_state often returns battle.is_play_phase: false after end turn, so agents must poll manually. Between card plays, full state is heavier than needed when only hand / energy / hand_select matter (indices shift every play).
Proposal
get_game_state: If JSON shows combat with is_play_phase === false, poll until it becomes playable or a max wait elapses; on timeout return a short explicit response (no infinite hang).
New tools: get_game_state_handcard and mp_get_game_state_handcard — same game JSON fetch, return only hand-related fields (+ energy, etc.) in markdown/json for cheap refreshes between plays.
judgeou@8c6b3bb
Why
In combat, get_game_state often returns battle.is_play_phase: false after end turn, so agents must poll manually. Between card plays, full state is heavier than needed when only hand / energy / hand_select matter (indices shift every play).
Proposal
get_game_state: If JSON shows combat with is_play_phase === false, poll until it becomes playable or a max wait elapses; on timeout return a short explicit response (no infinite hang).
New tools: get_game_state_handcard and mp_get_game_state_handcard — same game JSON fetch, return only hand-related fields (+ energy, etc.) in markdown/json for cheap refreshes between plays.
judgeou@8c6b3bb