{"openapi":"3.1.0","info":{"title":"Shuffleboard API","version":"0.1.0","description":"A fully local, hand-curated shuffleboard reference across three real variants — table (bar/tavern), deck (ship/cruise) and floor/court shuffleboard — with setup and how-to-play steps, scoring rules, equipment and court/table dimensions, a shared term glossary, side-by-side variant comparison, space-fit suggestions and beginner tips. Keyless; fully local; zero upstream calls.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://shuffleboard.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/shuffleboard/docs"},"termsOfService":"https://connectorbay.com/shuffleboard/terms"},"servers":[{"url":"https://shuffleboard.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/shuffleboard/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/rule_lookup":{"post":{"operationId":"rule_lookup","summary":"Full detail for one shuffleboard variant: overview, players and typical duration, setup steps, how-to-play","description":"Full detail for one shuffleboard variant: overview, players and typical duration, setup steps, how-to-play\n    steps, scoring rules, win condition, and a brief history note. Use for \"how do you play table shuffleboard\",\n    \"explain deck shuffleboard rules\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A shuffleboard variant's name or alias.","examples":["table shuffleboard","deck shuffleboard","floor shuffleboard","bar shuffleboard","court shuffleboard"],"minLength":1,"title":"Variant","type":"string"}},"required":["variant"],"title":"rule_lookupArguments","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/scoring_summary":{"post":{"operationId":"scoring_summary","summary":"Just a variant's scoring breakdown: the scoring zones/wedges and their point values, detailed scoring","description":"Just a variant's scoring breakdown: the scoring zones/wedges and their point values, detailed scoring\n    rules, and the win condition. Use for \"how is table shuffleboard scored\", \"what does '10 off' mean in\n    scoring\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A shuffleboard variant's name or alias.","examples":["table shuffleboard","deck shuffleboard","floor shuffleboard"],"minLength":1,"title":"Variant","type":"string"}},"required":["variant"],"title":"scoring_summaryArguments","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 shuffleboard vocabulary shared across variants or specific to one — weight, wax, hanger,","description":"Definitions of shuffleboard vocabulary shared across variants or specific to one — weight, wax, hanger,\n    lean, biscuit, tang, triangle, 10 off, guard shot, take-out shot, and more. Use for \"what's a hanger\",\n    \"what does 10 off mean\", \"what's a tang\".","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.","examples":["hanger","10 off","tang","guard shot"],"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/equipment_overview":{"post":{"operationId":"equipment_overview","summary":"A variant's equipment (table/court, weights/discs/cues, wax), space requirements, and a brief safety","description":"A variant's equipment (table/court, weights/discs/cues, wax), space requirements, and a brief safety\n    note. Use for \"how long does a shuffleboard table need to be\", \"what equipment do I need for deck\n    shuffleboard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A shuffleboard variant's name or alias.","examples":["table shuffleboard","deck shuffleboard","floor shuffleboard"],"minLength":1,"title":"Variant","type":"string"}},"required":["variant"],"title":"equipment_overviewArguments","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_comparison":{"post":{"operationId":"variant_comparison","summary":"A side-by-side comparison of two named shuffleboard variants: player format, typical duration, difficulty,","description":"A side-by-side comparison of two named shuffleboard variants: player format, typical duration, difficulty,\n    space needs, scoring summary, win condition and equipment-item count. Use for \"table shuffleboard vs deck\n    shuffleboard\", \"what's different between deck and floor shuffleboard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"a":{"description":"First variant's name or alias.","examples":["table shuffleboard"],"minLength":1,"title":"A","type":"string"},"b":{"description":"Second variant's name or alias.","examples":["deck shuffleboard"],"minLength":1,"title":"B","type":"string"}},"required":["a","b"],"title":"variant_comparisonArguments","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_variant_for_space":{"post":{"operationId":"find_variant_for_space","summary":"Suggests which shuffleboard variant(s) fit a described space, keyword-matched against each variant's","description":"Suggests which shuffleboard variant(s) fit a described space, keyword-matched against each variant's\n    tagged space type and space requirements. Use for \"what shuffleboard game works in my basement\", \"best\n    shuffleboard variant for an outdoor patio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"space_description":{"description":"A space to fit a game into, in plain language.","examples":["a narrow basement room","an outdoor concrete patio","a long empty hallway","a retirement community clubhouse"],"minLength":1,"title":"Space Description","type":"string"}},"required":["space_description"],"title":"find_variant_for_spaceArguments","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 shuffleboard variant with a one-line summary, player format, and how much reference material (","description":"Every shuffleboard variant with a one-line summary, player format, and how much reference material (\n    glossary terms, equipment items) is tagged to it. Use for \"what shuffleboard variants 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 ranked shortlist of tips for someone new to a specific shuffleboard variant. Use for \"beginner tips for","description":"A ranked shortlist of tips for someone new to a specific shuffleboard variant. Use for \"beginner tips for\n    table shuffleboard\", \"how do I get better at deck shuffleboard\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant":{"description":"A shuffleboard variant's name or alias.","examples":["table shuffleboard","deck shuffleboard","floor shuffleboard"],"minLength":1,"title":"Variant","type":"string"},"count":{"default":5,"description":"How many tips to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"required":["variant"],"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}}}}