{"openapi":"3.1.0","info":{"title":"Gameloop API","version":"0.1.0","description":"A fully local, hand-curated general game design theory reference: core game loops, mechanics vs. dynamics vs. aesthetics (MDA), named frameworks (flow theory, Bartle's taxonomy, self-determination theory, and more), a design-terms glossary, balance concepts, level design basics, player motivation types, feedback loops, difficulty curves, plus practical exercises and tips for aspiring designers. Applies to tabletop and video games alike.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://gameloop.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/gameloop/docs"},"termsOfService":"https://connectorbay.com/gameloop/terms"},"servers":[{"url":"https://gameloop.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/gameloop/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/concept_info":{"post":{"operationId":"concept_info","summary":"Full detail on one core game design concept: category, a plain-language summary, several detailed","description":"Full detail on one core game design concept: category, a plain-language summary, several detailed\n    explanatory points, and generic examples. Use for \"what's a core game loop\", \"explain mechanics vs dynamics\n    vs aesthetics\", \"what makes a good difficulty curve\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A core game design concept's name or alias.","examples":["core game loop","MDA","level design","difficulty curve"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"concept_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/framework_explainer":{"post":{"operationId":"framework_explainer","summary":"Explains one named, publicly documented game design framework or psychological theory as applied to","description":"Explains one named, publicly documented game design framework or psychological theory as applied to\n    games: who proposed it, its origin, its core idea, how designers use it, and its known limitations. Use for\n    \"what's flow theory\", \"who came up with the MDA framework\", \"explain the elemental tetrad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A named game design framework or theory.","examples":["MDA framework","flow theory","Bartle's taxonomy","self-determination theory","Kano model"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"framework_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 game design terms — juice, dominant strategy, rubber-banding, tempo, frame data,","description":"Definitions of common game design terms — juice, dominant strategy, rubber-banding, tempo, frame data,\n    metagame, power creep, and more. Use for \"what does 'tempo' mean\", \"define power creep\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific design 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/balance_tip":{"post":{"operationId":"balance_tip","summary":"A practical tip for one game balance topic: the tip itself, why it matters, and a generic example. Use","description":"A practical tip for one game balance topic: the tip itself, why it matters, and a generic example. Use\n    for \"how do I balance asymmetric factions\", \"tip for preventing power creep\", \"how do I stop one player from\n    snowballing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A game balance topic.","examples":["power creep","catch-up mechanics","risk vs reward","cost curves","snowballing"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"balance_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/player_motivation_type":{"post":{"operationId":"player_motivation_type","summary":"Explains one of Richard Bartle's four player motivation types (Achiever, Explorer, Socializer, Killer):","description":"Explains one of Richard Bartle's four player motivation types (Achiever, Explorer, Socializer, Killer):\n    what they enjoy, design hooks that appeal to them, and common design pitfalls that alienate them. Omit\n    `name` to get all four. Use for \"what's a Bartle Killer type\", \"what motivates an Explorer player\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"One of Bartle's four player types (Achiever, Explorer, Socializer, Killer); omit to list all four.","examples":["Achiever","Explorer","Socializer","Killer"],"title":"Name"}},"title":"player_motivation_typeArguments","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_exercise":{"post":{"operationId":"design_exercise","summary":"A small, practical exercise/prompt for an aspiring game designer on a stated topic, with a time estimate","description":"A small, practical exercise/prompt for an aspiring game designer on a stated topic, with a time estimate\n    and the skills it practices. Use for \"give me an exercise to practice level design\", \"how can I practice\n    game balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A design topic to practice.","examples":["core loop","level design","balance","onboarding","prototyping"],"minLength":1,"title":"Topic","type":"string"}},"required":["topic"],"title":"design_exerciseArguments","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 content domain this reference covers (concepts, frameworks, glossary terms, balance topics,","description":"Every content domain this reference covers (concepts, frameworks, glossary terms, balance topics,\n    player motivation types, design exercises, beginner tips) with how many entries each has. Use for \"what do\n    you cover\", \"how many frameworks do you know\".","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 curated, ranked shortlist of the most essential tips for someone new to game design, most essential","description":"A curated, ranked shortlist of the most essential tips for someone new to game design, most essential\n    first. Use for \"what should a beginner game designer know\", \"give me tips for getting started in game\n    design\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":12,"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}}}}