{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "title": "Move",
    "definitions": {
        "translations": {
            "type": "object",
            "properties": {
                "cz": {
                    "type": "string"
                },
                "dk": {
                    "type": "string"
                },
                "fr": {
                    "type": "string"
                },
                "de": {
                    "type": "string"
                },
                "gr": {
                    "type": "string"
                },
                "it": {
                    "type": "string"
                },
                "pl": {
                    "type": "string"
                },
                "tr": {
                    "type": "string"
                },
                "en": {
                    "type": "string"
                },
                "jp": {
                    "type": "string"
                },
                "es": {
                    "type": "string"
                }
            },
            "required": [
                "en",
                "de"
            ],
            "additionalProperties": false
        },
        "type": {
            "type": "string",
            "enum": [
                "Normal",
                "Fighting",
                "Flying",
                "Poison",
                "Ground",
                "Rock",
                "Bug",
                "Ghost",
                "Steel",
                "Fire",
                "Water",
                "Grass",
                "Electric",
                "Psychic",
                "Ice",
                "Dragon",
                "Dark",
                "Fairy"
            ]
        }
    },
    "properties": {
        "names": {
            "$ref": "#/definitions/translations"
        },
        "pokedex_entries": {
            "type": "object",
            "patternProperties": {
                "Red|Blue|Yellow|Gold|Silver|Crystal|Ruby|Sapphire|Emerald|FireRed|LeafGreen|Diamond|Pearl|Platinum|HeartGold|SoulSilver|Black|White|Black 2|White 2|X|Y|Omega Ruby|Alpha Sapphire|Sun|Moon|Ultra Sun|Ultra Moon|Let's Go Pikachu|Let's Go Eevee": {
                    "$ref": "#/definitions/translations"
                }
            },
            "additionalProperties": false
        },
        "index_number": {
            "type": "integer",
            "minimum": 0
        },
        "pp": {
            "type": "integer",
            "minimum": 0,
            "maximum": 40
        },
        "max_pp": {
            "type": "integer",
            "minimum": 0,
            "maximum": 64
        },
        "power": {
            "type": "integer",
            "minimum": 0,
            "maximum": 250
        },
        "accuracy": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
        },
        "type": {
            "$ref": "#/definitions/type"
        },
        "category": {
            "type": "string",
            "enum": [
                "physical",
                "status",
                "special",
                "varies"
            ]
        },
        "priority": {
            "type": "integer",
            "minimum": -7,
            "maximum": 7
        },
        "target": {
            "type": "string",
            "enum": [
                "target_adjacent_single",
                "target_adjacent_user_single",
                "target_user_or_adjacent_user",
                "user",
                "all_users",
                "all_adjacent",
                "adjacent_foes_all",
                "all_except_user",
                "all_foes",
                "all",
                "user_and_random_adjacent_foe"
            ]
        },
        "critical_hit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2
        },
        "makes_contact": {
            "type": "boolean"
        },
        "affected_by_protect": {
            "type": "boolean"
        },
        "affected_by_magic_coat": {
            "type": "boolean"
        },
        "affected_by_snatch": {
            "type": "boolean"
        },
        "affected_by_mirror_move": {
            "type": "boolean"
        },
        "affected_by_kings_rock": {
            "type": "boolean"
        },
        "in_battle_properties": {
            "type": "object",
            "properties": {
                "increased_critical_hit_ratio": {
                    "type": "boolean"
                },
                "status_conditions": {
                    "type": "array",
                    "maxItems": 5,
                    "items": {
                        "type": "object",
                        "properties": {
                            "condition": {
                                "type": "string",
                                "enum": [
                                    "burn",
                                    "freeze",
                                    "paralysis",
                                    "poison",
                                    "badly_poisoned",
                                    "sleep"
                                ]
                            },
                            "probability": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 100
                            }
                        },
                        "required": [
                            "condition",
                            "probability"
                        ],
                        "additionalProperties": false
                    }
                }
            },
            "additionalProperties": false
        },
        "stat_modifiers": {
            "type": "array",
            "maxItems": 5,
            "items": {
                "type": "object",
                "properties": {
                    "stat": {
                        "type": "string",
                        "enum": [
                            "random",
                            "atk",
                            "def",
                            "speed",
                            "sp_atk",
                            "sp_def",
                            "accuracy",
                            "evasion",
                            "critital_hit"
                        ]
                    },
                    "change_by": {
                        "type": "integer",
                        "minimum": -12,
                        "maximum": 12
                    },
                    "affects_user": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "stat",
                    "change_by"
                ],
                "additionalProperties": false
            }
        },
        "contests": {
            "type": "array",
            "maxItems": 3,
            "items": {
                "type": "object",
                "properties": {
                    "contest": {
                        "type": "string",
                        "enum": [
                            "Contests",
                            "Super Contests",
                            "Contest Spectaculars"
                        ]
                    },
                    "condition": {
                        "type": "string",
                        "enum": [
                            "Tough",
                            "Cute",
                            "Clever",
                            "Cool",
                            "Beautiful"
                        ]
                    },
                    "appeal": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                    },
                    "jam": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 5
                    }
                },
                "required": [
                    "contest",
                    "condition",
                    "appeal",
                    "jam"
                ],
                "additionalProperties": false
            }
        }
    },
    "required": [
        "index_number",
        "pp",
        "max_pp",
        "power",
        "accuracy",
        "type",
        "category",
        "priority",
        "target",
        "critical_hit",
        "makes_contact",
        "affected_by_protect",
        "affected_by_magic_coat",
        "affected_by_snatch",
        "affected_by_mirror_move",
        "affected_by_kings_rock",
        "names",
        "pokedex_entries",
        "contests"
    ],
    "additionalProperties": false
}