JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Spell",
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"name_en": {
"type": [
"string",
"null"
]
},
"level": {
"type": "integer",
"minimum": 0,
"maximum": 9
},
"school": {
"type": "string",
"enum": [
"Abjuration",
"Conjuration",
"Divination",
"Enchantment",
"Evocation",
"Illusion",
"Necromancy",
"Transmutation",
"Ограждения",
"Вызова",
"Прорицания",
"Очарования",
"Воплощения",
"Иллюзии",
"Некромантии",
"Преобразования"
]
},
"classes": {
"type": "array",
"items": {
"type": "string"
}
},
"casting_time": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"action",
"bonus_action",
"reaction",
"minute",
"hour",
"special"
]
},
"ritual": {
"type": "boolean"
},
"condition": {
"type": [
"string",
"null"
]
}
},
"required": [
"value",
"type",
"ritual",
"condition"
],
"additionalProperties": false
},
"range": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"self",
"touch",
"sight",
"unlimited",
"distance",
"special"
]
},
"distance_ft": {
"type": [
"integer",
"null"
]
},
"shape": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"cone",
"line",
"cube",
"sphere",
"hemisphere"
]
},
"size_ft": {
"type": "integer"
}
},
"required": [
"type",
"size_ft"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"value",
"type",
"distance_ft",
"shape"
],
"additionalProperties": false
},
"components": {
"type": "object",
"properties": {
"verbal": {
"type": "boolean"
},
"somatic": {
"type": "boolean"
},
"material": {
"type": "boolean"
},
"material_desc": {
"type": [
"string",
"null"
]
},
"material_cost_gp": {
"type": [
"number",
"null"
]
},
"material_consumed": {
"type": "boolean"
}
},
"required": [
"verbal",
"somatic",
"material",
"material_desc",
"material_cost_gp",
"material_consumed"
],
"additionalProperties": false
},
"duration": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"instantaneous",
"timed",
"until_dispelled",
"special"
]
},
"concentration": {
"type": "boolean"
}
},
"required": [
"value",
"type",
"concentration"
],
"additionalProperties": false
},
"description_md": {
"type": [
"string",
"null"
]
},
"higher_levels_md": {
"type": [
"string",
"null"
]
},
"cantrip_upgrade_md": {
"type": [
"string",
"null"
]
},
"has_stat_block": {
"type": "boolean"
}
},
"required": [
"slug",
"name",
"name_en",
"level",
"school",
"classes",
"casting_time",
"range",
"components",
"duration",
"description_md",
"higher_levels_md",
"cantrip_upgrade_md",
"has_stat_block"
],
"additionalProperties": false
}