{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Pokemon", "description": "A schema for pokemon species data.", "type": "object", "properties": { "$schema": { "type": "string" }, "data": { "type": "array", "items": { "required": [ "name", "type", "power", "pp", "accuracy", "priority", "target", "category", "flags" ], "properties": { "name": { "type": "string", "description": "The internal name of the move." }, "type": { "type": "string", "enum": [ "normal", "fighting", "flying", "poison", "ground", "rock", "bug", "ghost", "steel", "fire", "water", "grass", "electric", "psychic", "ice", "dragon", "dark", "fairy", "divine" ] }, "power": { "type": "integer", "minimum": 0, "maximum": 255 }, "pp": { "type": "integer", "minimum": 0, "maximum": 255 }, "accuracy": { "type": "integer", "minimum": 0, "maximum": 255 }, "priority": { "type": "integer", "minimum": -127, "maximum": 128 }, "target": { "type": "string", "enum": [ "Adjacent", "AdjacentAlly", "AdjacentAllySelf", "AdjacentOpponent", "All", "AllAdjacent", "AllAdjacentOpponent", "AllAlly", "AllOpponent", "Any", "RandomOpponent", "Self" ] }, "category": { "type": "string", "enum": [ "physical", "special", "status" ] }, "flags": { "type": "array", "items": { "type": "string" } }, "effect": { "type": "object", "required": ["name"], "properties": { "name": { "type": "string" }, "chance": { "type": "number" }, "parameters": { "type": "array" } } } } } } } }