{"ok":true,"site":{"host":"jacoblincool.github.io","url":"https://jacoblincool.github.io/banqi/","type":"live","desc":"","tools":[{"name":"get_game_state","kind":"answer","impl":"imperative","description":"Read the current Taiwanese Chinese Dark Chess (暗棋 / banqi) game on this page: board (4 ranks × 8 files), whose turn it is, your colour, legal moves, captured and still-hidden pieces, the no-progress draw counter, move history and the result. Red pieces are 帥仕相俥傌炮兵, black are 將士象車馬包卒, ■ is face-down, ・ is empty. Call this before choosing a move.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"get_rules","kind":"answer","impl":"imperative","description":"Read the full rules of Taiwanese Chinese Dark Chess as played on this page (piece ranks, cannon jumps, draw rules).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"make_move","kind":"act","impl":"imperative","description":"Play one move for the human player (\"you\") in a human-vs-computer game, then wait for the computer's reply. Squares are file a–h + rank 1–4 (a1 is bottom-left). Flip a face-down piece with \"flip a1\" (or just \"a1\"); move or capture with \"a1-a2\" / \"a1xa2\". Returns your move, the computer's reply and the new game state. Only legal moves on your turn are accepted.","inputSchema":{"type":"object","properties":{"move":{"type":"string","description":"e.g. \"flip c2\", \"c2-c3\", \"c3xd3\""}},"required":["move"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"suggest_move","kind":"act","impl":"imperative","description":"Ask the selected engine (Light or Lightning, with expectiminimax search and an endgame tablebase) for the best move for you in the current position, without playing it. Returns the model, move, evaluation, win probability, principal variation and alternatives.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"thinkTimeMs":{"type":"number","description":"Search time in ms (200–10000, default 1500)"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"new_game","kind":"act","impl":"imperative","description":"Start a new game with a fresh random deal. mode \"human\" = you play against the computer; mode \"ai\" = watch two engines play each other. Omitted options keep the page's current settings.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["human","ai"]},"first":{"type":"string","enum":["you","engine","random"],"description":"Who flips first in human mode"},"thinkTimeMs":{"type":"number","enum":[500,2000,5000,10000],"description":"Computer think time per move"},"model":{"type":"string","enum":["light","lightning"],"description":"Human mode: computer engine. Light is the original evaluator; Lightning is the 499-parameter learned evaluator."},"modelA":{"type":"string","enum":["light","lightning"],"description":"AI mode: engine for computer A"},"modelB":{"type":"string","enum":["light","lightning"],"description":"AI mode: engine for computer B"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"undo","kind":"act","impl":"imperative","description":"Take back your last move (and the computer's reply) in a human-vs-computer game.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"get_share_link","kind":"answer","impl":"imperative","description":"Get a link that replays the current game move by move (the deal and every move are encoded in the ?r= query string).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"open_replay","kind":"act","impl":"imperative","description":"Open a shared replay link (or just its ?r= code) on this page. Use replay_goto to step through it.","inputSchema":{"type":"object","properties":{"link":{"type":"string","description":"Full replay URL or the r= code"}},"required":["link"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"},{"name":"replay_goto","kind":"act","impl":"imperative","description":"While viewing a replay, jump to the position after the given number of moves (0 = the initial deal) and return that position.","inputSchema":{"type":"object","properties":{"ply":{"type":"number","description":"Number of moves played (0 … total)"}},"required":["ply"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/banqi/"}],"category":"Media & Personal","favicon":"/favicons/jacoblincool.github.io.png","apiSurface":"spec","toolCount":9}}