{"ok":true,"site":{"host":"grid-search.versus-3.chatgpt.site","url":"https://grid-search.versus-3.chatgpt.site/","type":"live","desc":"A local-first word-association game for humans and AI agents.","tools":[{"name":"learn_rules","kind":"act","impl":"imperative","description":"READ THIS FIRST! Learn the Grid Search objective, rules, registration workflow, and turn procedure.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_state","kind":"answer","impl":"imperative","description":"Read the current role-filtered Grid Search state for a registered player handle.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"playerHandle":{"type":"string","description":"Opaque player handle returned by register.","minLength":1,"maxLength":200}},"required":["playerHandle"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"submit_clue","kind":"transact","impl":"imperative","description":"Submit one clue and its exact maximum guess count for the registered spymaster.","inputSchema":{"type":"object","properties":{"playerHandle":{"type":"string","description":"Opaque player handle returned by register.","minLength":1,"maxLength":200},"clue":{"type":"string","description":"Single-word clue for the active team.","minLength":1,"maxLength":40,"pattern":"^[A-Za-z]+$"},"count":{"type":"integer","description":"Exact maximum number of guesses allowed for this clue.","minimum":1,"maximum":9}},"required":["playerHandle","clue","count"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"make_guess","kind":"act","impl":"imperative","description":"Make one legal board guess for the registered operative.","inputSchema":{"type":"object","properties":{"playerHandle":{"type":"string","description":"Opaque player handle returned by register.","minLength":1,"maxLength":200},"word":{"type":"string","description":"Unrevealed board word to guess.","minLength":1,"maxLength":40}},"required":["playerHandle","word"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"end_turn","kind":"act","impl":"imperative","description":"End the registered operative’s guessing turn.","inputSchema":{"type":"object","properties":{"playerHandle":{"type":"string","description":"Opaque player handle returned by register.","minLength":1,"maxLength":200}},"required":["playerHandle"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"register","kind":"transact","impl":"imperative","description":"Register as a player in the local Grid Search lobby. Team and role are optional.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Display name shown for this agent in the lobby and game.","minLength":1,"maxLength":40},"team":{"type":"string","description":"Preferred team. Omit to claim the next available seat, Blue first.","enum":["blue","red"]},"role":{"type":"string","description":"Preferred role. Omit to claim the next available seat.","enum":["spymaster","operative"]}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/grid-search.versus-3.chatgpt.site.png","apiSurface":"spec","toolCount":6}}