{
  "openapi": "3.1.1",
  "info": {
    "title": "Fellowship Codex",
    "description": "Every ability, item, talent, trait and gem the shipped build declares: 12,348 of them, each answered as a JSON record or as the self-contained HTML tooltip the game draws. A tooltip fragment carries its own stylesheet, so it renders the same on a page this project has never seen.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://codex.fellowshipanalyzer.com/"
    }
  ],
  "paths": {
    "/api/search": {
      "get": {
        "tags": [
          "Browsing"
        ],
        "summary": "Ranked name matches, across every type or the one the type= slug names.",
        "operationId": "Search",
        "parameters": [
          {
            "name": "Q",
            "in": "query",
            "description": "The text to match. An empty one answers no results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "One entity type slug, to narrow the results to it.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Limit",
            "in": "query",
            "description": "How many results to answer, 1 to 100. Defaults to 10.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities": {
      "get": {
        "tags": [
          "Browsing"
        ],
        "summary": "Every entity a filter leaves, paged.",
        "description": "Each measure bounds a range through a `Min` and a `Max` parameter, as `?cooldownMin=3`. The measures are cooldown, cast, channel, range, radius, duration, cost, charges, rank, id. `sort` takes name, type or a measure, and `group` takes a facet.",
        "operationId": "GetEntities",
        "parameters": [
          {
            "name": "Q",
            "in": "query",
            "description": "Free text matched against every name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Entity type slug, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sort",
            "in": "query",
            "description": "The column to order by. Defaults to name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Dir",
            "in": "query",
            "description": "Given as desc to order the other way.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Group",
            "in": "query",
            "description": "The facet to group the page by.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "Which page to answer, from 1.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "Size",
            "in": "query",
            "description": "How many rows a page holds, up to 200. Defaults to 50.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "slot",
            "in": "query",
            "description": "Slot, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "armor",
            "in": "query",
            "description": "Armour, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stat",
            "in": "query",
            "description": "Primary stat, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hero",
            "in": "query",
            "description": "Hero, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "query",
            "description": "Source, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rank",
            "in": "query",
            "description": "Rank, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "school",
            "in": "query",
            "description": "School, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "set",
            "in": "query",
            "description": "Set, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource",
            "in": "query",
            "description": "Resource, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gem",
            "in": "query",
            "description": "Gem type, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "trait",
            "in": "query",
            "description": "Trait category, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "description": "Role, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rarity",
            "in": "query",
            "description": "Rarity, comma separated for several.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "named",
            "in": "query",
            "description": "Named in the game.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "icon",
            "in": "query",
            "description": "Has art.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "described",
            "in": "query",
            "description": "Has description text.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "legendary",
            "in": "query",
            "description": "Is legendary.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "grants",
            "in": "query",
            "description": "Grants an ability.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "socket",
            "in": "query",
            "description": "Rolls with a gem socket.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unique",
            "in": "query",
            "description": "Unique equipped.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "scaling",
            "in": "query",
            "description": "Scales off an attribute.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntitiesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog": {
      "get": {
        "tags": [
          "Browsing"
        ],
        "summary": "The menus, entity types and filter facets the browser is driven by.",
        "operationId": "GetCatalog",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/ability/{id}": {
      "get": {
        "tags": [
          "Abilities"
        ],
        "summary": "One ability's record.",
        "operationId": "GetAbility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/ability/{id}/tooltip": {
      "get": {
        "tags": [
          "Abilities"
        ],
        "summary": "One ability's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetAbilityTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's icon is to be shown beside the card. A card that shows its icon inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Hero",
            "in": "query",
            "description": "The hero whose stat a PrimaryAttribute coefficient scales off.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Difficulty",
            "in": "query",
            "description": "The dungeon difficulty to compute a creature ability's damage at.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/blessing/{id}": {
      "get": {
        "tags": [
          "Blessings"
        ],
        "summary": "One blessing's record.",
        "operationId": "GetBlessing",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/blessing/{id}/tooltip": {
      "get": {
        "tags": [
          "Blessings"
        ],
        "summary": "One blessing's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetBlessingTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "State",
            "in": "query",
            "description": "The state to draw the row at: allocated or unallocated.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EquippedTier",
            "in": "query",
            "description": "Which of a blessing's tiers is equipped. None given reads as none equipped.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/companion-pet/{id}": {
      "get": {
        "tags": [
          "Companion Pets"
        ],
        "summary": "One companion pet's record.",
        "operationId": "GetCompanionPet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/companion-pet/{id}/tooltip": {
      "get": {
        "tags": [
          "Companion Pets"
        ],
        "summary": "One companion pet's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetCompanionPetTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/creature/{id}": {
      "get": {
        "tags": [
          "Creatures"
        ],
        "summary": "One creature's record.",
        "operationId": "GetCreature",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/creature/{id}/tooltip": {
      "get": {
        "tags": [
          "Creatures"
        ],
        "summary": "One creature's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetCreatureTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Difficulty",
            "in": "query",
            "description": "The dungeon difficulty to read the creature's health at.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/currency/{id}": {
      "get": {
        "tags": [
          "Currencies"
        ],
        "summary": "One currency's record.",
        "operationId": "GetCurrency",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/currency/{id}/tooltip": {
      "get": {
        "tags": [
          "Currencies"
        ],
        "summary": "One currency's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetCurrencyTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rarity",
            "in": "query",
            "description": "The rung to read at, by the name the game prints or by tier.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/dungeon/{id}": {
      "get": {
        "tags": [
          "Dungeons"
        ],
        "summary": "One dungeon's record.",
        "operationId": "GetDungeon",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/dungeon/{id}/tooltip": {
      "get": {
        "tags": [
          "Dungeons"
        ],
        "summary": "One dungeon's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetDungeonTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/effect/{id}": {
      "get": {
        "tags": [
          "Effects"
        ],
        "summary": "One effect's record.",
        "operationId": "GetEffect",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/effect/{id}/tooltip": {
      "get": {
        "tags": [
          "Effects"
        ],
        "summary": "One effect's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetEffectTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem/{id}": {
      "get": {
        "tags": [
          "Gems"
        ],
        "summary": "One gem's record.",
        "operationId": "GetGem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem/{id}/tooltip": {
      "get": {
        "tags": [
          "Gems"
        ],
        "summary": "One gem's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetGemTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rarity",
            "in": "query",
            "description": "The rung to read at, by the name the game prints or by tier.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem-trait/{id}": {
      "get": {
        "tags": [
          "Gem Traits"
        ],
        "summary": "One gem trait's record.",
        "operationId": "GetGemTrait",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem-trait/{id}/tooltip": {
      "get": {
        "tags": [
          "Gem Traits"
        ],
        "summary": "One gem trait's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetGemTraitTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem-type/{id}": {
      "get": {
        "tags": [
          "Gem Types"
        ],
        "summary": "One gem type's record.",
        "operationId": "GetGemType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/gem-type/{id}/tooltip": {
      "get": {
        "tags": [
          "Gem Types"
        ],
        "summary": "One gem type's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetGemTypeTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/item/{id}": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "One item's record.",
        "operationId": "GetItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "Hero",
            "in": "query",
            "description": "The hero whose reading of the id to answer, where one id reads differently per hero.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/item/{id}/tooltip": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "One item's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetItemTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Hero",
            "in": "query",
            "description": "The hero whose reading of the id to draw, where one id reads differently per hero.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Rarity",
            "in": "query",
            "description": "The rung to read at, by the name the game prints or by tier.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ItemLevel",
            "in": "query",
            "description": "The item level to compute stat magnitudes at, 0 to 10,000.",
            "schema": {
              "maximum": 10000,
              "minimum": 0,
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "Upgrades",
            "in": "query",
            "description": "How many times the item has been tempered.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "MaxUpgrades",
            "in": "query",
            "description": "The tempering ceiling to print in place of the one the shipped ladder states for this rung and level.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "NoSocket",
            "in": "query",
            "description": "Given as true when the item's gem socket is to read as empty.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Gem",
            "in": "query",
            "description": "The gem id filling the item's socket.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "PotentialPower",
            "in": "query",
            "description": "The power potential to print in place of the one the tooltip computes from the item level, the tempering ceiling and the slots the rung adds.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "Armor",
            "in": "query",
            "description": "The armour to print in place of the one the tooltip computes from the item level.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "RandomStats",
            "in": "query",
            "description": "The stats a random slot rolled, comma separated, named once per roll and without a magnitude, which the tooltip computes. Rolling a stat the item already declares aggregates into that line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modifiers",
            "in": "query",
            "description": "A modifier the item carries as a kind token, an id and an amount separated by colons, comma separated for several. The kinds are trait, blessing and essence.",
            "schema": {
              "type": "string",
              "example": "trait:412:1,blessing:7:1,essence:3:100"
            }
          },
          {
            "name": "ImbuedTraits",
            "in": "query",
            "description": "An item trait id, optionally a colon and the rank it sits at, comma separated for several.",
            "schema": {
              "type": "string",
              "example": "7:2,12:1"
            }
          },
          {
            "name": "AllocatedTraits",
            "in": "query",
            "description": "How many imbued trait slots are filled.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "HasImbuedTraits",
            "in": "query",
            "description": "Given as true when the imbued traits line is to be drawn whatever slot the item sits in.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/legendary-power/{id}": {
      "get": {
        "tags": [
          "Legendary Powers"
        ],
        "summary": "One legendary power's record.",
        "operationId": "GetLegendaryPower",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/legendary-power/{id}/tooltip": {
      "get": {
        "tags": [
          "Legendary Powers"
        ],
        "summary": "One legendary power's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetLegendaryPowerTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/legendary-stat/{id}": {
      "get": {
        "tags": [
          "Legendary Stats"
        ],
        "summary": "One legendary stat's record.",
        "operationId": "GetLegendaryStat",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/legendary-stat/{id}/tooltip": {
      "get": {
        "tags": [
          "Legendary Stats"
        ],
        "summary": "One legendary stat's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetLegendaryStatTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/mount/{id}": {
      "get": {
        "tags": [
          "Mounts"
        ],
        "summary": "One mount's record.",
        "operationId": "GetMount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/mount/{id}/tooltip": {
      "get": {
        "tags": [
          "Mounts"
        ],
        "summary": "One mount's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetMountTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/relic-power/{id}": {
      "get": {
        "tags": [
          "Relic Powers"
        ],
        "summary": "One relic power's record.",
        "operationId": "GetRelicPower",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/relic-power/{id}/tooltip": {
      "get": {
        "tags": [
          "Relic Powers"
        ],
        "summary": "One relic power's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetRelicPowerTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/set-bonus/{id}": {
      "get": {
        "tags": [
          "Set Bonuses"
        ],
        "summary": "One set bonus's record.",
        "operationId": "GetSetBonus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/set-bonus/{id}/tooltip": {
      "get": {
        "tags": [
          "Set Bonuses"
        ],
        "summary": "One set bonus's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetSetBonusTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/set-bonus-power/{id}": {
      "get": {
        "tags": [
          "Set Bonus Powers"
        ],
        "summary": "One set bonus power's record.",
        "operationId": "GetSetBonusPower",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/set-bonus-power/{id}/tooltip": {
      "get": {
        "tags": [
          "Set Bonus Powers"
        ],
        "summary": "One set bonus power's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetSetBonusPowerTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/talent/{id}": {
      "get": {
        "tags": [
          "Talents"
        ],
        "summary": "One talent's record.",
        "operationId": "GetTalent",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/talent/{id}/tooltip": {
      "get": {
        "tags": [
          "Talents"
        ],
        "summary": "One talent's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetTalentTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/trait/{id}": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "One trait's record.",
        "operationId": "GetTrait",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/trait/{id}/tooltip": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "One trait's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetTraitTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "State",
            "in": "query",
            "description": "The state to draw the node at: selected, available or unavailable.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/trait-power/{id}": {
      "get": {
        "tags": [
          "Trait Powers"
        ],
        "summary": "One trait power's record.",
        "operationId": "GetTraitPower",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/trait-power/{id}/tooltip": {
      "get": {
        "tags": [
          "Trait Powers"
        ],
        "summary": "One trait power's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetTraitPowerTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/weapon-power/{id}": {
      "get": {
        "tags": [
          "Weapon Powers"
        ],
        "summary": "One weapon power's record.",
        "operationId": "GetWeaponPower",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to answer.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/weapon-power/{id}/tooltip": {
      "get": {
        "tags": [
          "Weapon Powers"
        ],
        "summary": "One weapon power's tooltip as a self-contained HTML fragment.",
        "description": "Any stat the build names may also be given, as `?Stamina=40`, to state a magnitude the tooltip prints rather than computes, and a rating may be given as a percentage with the `Percentage` suffix. The stats are Agility, Attack Speed, Block Chance, Cooldown Reduction, Critical Strike, Dodge, Expertise, Haste, Health, Health Regen Rate, Intellect, Life Steal, Mana, Mana Regen Rate, Max Mana, Move Speed, Parry, Reflect Heal, Spirit, Stamina, Strength, Tenacity.",
        "operationId": "GetWeaponPowerTooltip",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id to draw.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "ShowIcon",
            "in": "query",
            "description": "Given as true when the entity's art is to be drawn beside the card. A card that draws its art inside ignores it.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Hero",
            "in": "query",
            "description": "The hero whose stat a PrimaryAttribute coefficient scales off.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AbilityCoefficient": {
        "required": [
          "attribute",
          "value"
        ],
        "type": "object",
        "properties": {
          "attribute": {
            "type": "string"
          },
          "value": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "part": {
            "type": [
              "null",
              "string"
            ]
          },
          "spread": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "EntitiesResponse": {
        "required": [
          "total",
          "page",
          "pages",
          "rows"
        ],
        "type": "object",
        "properties": {
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "page": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pages": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchResult"
            }
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicCreatureAbility": {
        "required": [
          "ability",
          "phase",
          "shown"
        ],
        "type": "object",
        "properties": {
          "ability": {
            "$ref": "#/components/schemas/PublicReference"
          },
          "phase": {
            "type": "string"
          },
          "shown": {
            "type": "boolean"
          }
        }
      },
      "PublicEntity": {
        "required": [
          "type",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "slot": {
            "type": [
              "null",
              "string"
            ]
          },
          "gemSlot": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "armorType": {
            "type": [
              "null",
              "string"
            ]
          },
          "primaryStat": {
            "type": [
              "null",
              "string"
            ]
          },
          "heroes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "setBonus": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicReference"
            }
          },
          "setCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "uniqueEquipped": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "schools": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "stats": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicStatSlot"
            }
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "detail": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "icon": {
            "type": [
              "null",
              "string"
            ]
          },
          "background": {
            "type": [
              "null",
              "string"
            ]
          },
          "iconByRarity": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "artBorrowedFrom": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "nameBorrowedFrom": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "owner": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "appliedBy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "castTime": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "channelTime": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "channelTick": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "cooldown": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "charges": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "cost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "resource": {
            "type": [
              "null",
              "string"
            ]
          },
          "range": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "radius": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "period": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "scalesOff": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "coefficients": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AbilityCoefficient"
            }
          },
          "placeholders": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicPlaceholder"
            }
          },
          "talentRow": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "talentColumn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "talentCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "gemOverflow": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicGemOverflow"
              }
            ]
          },
          "gemType": {
            "type": [
              "null",
              "string"
            ]
          },
          "gemPower": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rarity": {
            "type": [
              "null",
              "string"
            ]
          },
          "gemNode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "requiredGemPower": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "replaces": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "traitCategory": {
            "type": [
              "null",
              "string"
            ]
          },
          "maxRank": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "randomChance": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rankRuns": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicRankRun"
            }
          },
          "allowedRoles": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "allowedAttributes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "grants": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "legendaryStats": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicReference"
            }
          },
          "power": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "talent": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PublicReference"
              }
            ]
          },
          "rank": {
            "type": [
              "null",
              "string"
            ]
          },
          "health": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "armor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "resist": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "killScore": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "spiritPoints": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "countsTowardScore": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "intellect": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "strength": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "agility": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "scaling": {
            "type": [
              "null",
              "string"
            ]
          },
          "abilities": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicCreatureAbility"
            }
          },
          "passives": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicCreatureAbility"
            }
          },
          "foundIn": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicReference"
            }
          },
          "maxPlayers": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "qualifierTime": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "requiredScore": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "minimumHeroRank": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "creatures": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicReference"
            }
          }
        }
      },
      "PublicGemOverflow": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "placeholders": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/PublicPlaceholder"
            }
          },
          "icon": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PublicPlaceholder": {
        "required": [
          "reading"
        ],
        "type": "object",
        "properties": {
          "ordinal": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reading": {
            "type": "string"
          },
          "attribute": {
            "type": [
              "null",
              "string"
            ]
          },
          "coefficient": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "spread": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "value": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "text": {
            "type": [
              "null",
              "string"
            ]
          },
          "percent": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "format": {
            "type": [
              "null",
              "string"
            ]
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "showDamageType": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "scalesOff": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublicRankRun": {
        "required": [
          "literal",
          "printed"
        ],
        "type": "object",
        "properties": {
          "literal": {
            "type": "string"
          },
          "printed": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
              "type": [
                "null",
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          "transform": {
            "type": [
              "null",
              "string"
            ]
          },
          "ticks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "disagrees": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "PublicReference": {
        "required": [
          "type",
          "id",
          "name",
          "resource"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          }
        }
      },
      "PublicStatSlot": {
        "required": [
          "stat",
          "weight",
          "kind"
        ],
        "type": "object",
        "properties": {
          "stat": {
            "type": "string"
          },
          "weight": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "kind": {
            "type": "string"
          }
        }
      },
      "SearchGroup": {
        "required": [
          "type",
          "label",
          "count"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "count": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "SearchResponse": {
        "required": [
          "query",
          "total",
          "groups",
          "results"
        ],
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchGroup"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchResult"
            }
          }
        }
      },
      "SearchResult": {
        "required": [
          "type",
          "typeLabel",
          "id",
          "name",
          "iconUrl",
          "rarity",
          "href",
          "tooltip",
          "slot",
          "armorType",
          "heroes"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "typeLabel": {
            "type": "string"
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "iconUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "rarity": {
            "type": [
              "null",
              "string"
            ]
          },
          "href": {
            "type": "string"
          },
          "tooltip": {
            "type": "string"
          },
          "slot": {
            "type": [
              "null",
              "string"
            ]
          },
          "armorType": {
            "type": [
              "null",
              "string"
            ]
          },
          "heroes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Browsing"
    },
    {
      "name": "Abilities"
    },
    {
      "name": "Blessings"
    },
    {
      "name": "Companion Pets"
    },
    {
      "name": "Creatures"
    },
    {
      "name": "Currencies"
    },
    {
      "name": "Dungeons"
    },
    {
      "name": "Effects"
    },
    {
      "name": "Gems"
    },
    {
      "name": "Gem Traits"
    },
    {
      "name": "Gem Types"
    },
    {
      "name": "Items"
    },
    {
      "name": "Legendary Powers"
    },
    {
      "name": "Legendary Stats"
    },
    {
      "name": "Mounts"
    },
    {
      "name": "Relic Powers"
    },
    {
      "name": "Set Bonuses"
    },
    {
      "name": "Set Bonus Powers"
    },
    {
      "name": "Talents"
    },
    {
      "name": "Traits"
    },
    {
      "name": "Trait Powers"
    },
    {
      "name": "Weapon Powers"
    }
  ]
}