diff --git a/pokemon.schema.json b/pokemon.schema.json index fc22fbb..ee3c44f 100644 --- a/pokemon.schema.json +++ b/pokemon.schema.json @@ -256,17 +256,87 @@ "type": "array", "items": { "type": "object", + "required": ["species", "method", "data"], "properties": { "species": { "type": "string" }, "method": { - "type": "string" - }, - "data": { - "type": "string" + "type": "string", + "enum": [ + "level", + "item", + "itemmale", + "itemfemale", + "holditem", + "dayholditem", + "nightholditem", + "hasmove", + "happiness", + "happinessday", + "happinessnight", + "levelfemale", + "levelmale", + "trade", + "tradespecies", + "tradeitem", + "location", + "custom" + ] } - } + }, + "anyOf": [ + { + "properties": { + "method": { + "enum": [ + "level", + "levelfemale", + "levelmale", + "happiness", + "happinessday", + "happinessnight" + ] + }, + "data": { + "type": "integer" + } + } + }, + { + "properties": { + "method": { + "enum": [ + "item", + "itemmale", + "itemfemale", + "holditem", + "dayholditem", + "nightholditem", + "hasmove", + "trade", + "tradespecies", + "tradeitem", + "location" + ] + }, + "data": { + "type": "string" + } + } + }, + { + "properties": { + "method": { "enum": ["custom"] }, + "data": { + "type": "array", + "items": [ + {"type": "string", "description": "Method identifier"} + ] + } + } + } + ] } } }