diff --git a/moves.schema.json b/moves.schema.json new file mode 100644 index 0000000..c66ba3a --- /dev/null +++ b/moves.schema.json @@ -0,0 +1,123 @@ +{ + "$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" + } + } + } + } + } + } + } +}