{ "swagger": "2.0", "info": { "title": "Maze Rats API", "contact": {}, "license": {} }, "basePath": "/", "paths": { "/api/character/{seed}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "character" ], "summary": "Generate a specific player character using a seed", "parameters": [ { "type": "integer", "description": "Int64", "name": "seed", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Character" } } } } }, "/api/city/{seed}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "city" ], "summary": "Generate a specific city using a seed", "parameters": [ { "type": "integer", "description": "Int64", "name": "seed", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.City" } } } } }, "/api/dungeon/{seed}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "dungeon" ], "summary": "Generate a specific dungeon using a seed", "parameters": [ { "type": "integer", "description": "Int64", "name": "seed", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Maze" } } } } }, "/api/generate/catastrophe": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "magic" ], "summary": "Generate a catastrophe", "responses": { "200": {} } } }, "/api/generate/character": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "character" ], "summary": "Generate a player character", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Character" } } } } }, "/api/generate/city": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "city" ], "summary": "Generate a city", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.City" } } } } }, "/api/generate/dungeon": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "dungeon" ], "summary": "Generate a dungeon", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Maze" } } } } }, "/api/generate/insanity": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "magic" ], "summary": "Generate a insanity", "responses": { "200": {} } } }, "/api/generate/monster": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "monster" ], "summary": "Generate a monster", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Monster" } } } } }, "/api/generate/mutation": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "magic" ], "summary": "Generate a mutation", "responses": { "200": {} } } }, "/api/generate/name": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "character" ], "summary": "Generate a character name", "responses": { "200": {} } } }, "/api/generate/npc": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "NPC" ], "summary": "Generate an NPC", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.NPC" } } } } }, "/api/generate/potion": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "treasure" ], "summary": "Generate a potion", "responses": { "200": {} } } }, "/api/generate/spell": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "magic" ], "summary": "Generate a spell", "responses": { "200": {} } } }, "/api/monster/{seed}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "monster" ], "summary": "Generate a specific monster using a seed", "parameters": [ { "type": "integer", "description": "Int64", "name": "seed", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.Monster" } } } } }, "/api/npc/{seed}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "NPC" ], "summary": "Generate a specific NPC using a seed", "parameters": [ { "type": "integer", "description": "Int64", "name": "seed", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/tables.NPC" } } } } }, "/api/roll/{xdy}": { "get": { "produces": [ "application/json", " text/plain" ], "tags": [ "dice" ], "summary": "Roll some dice", "parameters": [ { "type": "string", "description": "Roll in xdy format (e.g. 1d6)", "name": "xdy", "in": "path", "required": true } ], "responses": { "200": {} } } } }, "definitions": { "tables.Building": { "type": "object", "properties": { "rooms": { "type": "array", "items": { "type": "string" } }, "tacticalFeature": { "type": "string" }, "type": { "type": "string" } } }, "tables.Character": { "type": "object", "properties": { "appearance": { "type": "string" }, "background": { "type": "string" }, "clothing": { "type": "string" }, "feature": { "type": "string" }, "items": { "type": "array", "items": { "type": "string" } }, "mannerism": { "type": "string" }, "name": { "type": "string" }, "personality": { "type": "string" }, "physical_detail": { "type": "string" }, "seed": { "type": "integer" }, "stats": { "type": "object", "$ref": "#/definitions/tables.CharacterStats" }, "weapons": { "type": "array", "items": { "type": "string" } } } }, "tables.CharacterStats": { "type": "object", "properties": { "armor": { "type": "integer" }, "dex": { "type": "integer" }, "max_health": { "type": "integer" }, "str": { "type": "integer" }, "wil": { "type": "integer" } } }, "tables.City": { "type": "object", "properties": { "activities": { "type": "array", "items": { "type": "string" } }, "districtThemes": { "type": "array", "items": { "type": "string" } }, "events": { "type": "array", "items": { "type": "string" } }, "factions": { "type": "array", "items": { "$ref": "#/definitions/tables.Faction" } }, "lowerClassBuildings": { "type": "array", "items": { "$ref": "#/definitions/tables.Building" } }, "seed": { "type": "integer" }, "tacticalStreetFeatures": { "type": "array", "items": { "type": "string" } }, "theme": { "type": "string" }, "upperClassBuildings": { "type": "array", "items": { "$ref": "#/definitions/tables.Building" } } } }, "tables.Faction": { "type": "object", "properties": { "goal": { "type": "string" }, "trait": { "type": "string" }, "type": { "type": "string" } } }, "tables.Maze": { "type": "object", "properties": { "activities": { "type": "array", "items": { "type": "string" } }, "entrance": { "type": "string" }, "form": { "type": "string" }, "hazards": { "type": "array", "items": { "type": "string" } }, "layout": { "type": "string" }, "reward": { "type": "string" }, "rooms": { "type": "array", "items": { "type": "string" } }, "ruination": { "type": "string" }, "seed": { "type": "integer" }, "trapEffects": { "type": "array", "items": { "type": "string" } }, "trapTriggers": { "type": "array", "items": { "type": "string" } }, "tricks": { "type": "array", "items": { "type": "string" } } } }, "tables.Monster": { "type": "object", "properties": { "ability": { "type": "string" }, "base": { "type": "string" }, "feature": { "type": "string" }, "personality": { "type": "string" }, "seed": { "type": "integer" }, "stats": { "type": "object", "$ref": "#/definitions/tables.MonsterStats" }, "tactics": { "type": "string" }, "trait": { "type": "string" }, "weakness": { "type": "string" } } }, "tables.MonsterStat": { "type": "object", "properties": { "qualifier": { "type": "string" }, "value": { "type": "integer" } } }, "tables.MonsterStats": { "type": "object", "properties": { "armor": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" }, "attack": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" }, "dex": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" }, "health": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" }, "str": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" }, "wil": { "type": "object", "$ref": "#/definitions/tables.MonsterStat" } } }, "tables.NPC": { "type": "object", "properties": { "afterTheParty": { "type": "string" }, "appearance": { "type": "string" }, "assets": { "type": "array", "items": { "type": "string" } }, "class": { "type": "string" }, "clothing": { "type": "string" }, "divineDomain": { "type": "string" }, "gender": { "type": "string" }, "goals": { "type": "array", "items": { "type": "string" } }, "hobby": { "type": "string" }, "liabilities": { "type": "array", "items": { "type": "string" } }, "mannerism": { "type": "string" }, "methods": { "type": "array", "items": { "type": "string" } }, "misfortunes": { "type": "array", "items": { "type": "string" } }, "missions": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "occupation": { "type": "string" }, "personality": { "type": "string" }, "physicalDetail": { "type": "string" }, "relationship": { "type": "string" }, "reputation": { "type": "string" }, "secret": { "type": "string" } } } } }