{
  "openapi": "3.1.0",
  "info": {
    "title": "PokePC Dataset Static API",
    "version": "6.4.0",
    "description": "Static JSON API for the PokePC dataset, suitable for GitHub Pages."
  },
  "servers": [
    {
      "url": ".",
      "description": "Static dataset host."
    }
  ],
  "tags": [
    {
      "name": "Root data"
    },
    {
      "name": "Indices"
    },
    {
      "name": "Pokemon"
    },
    {
      "name": "Games"
    },
    {
      "name": "Pokedexes"
    },
    {
      "name": "Box presets"
    },
    {
      "name": "Metadata"
    }
  ],
  "paths": {
    "/data/abilities.json": {
      "get": {
        "operationId": "getAbilities",
        "summary": "List abilities",
        "description": "Static list of Pokemon abilities.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbilityList"
                }
              }
            }
          }
        }
      }
    },
    "/data/items.json": {
      "get": {
        "operationId": "getItems",
        "summary": "List items",
        "description": "Static list of Pokemon items.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemList"
                }
              }
            }
          }
        }
      }
    },
    "/data/moves.json": {
      "get": {
        "operationId": "getMoves",
        "summary": "List moves",
        "description": "Static list of Pokemon moves.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MoveList"
                }
              }
            }
          }
        }
      }
    },
    "/data/pokeballs.json": {
      "get": {
        "operationId": "getPokeballs",
        "summary": "List Poke Balls",
        "description": "Static list of Poke Ball records.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PokeballList"
                }
              }
            }
          }
        }
      }
    },
    "/data/languages.json": {
      "get": {
        "operationId": "getLanguages",
        "summary": "List languages",
        "description": "Static list of supported languages.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LanguageList"
                }
              }
            }
          }
        }
      }
    },
    "/data/marks.json": {
      "get": {
        "operationId": "getMarks",
        "summary": "List marks",
        "description": "Static list of Pokemon marks.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkList"
                }
              }
            }
          }
        }
      }
    },
    "/data/ribbons.json": {
      "get": {
        "operationId": "getRibbons",
        "summary": "List ribbons",
        "description": "Static list of Pokemon ribbons.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RibbonList"
                }
              }
            }
          }
        }
      }
    },
    "/data/types.json": {
      "get": {
        "operationId": "getTypes",
        "summary": "List types",
        "description": "Static list of Pokemon types.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TypeList"
                }
              }
            }
          }
        }
      }
    },
    "/data/natures.json": {
      "get": {
        "operationId": "getNatures",
        "summary": "List natures",
        "description": "Static list of Pokemon natures.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatureList"
                }
              }
            }
          }
        }
      }
    },
    "/data/characters.json": {
      "get": {
        "operationId": "getCharacters",
        "summary": "List characters",
        "description": "Static list of character records.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CharacterList"
                }
              }
            }
          }
        }
      }
    },
    "/data/colors.json": {
      "get": {
        "operationId": "getColors",
        "summary": "List colors",
        "description": "Static list of Pokemon colors.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ColorList"
                }
              }
            }
          }
        }
      }
    },
    "/data/generations.json": {
      "get": {
        "operationId": "getGenerations",
        "summary": "List generations",
        "description": "Static list of Pokemon generations.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationList"
                }
              }
            }
          }
        }
      }
    },
    "/data/originmarks.json": {
      "get": {
        "operationId": "getOriginMarks",
        "summary": "List origin marks",
        "description": "Static list of origin marks.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OriginMarkList"
                }
              }
            }
          }
        }
      }
    },
    "/data/personalities.json": {
      "get": {
        "operationId": "getPersonalities",
        "summary": "List personalities",
        "description": "Static list of Pokemon personalities.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonalityList"
                }
              }
            }
          }
        }
      }
    },
    "/data/regions.json": {
      "get": {
        "operationId": "getRegions",
        "summary": "List regions",
        "description": "Static list of Pokemon regions.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionList"
                }
              }
            }
          }
        }
      }
    },
    "/data/locations.json": {
      "get": {
        "operationId": "getLocations",
        "summary": "List locations",
        "description": "Static list of special location records.",
        "tags": [
          "Root data"
        ],
        "responses": {
          "200": {
            "description": "Static JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationList"
                }
              }
            }
          }
        }
      }
    },
    "/data/indices/pokemon.json": {
      "get": {
        "operationId": "getPokemonIndex",
        "summary": "List Pokemon IDs",
        "description": "Ordered index of Pokemon JSON file IDs.",
        "tags": [
          "Indices"
        ],
        "responses": {
          "200": {
            "description": "Ordered Pokemon ID index.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringIndex"
                }
              }
            }
          }
        }
      }
    },
    "/data/indices/games.json": {
      "get": {
        "operationId": "getGamesIndex",
        "summary": "List game IDs",
        "description": "Ordered index of game JSON file IDs.",
        "tags": [
          "Indices"
        ],
        "responses": {
          "200": {
            "description": "Ordered game ID index.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringIndex"
                }
              }
            }
          }
        }
      }
    },
    "/data/indices/pokedexes.json": {
      "get": {
        "operationId": "getPokedexesIndex",
        "summary": "List Pokedex IDs",
        "description": "Ordered index of Pokedex JSON file IDs.",
        "tags": [
          "Indices"
        ],
        "responses": {
          "200": {
            "description": "Ordered Pokedex ID index.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringIndex"
                }
              }
            }
          }
        }
      }
    },
    "/data/pokemon/{pokemonId}.json": {
      "get": {
        "operationId": "getPokemon",
        "summary": "Get a Pokemon file",
        "description": "Static Pokemon JSON file selected by Pokemon ID.",
        "tags": [
          "Pokemon"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pokemonId",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Pokemon ID.",
              "example": "bulbasaur"
            },
            "required": true,
            "description": "Pokemon ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Pokemon JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pokemon"
                }
              }
            }
          },
          "404": {
            "description": "Static Pokemon file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/games/{gameId}.json": {
      "get": {
        "operationId": "getGame",
        "summary": "Get a game file",
        "description": "Static game JSON file selected by game ID.",
        "tags": [
          "Games"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "gameId",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Game ID.",
              "example": "swsh"
            },
            "required": true,
            "description": "Game ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Game JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Game"
                }
              }
            }
          },
          "404": {
            "description": "Static game file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/pokedexes/{pokedexId}.json": {
      "get": {
        "operationId": "getPokedex",
        "summary": "Get a Pokedex file",
        "description": "Static Pokedex JSON file selected by Pokedex ID.",
        "tags": [
          "Pokedexes"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pokedexId",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Pokedex ID.",
              "example": "national"
            },
            "required": true,
            "description": "Pokedex ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Pokedex JSON file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pokedex"
                }
              }
            }
          },
          "404": {
            "description": "Static Pokedex file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/boxpresets/classic/{gameSet}.json": {
      "get": {
        "operationId": "getClassicBoxPresetMap",
        "summary": "Get classic box presets for a game set",
        "description": "Static classic box preset map selected by game set ID.",
        "tags": [
          "Box presets"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "gameSet",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Game set ID.",
              "example": "swsh"
            },
            "required": true,
            "description": "Game set ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Classic box preset map.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassicBoxPresetMap"
                }
              }
            }
          },
          "404": {
            "description": "Static classic box preset file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/boxpresets/modern/{gameSet}.json": {
      "get": {
        "operationId": "getModernBoxPresetIndex",
        "summary": "List modern box preset IDs for a game set",
        "description": "Static modern box preset index selected by game set ID.",
        "tags": [
          "Box presets"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "gameSet",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Game set ID.",
              "example": "swsh"
            },
            "required": true,
            "description": "Game set ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Modern box preset ID index.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModernBoxPresetIndex"
                }
              }
            }
          },
          "404": {
            "description": "Static modern box preset index file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/boxpresets/modern/{gameSet}/{presetId}.json": {
      "get": {
        "operationId": "getModernBoxPreset",
        "summary": "Get a modern box preset",
        "description": "Static modern box preset selected by game set ID and preset ID.",
        "tags": [
          "Box presets"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "gameSet",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Game set ID.",
              "example": "swsh"
            },
            "required": true,
            "description": "Game set ID."
          },
          {
            "in": "path",
            "name": "presetId",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$",
              "description": "Box preset ID.",
              "example": "fully-sorted"
            },
            "required": true,
            "description": "Box preset ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Modern box preset file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModernBoxPreset"
                }
              }
            }
          },
          "404": {
            "description": "Static modern box preset file not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/data/metadata/pokemon-mugshots.json": {
      "get": {
        "operationId": "getPokemonMugshotMetadata",
        "summary": "Get Pokemon mugshot metadata",
        "description": "Static Pokemon mugshot display metadata keyed by Pokemon ID.",
        "tags": [
          "Metadata"
        ],
        "responses": {
          "200": {
            "description": "Pokemon mugshot metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PokemonMugshotMetadata"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AbilityList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Ability"
        }
      },
      "Ability": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "psName": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "alert",
                "ally-helper",
                "stat-boost",
                "move-boost",
                "bypass",
                "defense",
                "handicap",
                "heal",
                "items",
                "priority-control",
                "damage",
                "target-weaken",
                "status-trigger",
                "status-immunity",
                "steal",
                "weather",
                "terrain",
                "trap",
                "ability-change",
                "type-change",
                "species-specific",
                "other"
              ]
            }
          },
          "immunities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "normal",
                "fire",
                "water",
                "electric",
                "grass",
                "ice",
                "fighting",
                "poison",
                "ground",
                "flying",
                "psychic",
                "bug",
                "rock",
                "ghost",
                "dragon",
                "dark",
                "steel",
                "fairy",
                "stellar"
              ]
            }
          },
          "weaknesses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "normal",
                "fire",
                "water",
                "electric",
                "grass",
                "ice",
                "fighting",
                "poison",
                "ground",
                "flying",
                "psychic",
                "bug",
                "rock",
                "ghost",
                "dragon",
                "dark",
                "steel",
                "fairy",
                "stellar"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "psName",
          "gen",
          "shortDesc",
          "desc",
          "tags"
        ],
        "additionalProperties": false
      },
      "ItemList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Item"
        }
      },
      "Item": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "psName": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "ball",
              "medicine",
              "battle",
              "berry",
              "machine",
              "megastone",
              "zcrystal",
              "treasure",
              "ingredient",
              "material",
              "key",
              "other"
            ]
          },
          "unholdable": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "psName",
          "gen",
          "shortDesc",
          "desc",
          "category"
        ],
        "additionalProperties": false
      },
      "MoveList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Move"
        }
      },
      "Move": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "psName": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "normal",
              "fire",
              "water",
              "electric",
              "grass",
              "ice",
              "fighting",
              "poison",
              "ground",
              "flying",
              "psychic",
              "bug",
              "rock",
              "ghost",
              "dragon",
              "dark",
              "steel",
              "fairy",
              "stellar"
            ]
          },
          "power": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "accuracy": {
            "type": "integer",
            "minimum": 0,
            "maximum": 101
          },
          "pp": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "category": {
            "type": "string",
            "enum": [
              "physical",
              "special",
              "status"
            ]
          },
          "priority": {
            "type": "integer",
            "minimum": -10,
            "maximum": 10
          },
          "isZ": {
            "type": "boolean"
          },
          "isGmax": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "psName",
          "gen",
          "shortDesc",
          "desc",
          "type",
          "power",
          "accuracy",
          "pp",
          "category",
          "priority",
          "isZ",
          "isGmax"
        ],
        "additionalProperties": false
      },
      "PokeballList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Pokeball"
        }
      },
      "Pokeball": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "regular",
              "special",
              "hisuian",
              "other"
            ]
          },
          "unusable": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "gen",
          "shortDesc",
          "desc",
          "category"
        ],
        "additionalProperties": false
      },
      "LanguageList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Language"
        }
      },
      "Language": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "esla",
              "fr",
              "de",
              "it",
              "ja",
              "ko",
              "chs",
              "cht",
              "pt"
            ]
          },
          "name": {
            "type": "string"
          },
          "nameEng": {
            "type": "string"
          },
          "alpha3": {
            "type": "string",
            "enum": [
              "eng",
              "esp",
              "esla",
              "fra",
              "deu",
              "ita",
              "jap",
              "kor",
              "chs",
              "cht",
              "por"
            ]
          },
          "inGameCode": {
            "type": "string",
            "enum": [
              "ENG",
              "ES-ES",
              "ES-LA",
              "FRA",
              "DEU",
              "ITA",
              "JPN",
              "KOR",
              "CHT",
              "CHS",
              "PT-BR"
            ]
          },
          "locale": {
            "type": "string"
          },
          "flag": {
            "type": "string"
          },
          "pkApiId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "nameEng",
          "alpha3",
          "inGameCode",
          "locale",
          "flag",
          "pkApiId"
        ],
        "additionalProperties": false
      },
      "MarkList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Mark"
        }
      },
      "Mark": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "type": "string",
            "maxLength": 200
          },
          "conditions": {
            "type": "string",
            "maxLength": 200
          },
          "chance": {
            "type": "string"
          },
          "chanceCharm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "gen",
          "shortDesc",
          "desc",
          "title",
          "conditions",
          "chance",
          "chanceCharm"
        ],
        "additionalProperties": false
      },
      "RibbonList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Ribbon"
        }
      },
      "Ribbon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "type": "string",
            "maxLength": 200
          },
          "category": {
            "type": "string",
            "enum": [
              "league",
              "contest",
              "tower",
              "memory",
              "gift"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "gen",
          "shortDesc",
          "desc",
          "title",
          "category"
        ],
        "additionalProperties": false
      },
      "TypeList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Type"
        }
      },
      "Type": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-f]{6}$"
          },
          "isCanonical": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "color",
          "isCanonical"
        ],
        "additionalProperties": false
      },
      "NatureList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Nature"
        }
      },
      "Nature": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "raises": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "hp",
                  "atk",
                  "def",
                  "spa",
                  "spd",
                  "spe",
                  "acc",
                  "eva"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "lowers": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "hp",
                  "atk",
                  "def",
                  "spa",
                  "spd",
                  "spe",
                  "acc",
                  "eva"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "raises",
          "lowers"
        ],
        "additionalProperties": false
      },
      "CharacterList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Character"
        }
      },
      "Character": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "ColorList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Color"
        }
      },
      "Color": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-f]{6}$"
          }
        },
        "required": [
          "id",
          "name",
          "color"
        ],
        "additionalProperties": false
      },
      "GenerationList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Generation"
        }
      },
      "Generation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "minDexNum": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "maxDexNum": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "id",
          "minDexNum",
          "maxDexNum"
        ],
        "additionalProperties": false
      },
      "OriginMarkList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OriginMark"
        }
      },
      "OriginMark": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "PersonalityList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Personality"
        }
      },
      "Personality": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [
          "id",
          "shortDesc"
        ],
        "additionalProperties": false
      },
      "RegionList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Region"
        }
      },
      "Region": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "LocationList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Location"
        }
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 120
          },
          "gameIds": {
            "anyOf": [
              {
                "type": "string",
                "const": "*"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[a-z0-9-]+$"
                }
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "gameIds"
        ],
        "additionalProperties": false
      },
      "StringIndex": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 50,
          "pattern": "^[a-z0-9-]+$"
        },
        "description": "Ordered list of dataset entity IDs."
      },
      "Pokemon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "nid": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "imgNid": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "dexNum": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,5}$"
              },
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 99999
              }
            ]
          },
          "formId": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "region": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "type1": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "type2": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "color": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "ability1": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "ability2": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "abilityHidden": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "abilitySpecial": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "isPrerelease": {
            "type": "boolean"
          },
          "isDefault": {
            "type": "boolean"
          },
          "isForm": {
            "type": "boolean"
          },
          "formItem": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "isLegendary": {
            "type": "boolean"
          },
          "isMythical": {
            "type": "boolean"
          },
          "isBaby": {
            "type": "boolean"
          },
          "isUltraBeast": {
            "type": "boolean"
          },
          "isParadox": {
            "type": "boolean"
          },
          "paradoxSpecies": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "isConvergent": {
            "type": "boolean"
          },
          "convergentSpecies": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "isCosmeticForm": {
            "type": "boolean"
          },
          "isFemaleForm": {
            "type": "boolean"
          },
          "hasGenderDifferences": {
            "type": "boolean"
          },
          "isBattleOnlyForm": {
            "type": "boolean"
          },
          "isFusion": {
            "type": "boolean"
          },
          "isMega": {
            "type": "boolean"
          },
          "isPrimal": {
            "type": "boolean"
          },
          "isGmax": {
            "type": "boolean"
          },
          "isRegional": {
            "type": "boolean"
          },
          "canGmax": {
            "type": "boolean"
          },
          "canDynamax": {
            "type": "boolean"
          },
          "canBeAlpha": {
            "type": "boolean"
          },
          "debutIn": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "obtainableIn": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "transferOnlyIn": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "storableIn": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "eventOnlyIn": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "shinyLockedIn": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "shinyReleased": {
            "type": "boolean"
          },
          "shinyBase": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "baseHp": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "baseAtk": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "baseDef": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "baseSpAtk": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "baseSpDef": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "baseSpeed": {
            "type": "integer",
            "minimum": -1,
            "maximum": 255
          },
          "height": {
            "type": "integer",
            "minimum": -1,
            "maximum": 999999
          },
          "weight": {
            "type": "integer",
            "minimum": -1,
            "maximum": 999999
          },
          "maleRate": {
            "type": "number",
            "minimum": -1,
            "maximum": 100
          },
          "femaleRate": {
            "type": "number",
            "minimum": -1,
            "maximum": 100
          },
          "baseSpecies": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "baseForms": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "forms": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "formsDesc": {
            "type": "string"
          },
          "family": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "refs": {
            "type": "object",
            "properties": {
              "pkApiId": {
                "type": "string"
              },
              "pkApiFormId": {
                "type": "string"
              },
              "pkApiFormSlug": {
                "type": "string"
              },
              "smogon": {
                "type": "string"
              },
              "showdown": {
                "type": "string"
              },
              "showdownName": {
                "type": "string"
              },
              "serebii": {
                "type": "string"
              },
              "bulbapedia": {
                "type": "string"
              }
            },
            "required": [
              "pkApiId",
              "pkApiFormId",
              "pkApiFormSlug",
              "smogon",
              "showdown",
              "showdownName",
              "serebii",
              "bulbapedia"
            ],
            "additionalProperties": false
          },
          "evolvesFrom": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "evoFromLevel": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "evoFromItem": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "evoFromMove": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "evoFromAbility": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "evoFromGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ]
          },
          "evoFromTrading": {
            "type": "boolean"
          },
          "evoFromFriendship": {
            "type": "boolean"
          },
          "evoFromCondition": {
            "type": "string"
          },
          "names": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "eng",
                "esp",
                "esla",
                "fra",
                "deu",
                "ita",
                "jap",
                "kor",
                "chs",
                "cht",
                "por"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "required": [
              "eng",
              "esp",
              "esla",
              "fra",
              "deu",
              "ita",
              "jap",
              "kor",
              "chs",
              "cht",
              "por"
            ]
          },
          "genus": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "eng",
                "esp",
                "esla",
                "fra",
                "deu",
                "ita",
                "jap",
                "kor",
                "chs",
                "cht",
                "por"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "required": [
              "eng",
              "esp",
              "esla",
              "fra",
              "deu",
              "ita",
              "jap",
              "kor",
              "chs",
              "cht",
              "por"
            ]
          },
          "speciesNames": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "eng",
                "esp",
                "esla",
                "fra",
                "deu",
                "ita",
                "jap",
                "kor",
                "chs",
                "cht",
                "por"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "required": [
              "eng",
              "esp",
              "esla",
              "fra",
              "deu",
              "ita",
              "jap",
              "kor",
              "chs",
              "cht",
              "por"
            ]
          },
          "formNames": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "eng",
                "esp",
                "esla",
                "fra",
                "deu",
                "ita",
                "jap",
                "kor",
                "chs",
                "cht",
                "por"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "required": [
              "eng",
              "esp",
              "esla",
              "fra",
              "deu",
              "ita",
              "jap",
              "kor",
              "chs",
              "cht",
              "por"
            ]
          }
        },
        "required": [
          "id",
          "nid",
          "dexNum",
          "region",
          "gen",
          "type1",
          "color",
          "ability1",
          "isPrerelease",
          "isDefault",
          "isForm",
          "isLegendary",
          "isMythical",
          "isBaby",
          "isUltraBeast",
          "isParadox",
          "isConvergent",
          "isCosmeticForm",
          "isFemaleForm",
          "hasGenderDifferences",
          "isBattleOnlyForm",
          "isFusion",
          "isMega",
          "isPrimal",
          "isGmax",
          "isRegional",
          "canGmax",
          "canDynamax",
          "canBeAlpha",
          "debutIn",
          "obtainableIn",
          "transferOnlyIn",
          "storableIn",
          "eventOnlyIn",
          "shinyReleased",
          "baseHp",
          "baseAtk",
          "baseDef",
          "baseSpAtk",
          "baseSpDef",
          "baseSpeed",
          "height",
          "weight",
          "maleRate",
          "femaleRate",
          "baseForms",
          "forms",
          "refs",
          "names",
          "genus",
          "speciesNames",
          "formNames"
        ],
        "additionalProperties": false
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "statusCode": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "error",
          "message",
          "statusCode"
        ],
        "additionalProperties": false,
        "example": {
          "error": "Not Found",
          "message": "Static JSON file not found.",
          "statusCode": 404
        }
      },
      "Game": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "nameSlug": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "codename": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "superset",
              "set",
              "game",
              "dlc"
            ]
          },
          "series": {
            "type": "string",
            "enum": [
              "main",
              "spinoff",
              "storage",
              "legends"
            ]
          },
          "gameSet": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "gameSuperSet": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "releaseDate": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "originMark": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "pokedexes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "pattern": "^[a-z0-9-]+$"
            }
          },
          "maxBoxes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "maxBoxSize": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "platforms": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "gb",
                "gbc",
                "gba",
                "nds",
                "3ds",
                "mobile",
                "ngc",
                "wii",
                "wiiu",
                "switch",
                "switch2"
              ]
            }
          },
          "isUnreleased": {
            "type": "boolean"
          },
          "features": {
            "type": "object",
            "properties": {
              "storage": {
                "type": "boolean"
              },
              "pokedex": {
                "type": "boolean"
              },
              "training": {
                "type": "boolean"
              },
              "shiny": {
                "type": "boolean"
              },
              "items": {
                "type": "boolean"
              },
              "gender": {
                "type": "boolean"
              },
              "pokerus": {
                "type": "boolean"
              },
              "nature": {
                "type": "boolean"
              },
              "ribbons": {
                "type": "boolean"
              },
              "marks": {
                "type": "boolean"
              },
              "markings": {
                "type": "boolean"
              },
              "shadow": {
                "type": "boolean"
              },
              "ball": {
                "type": "boolean"
              },
              "mega": {
                "type": "boolean"
              },
              "zmove": {
                "type": "boolean"
              },
              "gmax": {
                "type": "boolean"
              },
              "alpha": {
                "type": "boolean"
              },
              "tera": {
                "type": "boolean"
              },
              "plusmvs": {
                "type": "boolean"
              },
              "mints": {
                "type": "boolean"
              },
              "sizes": {
                "type": "boolean"
              },
              "abilities": {
                "type": "boolean"
              }
            },
            "required": [
              "storage",
              "pokedex",
              "training",
              "shiny",
              "items",
              "gender",
              "pokerus",
              "nature",
              "ribbons",
              "marks",
              "markings",
              "shadow",
              "ball",
              "mega",
              "zmove",
              "gmax",
              "alpha",
              "tera",
              "plusmvs",
              "mints",
              "sizes",
              "abilities"
            ],
            "additionalProperties": false
          },
          "onlineFeatures": {
            "type": "object",
            "properties": {
              "battles": {
                "type": "boolean"
              },
              "battleStyles": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "singles",
                    "doubles",
                    "triples",
                    "rotation",
                    "royale"
                  ]
                }
              },
              "trades": {
                "type": "boolean"
              },
              "raids": {
                "type": "boolean"
              },
              "raidStyles": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "dynamax",
                    "tera"
                  ]
                }
              },
              "coop": {
                "type": "boolean"
              }
            },
            "required": [
              "battles",
              "battleStyles",
              "trades",
              "raids",
              "raidStyles",
              "coop"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "name",
          "gen",
          "nameSlug",
          "codename",
          "type",
          "series",
          "gameSet",
          "gameSuperSet",
          "releaseDate",
          "region",
          "originMark",
          "pokedexes",
          "maxBoxes",
          "maxBoxSize",
          "platforms",
          "features"
        ],
        "additionalProperties": false
      },
      "Pokedex": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 50
          },
          "shortDesc": {
            "type": "string",
            "maxLength": 200
          },
          "desc": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "gen": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "isNational": {
            "type": "boolean"
          },
          "baseDex": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "pkApiId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "entries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "pid": {
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[a-z0-9-]+$"
                },
                "dexNum": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^\\d{1,5}$"
                    },
                    {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 99999
                    }
                  ]
                },
                "isForm": {
                  "type": "boolean"
                },
                "transferOnly": {
                  "type": "boolean"
                },
                "originDex": {
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[a-z0-9-]+$"
                },
                "isNonCanonical": {
                  "type": "boolean"
                },
                "meta": {
                  "type": "object",
                  "properties": {
                    "names": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "eng",
                          "esp",
                          "esla",
                          "fra",
                          "deu",
                          "ita",
                          "jap",
                          "kor",
                          "chs",
                          "cht",
                          "por"
                        ]
                      },
                      "additionalProperties": {
                        "type": "string"
                      },
                      "required": [
                        "eng",
                        "esp",
                        "esla",
                        "fra",
                        "deu",
                        "ita",
                        "jap",
                        "kor",
                        "chs",
                        "cht",
                        "por"
                      ]
                    },
                    "speciesNames": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "eng",
                          "esp",
                          "esla",
                          "fra",
                          "deu",
                          "ita",
                          "jap",
                          "kor",
                          "chs",
                          "cht",
                          "por"
                        ]
                      },
                      "additionalProperties": {
                        "type": "string"
                      },
                      "required": [
                        "eng",
                        "esp",
                        "esla",
                        "fra",
                        "deu",
                        "ita",
                        "jap",
                        "kor",
                        "chs",
                        "cht",
                        "por"
                      ]
                    },
                    "formNames": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "eng",
                          "esp",
                          "esla",
                          "fra",
                          "deu",
                          "ita",
                          "jap",
                          "kor",
                          "chs",
                          "cht",
                          "por"
                        ]
                      },
                      "additionalProperties": {
                        "type": "string"
                      },
                      "required": [
                        "eng",
                        "esp",
                        "esla",
                        "fra",
                        "deu",
                        "ita",
                        "jap",
                        "kor",
                        "chs",
                        "cht",
                        "por"
                      ]
                    },
                    "type1": {
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[a-z0-9-]+$"
                    },
                    "type2": {
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[a-z0-9-]+$"
                    },
                    "attributes": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[a-z0-9-]+$"
                      },
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[a-z0-9-]+$"
                      }
                    },
                    "canonicalPid": {
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[a-z0-9-]+$"
                    },
                    "imgNid": {
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[a-z0-9-]+$"
                    }
                  },
                  "required": [
                    "names"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "pid",
                "dexNum",
                "isForm"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "name",
          "gen",
          "region",
          "isNational",
          "baseDex",
          "pkApiId",
          "entries"
        ],
        "additionalProperties": false
      },
      "ClassicBoxPresetMap": {
        "type": "object",
        "propertyNames": {
          "type": "string",
          "maxLength": 50,
          "pattern": "^[a-z0-9-]+$"
        },
        "additionalProperties": {
          "$ref": "#/components/schemas/ClassicBoxPreset"
        }
      },
      "ClassicBoxPreset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "legacyId": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 120
          },
          "version": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "gameSet": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "type": "string"
          },
          "boxes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "maxLength": 120
                },
                "pokemon": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 50,
                            "pattern": "^[a-z0-9-]+$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "pid": {
                            "type": "string",
                            "maxLength": 50,
                            "pattern": "^[a-z0-9-]+$"
                          },
                          "gmax": {
                            "type": "boolean"
                          },
                          "shinyLocked": {
                            "type": "boolean"
                          },
                          "shiny": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "pid"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                }
              },
              "required": [
                "pokemon"
              ],
              "additionalProperties": false
            }
          },
          "isHidden": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "version",
          "gameSet",
          "description",
          "boxes"
        ],
        "additionalProperties": false
      },
      "ModernBoxPresetIndex": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 50,
          "pattern": "^[a-z0-9-]+$"
        }
      },
      "ModernBoxPreset": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "type": "number",
            "const": 1
          },
          "id": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "gameSet": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          },
          "name": {
            "type": "string",
            "maxLength": 120
          },
          "description": {
            "type": "string",
            "maxLength": 2000
          },
          "source": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "const": "classic"
              },
              "gameSet": {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              "presetId": {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              },
              "version": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "legacyId": {
                "type": "string",
                "maxLength": 50,
                "pattern": "^[a-z0-9-]+$"
              }
            },
            "required": [
              "kind",
              "gameSet",
              "presetId"
            ],
            "additionalProperties": false
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "recommended",
                "national",
                "grouped",
                "sorted",
                "minimal",
                "shiny",
                "forms"
              ]
            }
          },
          "boxes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "maxLength": 120
                },
                "slots": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 50,
                            "pattern": "^[a-z0-9-]+$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "pokemon": {
                            "type": "string",
                            "maxLength": 50,
                            "pattern": "^[a-z0-9-]+$"
                          },
                          "shiny": {
                            "type": "boolean"
                          },
                          "gmax": {
                            "type": "boolean"
                          },
                          "shinyLocked": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "pokemon"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                }
              },
              "required": [
                "slots"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "schemaVersion",
          "id",
          "gameSet",
          "name",
          "boxes"
        ],
        "additionalProperties": false
      },
      "PokemonMugshotMetadata": {
        "type": "object",
        "propertyNames": {
          "type": "string",
          "maxLength": 50,
          "pattern": "^[a-z0-9-]+$"
        },
        "additionalProperties": {
          "$ref": "#/components/schemas/PokemonMugshot"
        }
      },
      "PokemonMugshot": {
        "type": "object",
        "properties": {
          "x": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "y": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "scale": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "flipped": {
            "type": "boolean"
          },
          "pokeId": {
            "type": "string",
            "maxLength": 50,
            "pattern": "^[a-z0-9-]+$"
          }
        },
        "additionalProperties": false
      }
    }
  }
}
