{"openapi":"3.1.0","info":{"title":"Dodgeball API","version":"0.1.0","description":"A fully local, hand-curated dodgeball & PE-games reference: 8 real games spanning classic elimination, timed/survival, objective-target and capture-style play (Elimination Dodgeball, Bombardment, Battleship Dodgeball, Medic Dodgeball, Jailbreak Dodgeball, Survivor Dodgeball, King's Court Dodgeball, Four Corners Dodgeball), each with setup, numbered rules, named variants, officiating basics, beginner tips, a glossary, a group-size/space game finder, and safety guidance covering ball types, headshot rules and supervision.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://dodgeball.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/dodgeball/docs"},"termsOfService":"https://connectorbay.com/dodgeball/terms"},"servers":[{"url":"https://dodgeball.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/dodgeball/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/game_rules":{"post":{"operationId":"game_rules","summary":"Full detail for one dodgeball/PE game: category, player count, space needed, equipment, objective, setup","description":"Full detail for one dodgeball/PE game: category, player count, space needed, equipment, objective, setup\n    steps, numbered rules, how to win, named variants, safety flags, and age group/difficulty. Use for \"how do you\n    play dodgeball\", \"what are the rules of Battleship Dodgeball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A dodgeball game's name or alias.","examples":["Elimination Dodgeball","Bombardment","Jailbreak Dodgeball"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"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}},"/v1/tools/variant_info":{"post":{"operationId":"variant_info","summary":"Looks up a specific named variant (e.g. \"Sudden Death\", \"Hidden Fleet\", \"Tag-to-Free Only\") and returns its","description":"Looks up a specific named variant (e.g. \"Sudden Death\", \"Hidden Fleet\", \"Tag-to-Free Only\") and returns its\n    parent game plus what changes; or, given a whole game's name, returns every variant that game has. Use for\n    \"what's the Sudden Death variant\", \"what variants does Jailbreak Dodgeball have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A variant's name, or a whole game's name/alias to see all its variants.","examples":["Sudden Death","Hidden Fleet","Bombardment"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"variant_infoArguments","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/safety_note":{"post":{"operationId":"safety_note","summary":"Ball-type recommendations, the headshot rule, and supervision guidance — for one named game's safety_flags,","description":"Ball-type recommendations, the headshot rule, and supervision guidance — for one named game's safety_flags,\n    or general dodgeball safety framing if no game is given. Use for \"what ball should we use\", \"is a headshot\n    ever legal\", \"how much supervision does dodgeball need\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific game's name to get its safety flags; omit for general dodgeball safety guidance.","title":"Name"}},"title":"safety_noteArguments","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/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of common dodgeball/PE terms — centerline, dead ball, caught out, headshot, sanctuary,","description":"Definitions of common dodgeball/PE terms — centerline, dead ball, caught out, headshot, sanctuary,\n    cherry-picking, stalling, jail, quadrant, peg, and more. Use for \"what does 'stalling' mean in dodgeball\",\n    \"what's a caught out\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"term_glossaryArguments","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/find_game_for_group":{"post":{"operationId":"find_game_for_group","summary":"Suggests 1-4 games that fit a given headcount and, optionally, a description of the available space. Player","description":"Suggests 1-4 games that fit a given headcount and, optionally, a description of the available space. Player\n    count is matched against each game's min/max range; space is used to rank matches. Use for \"what dodgeball\n    game works for 30 kids in a gym\", \"we only have 8 players and a small yard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"player_count":{"description":"How many players are available.","examples":[12,24,40],"maximum":200,"minimum":1,"title":"Player Count","type":"integer"},"space":{"default":"","description":"A plain-language description of the available space.","examples":["small gym","large outdoor field","classroom-sized room"],"title":"Space","type":"string"}},"required":["player_count"],"title":"find_game_for_groupArguments","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/officiating_basics":{"post":{"operationId":"officiating_basics","summary":"Referee/supervisor guidance specific to one game: what to watch for, how to call disputed catches and","description":"Referee/supervisor guidance specific to one game: what to watch for, how to call disputed catches and\n    boundary violations, pacing rules like stalling counts, and where confusion most often happens. Use for \"how\n    do I referee dodgeball\", \"what should a PE teacher watch for in Four Corners Dodgeball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A dodgeball game's name or alias.","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"officiating_basicsArguments","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/category_list":{"post":{"operationId":"category_list","summary":"Every game category (Elimination, Objective & Target, Capture & Escape, Timed & Survival, Zone & Team)","description":"Every game category (Elimination, Objective & Target, Capture & Escape, Timed & Survival, Zone & Team)\n    with how many games are in it. Use for \"what kinds of dodgeball games do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"category_listArguments","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/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"A short list of practical starter advice for one named game — throwing and dodging basics, positioning,","description":"A short list of practical starter advice for one named game — throwing and dodging basics, positioning,\n    and common beginner mistakes. Use for \"any tips for a first-time dodgeball player\", \"how do I get better at\n    King's Court Dodgeball\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A dodgeball game's name or alias.","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"beginner_tipsArguments","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}}}}