5etools-utils 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/package.json +3 -2
  2. package/schema/brew/actions.json +109 -0
  3. package/schema/brew/adventure/adventure.json +12 -0
  4. package/schema/brew/adventures.json +249 -0
  5. package/schema/brew/backgrounds.json +425 -0
  6. package/schema/brew/bestiary/bestiary.json +3766 -0
  7. package/schema/brew/bestiary/fluff-bestiary.json +15 -0
  8. package/schema/brew/bestiary/foundry.json +15 -0
  9. package/schema/brew/bestiary/legendarygroups.json +202 -0
  10. package/schema/brew/bestiary/traits.json +85 -0
  11. package/schema/brew/book/book.json +12 -0
  12. package/schema/brew/books.json +137 -0
  13. package/schema/brew/charcreationoptions.json +96 -0
  14. package/schema/brew/class/class.json +2059 -0
  15. package/schema/brew/class/foundry.json +373 -0
  16. package/schema/brew/conditionsdiseases.json +103 -0
  17. package/schema/brew/cultsboons.json +196 -0
  18. package/schema/brew/deities.json +482 -0
  19. package/schema/brew/encounters.json +99 -0
  20. package/schema/brew/entry.json +3538 -0
  21. package/schema/brew/feats.json +215 -0
  22. package/schema/brew/fluff-backgrounds.json +15 -0
  23. package/schema/brew/fluff-charcreationoptions.json +43 -0
  24. package/schema/brew/fluff-conditionsdiseases.json +43 -0
  25. package/schema/brew/fluff-feats.json +15 -0
  26. package/schema/brew/fluff-items.json +15 -0
  27. package/schema/brew/fluff-languages.json +42 -0
  28. package/schema/brew/fluff-objects.json +15 -0
  29. package/schema/brew/fluff-races.json +214 -0
  30. package/schema/brew/fluff-recipes.json +42 -0
  31. package/schema/brew/fluff-vehicles.json +63 -0
  32. package/schema/brew/foundry-actions.json +15 -0
  33. package/schema/brew/foundry-backgrounds.json +47 -0
  34. package/schema/brew/foundry-feats.json +15 -0
  35. package/schema/brew/foundry-items.json +57 -0
  36. package/schema/brew/foundry-optionalfeatures.json +15 -0
  37. package/schema/brew/foundry-psionics.json +50 -0
  38. package/schema/brew/foundry-races.json +52 -0
  39. package/schema/brew/foundry-rewards.json +15 -0
  40. package/schema/brew/foundry-vehicles.json +15 -0
  41. package/schema/brew/generated/bookref-quick.json +72 -0
  42. package/schema/brew/homebrew.json +564 -0
  43. package/schema/brew/items-base.json +460 -0
  44. package/schema/brew/items-shared.json +295 -0
  45. package/schema/brew/items.json +1866 -0
  46. package/schema/brew/languages.json +127 -0
  47. package/schema/brew/loot.json +510 -0
  48. package/schema/brew/magicvariants.json +387 -0
  49. package/schema/brew/makebrew-creature.json +40 -0
  50. package/schema/brew/makecards.json +43 -0
  51. package/schema/brew/monsterfeatures.json +53 -0
  52. package/schema/brew/msbcr.json +60 -0
  53. package/schema/brew/names.json +91 -0
  54. package/schema/brew/objects.json +172 -0
  55. package/schema/brew/optionalfeatures.json +139 -0
  56. package/schema/brew/psionics.json +185 -0
  57. package/schema/brew/races.json +1799 -0
  58. package/schema/brew/recipes.json +191 -0
  59. package/schema/brew/renderdemo.json +16 -0
  60. package/schema/brew/rewards.json +102 -0
  61. package/schema/brew/senses.json +54 -0
  62. package/schema/brew/skills.json +54 -0
  63. package/schema/brew/spells/fluff-spells.json +15 -0
  64. package/schema/brew/spells/foundry.json +15 -0
  65. package/schema/brew/spells/roll20.json +112 -0
  66. package/schema/brew/spells/spells.json +1841 -0
  67. package/schema/brew/tables.json +202 -0
  68. package/schema/brew/trapshazards.json +249 -0
  69. package/schema/brew/util.json +3867 -0
  70. package/schema/brew/variantrules.json +74 -0
  71. package/schema/brew/vehicles.json +854 -0
  72. package/schema/brew-fast/actions.json +109 -0
  73. package/schema/brew-fast/adventure/adventure.json +12 -0
  74. package/schema/brew-fast/adventures.json +249 -0
  75. package/schema/brew-fast/backgrounds.json +425 -0
  76. package/schema/brew-fast/bestiary/bestiary.json +3766 -0
  77. package/schema/brew-fast/bestiary/fluff-bestiary.json +15 -0
  78. package/schema/brew-fast/bestiary/foundry.json +15 -0
  79. package/schema/brew-fast/bestiary/legendarygroups.json +202 -0
  80. package/schema/brew-fast/bestiary/traits.json +85 -0
  81. package/schema/brew-fast/book/book.json +12 -0
  82. package/schema/brew-fast/books.json +137 -0
  83. package/schema/brew-fast/charcreationoptions.json +96 -0
  84. package/schema/brew-fast/class/class.json +2059 -0
  85. package/schema/brew-fast/class/foundry.json +373 -0
  86. package/schema/brew-fast/conditionsdiseases.json +103 -0
  87. package/schema/brew-fast/cultsboons.json +196 -0
  88. package/schema/brew-fast/deities.json +482 -0
  89. package/schema/brew-fast/encounters.json +99 -0
  90. package/schema/brew-fast/entry.json +3538 -0
  91. package/schema/brew-fast/feats.json +215 -0
  92. package/schema/brew-fast/fluff-backgrounds.json +15 -0
  93. package/schema/brew-fast/fluff-charcreationoptions.json +43 -0
  94. package/schema/brew-fast/fluff-conditionsdiseases.json +43 -0
  95. package/schema/brew-fast/fluff-feats.json +15 -0
  96. package/schema/brew-fast/fluff-items.json +15 -0
  97. package/schema/brew-fast/fluff-languages.json +42 -0
  98. package/schema/brew-fast/fluff-objects.json +15 -0
  99. package/schema/brew-fast/fluff-races.json +214 -0
  100. package/schema/brew-fast/fluff-recipes.json +42 -0
  101. package/schema/brew-fast/fluff-vehicles.json +63 -0
  102. package/schema/brew-fast/foundry-actions.json +15 -0
  103. package/schema/brew-fast/foundry-backgrounds.json +47 -0
  104. package/schema/brew-fast/foundry-feats.json +15 -0
  105. package/schema/brew-fast/foundry-items.json +57 -0
  106. package/schema/brew-fast/foundry-optionalfeatures.json +15 -0
  107. package/schema/brew-fast/foundry-psionics.json +50 -0
  108. package/schema/brew-fast/foundry-races.json +52 -0
  109. package/schema/brew-fast/foundry-rewards.json +15 -0
  110. package/schema/brew-fast/foundry-vehicles.json +15 -0
  111. package/schema/brew-fast/generated/bookref-quick.json +72 -0
  112. package/schema/brew-fast/homebrew.json +562 -0
  113. package/schema/brew-fast/items-base.json +460 -0
  114. package/schema/brew-fast/items-shared.json +295 -0
  115. package/schema/brew-fast/items.json +1866 -0
  116. package/schema/brew-fast/languages.json +127 -0
  117. package/schema/brew-fast/loot.json +510 -0
  118. package/schema/brew-fast/magicvariants.json +387 -0
  119. package/schema/brew-fast/makebrew-creature.json +40 -0
  120. package/schema/brew-fast/makecards.json +43 -0
  121. package/schema/brew-fast/monsterfeatures.json +53 -0
  122. package/schema/brew-fast/msbcr.json +60 -0
  123. package/schema/brew-fast/names.json +91 -0
  124. package/schema/brew-fast/objects.json +172 -0
  125. package/schema/brew-fast/optionalfeatures.json +139 -0
  126. package/schema/brew-fast/psionics.json +185 -0
  127. package/schema/brew-fast/races.json +1799 -0
  128. package/schema/brew-fast/recipes.json +191 -0
  129. package/schema/brew-fast/renderdemo.json +16 -0
  130. package/schema/brew-fast/rewards.json +102 -0
  131. package/schema/brew-fast/senses.json +54 -0
  132. package/schema/brew-fast/skills.json +54 -0
  133. package/schema/brew-fast/spells/fluff-spells.json +15 -0
  134. package/schema/brew-fast/spells/foundry.json +15 -0
  135. package/schema/brew-fast/spells/roll20.json +112 -0
  136. package/schema/brew-fast/spells/spells.json +1841 -0
  137. package/schema/brew-fast/tables.json +202 -0
  138. package/schema/brew-fast/trapshazards.json +249 -0
  139. package/schema/brew-fast/util.json +3867 -0
  140. package/schema/brew-fast/variantrules.json +74 -0
  141. package/schema/brew-fast/vehicles.json +854 -0
  142. package/schema/site/actions.json +97 -0
  143. package/schema/site/adventure/adventure.json +12 -0
  144. package/schema/site/adventures.json +211 -0
  145. package/schema/site/backgrounds.json +306 -0
  146. package/schema/site/bestiary/bestiary.json +3537 -0
  147. package/schema/site/bestiary/fluff-bestiary.json +15 -0
  148. package/schema/site/bestiary/foundry.json +15 -0
  149. package/schema/site/bestiary/legendarygroups.json +202 -0
  150. package/schema/site/bestiary/traits.json +85 -0
  151. package/schema/site/book/book.json +12 -0
  152. package/schema/site/books.json +137 -0
  153. package/schema/site/charcreationoptions.json +80 -0
  154. package/schema/site/class/class.json +1792 -0
  155. package/schema/site/class/foundry.json +373 -0
  156. package/schema/site/conditionsdiseases.json +82 -0
  157. package/schema/site/cultsboons.json +172 -0
  158. package/schema/site/deities.json +461 -0
  159. package/schema/site/encounters.json +99 -0
  160. package/schema/site/entry.json +3471 -0
  161. package/schema/site/feats.json +199 -0
  162. package/schema/site/fluff-backgrounds.json +15 -0
  163. package/schema/site/fluff-charcreationoptions.json +43 -0
  164. package/schema/site/fluff-conditionsdiseases.json +43 -0
  165. package/schema/site/fluff-feats.json +15 -0
  166. package/schema/site/fluff-items.json +15 -0
  167. package/schema/site/fluff-languages.json +42 -0
  168. package/schema/site/fluff-objects.json +15 -0
  169. package/schema/site/fluff-races.json +214 -0
  170. package/schema/site/fluff-recipes.json +42 -0
  171. package/schema/site/fluff-vehicles.json +63 -0
  172. package/schema/site/foundry-actions.json +15 -0
  173. package/schema/site/foundry-backgrounds.json +47 -0
  174. package/schema/site/foundry-feats.json +15 -0
  175. package/schema/site/foundry-items.json +57 -0
  176. package/schema/site/foundry-optionalfeatures.json +15 -0
  177. package/schema/site/foundry-psionics.json +50 -0
  178. package/schema/site/foundry-races.json +52 -0
  179. package/schema/site/foundry-rewards.json +15 -0
  180. package/schema/site/foundry-vehicles.json +15 -0
  181. package/schema/site/generated/bookref-quick.json +72 -0
  182. package/schema/site/homebrew.json +564 -0
  183. package/schema/site/items-base.json +425 -0
  184. package/schema/site/items-shared.json +259 -0
  185. package/schema/site/items.json +1722 -0
  186. package/schema/site/languages.json +120 -0
  187. package/schema/site/loot.json +510 -0
  188. package/schema/site/magicvariants.json +355 -0
  189. package/schema/site/makebrew-creature.json +39 -0
  190. package/schema/site/makecards.json +43 -0
  191. package/schema/site/monsterfeatures.json +53 -0
  192. package/schema/site/msbcr.json +60 -0
  193. package/schema/site/names.json +91 -0
  194. package/schema/site/objects.json +165 -0
  195. package/schema/site/optionalfeatures.json +127 -0
  196. package/schema/site/psionics.json +173 -0
  197. package/schema/site/races.json +1708 -0
  198. package/schema/site/recipes.json +185 -0
  199. package/schema/site/renderdemo.json +16 -0
  200. package/schema/site/rewards.json +90 -0
  201. package/schema/site/senses.json +54 -0
  202. package/schema/site/skills.json +54 -0
  203. package/schema/site/spells/fluff-spells.json +15 -0
  204. package/schema/site/spells/foundry.json +15 -0
  205. package/schema/site/spells/roll20.json +112 -0
  206. package/schema/site/spells/spells.json +1238 -0
  207. package/schema/site/tables.json +185 -0
  208. package/schema/site/trapshazards.json +227 -0
  209. package/schema/site/util.json +3857 -0
  210. package/schema/site/variantrules.json +71 -0
  211. package/schema/site/vehicles.json +807 -0
  212. package/schema/site-fast/actions.json +97 -0
  213. package/schema/site-fast/adventure/adventure.json +12 -0
  214. package/schema/site-fast/adventures.json +211 -0
  215. package/schema/site-fast/backgrounds.json +306 -0
  216. package/schema/site-fast/bestiary/bestiary.json +3537 -0
  217. package/schema/site-fast/bestiary/fluff-bestiary.json +15 -0
  218. package/schema/site-fast/bestiary/foundry.json +15 -0
  219. package/schema/site-fast/bestiary/legendarygroups.json +202 -0
  220. package/schema/site-fast/bestiary/traits.json +85 -0
  221. package/schema/site-fast/book/book.json +12 -0
  222. package/schema/site-fast/books.json +137 -0
  223. package/schema/site-fast/charcreationoptions.json +80 -0
  224. package/schema/site-fast/class/class.json +1792 -0
  225. package/schema/site-fast/class/foundry.json +373 -0
  226. package/schema/site-fast/conditionsdiseases.json +82 -0
  227. package/schema/site-fast/cultsboons.json +172 -0
  228. package/schema/site-fast/deities.json +461 -0
  229. package/schema/site-fast/encounters.json +99 -0
  230. package/schema/site-fast/entry.json +3471 -0
  231. package/schema/site-fast/feats.json +199 -0
  232. package/schema/site-fast/fluff-backgrounds.json +15 -0
  233. package/schema/site-fast/fluff-charcreationoptions.json +43 -0
  234. package/schema/site-fast/fluff-conditionsdiseases.json +43 -0
  235. package/schema/site-fast/fluff-feats.json +15 -0
  236. package/schema/site-fast/fluff-items.json +15 -0
  237. package/schema/site-fast/fluff-languages.json +42 -0
  238. package/schema/site-fast/fluff-objects.json +15 -0
  239. package/schema/site-fast/fluff-races.json +214 -0
  240. package/schema/site-fast/fluff-recipes.json +42 -0
  241. package/schema/site-fast/fluff-vehicles.json +63 -0
  242. package/schema/site-fast/foundry-actions.json +15 -0
  243. package/schema/site-fast/foundry-backgrounds.json +47 -0
  244. package/schema/site-fast/foundry-feats.json +15 -0
  245. package/schema/site-fast/foundry-items.json +57 -0
  246. package/schema/site-fast/foundry-optionalfeatures.json +15 -0
  247. package/schema/site-fast/foundry-psionics.json +50 -0
  248. package/schema/site-fast/foundry-races.json +52 -0
  249. package/schema/site-fast/foundry-rewards.json +15 -0
  250. package/schema/site-fast/foundry-vehicles.json +15 -0
  251. package/schema/site-fast/generated/bookref-quick.json +72 -0
  252. package/schema/site-fast/homebrew.json +562 -0
  253. package/schema/site-fast/items-base.json +425 -0
  254. package/schema/site-fast/items-shared.json +259 -0
  255. package/schema/site-fast/items.json +1722 -0
  256. package/schema/site-fast/languages.json +120 -0
  257. package/schema/site-fast/loot.json +510 -0
  258. package/schema/site-fast/magicvariants.json +355 -0
  259. package/schema/site-fast/makebrew-creature.json +39 -0
  260. package/schema/site-fast/makecards.json +43 -0
  261. package/schema/site-fast/monsterfeatures.json +53 -0
  262. package/schema/site-fast/msbcr.json +60 -0
  263. package/schema/site-fast/names.json +91 -0
  264. package/schema/site-fast/objects.json +165 -0
  265. package/schema/site-fast/optionalfeatures.json +127 -0
  266. package/schema/site-fast/psionics.json +173 -0
  267. package/schema/site-fast/races.json +1708 -0
  268. package/schema/site-fast/recipes.json +185 -0
  269. package/schema/site-fast/renderdemo.json +16 -0
  270. package/schema/site-fast/rewards.json +90 -0
  271. package/schema/site-fast/senses.json +54 -0
  272. package/schema/site-fast/skills.json +54 -0
  273. package/schema/site-fast/spells/fluff-spells.json +15 -0
  274. package/schema/site-fast/spells/foundry.json +15 -0
  275. package/schema/site-fast/spells/roll20.json +112 -0
  276. package/schema/site-fast/spells/spells.json +1238 -0
  277. package/schema/site-fast/tables.json +185 -0
  278. package/schema/site-fast/trapshazards.json +227 -0
  279. package/schema/site-fast/util.json +3857 -0
  280. package/schema/site-fast/variantrules.json +71 -0
  281. package/schema/site-fast/vehicles.json +807 -0
@@ -0,0 +1,1841 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "spells.json",
4
+ "version": "1.9.1",
5
+ "title": "Spells",
6
+ "type": "object",
7
+ "$defs": {
8
+ "spellData": {
9
+ "type": "object",
10
+ "properties": {
11
+ "name": {
12
+ "type": "string"
13
+ },
14
+ "level": {
15
+ "type": "integer"
16
+ },
17
+ "school": {
18
+ "type": "string",
19
+ "examples": [
20
+ "A",
21
+ "V",
22
+ "E",
23
+ "I",
24
+ "D",
25
+ "N",
26
+ "T",
27
+ "C",
28
+ "P"
29
+ ]
30
+ },
31
+ "meta": {
32
+ "type": "object",
33
+ "properties": {
34
+ "ritual": {
35
+ "type": "boolean"
36
+ },
37
+ "technomagic": {
38
+ "type": "boolean"
39
+ }
40
+ },
41
+ "additionalProperties": false
42
+ },
43
+ "time": {
44
+ "type": "array",
45
+ "items": {
46
+ "$ref": "#/$defs/time"
47
+ }
48
+ },
49
+ "range": {
50
+ "type": "object",
51
+ "properties": {
52
+ "type": {
53
+ "type": "string",
54
+ "enum": [
55
+ "special",
56
+ "point",
57
+ "line",
58
+ "cube",
59
+ "cone",
60
+ "radius",
61
+ "sphere",
62
+ "hemisphere",
63
+ "cylinder"
64
+ ]
65
+ },
66
+ "distance": {
67
+ "type": "object",
68
+ "properties": {
69
+ "type": {
70
+ "type": "string",
71
+ "examples": [
72
+ "feet",
73
+ "miles",
74
+ "self",
75
+ "touch",
76
+ "unlimited",
77
+ "plane",
78
+ "sight"
79
+ ]
80
+ },
81
+ "amount": {
82
+ "type": "integer"
83
+ },
84
+ "typeSecondary": {
85
+ "description": "Homebrew only",
86
+ "type": "string",
87
+ "examples": [
88
+ "feet",
89
+ "miles",
90
+ "self",
91
+ "touch",
92
+ "unlimited",
93
+ "plane",
94
+ "sight"
95
+ ]
96
+ },
97
+ "amountSecondary": {
98
+ "description": "Homebrew only",
99
+ "type": "integer"
100
+ }
101
+ },
102
+ "required": [
103
+ "type"
104
+ ],
105
+ "additionalProperties": false
106
+ }
107
+ },
108
+ "required": [
109
+ "type"
110
+ ],
111
+ "additionalProperties": false
112
+ },
113
+ "components": {
114
+ "type": "object",
115
+ "properties": {
116
+ "v": {
117
+ "type": "boolean"
118
+ },
119
+ "s": {
120
+ "type": "boolean"
121
+ },
122
+ "m": {
123
+ "oneOf": [
124
+ {
125
+ "type": "object",
126
+ "properties": {
127
+ "text": {
128
+ "type": "string"
129
+ },
130
+ "cost": {
131
+ "description": "In copper pieces.",
132
+ "type": "number"
133
+ },
134
+ "consume": {
135
+ "oneOf": [
136
+ {
137
+ "type": "boolean"
138
+ },
139
+ {
140
+ "type": "string",
141
+ "const": "optional"
142
+ }
143
+ ]
144
+ }
145
+ },
146
+ "required": [
147
+ "text"
148
+ ],
149
+ "additionalProperties": false
150
+ },
151
+ {
152
+ "type": [
153
+ "boolean",
154
+ "string"
155
+ ]
156
+ }
157
+ ]
158
+ },
159
+ "r": {
160
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
161
+ "type": "boolean"
162
+ }
163
+ },
164
+ "additionalProperties": false
165
+ },
166
+ "duration": {
167
+ "type": "array",
168
+ "items": {
169
+ "$ref": "#/$defs/duration"
170
+ }
171
+ },
172
+ "entries": {
173
+ "type": "array",
174
+ "items": {
175
+ "$ref": "../entry.json"
176
+ }
177
+ },
178
+ "entriesHigherLevel": {
179
+ "type": "array",
180
+ "items": {
181
+ "$ref": "../entry.json"
182
+ }
183
+ },
184
+ "source": {
185
+ "type": "string"
186
+ },
187
+ "page": {
188
+ "$ref": "../util.json#/$defs/page"
189
+ },
190
+ "additionalSources": {
191
+ "$ref": "../util.json#/$defs/additionalSources"
192
+ },
193
+ "otherSources": {
194
+ "$ref": "../util.json#/$defs/otherSources"
195
+ },
196
+ "damageInflict": {
197
+ "type": "array",
198
+ "uniqueItems": true,
199
+ "items": {
200
+ "$ref": "../util.json#/$defs/dataDamageType"
201
+ }
202
+ },
203
+ "damageResist": {
204
+ "type": "array",
205
+ "minItems": 1,
206
+ "uniqueItems": true,
207
+ "items": {
208
+ "$ref": "../util.json#/$defs/dataDamageType"
209
+ }
210
+ },
211
+ "damageImmune": {
212
+ "type": "array",
213
+ "minItems": 1,
214
+ "uniqueItems": true,
215
+ "items": {
216
+ "$ref": "../util.json#/$defs/dataDamageType"
217
+ }
218
+ },
219
+ "damageVulnerable": {
220
+ "type": "array",
221
+ "minItems": 1,
222
+ "uniqueItems": true,
223
+ "items": {
224
+ "$ref": "../util.json#/$defs/dataDamageType"
225
+ }
226
+ },
227
+ "conditionInflict": {
228
+ "$ref": "../util.json#/$defs/tagsConditions"
229
+ },
230
+ "conditionImmune": {
231
+ "$ref": "../util.json#/$defs/tagsConditions"
232
+ },
233
+ "savingThrow": {
234
+ "type": "array",
235
+ "minItems": 1,
236
+ "uniqueItems": true,
237
+ "items": {
238
+ "type": "string",
239
+ "enum": [
240
+ "strength",
241
+ "constitution",
242
+ "dexterity",
243
+ "intelligence",
244
+ "wisdom",
245
+ "charisma"
246
+ ]
247
+ }
248
+ },
249
+ "abilityCheck": {
250
+ "type": "array",
251
+ "minItems": 1,
252
+ "uniqueItems": true,
253
+ "items": {
254
+ "type": "string",
255
+ "enum": [
256
+ "strength",
257
+ "constitution",
258
+ "dexterity",
259
+ "intelligence",
260
+ "wisdom",
261
+ "charisma"
262
+ ]
263
+ }
264
+ },
265
+ "spellAttack": {
266
+ "type": "array",
267
+ "minItems": 1,
268
+ "uniqueItems": true,
269
+ "items": {
270
+ "type": "string",
271
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
272
+ "enum": [
273
+ "M",
274
+ "R",
275
+ "O"
276
+ ]
277
+ }
278
+ },
279
+ "areaTags": {
280
+ "description": "By convention, only the effects of the spell cast at its base level are considered when populating these.\n C: Cube\n H: Hemisphere\n L: Line\n MT: Multiple Targets\n N: Cone\n Q: Square\n R: Circle\n ST: Single Target\n S: Sphere\n W: Wall\n Y: Cylinder",
281
+ "type": "array",
282
+ "minItems": 1,
283
+ "uniqueItems": true,
284
+ "items": {
285
+ "type": "string",
286
+ "enum": [
287
+ "ST",
288
+ "MT",
289
+ "R",
290
+ "N",
291
+ "C",
292
+ "Y",
293
+ "H",
294
+ "L",
295
+ "S",
296
+ "Q",
297
+ "W"
298
+ ]
299
+ }
300
+ },
301
+ "miscTags": {
302
+ "type": "array",
303
+ "description": "FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n PRM: Permanent Effects\n PS: Plane Shifting\nRO: Rollable Effects\n SCL: Scaling Effects\n SMN: Summons Creature\n SGT: Requires Sight\n THP: Grants Temporary Hit Points\n TP: Teleportation\n UBA: Uses Bonus Action",
304
+ "minItems": 1,
305
+ "uniqueItems": true,
306
+ "items": {
307
+ "type": "string",
308
+ "enum": [
309
+ "FMV",
310
+ "HL",
311
+ "LGT",
312
+ "LGTS",
313
+ "MAC",
314
+ "PRM",
315
+ "PS",
316
+ "RO",
317
+ "SCL",
318
+ "SMN",
319
+ "SGT",
320
+ "THP",
321
+ "TP",
322
+ "UBA"
323
+ ]
324
+ }
325
+ },
326
+ "affectsCreatureType": {
327
+ "type": "array",
328
+ "minItems": 1,
329
+ "uniqueItems": true,
330
+ "items": {
331
+ "$ref": "../util.json#/$defs/creatureType"
332
+ }
333
+ },
334
+ "srd": {
335
+ "$ref": "../util.json#/$defs/srd"
336
+ },
337
+ "basicRules": {
338
+ "$ref": "../util.json#/$defs/basicRules"
339
+ },
340
+ "scalingLevelDice": {
341
+ "oneOf": [
342
+ {
343
+ "type": "array",
344
+ "items": {
345
+ "$ref": "#/$defs/scalingLevelDiceItem"
346
+ }
347
+ },
348
+ {
349
+ "$ref": "#/$defs/scalingLevelDiceItem"
350
+ }
351
+ ]
352
+ },
353
+ "hasFluff": {
354
+ "type": "boolean"
355
+ },
356
+ "hasFluffImages": {
357
+ "type": "boolean"
358
+ },
359
+ "classes": {
360
+ "type": "object",
361
+ "properties": {
362
+ "fromClassList": {
363
+ "type": "array",
364
+ "items": {
365
+ "$ref": "#/$defs/class"
366
+ },
367
+ "minItems": 1,
368
+ "uniqueItems": true
369
+ },
370
+ "fromClassListVariant": {
371
+ "type": "array",
372
+ "items": {
373
+ "$ref": "#/$defs/class"
374
+ },
375
+ "minItems": 1,
376
+ "uniqueItems": true
377
+ },
378
+ "fromSubclass": {
379
+ "type": "array",
380
+ "items": {
381
+ "type": "object",
382
+ "properties": {
383
+ "class": {
384
+ "$ref": "#/$defs/class"
385
+ },
386
+ "subclass": {
387
+ "type": "object",
388
+ "properties": {
389
+ "name": {
390
+ "type": "string"
391
+ },
392
+ "shortName": {
393
+ "type": "string"
394
+ },
395
+ "source": {
396
+ "type": "string"
397
+ },
398
+ "subSubclass": {
399
+ "type": "string"
400
+ }
401
+ },
402
+ "required": [
403
+ "name",
404
+ "shortName",
405
+ "source"
406
+ ],
407
+ "additionalProperties": false
408
+ }
409
+ },
410
+ "required": [
411
+ "class",
412
+ "subclass"
413
+ ],
414
+ "additionalProperties": false
415
+ },
416
+ "minItems": 1,
417
+ "uniqueItems": true
418
+ }
419
+ },
420
+ "additionalProperties": false
421
+ },
422
+ "races": {
423
+ "type": "array",
424
+ "items": {
425
+ "type": "object",
426
+ "properties": {
427
+ "name": {
428
+ "type": "string"
429
+ },
430
+ "source": {
431
+ "type": "string"
432
+ },
433
+ "baseName": {
434
+ "type": "string"
435
+ },
436
+ "baseSource": {
437
+ "type": "string"
438
+ }
439
+ },
440
+ "required": [
441
+ "name",
442
+ "source"
443
+ ]
444
+ },
445
+ "minItems": 1,
446
+ "uniqueItems": true
447
+ },
448
+ "backgrounds": {
449
+ "type": "array",
450
+ "items": {
451
+ "type": "object",
452
+ "properties": {
453
+ "name": {
454
+ "type": "string"
455
+ },
456
+ "source": {
457
+ "type": "string"
458
+ }
459
+ },
460
+ "required": [
461
+ "name",
462
+ "source"
463
+ ]
464
+ },
465
+ "minItems": 1,
466
+ "uniqueItems": true
467
+ },
468
+ "optionalfeatures": {
469
+ "type": "array",
470
+ "items": {
471
+ "type": "object",
472
+ "properties": {
473
+ "name": {
474
+ "type": "string"
475
+ },
476
+ "source": {
477
+ "type": "string"
478
+ },
479
+ "featureType": {
480
+ "type": "array",
481
+ "items": {
482
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
483
+ },
484
+ "uniqueItems": true
485
+ }
486
+ },
487
+ "required": [
488
+ "name",
489
+ "source"
490
+ ]
491
+ },
492
+ "minItems": 1,
493
+ "uniqueItems": true
494
+ },
495
+ "feats": {
496
+ "type": "array",
497
+ "items": {
498
+ "type": "object",
499
+ "properties": {
500
+ "name": {
501
+ "type": "string"
502
+ },
503
+ "source": {
504
+ "type": "string"
505
+ }
506
+ },
507
+ "required": [
508
+ "name",
509
+ "source"
510
+ ]
511
+ },
512
+ "minItems": 1,
513
+ "uniqueItems": true
514
+ },
515
+ "subschools": {
516
+ "description": "For homebrew use only.",
517
+ "type": "array",
518
+ "items": {
519
+ "type": "string"
520
+ },
521
+ "minItems": 1,
522
+ "uniqueItems": true
523
+ },
524
+ "fluff": {
525
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
526
+ "$ref": "../util.json#/$defs/fluffObject"
527
+ },
528
+ "roll20Spell": {
529
+ "$ref": "roll20.json#/properties/spell"
530
+ },
531
+ "foundrySystem": {
532
+ "$ref": "../util.json#/$defs/foundrySystemObject"
533
+ },
534
+ "foundryFlags": {
535
+ "$ref": "../util.json#/$defs/foundryFlagsObject"
536
+ },
537
+ "foundryEffects": {
538
+ "$ref": "../util.json#/$defs/foundryEffectsArray"
539
+ },
540
+ "foundryImg": {
541
+ "$ref": "../util.json#/$defs/foundryImg"
542
+ }
543
+ },
544
+ "additionalProperties": false
545
+ },
546
+ "spell": {
547
+ "anyOf": [
548
+ {
549
+ "type": "object",
550
+ "properties": {
551
+ "name": {
552
+ "type": "string"
553
+ },
554
+ "level": {
555
+ "type": "integer"
556
+ },
557
+ "school": {
558
+ "type": "string",
559
+ "examples": [
560
+ "A",
561
+ "V",
562
+ "E",
563
+ "I",
564
+ "D",
565
+ "N",
566
+ "T",
567
+ "C",
568
+ "P"
569
+ ]
570
+ },
571
+ "meta": {
572
+ "type": "object",
573
+ "properties": {
574
+ "ritual": {
575
+ "type": "boolean"
576
+ },
577
+ "technomagic": {
578
+ "type": "boolean"
579
+ }
580
+ },
581
+ "additionalProperties": false
582
+ },
583
+ "time": {
584
+ "type": "array",
585
+ "items": {
586
+ "$ref": "#/$defs/time"
587
+ }
588
+ },
589
+ "range": {
590
+ "type": "object",
591
+ "properties": {
592
+ "type": {
593
+ "type": "string",
594
+ "enum": [
595
+ "special",
596
+ "point",
597
+ "line",
598
+ "cube",
599
+ "cone",
600
+ "radius",
601
+ "sphere",
602
+ "hemisphere",
603
+ "cylinder"
604
+ ]
605
+ },
606
+ "distance": {
607
+ "type": "object",
608
+ "properties": {
609
+ "type": {
610
+ "type": "string",
611
+ "examples": [
612
+ "feet",
613
+ "miles",
614
+ "self",
615
+ "touch",
616
+ "unlimited",
617
+ "plane",
618
+ "sight"
619
+ ]
620
+ },
621
+ "amount": {
622
+ "type": "integer"
623
+ },
624
+ "typeSecondary": {
625
+ "description": "Homebrew only",
626
+ "type": "string",
627
+ "examples": [
628
+ "feet",
629
+ "miles",
630
+ "self",
631
+ "touch",
632
+ "unlimited",
633
+ "plane",
634
+ "sight"
635
+ ]
636
+ },
637
+ "amountSecondary": {
638
+ "description": "Homebrew only",
639
+ "type": "integer"
640
+ }
641
+ },
642
+ "required": [
643
+ "type"
644
+ ],
645
+ "additionalProperties": false
646
+ }
647
+ },
648
+ "required": [
649
+ "type"
650
+ ],
651
+ "additionalProperties": false
652
+ },
653
+ "components": {
654
+ "type": "object",
655
+ "properties": {
656
+ "v": {
657
+ "type": "boolean"
658
+ },
659
+ "s": {
660
+ "type": "boolean"
661
+ },
662
+ "m": {
663
+ "oneOf": [
664
+ {
665
+ "type": "object",
666
+ "properties": {
667
+ "text": {
668
+ "type": "string"
669
+ },
670
+ "cost": {
671
+ "description": "In copper pieces.",
672
+ "type": "number"
673
+ },
674
+ "consume": {
675
+ "oneOf": [
676
+ {
677
+ "type": "boolean"
678
+ },
679
+ {
680
+ "type": "string",
681
+ "const": "optional"
682
+ }
683
+ ]
684
+ }
685
+ },
686
+ "required": [
687
+ "text"
688
+ ],
689
+ "additionalProperties": false
690
+ },
691
+ {
692
+ "type": [
693
+ "boolean",
694
+ "string"
695
+ ]
696
+ }
697
+ ]
698
+ },
699
+ "r": {
700
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
701
+ "type": "boolean"
702
+ }
703
+ },
704
+ "additionalProperties": false
705
+ },
706
+ "duration": {
707
+ "type": "array",
708
+ "items": {
709
+ "$ref": "#/$defs/duration"
710
+ }
711
+ },
712
+ "entries": {
713
+ "type": "array",
714
+ "items": {
715
+ "$ref": "../entry.json"
716
+ }
717
+ },
718
+ "entriesHigherLevel": {
719
+ "type": "array",
720
+ "items": {
721
+ "$ref": "../entry.json"
722
+ }
723
+ },
724
+ "source": {
725
+ "type": "string"
726
+ },
727
+ "page": {
728
+ "$ref": "../util.json#/$defs/page"
729
+ },
730
+ "additionalSources": {
731
+ "$ref": "../util.json#/$defs/additionalSources"
732
+ },
733
+ "otherSources": {
734
+ "$ref": "../util.json#/$defs/otherSources"
735
+ },
736
+ "damageInflict": {
737
+ "type": "array",
738
+ "uniqueItems": true,
739
+ "items": {
740
+ "$ref": "../util.json#/$defs/dataDamageType"
741
+ }
742
+ },
743
+ "damageResist": {
744
+ "type": "array",
745
+ "minItems": 1,
746
+ "uniqueItems": true,
747
+ "items": {
748
+ "$ref": "../util.json#/$defs/dataDamageType"
749
+ }
750
+ },
751
+ "damageImmune": {
752
+ "type": "array",
753
+ "minItems": 1,
754
+ "uniqueItems": true,
755
+ "items": {
756
+ "$ref": "../util.json#/$defs/dataDamageType"
757
+ }
758
+ },
759
+ "damageVulnerable": {
760
+ "type": "array",
761
+ "minItems": 1,
762
+ "uniqueItems": true,
763
+ "items": {
764
+ "$ref": "../util.json#/$defs/dataDamageType"
765
+ }
766
+ },
767
+ "conditionInflict": {
768
+ "$ref": "../util.json#/$defs/tagsConditions"
769
+ },
770
+ "conditionImmune": {
771
+ "$ref": "../util.json#/$defs/tagsConditions"
772
+ },
773
+ "savingThrow": {
774
+ "type": "array",
775
+ "minItems": 1,
776
+ "uniqueItems": true,
777
+ "items": {
778
+ "type": "string",
779
+ "enum": [
780
+ "strength",
781
+ "constitution",
782
+ "dexterity",
783
+ "intelligence",
784
+ "wisdom",
785
+ "charisma"
786
+ ]
787
+ }
788
+ },
789
+ "abilityCheck": {
790
+ "type": "array",
791
+ "minItems": 1,
792
+ "uniqueItems": true,
793
+ "items": {
794
+ "type": "string",
795
+ "enum": [
796
+ "strength",
797
+ "constitution",
798
+ "dexterity",
799
+ "intelligence",
800
+ "wisdom",
801
+ "charisma"
802
+ ]
803
+ }
804
+ },
805
+ "spellAttack": {
806
+ "type": "array",
807
+ "minItems": 1,
808
+ "uniqueItems": true,
809
+ "items": {
810
+ "type": "string",
811
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
812
+ "enum": [
813
+ "M",
814
+ "R",
815
+ "O"
816
+ ]
817
+ }
818
+ },
819
+ "areaTags": {
820
+ "description": "By convention, only the effects of the spell cast at its base level are considered when populating these.\n C: Cube\n H: Hemisphere\n L: Line\n MT: Multiple Targets\n N: Cone\n Q: Square\n R: Circle\n ST: Single Target\n S: Sphere\n W: Wall\n Y: Cylinder",
821
+ "type": "array",
822
+ "minItems": 1,
823
+ "uniqueItems": true,
824
+ "items": {
825
+ "type": "string",
826
+ "enum": [
827
+ "ST",
828
+ "MT",
829
+ "R",
830
+ "N",
831
+ "C",
832
+ "Y",
833
+ "H",
834
+ "L",
835
+ "S",
836
+ "Q",
837
+ "W"
838
+ ]
839
+ }
840
+ },
841
+ "miscTags": {
842
+ "type": "array",
843
+ "description": "FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n PRM: Permanent Effects\n PS: Plane Shifting\nRO: Rollable Effects\n SCL: Scaling Effects\n SMN: Summons Creature\n SGT: Requires Sight\n THP: Grants Temporary Hit Points\n TP: Teleportation\n UBA: Uses Bonus Action",
844
+ "minItems": 1,
845
+ "uniqueItems": true,
846
+ "items": {
847
+ "type": "string",
848
+ "enum": [
849
+ "FMV",
850
+ "HL",
851
+ "LGT",
852
+ "LGTS",
853
+ "MAC",
854
+ "PRM",
855
+ "PS",
856
+ "RO",
857
+ "SCL",
858
+ "SMN",
859
+ "SGT",
860
+ "THP",
861
+ "TP",
862
+ "UBA"
863
+ ]
864
+ }
865
+ },
866
+ "affectsCreatureType": {
867
+ "type": "array",
868
+ "minItems": 1,
869
+ "uniqueItems": true,
870
+ "items": {
871
+ "$ref": "../util.json#/$defs/creatureType"
872
+ }
873
+ },
874
+ "srd": {
875
+ "$ref": "../util.json#/$defs/srd"
876
+ },
877
+ "basicRules": {
878
+ "$ref": "../util.json#/$defs/basicRules"
879
+ },
880
+ "scalingLevelDice": {
881
+ "oneOf": [
882
+ {
883
+ "type": "array",
884
+ "items": {
885
+ "$ref": "#/$defs/scalingLevelDiceItem"
886
+ }
887
+ },
888
+ {
889
+ "$ref": "#/$defs/scalingLevelDiceItem"
890
+ }
891
+ ]
892
+ },
893
+ "hasFluff": {
894
+ "type": "boolean"
895
+ },
896
+ "hasFluffImages": {
897
+ "type": "boolean"
898
+ },
899
+ "classes": {
900
+ "type": "object",
901
+ "properties": {
902
+ "fromClassList": {
903
+ "type": "array",
904
+ "items": {
905
+ "$ref": "#/$defs/class"
906
+ },
907
+ "minItems": 1,
908
+ "uniqueItems": true
909
+ },
910
+ "fromClassListVariant": {
911
+ "type": "array",
912
+ "items": {
913
+ "$ref": "#/$defs/class"
914
+ },
915
+ "minItems": 1,
916
+ "uniqueItems": true
917
+ },
918
+ "fromSubclass": {
919
+ "type": "array",
920
+ "items": {
921
+ "type": "object",
922
+ "properties": {
923
+ "class": {
924
+ "$ref": "#/$defs/class"
925
+ },
926
+ "subclass": {
927
+ "type": "object",
928
+ "properties": {
929
+ "name": {
930
+ "type": "string"
931
+ },
932
+ "shortName": {
933
+ "type": "string"
934
+ },
935
+ "source": {
936
+ "type": "string"
937
+ },
938
+ "subSubclass": {
939
+ "type": "string"
940
+ }
941
+ },
942
+ "required": [
943
+ "name",
944
+ "shortName",
945
+ "source"
946
+ ],
947
+ "additionalProperties": false
948
+ }
949
+ },
950
+ "required": [
951
+ "class",
952
+ "subclass"
953
+ ],
954
+ "additionalProperties": false
955
+ },
956
+ "minItems": 1,
957
+ "uniqueItems": true
958
+ }
959
+ },
960
+ "additionalProperties": false
961
+ },
962
+ "races": {
963
+ "type": "array",
964
+ "items": {
965
+ "type": "object",
966
+ "properties": {
967
+ "name": {
968
+ "type": "string"
969
+ },
970
+ "source": {
971
+ "type": "string"
972
+ },
973
+ "baseName": {
974
+ "type": "string"
975
+ },
976
+ "baseSource": {
977
+ "type": "string"
978
+ }
979
+ },
980
+ "required": [
981
+ "name",
982
+ "source"
983
+ ]
984
+ },
985
+ "minItems": 1,
986
+ "uniqueItems": true
987
+ },
988
+ "backgrounds": {
989
+ "type": "array",
990
+ "items": {
991
+ "type": "object",
992
+ "properties": {
993
+ "name": {
994
+ "type": "string"
995
+ },
996
+ "source": {
997
+ "type": "string"
998
+ }
999
+ },
1000
+ "required": [
1001
+ "name",
1002
+ "source"
1003
+ ]
1004
+ },
1005
+ "minItems": 1,
1006
+ "uniqueItems": true
1007
+ },
1008
+ "optionalfeatures": {
1009
+ "type": "array",
1010
+ "items": {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "name": {
1014
+ "type": "string"
1015
+ },
1016
+ "source": {
1017
+ "type": "string"
1018
+ },
1019
+ "featureType": {
1020
+ "type": "array",
1021
+ "items": {
1022
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
1023
+ },
1024
+ "uniqueItems": true
1025
+ }
1026
+ },
1027
+ "required": [
1028
+ "name",
1029
+ "source"
1030
+ ]
1031
+ },
1032
+ "minItems": 1,
1033
+ "uniqueItems": true
1034
+ },
1035
+ "feats": {
1036
+ "type": "array",
1037
+ "items": {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "name": {
1041
+ "type": "string"
1042
+ },
1043
+ "source": {
1044
+ "type": "string"
1045
+ }
1046
+ },
1047
+ "required": [
1048
+ "name",
1049
+ "source"
1050
+ ]
1051
+ },
1052
+ "minItems": 1,
1053
+ "uniqueItems": true
1054
+ },
1055
+ "subschools": {
1056
+ "description": "For homebrew use only.",
1057
+ "type": "array",
1058
+ "items": {
1059
+ "type": "string"
1060
+ },
1061
+ "minItems": 1,
1062
+ "uniqueItems": true
1063
+ },
1064
+ "fluff": {
1065
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
1066
+ "$ref": "../util.json#/$defs/fluffObject"
1067
+ },
1068
+ "roll20Spell": {
1069
+ "$ref": "roll20.json#/properties/spell"
1070
+ },
1071
+ "foundrySystem": {
1072
+ "$ref": "../util.json#/$defs/foundrySystemObject"
1073
+ },
1074
+ "foundryFlags": {
1075
+ "$ref": "../util.json#/$defs/foundryFlagsObject"
1076
+ },
1077
+ "foundryEffects": {
1078
+ "$ref": "../util.json#/$defs/foundryEffectsArray"
1079
+ },
1080
+ "foundryImg": {
1081
+ "$ref": "../util.json#/$defs/foundryImg"
1082
+ }
1083
+ },
1084
+ "additionalProperties": false,
1085
+ "required": [
1086
+ "name",
1087
+ "level",
1088
+ "school",
1089
+ "time",
1090
+ "range",
1091
+ "duration",
1092
+ "entries",
1093
+ "source"
1094
+ ]
1095
+ },
1096
+ {
1097
+ "type": "object",
1098
+ "properties": {
1099
+ "name": {
1100
+ "type": "string"
1101
+ },
1102
+ "level": {
1103
+ "type": "integer"
1104
+ },
1105
+ "school": {
1106
+ "type": "string",
1107
+ "examples": [
1108
+ "A",
1109
+ "V",
1110
+ "E",
1111
+ "I",
1112
+ "D",
1113
+ "N",
1114
+ "T",
1115
+ "C",
1116
+ "P"
1117
+ ]
1118
+ },
1119
+ "meta": {
1120
+ "type": "object",
1121
+ "properties": {
1122
+ "ritual": {
1123
+ "type": "boolean"
1124
+ },
1125
+ "technomagic": {
1126
+ "type": "boolean"
1127
+ }
1128
+ },
1129
+ "additionalProperties": false
1130
+ },
1131
+ "time": {
1132
+ "type": "array",
1133
+ "items": {
1134
+ "$ref": "#/$defs/time"
1135
+ }
1136
+ },
1137
+ "range": {
1138
+ "type": "object",
1139
+ "properties": {
1140
+ "type": {
1141
+ "type": "string",
1142
+ "enum": [
1143
+ "special",
1144
+ "point",
1145
+ "line",
1146
+ "cube",
1147
+ "cone",
1148
+ "radius",
1149
+ "sphere",
1150
+ "hemisphere",
1151
+ "cylinder"
1152
+ ]
1153
+ },
1154
+ "distance": {
1155
+ "type": "object",
1156
+ "properties": {
1157
+ "type": {
1158
+ "type": "string",
1159
+ "examples": [
1160
+ "feet",
1161
+ "miles",
1162
+ "self",
1163
+ "touch",
1164
+ "unlimited",
1165
+ "plane",
1166
+ "sight"
1167
+ ]
1168
+ },
1169
+ "amount": {
1170
+ "type": "integer"
1171
+ },
1172
+ "typeSecondary": {
1173
+ "description": "Homebrew only",
1174
+ "type": "string",
1175
+ "examples": [
1176
+ "feet",
1177
+ "miles",
1178
+ "self",
1179
+ "touch",
1180
+ "unlimited",
1181
+ "plane",
1182
+ "sight"
1183
+ ]
1184
+ },
1185
+ "amountSecondary": {
1186
+ "description": "Homebrew only",
1187
+ "type": "integer"
1188
+ }
1189
+ },
1190
+ "required": [
1191
+ "type"
1192
+ ],
1193
+ "additionalProperties": false
1194
+ }
1195
+ },
1196
+ "required": [
1197
+ "type"
1198
+ ],
1199
+ "additionalProperties": false
1200
+ },
1201
+ "components": {
1202
+ "type": "object",
1203
+ "properties": {
1204
+ "v": {
1205
+ "type": "boolean"
1206
+ },
1207
+ "s": {
1208
+ "type": "boolean"
1209
+ },
1210
+ "m": {
1211
+ "oneOf": [
1212
+ {
1213
+ "type": "object",
1214
+ "properties": {
1215
+ "text": {
1216
+ "type": "string"
1217
+ },
1218
+ "cost": {
1219
+ "description": "In copper pieces.",
1220
+ "type": "number"
1221
+ },
1222
+ "consume": {
1223
+ "oneOf": [
1224
+ {
1225
+ "type": "boolean"
1226
+ },
1227
+ {
1228
+ "type": "string",
1229
+ "const": "optional"
1230
+ }
1231
+ ]
1232
+ }
1233
+ },
1234
+ "required": [
1235
+ "text"
1236
+ ],
1237
+ "additionalProperties": false
1238
+ },
1239
+ {
1240
+ "type": [
1241
+ "boolean",
1242
+ "string"
1243
+ ]
1244
+ }
1245
+ ]
1246
+ },
1247
+ "r": {
1248
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
1249
+ "type": "boolean"
1250
+ }
1251
+ },
1252
+ "additionalProperties": false
1253
+ },
1254
+ "duration": {
1255
+ "type": "array",
1256
+ "items": {
1257
+ "$ref": "#/$defs/duration"
1258
+ }
1259
+ },
1260
+ "entries": {
1261
+ "type": "array",
1262
+ "items": {
1263
+ "$ref": "../entry.json"
1264
+ }
1265
+ },
1266
+ "entriesHigherLevel": {
1267
+ "type": "array",
1268
+ "items": {
1269
+ "$ref": "../entry.json"
1270
+ }
1271
+ },
1272
+ "source": {
1273
+ "type": "string"
1274
+ },
1275
+ "page": {
1276
+ "$ref": "../util.json#/$defs/page"
1277
+ },
1278
+ "additionalSources": {
1279
+ "$ref": "../util.json#/$defs/additionalSources"
1280
+ },
1281
+ "otherSources": {
1282
+ "$ref": "../util.json#/$defs/otherSources"
1283
+ },
1284
+ "damageInflict": {
1285
+ "type": "array",
1286
+ "uniqueItems": true,
1287
+ "items": {
1288
+ "$ref": "../util.json#/$defs/dataDamageType"
1289
+ }
1290
+ },
1291
+ "damageResist": {
1292
+ "type": "array",
1293
+ "minItems": 1,
1294
+ "uniqueItems": true,
1295
+ "items": {
1296
+ "$ref": "../util.json#/$defs/dataDamageType"
1297
+ }
1298
+ },
1299
+ "damageImmune": {
1300
+ "type": "array",
1301
+ "minItems": 1,
1302
+ "uniqueItems": true,
1303
+ "items": {
1304
+ "$ref": "../util.json#/$defs/dataDamageType"
1305
+ }
1306
+ },
1307
+ "damageVulnerable": {
1308
+ "type": "array",
1309
+ "minItems": 1,
1310
+ "uniqueItems": true,
1311
+ "items": {
1312
+ "$ref": "../util.json#/$defs/dataDamageType"
1313
+ }
1314
+ },
1315
+ "conditionInflict": {
1316
+ "$ref": "../util.json#/$defs/tagsConditions"
1317
+ },
1318
+ "conditionImmune": {
1319
+ "$ref": "../util.json#/$defs/tagsConditions"
1320
+ },
1321
+ "savingThrow": {
1322
+ "type": "array",
1323
+ "minItems": 1,
1324
+ "uniqueItems": true,
1325
+ "items": {
1326
+ "type": "string",
1327
+ "enum": [
1328
+ "strength",
1329
+ "constitution",
1330
+ "dexterity",
1331
+ "intelligence",
1332
+ "wisdom",
1333
+ "charisma"
1334
+ ]
1335
+ }
1336
+ },
1337
+ "abilityCheck": {
1338
+ "type": "array",
1339
+ "minItems": 1,
1340
+ "uniqueItems": true,
1341
+ "items": {
1342
+ "type": "string",
1343
+ "enum": [
1344
+ "strength",
1345
+ "constitution",
1346
+ "dexterity",
1347
+ "intelligence",
1348
+ "wisdom",
1349
+ "charisma"
1350
+ ]
1351
+ }
1352
+ },
1353
+ "spellAttack": {
1354
+ "type": "array",
1355
+ "minItems": 1,
1356
+ "uniqueItems": true,
1357
+ "items": {
1358
+ "type": "string",
1359
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
1360
+ "enum": [
1361
+ "M",
1362
+ "R",
1363
+ "O"
1364
+ ]
1365
+ }
1366
+ },
1367
+ "areaTags": {
1368
+ "description": "By convention, only the effects of the spell cast at its base level are considered when populating these.\n C: Cube\n H: Hemisphere\n L: Line\n MT: Multiple Targets\n N: Cone\n Q: Square\n R: Circle\n ST: Single Target\n S: Sphere\n W: Wall\n Y: Cylinder",
1369
+ "type": "array",
1370
+ "minItems": 1,
1371
+ "uniqueItems": true,
1372
+ "items": {
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "ST",
1376
+ "MT",
1377
+ "R",
1378
+ "N",
1379
+ "C",
1380
+ "Y",
1381
+ "H",
1382
+ "L",
1383
+ "S",
1384
+ "Q",
1385
+ "W"
1386
+ ]
1387
+ }
1388
+ },
1389
+ "miscTags": {
1390
+ "type": "array",
1391
+ "description": "FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n PRM: Permanent Effects\n PS: Plane Shifting\nRO: Rollable Effects\n SCL: Scaling Effects\n SMN: Summons Creature\n SGT: Requires Sight\n THP: Grants Temporary Hit Points\n TP: Teleportation\n UBA: Uses Bonus Action",
1392
+ "minItems": 1,
1393
+ "uniqueItems": true,
1394
+ "items": {
1395
+ "type": "string",
1396
+ "enum": [
1397
+ "FMV",
1398
+ "HL",
1399
+ "LGT",
1400
+ "LGTS",
1401
+ "MAC",
1402
+ "PRM",
1403
+ "PS",
1404
+ "RO",
1405
+ "SCL",
1406
+ "SMN",
1407
+ "SGT",
1408
+ "THP",
1409
+ "TP",
1410
+ "UBA"
1411
+ ]
1412
+ }
1413
+ },
1414
+ "affectsCreatureType": {
1415
+ "type": "array",
1416
+ "minItems": 1,
1417
+ "uniqueItems": true,
1418
+ "items": {
1419
+ "$ref": "../util.json#/$defs/creatureType"
1420
+ }
1421
+ },
1422
+ "srd": {
1423
+ "$ref": "../util.json#/$defs/srd"
1424
+ },
1425
+ "basicRules": {
1426
+ "$ref": "../util.json#/$defs/basicRules"
1427
+ },
1428
+ "scalingLevelDice": {
1429
+ "oneOf": [
1430
+ {
1431
+ "type": "array",
1432
+ "items": {
1433
+ "$ref": "#/$defs/scalingLevelDiceItem"
1434
+ }
1435
+ },
1436
+ {
1437
+ "$ref": "#/$defs/scalingLevelDiceItem"
1438
+ }
1439
+ ]
1440
+ },
1441
+ "hasFluff": {
1442
+ "type": "boolean"
1443
+ },
1444
+ "hasFluffImages": {
1445
+ "type": "boolean"
1446
+ },
1447
+ "classes": {
1448
+ "type": "object",
1449
+ "properties": {
1450
+ "fromClassList": {
1451
+ "type": "array",
1452
+ "items": {
1453
+ "$ref": "#/$defs/class"
1454
+ },
1455
+ "minItems": 1,
1456
+ "uniqueItems": true
1457
+ },
1458
+ "fromClassListVariant": {
1459
+ "type": "array",
1460
+ "items": {
1461
+ "$ref": "#/$defs/class"
1462
+ },
1463
+ "minItems": 1,
1464
+ "uniqueItems": true
1465
+ },
1466
+ "fromSubclass": {
1467
+ "type": "array",
1468
+ "items": {
1469
+ "type": "object",
1470
+ "properties": {
1471
+ "class": {
1472
+ "$ref": "#/$defs/class"
1473
+ },
1474
+ "subclass": {
1475
+ "type": "object",
1476
+ "properties": {
1477
+ "name": {
1478
+ "type": "string"
1479
+ },
1480
+ "shortName": {
1481
+ "type": "string"
1482
+ },
1483
+ "source": {
1484
+ "type": "string"
1485
+ },
1486
+ "subSubclass": {
1487
+ "type": "string"
1488
+ }
1489
+ },
1490
+ "required": [
1491
+ "name",
1492
+ "shortName",
1493
+ "source"
1494
+ ],
1495
+ "additionalProperties": false
1496
+ }
1497
+ },
1498
+ "required": [
1499
+ "class",
1500
+ "subclass"
1501
+ ],
1502
+ "additionalProperties": false
1503
+ },
1504
+ "minItems": 1,
1505
+ "uniqueItems": true
1506
+ }
1507
+ },
1508
+ "additionalProperties": false
1509
+ },
1510
+ "races": {
1511
+ "type": "array",
1512
+ "items": {
1513
+ "type": "object",
1514
+ "properties": {
1515
+ "name": {
1516
+ "type": "string"
1517
+ },
1518
+ "source": {
1519
+ "type": "string"
1520
+ },
1521
+ "baseName": {
1522
+ "type": "string"
1523
+ },
1524
+ "baseSource": {
1525
+ "type": "string"
1526
+ }
1527
+ },
1528
+ "required": [
1529
+ "name",
1530
+ "source"
1531
+ ]
1532
+ },
1533
+ "minItems": 1,
1534
+ "uniqueItems": true
1535
+ },
1536
+ "backgrounds": {
1537
+ "type": "array",
1538
+ "items": {
1539
+ "type": "object",
1540
+ "properties": {
1541
+ "name": {
1542
+ "type": "string"
1543
+ },
1544
+ "source": {
1545
+ "type": "string"
1546
+ }
1547
+ },
1548
+ "required": [
1549
+ "name",
1550
+ "source"
1551
+ ]
1552
+ },
1553
+ "minItems": 1,
1554
+ "uniqueItems": true
1555
+ },
1556
+ "optionalfeatures": {
1557
+ "type": "array",
1558
+ "items": {
1559
+ "type": "object",
1560
+ "properties": {
1561
+ "name": {
1562
+ "type": "string"
1563
+ },
1564
+ "source": {
1565
+ "type": "string"
1566
+ },
1567
+ "featureType": {
1568
+ "type": "array",
1569
+ "items": {
1570
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
1571
+ },
1572
+ "uniqueItems": true
1573
+ }
1574
+ },
1575
+ "required": [
1576
+ "name",
1577
+ "source"
1578
+ ]
1579
+ },
1580
+ "minItems": 1,
1581
+ "uniqueItems": true
1582
+ },
1583
+ "feats": {
1584
+ "type": "array",
1585
+ "items": {
1586
+ "type": "object",
1587
+ "properties": {
1588
+ "name": {
1589
+ "type": "string"
1590
+ },
1591
+ "source": {
1592
+ "type": "string"
1593
+ }
1594
+ },
1595
+ "required": [
1596
+ "name",
1597
+ "source"
1598
+ ]
1599
+ },
1600
+ "minItems": 1,
1601
+ "uniqueItems": true
1602
+ },
1603
+ "subschools": {
1604
+ "description": "For homebrew use only.",
1605
+ "type": "array",
1606
+ "items": {
1607
+ "type": "string"
1608
+ },
1609
+ "minItems": 1,
1610
+ "uniqueItems": true
1611
+ },
1612
+ "fluff": {
1613
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
1614
+ "$ref": "../util.json#/$defs/fluffObject"
1615
+ },
1616
+ "roll20Spell": {
1617
+ "$ref": "roll20.json#/properties/spell"
1618
+ },
1619
+ "foundrySystem": {
1620
+ "$ref": "../util.json#/$defs/foundrySystemObject"
1621
+ },
1622
+ "foundryFlags": {
1623
+ "$ref": "../util.json#/$defs/foundryFlagsObject"
1624
+ },
1625
+ "foundryEffects": {
1626
+ "$ref": "../util.json#/$defs/foundryEffectsArray"
1627
+ },
1628
+ "foundryImg": {
1629
+ "$ref": "../util.json#/$defs/foundryImg"
1630
+ },
1631
+ "_copy": {
1632
+ "type": "object",
1633
+ "properties": {
1634
+ "name": {
1635
+ "type": "string"
1636
+ },
1637
+ "source": {
1638
+ "type": "string"
1639
+ },
1640
+ "pantheon": {
1641
+ "description": "Used in deity data",
1642
+ "type": "string"
1643
+ },
1644
+ "shortName": {
1645
+ "description": "Used in subclass data",
1646
+ "type": "string"
1647
+ },
1648
+ "className": {
1649
+ "description": "Used in subclass data",
1650
+ "type": "string"
1651
+ },
1652
+ "classSource": {
1653
+ "description": "Used in subclass data",
1654
+ "type": "string"
1655
+ },
1656
+ "_mod": {
1657
+ "$ref": "../util.json#/$defs/_modObject"
1658
+ },
1659
+ "_trait": {
1660
+ "type": "object",
1661
+ "properties": {
1662
+ "name": {
1663
+ "type": "string"
1664
+ },
1665
+ "source": {
1666
+ "type": "string"
1667
+ }
1668
+ },
1669
+ "required": [
1670
+ "name",
1671
+ "source"
1672
+ ]
1673
+ },
1674
+ "_preserve": {
1675
+ "type": "object",
1676
+ "patternProperties": {
1677
+ ".*": {
1678
+ "const": true
1679
+ }
1680
+ }
1681
+ }
1682
+ },
1683
+ "required": [
1684
+ "name",
1685
+ "source"
1686
+ ],
1687
+ "additionalProperties": false
1688
+ }
1689
+ },
1690
+ "additionalProperties": false,
1691
+ "required": [
1692
+ "_copy"
1693
+ ]
1694
+ }
1695
+ ]
1696
+ },
1697
+ "time": {
1698
+ "type": "object",
1699
+ "properties": {
1700
+ "number": {
1701
+ "type": "integer"
1702
+ },
1703
+ "unit": {
1704
+ "type": "string",
1705
+ "examples": [
1706
+ "action",
1707
+ "bonus",
1708
+ "reaction",
1709
+ "round",
1710
+ "minute",
1711
+ "hour"
1712
+ ]
1713
+ },
1714
+ "condition": {
1715
+ "type": "string"
1716
+ }
1717
+ },
1718
+ "required": [
1719
+ "unit"
1720
+ ],
1721
+ "additionalProperties": false
1722
+ },
1723
+ "duration": {
1724
+ "type": "object",
1725
+ "properties": {
1726
+ "type": {
1727
+ "type": "string",
1728
+ "enum": [
1729
+ "instant",
1730
+ "timed",
1731
+ "permanent",
1732
+ "special"
1733
+ ]
1734
+ },
1735
+ "duration": {
1736
+ "type": "object",
1737
+ "properties": {
1738
+ "type": {
1739
+ "type": "string",
1740
+ "examples": [
1741
+ "hour",
1742
+ "minute",
1743
+ "turn",
1744
+ "round",
1745
+ "week",
1746
+ "day",
1747
+ "year"
1748
+ ]
1749
+ },
1750
+ "amount": {
1751
+ "type": "integer"
1752
+ },
1753
+ "upTo": {
1754
+ "type": "boolean"
1755
+ }
1756
+ },
1757
+ "required": [
1758
+ "type"
1759
+ ],
1760
+ "additionalProperties": false
1761
+ },
1762
+ "concentration": {
1763
+ "type": "boolean"
1764
+ },
1765
+ "ends": {
1766
+ "type": "array",
1767
+ "items": {
1768
+ "type": "string",
1769
+ "description": "The examples given are short forms that are automatically expanded to \"discharged\", \"dispelled\" & \"triggered\".\nHomebrew files should state custom end conditions in full.",
1770
+ "examples": [
1771
+ "dispel",
1772
+ "trigger",
1773
+ "discharge"
1774
+ ]
1775
+ }
1776
+ },
1777
+ "condition": {
1778
+ "type": "string"
1779
+ }
1780
+ },
1781
+ "required": [
1782
+ "type"
1783
+ ],
1784
+ "additionalProperties": false
1785
+ },
1786
+ "class": {
1787
+ "type": "object",
1788
+ "properties": {
1789
+ "name": {
1790
+ "type": "string"
1791
+ },
1792
+ "source": {
1793
+ "type": "string"
1794
+ },
1795
+ "definedInSource": {
1796
+ "type": "string"
1797
+ }
1798
+ },
1799
+ "required": [
1800
+ "name",
1801
+ "source"
1802
+ ],
1803
+ "additionalProperties": false
1804
+ },
1805
+ "scalingLevelDiceItem": {
1806
+ "type": "object",
1807
+ "properties": {
1808
+ "label": {
1809
+ "type": "string"
1810
+ },
1811
+ "scaling": {
1812
+ "type": "object",
1813
+ "patternProperties": {
1814
+ "\\d+": {
1815
+ "type": "string"
1816
+ }
1817
+ },
1818
+ "additionalProperties": false
1819
+ }
1820
+ },
1821
+ "additionalProperties": false
1822
+ }
1823
+ },
1824
+ "properties": {
1825
+ "spell": {
1826
+ "type": "array",
1827
+ "items": {
1828
+ "$ref": "#/$defs/spell"
1829
+ },
1830
+ "minItems": 1,
1831
+ "uniqueItems": true
1832
+ },
1833
+ "_meta": {
1834
+ "$ref": "../util.json#/$defs/metaBlock"
1835
+ }
1836
+ },
1837
+ "required": [
1838
+ "spell"
1839
+ ],
1840
+ "additionalProperties": false
1841
+ }