{"openapi":"3.1.0","info":{"title":"Word Guess API","version":"0.1.0","description":"A real, playable, fully local 5-letter word-guessing game engine with correct duplicate-letter feedback, a large valid-guess dictionary, and a curated common-word answer list. Fully stateless — every tool call passes the full game state. Generic mechanic, original branding.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://wordguess5.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/wordguess5/docs"},"termsOfService":"https://connectorbay.com/wordguess5/terms"},"servers":[{"url":"https://wordguess5.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/wordguess5/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/new_game":{"post":{"operationId":"new_game","summary":"Starts a new Word Guess round and returns the initial `state`. Use for \"let's play a word guessing game\",","description":"Starts a new Word Guess round and returns the initial `state`. Use for \"let's play a word guessing game\",\n    \"start a new word game with 8 tries\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"max_tries":{"default":6,"description":"How many guesses are allowed before a loss.","maximum":20,"minimum":1,"title":"Max Tries","type":"integer"}},"title":"new_gameArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/make_guess":{"post":{"operationId":"make_guess","summary":"Submits one 5-letter guess. Returns the new state with per-letter feedback (correct/present/absent,","description":"Submits one 5-letter guess. Returns the new state with per-letter feedback (correct/present/absent,\n    with correct duplicate-letter handling) and whether the game is won, lost, or continuing. Use for \"my guess\n    is CRANE\", \"I'll try SPLAT\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"additionalProperties":true,"description":"The current game state, exactly as returned by a previous call in this connector.","title":"State","type":"object"},"guess":{"description":"Your 5-letter word guess.","examples":["crane","adieu"],"maxLength":5,"minLength":5,"title":"Guess","type":"string"}},"required":["state","guess"],"title":"make_guessArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_word":{"post":{"operationId":"check_word","summary":"Checks whether a word would be accepted as a guess, without spending a turn. Use for \"is SPLAT a valid","description":"Checks whether a word would be accepted as a guess, without spending a turn. Use for \"is SPLAT a valid\n    word\", \"would ADIEU be accepted\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"word":{"description":"A 5-letter word to check.","maxLength":5,"minLength":5,"title":"Word","type":"string"}},"required":["word"],"title":"check_wordArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_hint":{"post":{"operationId":"get_hint","summary":"Reveals one still-unknown correct-position letter of the secret word. Use for \"give me a hint\", \"I'm","description":"Reveals one still-unknown correct-position letter of the secret word. Use for \"give me a hint\", \"I'm\n    stuck, help\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"additionalProperties":true,"description":"The current game state, exactly as returned by a previous call in this connector.","title":"State","type":"object"}},"required":["state"],"title":"get_hintArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/render_game":{"post":{"operationId":"render_game","summary":"A human-readable rendering of the guess grid so far — each letter tagged correct/present/absent — and the","description":"A human-readable rendering of the guess grid so far — each letter tagged correct/present/absent — and the\n    outcome if the game has finished. Use to show the player the board.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"additionalProperties":true,"description":"The current game state, exactly as returned by a previous call in this connector.","title":"State","type":"object"}},"required":["state"],"title":"render_gameArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/game_rules":{"post":{"operationId":"game_rules","summary":"Explains how to play, the duplicate-letter feedback rule, and dictionary sizes, with no live game needed.","description":"Explains how to play, the duplicate-letter feedback rule, and dictionary sizes, with no live game needed.\n    Use for \"how does this word game work\", \"what does 'present' mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"game_rulesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}