{"openapi":"3.1.0","info":{"title":"Pushluck API","version":"0.1.0","description":"A fully local, hand-curated press-your-luck game-design reference: how banking, bust triggers, escalating risk curves and elimination-on-bust designs work, real tabletop games that use each mechanic, genuine bust-probability math for push-your-luck scenarios, risk-curve explainers, a term glossary, group-size game suggestions, design tips 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://pushluck.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/pushluck/docs"},"termsOfService":"https://connectorbay.com/pushluck/terms"},"servers":[{"url":"https://pushluck.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/pushluck/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/mechanic_info":{"post":{"operationId":"mechanic_info","summary":"Full detail for one press-your-luck mechanic: how it works, why it creates tension, its typical risk","description":"Full detail for one press-your-luck mechanic: how it works, why it creates tension, its typical risk\n    shape, mechanics it pairs well with, and real games that use it. Use for \"how does banking work in a\n    push-your-luck game\", \"explain elimination-on-bust\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A press-your-luck mechanic's name or alias.","examples":["banking","bust trigger","diminishing odds","elimination-on-bust","shared pot"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"mechanic_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/bust_probability_calculator":{"post":{"operationId":"bust_probability_calculator","summary":"Genuine probability math for a simple push-your-luck scenario: given a fixed bust chance per push (an","description":"Genuine probability math for a simple push-your-luck scenario: given a fixed bust chance per push (an\n    independent, identically-distributed trial each time, like a re-rolled die), computes the cumulative\n    probability of busting at least once after N pushes, the survival probability, the expected number of\n    pushes until a first bust, and a push-by-push table. Use for \"if I bust on any 1 out of 6 outcomes, what's\n    my cumulative bust chance after 5 pushes\", \"how many pushes until I'm more likely than not to have busted\".\n    Assumes independent trials (odds reset every push); for a shrinking deck/pool where odds change as you go,\n    see mechanic_info(\"diminishing odds\") — this formula does not directly apply there.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bust_chance_per_push":{"description":"Probability of busting on any single push, as a fraction between 0 and 1. E.g. 1/6 ≈ 0.1667 for one bust face out of six on a die, 2/6 ≈ 0.3333 for two bust faces, 0.5 for a coin-flip-odds bust.","examples":[0.1667,0.3333,0.5],"exclusiveMinimum":0,"maximum":1,"title":"Bust Chance Per Push","type":"number"},"num_pushes":{"description":"How many consecutive pushes to compute cumulative odds for.","examples":[3,5,10],"maximum":1000,"minimum":1,"title":"Num Pushes","type":"integer"}},"required":["bust_chance_per_push","num_pushes"],"title":"bust_probability_calculatorArguments","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_examples":{"post":{"operationId":"game_examples","summary":"Real tabletop games that use a named press-your-luck mechanic, each with a factual one-line account of","description":"Real tabletop games that use a named press-your-luck mechanic, each with a factual one-line account of\n    how it implements it, plus player-count and category. Use for \"what games use a shared pot\", \"give me\n    examples of hot dice mechanics\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"mechanic":{"description":"A press-your-luck mechanic's name or alias.","examples":["banking","hot dice","shared pot"],"minLength":1,"title":"Mechanic","type":"string"}},"required":["mechanic"],"title":"game_examplesArguments","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/design_tip":{"post":{"operationId":"design_tip","summary":"One practical game-design tip for building or tuning a press-your-luck mechanic, keyed by topic — or,","description":"One practical game-design tip for building or tuning a press-your-luck mechanic, keyed by topic — or,\n    with no topic, the full list of tip topics. Use for \"how do I tune a bust curve\", \"tips for avoiding a\n    runaway leader in a push-your-luck game\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A design topic to look up; omit to list every tip topic.","examples":["bust curve tuning","runaway leader problem","onboarding new players"],"title":"Topic"}},"title":"design_tipArguments","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/risk_curve_explainer":{"post":{"operationId":"risk_curve_explainer","summary":"Explains a risk-curve shape — linear, exponential/compounding, threshold/cliff, diminishing returns,","description":"Explains a risk-curve shape — linear, exponential/compounding, threshold/cliff, diminishing returns,\n    shrinking-pool (without replacement), or variable/randomized — including how it feels to play and what\n    it's good for. With no curve_type, lists every curve shape. Use for \"what's an exponential risk curve\",\n    \"explain a threshold bust design\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"curve_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A risk-curve shape to look up; omit to list every curve type.","examples":["linear","exponential","threshold","shrinking pool"],"title":"Curve Type"}},"title":"risk_curve_explainerArguments","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 push-your-luck vocabulary — banking, bust, sunk cost fallacy, expected value,","description":"Definitions of common push-your-luck vocabulary — banking, bust, sunk cost fallacy, expected value,\n    variance, risk curve, information asymmetry, and more. Use for \"what does 'sunk cost fallacy' mean here\",\n    \"define expected value\".","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":"Real push-your-luck games whose player-count range fits a given group size. Use for \"what push-your-luck","description":"Real push-your-luck games whose player-count range fits a given group size. Use for \"what push-your-luck\n    game works for 6 players\", \"best game like this for just two people\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"player_count":{"description":"How many players will be playing.","examples":[2,4,6],"maximum":20,"minimum":1,"title":"Player Count","type":"integer"}},"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/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"A ranked shortlist of general tips for someone new to push-your-luck games — reading the bust","description":"A ranked shortlist of general tips for someone new to push-your-luck games — reading the bust\n    condition, when banking beats greed, how shared pots split, and more. Use for \"tips for playing a\n    push-your-luck game for the first time\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"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}}}}