{ "$schema": "http://json-schema.org/draft-06/schema#", "properties": { "allowsSpellResistance": { "type": "boolean" }, "area": { "oneOf":[ { "properties":{ "@type": {"enum": ["Line"]}, "distance": {"type": "integer"} } }, { "properties":{ "@type": {"enum": ["Emission"]}, "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]} } }, { "properties":{ "@type": {"enum": ["Sphere"]}, "radius": {"type": "integer"}, "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]}, "aroundYou": {"type": "boolean"} } }, { "properties":{ "@type": {"enum": ["Cylinder"]}, "radius": {"type": "integer"}, "height": {"type": "integer"} } } ] }, "castingTime": { "type": "string" }, "classToLevel": { "patternProperties": { "^.*$": {"type": "integer", "minimum":0, "maximum":9} }, "type": "object" }, "components": { "items": { "enum": ["V", "S", "M", "F", "DF", "M_DF", "F_DF", "XP"] }, "type": "array" }, "description": { "type": "string" }, "duration": { "oneOf":[ {"type": "string"}, { "dependencies":{ "per": ["step"] }, "properties":{ "duration": {"type": "integer"}, "per": {"type": "integer"}, "step": {"type": "integer"}, "unit":{ "enum": ["round", "minute", "hour", "day"] } }, "required": ["unit", "duration"], "type": "object", "additionalProperties": false } ] }, "effect": { "dependencies":{ "beyond":["per", "resolved"], "count":["resolved"], "per":["resolved"], "step":["per", "resolved"], "upto":["per", "resolved"] }, "properties": { "beyond": {"type": "integer"}, "count": {"type": "integer"}, "format": {"type": "string"}, "per": {"type": "integer"}, "resolved": {"type": "string"}, "step": {"type": "integer"}, "upto": {"type": "integer"} }, "required": ["format"], "type": "object", "additionalProperties": false }, "keywords": { "items": {"type": "string"}, "type": "array" }, "name": { "type": "string" }, "range": { "oneOf": [ { "enum": ["Touch", "Close", "Medium", "Long", "Unlimited"] }, { "dependencies": { "per": ["step"] }, "properties": { "name": {"type": "string"}, "range": {"type": "integer"}, "per": {"type": "integer"}, "step": {"type": "integer"} }, "type": "object", "required": ["name", "range"], "additionalProperties": false } ] }, "savingThrow": { "type": "string" }, "school": { "type": "string" }, "subSchool": { "type": "string" }, "target": { "oneOf":[ { "type": "string" }, { "properties": { "count": {"type": "integer"}, "format": {"type": "string"}, "per": {"type": "integer"}, "resolved": {"type": "string"}, "step": {"type": "integer"} }, "required": ["format", "resolved", "count", "per", "step"], "type": "object", "additionalProperties": false } ] } }, "required": [ "school", "name", "description", "castingTime", "effect", "classToLevel", "duration", "range", "components", "keywords", "savingThrow" ], "type": "object" }