{"ok":true,"site":{"host":"tianyili.github.io","url":"https://tianyili.github.io/intransitive-practice/","type":"live","desc":"","tools":[{"name":"list_saved_games","kind":"answer","impl":"imperative","description":"List saved local matches with recordId, name, opponent, currentPly and totalPlies. Does not change the active game.","title":"列出已儲存戰役","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"save_current_game","kind":"act","impl":"imperative","description":"Save a new durable local snapshot of the active game, including its redo branch. Does not change the board. Optional name is plain text.","title":"儲存目前戰役","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","maxLength":80}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"get_game_record","kind":"answer","impl":"imperative","description":"Read the active match or a saved record by recordId. Includes full legal replay moves, cursor, redo branch, humanSide and opponent. Does not change or load the active board.","title":"讀取完整戰役棋譜","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"recordId":{"type":"string"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"get_review_position","kind":"answer","impl":"imperative","description":"Read position after ply moves (0 is initial), board, legal moves, prior/next move and history, for the active game or saved recordId. Read-only replay; never moves the active board. isRedoBranch marks undone future moves. Does not evaluate strategy.","title":"讀取指定步數復盤","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"recordId":{"type":"string"},"ply":{"type":"integer","minimum":0}},"required":["ply"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"load_saved_game","kind":"act","impl":"imperative","description":"Replace active board with saved recordId for continuation. Back up the active match first, use a new gameId, pause the strategy engine. Requires current gameId and expectedRevision. Use read-only review tools for analysis without replacing the board.","title":"載入戰役續下","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"recordId":{"type":"string"},"gameId":{"type":"string"},"expectedRevision":{"type":"integer","minimum":0}},"required":["recordId","gameId","expectedRevision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"get_game_state","kind":"answer","impl":"imperative","description":"Read this Intransitive practice match, current turn, full board, move history, legal moves, gameId and revision. The human moves through the board; the agent may move only agentSide. No external data is accessed.","title":"讀取對戰棋局","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"get_legal_moves","kind":"answer","impl":"imperative","description":"List legal moves for the current turn, optionally restricted to one source square. Returns current gameId and revision. This does not make a move.","title":"列出合法走法","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"from":{"type":"string","pattern":"^[a-i][1-9]$","description":"Lowercase board coordinate, a1 to i9."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"},{"name":"play_move","kind":"act","impl":"imperative","description":"In codex opponent mode only, commit one legal move for agentSide and update board and history. Read get_game_state first, then pass gameId and revision as expectedRevision. Rejects automatic-engine mode, stale state, human turns and finished matches.","title":"替 Codex 落子","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"gameId":{"type":"string"},"expectedRevision":{"type":"integer","minimum":0},"from":{"type":"string","pattern":"^[a-i][1-9]$","description":"Lowercase board coordinate, a1 to i9."},"to":{"type":"string","pattern":"^[a-i][1-9]$","description":"Lowercase board coordinate, a1 to i9."}},"required":["gameId","expectedRevision","from","to"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/intransitive-practice/"}],"category":"Media & Personal","favicon":"/favicons/tianyili.github.io.svg","apiSurface":"spec","toolCount":8}}