Archipelago/worlds/pokemon_emerald/data/trade_pokemon_schema.json

162 lines
4.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Pokemon",
"type": "object",
"required": ["version", "language", "nickname", "personality", "species", "experience", "ivs", "evs", "moves", "trainer"],
"properties": {
"version": {
"description": "The version of this schema that the data is formatted to match",
"type": "string",
"const": "1"
},
"language": {
"description": "The language of origin",
"enum": [
"Japanese",
"English",
"French",
"Italian",
"German",
"Spanish"
]
},
"nickname": {
"description": "The pokemon's nickname",
"type": "string",
"minLength": 1
},
"personality": {
"description": "The pokemon's 32-bit personality value",
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"species": {
"description": "The national dex number of the pokemon species",
"type": "integer",
"minimum": 0
},
"item": {
"description": "The id of the item the pokemon is holding according to modern tables",
"type": "integer"
},
"experience": {
"description": "The current total EXP",
"type": "integer",
"minimum": 0
},
"ability": {
"description": "The value of the ability bit (hidden abilities should be a separate bit)",
"type": "integer",
"minimum": 0,
"maximum": 1
},
"ivs": {
"description": "The 6 IVs of the pokemon",
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 6,
"maxItems": 6
},
"evs": {
"description": "The 6 EVs of the pokemon",
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 6,
"maxItems": 6
},
"conditions": {
"description": "The 6 condition (contest) stats of the pokemon",
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 6,
"maxItems": 6
},
"pokerus": {
"description": "The value of the pokerus status byte",
"type": "integer",
"minimum": 0
},
"game": {
"description": "The id of the game the pokemon originated in",
"type": "integer",
"minimum": 0
},
"location_met": {
"description": "The location id for where the pokemon was met",
"type": "integer",
"minimum": 0
},
"level_met": {
"description": "The level the pokemon was met at",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"ball": {
"description": "The type of poke ball the pokemon was caught in",
"type": "integer",
"minimum": 1
},
"moves": {
"description": "The move id, PP, and PP Ups used for each move slot",
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"description": "The move's id according to modern tables (use 0 for an empty slot)",
"type": "integer"
},
{
"description": "The move's max PP",
"type": "integer",
"minimum": 1
},
{
"description": "The number of times a PP Up has been used on this move",
"type": "integer",
"minimum": 0,
"maximum": 3
}
],
"minLength": 4,
"maxLength": 4
}
},
"trainer": {
"description": "Original trainer info",
"type": "object",
"properties": {
"name": {
"description": "The original trainer's name",
"type": "string",
"minLength": 1
},
"id": {
"description": "The original trainer's 32-bit ID (includes secret id as higher order bytes)",
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"female": {
"description": "Whether the original trainer is female",
"type": "boolean"
}
},
"required": ["name", "id"]
}
}
}