5etools-utils 0.8.37 → 0.9.1

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 (187) hide show
  1. package/README.md +1 -0
  2. package/bin/test-json-ua.js +5 -0
  3. package/lib/BrewTester.js +3 -3
  4. package/lib/TestJson.js +22 -7
  5. package/package.json +2 -1
  6. package/schema/brew/backgrounds.json +13 -13
  7. package/schema/brew/class/class.json +1 -1
  8. package/schema/brew/items-shared.json +1 -1
  9. package/schema/brew/races.json +1 -1
  10. package/schema/brew/spells/spells.json +61 -61
  11. package/schema/brew/util.json +47 -1
  12. package/schema/brew-fast/backgrounds.json +13 -13
  13. package/schema/brew-fast/class/class.json +1 -1
  14. package/schema/brew-fast/items-shared.json +1 -1
  15. package/schema/brew-fast/races.json +1 -1
  16. package/schema/brew-fast/spells/spells.json +61 -61
  17. package/schema/brew-fast/util.json +47 -1
  18. package/schema/site/backgrounds.json +1 -1
  19. package/schema/site/class/class.json +1 -1
  20. package/schema/site/items-shared.json +1 -1
  21. package/schema/site/races.json +1 -1
  22. package/schema/site/spells/spells.json +1 -1
  23. package/schema/site/util.json +48 -2
  24. package/schema/site-fast/backgrounds.json +1 -1
  25. package/schema/site-fast/class/class.json +1 -1
  26. package/schema/site-fast/items-shared.json +1 -1
  27. package/schema/site-fast/races.json +1 -1
  28. package/schema/site-fast/spells/spells.json +1 -1
  29. package/schema/site-fast/util.json +48 -2
  30. package/schema/ua/actions.json +97 -0
  31. package/schema/ua/adventure/adventure.json +12 -0
  32. package/schema/ua/adventures.json +214 -0
  33. package/schema/ua/backgrounds.json +326 -0
  34. package/schema/ua/bestiary/bestiary.json +3735 -0
  35. package/schema/ua/bestiary/fluff-bestiary.json +15 -0
  36. package/schema/ua/bestiary/fluff-index.json +11 -0
  37. package/schema/ua/bestiary/foundry.json +15 -0
  38. package/schema/ua/bestiary/index.json +11 -0
  39. package/schema/ua/bestiary/legendarygroups.json +202 -0
  40. package/schema/ua/bestiary/template.json +275 -0
  41. package/schema/ua/book/book.json +12 -0
  42. package/schema/ua/books.json +141 -0
  43. package/schema/ua/changelog.json +35 -0
  44. package/schema/ua/charcreationoptions.json +80 -0
  45. package/schema/ua/class/class.json +1881 -0
  46. package/schema/ua/class/foundry.json +397 -0
  47. package/schema/ua/class/index.json +11 -0
  48. package/schema/ua/conditionsdiseases.json +82 -0
  49. package/schema/ua/cultsboons.json +175 -0
  50. package/schema/ua/decks.json +504 -0
  51. package/schema/ua/deities.json +473 -0
  52. package/schema/ua/encounters.json +105 -0
  53. package/schema/ua/entry.json +3748 -0
  54. package/schema/ua/feats.json +117 -0
  55. package/schema/ua/fluff-backgrounds.json +15 -0
  56. package/schema/ua/fluff-charcreationoptions.json +43 -0
  57. package/schema/ua/fluff-conditionsdiseases.json +43 -0
  58. package/schema/ua/fluff-feats.json +15 -0
  59. package/schema/ua/fluff-items.json +15 -0
  60. package/schema/ua/fluff-languages.json +42 -0
  61. package/schema/ua/fluff-objects.json +15 -0
  62. package/schema/ua/fluff-races.json +214 -0
  63. package/schema/ua/fluff-recipes.json +42 -0
  64. package/schema/ua/fluff-vehicles.json +63 -0
  65. package/schema/ua/foundry-actions.json +15 -0
  66. package/schema/ua/foundry-backgrounds.json +53 -0
  67. package/schema/ua/foundry-feats.json +15 -0
  68. package/schema/ua/foundry-items.json +63 -0
  69. package/schema/ua/foundry-optionalfeatures.json +15 -0
  70. package/schema/ua/foundry-psionics.json +56 -0
  71. package/schema/ua/foundry-races.json +58 -0
  72. package/schema/ua/foundry-rewards.json +15 -0
  73. package/schema/ua/foundry-vehicles.json +15 -0
  74. package/schema/ua/generated/bookref-quick.json +72 -0
  75. package/schema/ua/generated/gendata-spell-source-lookup.json +230 -0
  76. package/schema/ua/homebrew.json +633 -0
  77. package/schema/ua/items-base.json +959 -0
  78. package/schema/ua/items-shared.json +267 -0
  79. package/schema/ua/items.json +1770 -0
  80. package/schema/ua/languages.json +123 -0
  81. package/schema/ua/life.json +17 -0
  82. package/schema/ua/loot.json +510 -0
  83. package/schema/ua/magicvariants.json +361 -0
  84. package/schema/ua/makebrew-creature.json +66 -0
  85. package/schema/ua/makecards.json +43 -0
  86. package/schema/ua/monsterfeatures.json +53 -0
  87. package/schema/ua/msbcr.json +60 -0
  88. package/schema/ua/names.json +94 -0
  89. package/schema/ua/objects.json +165 -0
  90. package/schema/ua/optionalfeatures.json +130 -0
  91. package/schema/ua/psionics.json +173 -0
  92. package/schema/ua/races.json +1668 -0
  93. package/schema/ua/recipes.json +185 -0
  94. package/schema/ua/renderdemo.json +16 -0
  95. package/schema/ua/rewards.json +93 -0
  96. package/schema/ua/senses.json +54 -0
  97. package/schema/ua/skills.json +54 -0
  98. package/schema/ua/spells/fluff-index.json +11 -0
  99. package/schema/ua/spells/fluff-spells.json +15 -0
  100. package/schema/ua/spells/foundry.json +15 -0
  101. package/schema/ua/spells/index.json +11 -0
  102. package/schema/ua/spells/roll20.json +112 -0
  103. package/schema/ua/spells/spells.json +1250 -0
  104. package/schema/ua/tables.json +220 -0
  105. package/schema/ua/trapshazards.json +236 -0
  106. package/schema/ua/util.json +4466 -0
  107. package/schema/ua/variantrules.json +74 -0
  108. package/schema/ua/vehicles.json +820 -0
  109. package/schema/ua-fast/actions.json +97 -0
  110. package/schema/ua-fast/adventure/adventure.json +12 -0
  111. package/schema/ua-fast/adventures.json +214 -0
  112. package/schema/ua-fast/backgrounds.json +326 -0
  113. package/schema/ua-fast/bestiary/bestiary.json +3735 -0
  114. package/schema/ua-fast/bestiary/fluff-bestiary.json +15 -0
  115. package/schema/ua-fast/bestiary/fluff-index.json +11 -0
  116. package/schema/ua-fast/bestiary/foundry.json +15 -0
  117. package/schema/ua-fast/bestiary/index.json +11 -0
  118. package/schema/ua-fast/bestiary/legendarygroups.json +202 -0
  119. package/schema/ua-fast/bestiary/template.json +275 -0
  120. package/schema/ua-fast/book/book.json +12 -0
  121. package/schema/ua-fast/books.json +141 -0
  122. package/schema/ua-fast/changelog.json +35 -0
  123. package/schema/ua-fast/charcreationoptions.json +80 -0
  124. package/schema/ua-fast/class/class.json +1881 -0
  125. package/schema/ua-fast/class/foundry.json +397 -0
  126. package/schema/ua-fast/class/index.json +11 -0
  127. package/schema/ua-fast/conditionsdiseases.json +82 -0
  128. package/schema/ua-fast/cultsboons.json +175 -0
  129. package/schema/ua-fast/decks.json +504 -0
  130. package/schema/ua-fast/deities.json +473 -0
  131. package/schema/ua-fast/encounters.json +105 -0
  132. package/schema/ua-fast/entry.json +3748 -0
  133. package/schema/ua-fast/feats.json +117 -0
  134. package/schema/ua-fast/fluff-backgrounds.json +15 -0
  135. package/schema/ua-fast/fluff-charcreationoptions.json +43 -0
  136. package/schema/ua-fast/fluff-conditionsdiseases.json +43 -0
  137. package/schema/ua-fast/fluff-feats.json +15 -0
  138. package/schema/ua-fast/fluff-items.json +15 -0
  139. package/schema/ua-fast/fluff-languages.json +42 -0
  140. package/schema/ua-fast/fluff-objects.json +15 -0
  141. package/schema/ua-fast/fluff-races.json +214 -0
  142. package/schema/ua-fast/fluff-recipes.json +42 -0
  143. package/schema/ua-fast/fluff-vehicles.json +63 -0
  144. package/schema/ua-fast/foundry-actions.json +15 -0
  145. package/schema/ua-fast/foundry-backgrounds.json +53 -0
  146. package/schema/ua-fast/foundry-feats.json +15 -0
  147. package/schema/ua-fast/foundry-items.json +63 -0
  148. package/schema/ua-fast/foundry-optionalfeatures.json +15 -0
  149. package/schema/ua-fast/foundry-psionics.json +56 -0
  150. package/schema/ua-fast/foundry-races.json +58 -0
  151. package/schema/ua-fast/foundry-rewards.json +15 -0
  152. package/schema/ua-fast/foundry-vehicles.json +15 -0
  153. package/schema/ua-fast/generated/bookref-quick.json +72 -0
  154. package/schema/ua-fast/generated/gendata-spell-source-lookup.json +230 -0
  155. package/schema/ua-fast/homebrew.json +631 -0
  156. package/schema/ua-fast/items-base.json +959 -0
  157. package/schema/ua-fast/items-shared.json +267 -0
  158. package/schema/ua-fast/items.json +1770 -0
  159. package/schema/ua-fast/languages.json +123 -0
  160. package/schema/ua-fast/life.json +17 -0
  161. package/schema/ua-fast/loot.json +510 -0
  162. package/schema/ua-fast/magicvariants.json +361 -0
  163. package/schema/ua-fast/makebrew-creature.json +66 -0
  164. package/schema/ua-fast/makecards.json +43 -0
  165. package/schema/ua-fast/monsterfeatures.json +53 -0
  166. package/schema/ua-fast/msbcr.json +60 -0
  167. package/schema/ua-fast/names.json +94 -0
  168. package/schema/ua-fast/objects.json +165 -0
  169. package/schema/ua-fast/optionalfeatures.json +130 -0
  170. package/schema/ua-fast/psionics.json +173 -0
  171. package/schema/ua-fast/races.json +1668 -0
  172. package/schema/ua-fast/recipes.json +185 -0
  173. package/schema/ua-fast/renderdemo.json +16 -0
  174. package/schema/ua-fast/rewards.json +93 -0
  175. package/schema/ua-fast/senses.json +54 -0
  176. package/schema/ua-fast/skills.json +54 -0
  177. package/schema/ua-fast/spells/fluff-index.json +11 -0
  178. package/schema/ua-fast/spells/fluff-spells.json +15 -0
  179. package/schema/ua-fast/spells/foundry.json +15 -0
  180. package/schema/ua-fast/spells/index.json +11 -0
  181. package/schema/ua-fast/spells/roll20.json +112 -0
  182. package/schema/ua-fast/spells/spells.json +1250 -0
  183. package/schema/ua-fast/tables.json +220 -0
  184. package/schema/ua-fast/trapshazards.json +236 -0
  185. package/schema/ua-fast/util.json +4466 -0
  186. package/schema/ua-fast/variantrules.json +74 -0
  187. package/schema/ua-fast/vehicles.json +820 -0
@@ -0,0 +1,1250 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "spells.json",
4
+ "version": "1.9.7",
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
+ "$ref": "../util.json#/$defs/spellSchool"
19
+ },
20
+ "meta": {
21
+ "type": "object",
22
+ "properties": {
23
+ "ritual": {
24
+ "type": "boolean"
25
+ },
26
+ "technomagic": {
27
+ "type": "boolean"
28
+ }
29
+ },
30
+ "additionalProperties": false
31
+ },
32
+ "time": {
33
+ "type": "array",
34
+ "items": {
35
+ "$ref": "#/$defs/time"
36
+ }
37
+ },
38
+ "range": {
39
+ "type": "object",
40
+ "properties": {
41
+ "type": {
42
+ "type": "string",
43
+ "enum": [
44
+ "special",
45
+ "point",
46
+ "line",
47
+ "cube",
48
+ "cone",
49
+ "radius",
50
+ "sphere",
51
+ "hemisphere",
52
+ "cylinder"
53
+ ]
54
+ },
55
+ "distance": {
56
+ "type": "object",
57
+ "properties": {
58
+ "type": {
59
+ "type": "string",
60
+ "enum": [
61
+ "feet",
62
+ "yards",
63
+ "miles",
64
+ "self",
65
+ "touch",
66
+ "unlimited",
67
+ "plane",
68
+ "sight"
69
+ ]
70
+ },
71
+ "amount": {
72
+ "type": "integer"
73
+ }
74
+ },
75
+ "required": [
76
+ "type"
77
+ ],
78
+ "additionalProperties": false
79
+ }
80
+ },
81
+ "required": [
82
+ "type"
83
+ ],
84
+ "additionalProperties": false
85
+ },
86
+ "components": {
87
+ "type": "object",
88
+ "properties": {
89
+ "v": {
90
+ "type": "boolean"
91
+ },
92
+ "s": {
93
+ "type": "boolean"
94
+ },
95
+ "m": {
96
+ "oneOf": [
97
+ {
98
+ "type": "object",
99
+ "properties": {
100
+ "text": {
101
+ "type": "string"
102
+ },
103
+ "cost": {
104
+ "description": "In copper pieces.",
105
+ "type": "number"
106
+ },
107
+ "consume": {
108
+ "oneOf": [
109
+ {
110
+ "type": "boolean"
111
+ },
112
+ {
113
+ "type": "string",
114
+ "const": "optional"
115
+ }
116
+ ]
117
+ }
118
+ },
119
+ "required": [
120
+ "text"
121
+ ],
122
+ "additionalProperties": false
123
+ },
124
+ {
125
+ "type": [
126
+ "boolean",
127
+ "string"
128
+ ]
129
+ }
130
+ ]
131
+ },
132
+ "r": {
133
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
134
+ "type": "boolean"
135
+ }
136
+ },
137
+ "additionalProperties": false
138
+ },
139
+ "duration": {
140
+ "type": "array",
141
+ "items": {
142
+ "$ref": "#/$defs/duration"
143
+ }
144
+ },
145
+ "entries": {
146
+ "type": "array",
147
+ "items": {
148
+ "$ref": "../entry.json"
149
+ }
150
+ },
151
+ "entriesHigherLevel": {
152
+ "type": "array",
153
+ "items": {
154
+ "$ref": "../entry.json"
155
+ }
156
+ },
157
+ "source": {
158
+ "$ref": "../util.json#/$defs/source"
159
+ },
160
+ "page": {
161
+ "$ref": "../util.json#/$defs/page"
162
+ },
163
+ "additionalSources": {
164
+ "$ref": "../util.json#/$defs/additionalSources"
165
+ },
166
+ "otherSources": {
167
+ "$ref": "../util.json#/$defs/otherSources"
168
+ },
169
+ "damageInflict": {
170
+ "type": "array",
171
+ "uniqueItems": true,
172
+ "items": {
173
+ "$ref": "../util.json#/$defs/dataDamageType"
174
+ }
175
+ },
176
+ "damageResist": {
177
+ "type": "array",
178
+ "minItems": 1,
179
+ "uniqueItems": true,
180
+ "items": {
181
+ "$ref": "../util.json#/$defs/dataDamageType"
182
+ }
183
+ },
184
+ "damageImmune": {
185
+ "type": "array",
186
+ "minItems": 1,
187
+ "uniqueItems": true,
188
+ "items": {
189
+ "$ref": "../util.json#/$defs/dataDamageType"
190
+ }
191
+ },
192
+ "damageVulnerable": {
193
+ "type": "array",
194
+ "minItems": 1,
195
+ "uniqueItems": true,
196
+ "items": {
197
+ "$ref": "../util.json#/$defs/dataDamageType"
198
+ }
199
+ },
200
+ "conditionInflict": {
201
+ "$ref": "../util.json#/$defs/tagsConditions"
202
+ },
203
+ "conditionImmune": {
204
+ "$ref": "../util.json#/$defs/tagsConditions"
205
+ },
206
+ "savingThrow": {
207
+ "$ref": "../util.json#/$defs/tagsSavingThrow"
208
+ },
209
+ "abilityCheck": {
210
+ "type": "array",
211
+ "minItems": 1,
212
+ "uniqueItems": true,
213
+ "items": {
214
+ "type": "string",
215
+ "enum": [
216
+ "strength",
217
+ "constitution",
218
+ "dexterity",
219
+ "intelligence",
220
+ "wisdom",
221
+ "charisma"
222
+ ]
223
+ }
224
+ },
225
+ "spellAttack": {
226
+ "type": "array",
227
+ "minItems": 1,
228
+ "uniqueItems": true,
229
+ "items": {
230
+ "type": "string",
231
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
232
+ "enum": [
233
+ "M",
234
+ "R",
235
+ "O"
236
+ ]
237
+ }
238
+ },
239
+ "areaTags": {
240
+ "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",
241
+ "type": "array",
242
+ "minItems": 1,
243
+ "uniqueItems": true,
244
+ "items": {
245
+ "type": "string",
246
+ "enum": [
247
+ "ST",
248
+ "MT",
249
+ "R",
250
+ "N",
251
+ "C",
252
+ "Y",
253
+ "H",
254
+ "L",
255
+ "S",
256
+ "Q",
257
+ "W"
258
+ ]
259
+ }
260
+ },
261
+ "miscTags": {
262
+ "type": "array",
263
+ "description": "AAD: Additional Attack Damage\n DFT: Difficult Terrain\n FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n OBJ: Affects Objects\n OBS: Obscures Vision\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",
264
+ "minItems": 1,
265
+ "uniqueItems": true,
266
+ "items": {
267
+ "type": "string",
268
+ "enum": [
269
+ "AAD",
270
+ "DFT",
271
+ "FMV",
272
+ "HL",
273
+ "LGT",
274
+ "LGTS",
275
+ "MAC",
276
+ "OBJ",
277
+ "OBS",
278
+ "PRM",
279
+ "PS",
280
+ "RO",
281
+ "SCL",
282
+ "SMN",
283
+ "SGT",
284
+ "THP",
285
+ "TP",
286
+ "UBA"
287
+ ]
288
+ }
289
+ },
290
+ "affectsCreatureType": {
291
+ "type": "array",
292
+ "minItems": 1,
293
+ "uniqueItems": true,
294
+ "items": {
295
+ "$ref": "../util.json#/$defs/creatureType"
296
+ }
297
+ },
298
+ "srd": {
299
+ "$ref": "../util.json#/$defs/srd"
300
+ },
301
+ "basicRules": {
302
+ "$ref": "../util.json#/$defs/basicRules"
303
+ },
304
+ "legacy": {
305
+ "$ref": "../util.json#/$defs/legacy"
306
+ },
307
+ "scalingLevelDice": {
308
+ "oneOf": [
309
+ {
310
+ "type": "array",
311
+ "items": {
312
+ "$ref": "#/$defs/scalingLevelDiceItem"
313
+ }
314
+ },
315
+ {
316
+ "$ref": "#/$defs/scalingLevelDiceItem"
317
+ }
318
+ ]
319
+ },
320
+ "hasFluff": {
321
+ "type": "boolean"
322
+ },
323
+ "hasFluffImages": {
324
+ "type": "boolean"
325
+ },
326
+ "groups": {
327
+ "type": "array",
328
+ "items": {
329
+ "type": "object",
330
+ "properties": {
331
+ "name": {
332
+ "type": "string"
333
+ },
334
+ "source": {
335
+ "$ref": "../util.json#/$defs/source"
336
+ }
337
+ },
338
+ "required": [
339
+ "name",
340
+ "source"
341
+ ]
342
+ },
343
+ "minItems": 1,
344
+ "uniqueItems": true
345
+ }
346
+ },
347
+ "additionalProperties": false
348
+ },
349
+ "spell": {
350
+ "anyOf": [
351
+ {
352
+ "type": "object",
353
+ "properties": {
354
+ "name": {
355
+ "type": "string"
356
+ },
357
+ "level": {
358
+ "type": "integer"
359
+ },
360
+ "school": {
361
+ "$ref": "../util.json#/$defs/spellSchool"
362
+ },
363
+ "meta": {
364
+ "type": "object",
365
+ "properties": {
366
+ "ritual": {
367
+ "type": "boolean"
368
+ },
369
+ "technomagic": {
370
+ "type": "boolean"
371
+ }
372
+ },
373
+ "additionalProperties": false
374
+ },
375
+ "time": {
376
+ "type": "array",
377
+ "items": {
378
+ "$ref": "#/$defs/time"
379
+ }
380
+ },
381
+ "range": {
382
+ "type": "object",
383
+ "properties": {
384
+ "type": {
385
+ "type": "string",
386
+ "enum": [
387
+ "special",
388
+ "point",
389
+ "line",
390
+ "cube",
391
+ "cone",
392
+ "radius",
393
+ "sphere",
394
+ "hemisphere",
395
+ "cylinder"
396
+ ]
397
+ },
398
+ "distance": {
399
+ "type": "object",
400
+ "properties": {
401
+ "type": {
402
+ "type": "string",
403
+ "enum": [
404
+ "feet",
405
+ "yards",
406
+ "miles",
407
+ "self",
408
+ "touch",
409
+ "unlimited",
410
+ "plane",
411
+ "sight"
412
+ ]
413
+ },
414
+ "amount": {
415
+ "type": "integer"
416
+ }
417
+ },
418
+ "required": [
419
+ "type"
420
+ ],
421
+ "additionalProperties": false
422
+ }
423
+ },
424
+ "required": [
425
+ "type"
426
+ ],
427
+ "additionalProperties": false
428
+ },
429
+ "components": {
430
+ "type": "object",
431
+ "properties": {
432
+ "v": {
433
+ "type": "boolean"
434
+ },
435
+ "s": {
436
+ "type": "boolean"
437
+ },
438
+ "m": {
439
+ "oneOf": [
440
+ {
441
+ "type": "object",
442
+ "properties": {
443
+ "text": {
444
+ "type": "string"
445
+ },
446
+ "cost": {
447
+ "description": "In copper pieces.",
448
+ "type": "number"
449
+ },
450
+ "consume": {
451
+ "oneOf": [
452
+ {
453
+ "type": "boolean"
454
+ },
455
+ {
456
+ "type": "string",
457
+ "const": "optional"
458
+ }
459
+ ]
460
+ }
461
+ },
462
+ "required": [
463
+ "text"
464
+ ],
465
+ "additionalProperties": false
466
+ },
467
+ {
468
+ "type": [
469
+ "boolean",
470
+ "string"
471
+ ]
472
+ }
473
+ ]
474
+ },
475
+ "r": {
476
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
477
+ "type": "boolean"
478
+ }
479
+ },
480
+ "additionalProperties": false
481
+ },
482
+ "duration": {
483
+ "type": "array",
484
+ "items": {
485
+ "$ref": "#/$defs/duration"
486
+ }
487
+ },
488
+ "entries": {
489
+ "type": "array",
490
+ "items": {
491
+ "$ref": "../entry.json"
492
+ }
493
+ },
494
+ "entriesHigherLevel": {
495
+ "type": "array",
496
+ "items": {
497
+ "$ref": "../entry.json"
498
+ }
499
+ },
500
+ "source": {
501
+ "$ref": "../util.json#/$defs/source"
502
+ },
503
+ "page": {
504
+ "$ref": "../util.json#/$defs/page"
505
+ },
506
+ "additionalSources": {
507
+ "$ref": "../util.json#/$defs/additionalSources"
508
+ },
509
+ "otherSources": {
510
+ "$ref": "../util.json#/$defs/otherSources"
511
+ },
512
+ "damageInflict": {
513
+ "type": "array",
514
+ "uniqueItems": true,
515
+ "items": {
516
+ "$ref": "../util.json#/$defs/dataDamageType"
517
+ }
518
+ },
519
+ "damageResist": {
520
+ "type": "array",
521
+ "minItems": 1,
522
+ "uniqueItems": true,
523
+ "items": {
524
+ "$ref": "../util.json#/$defs/dataDamageType"
525
+ }
526
+ },
527
+ "damageImmune": {
528
+ "type": "array",
529
+ "minItems": 1,
530
+ "uniqueItems": true,
531
+ "items": {
532
+ "$ref": "../util.json#/$defs/dataDamageType"
533
+ }
534
+ },
535
+ "damageVulnerable": {
536
+ "type": "array",
537
+ "minItems": 1,
538
+ "uniqueItems": true,
539
+ "items": {
540
+ "$ref": "../util.json#/$defs/dataDamageType"
541
+ }
542
+ },
543
+ "conditionInflict": {
544
+ "$ref": "../util.json#/$defs/tagsConditions"
545
+ },
546
+ "conditionImmune": {
547
+ "$ref": "../util.json#/$defs/tagsConditions"
548
+ },
549
+ "savingThrow": {
550
+ "$ref": "../util.json#/$defs/tagsSavingThrow"
551
+ },
552
+ "abilityCheck": {
553
+ "type": "array",
554
+ "minItems": 1,
555
+ "uniqueItems": true,
556
+ "items": {
557
+ "type": "string",
558
+ "enum": [
559
+ "strength",
560
+ "constitution",
561
+ "dexterity",
562
+ "intelligence",
563
+ "wisdom",
564
+ "charisma"
565
+ ]
566
+ }
567
+ },
568
+ "spellAttack": {
569
+ "type": "array",
570
+ "minItems": 1,
571
+ "uniqueItems": true,
572
+ "items": {
573
+ "type": "string",
574
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
575
+ "enum": [
576
+ "M",
577
+ "R",
578
+ "O"
579
+ ]
580
+ }
581
+ },
582
+ "areaTags": {
583
+ "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",
584
+ "type": "array",
585
+ "minItems": 1,
586
+ "uniqueItems": true,
587
+ "items": {
588
+ "type": "string",
589
+ "enum": [
590
+ "ST",
591
+ "MT",
592
+ "R",
593
+ "N",
594
+ "C",
595
+ "Y",
596
+ "H",
597
+ "L",
598
+ "S",
599
+ "Q",
600
+ "W"
601
+ ]
602
+ }
603
+ },
604
+ "miscTags": {
605
+ "type": "array",
606
+ "description": "AAD: Additional Attack Damage\n DFT: Difficult Terrain\n FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n OBJ: Affects Objects\n OBS: Obscures Vision\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",
607
+ "minItems": 1,
608
+ "uniqueItems": true,
609
+ "items": {
610
+ "type": "string",
611
+ "enum": [
612
+ "AAD",
613
+ "DFT",
614
+ "FMV",
615
+ "HL",
616
+ "LGT",
617
+ "LGTS",
618
+ "MAC",
619
+ "OBJ",
620
+ "OBS",
621
+ "PRM",
622
+ "PS",
623
+ "RO",
624
+ "SCL",
625
+ "SMN",
626
+ "SGT",
627
+ "THP",
628
+ "TP",
629
+ "UBA"
630
+ ]
631
+ }
632
+ },
633
+ "affectsCreatureType": {
634
+ "type": "array",
635
+ "minItems": 1,
636
+ "uniqueItems": true,
637
+ "items": {
638
+ "$ref": "../util.json#/$defs/creatureType"
639
+ }
640
+ },
641
+ "srd": {
642
+ "$ref": "../util.json#/$defs/srd"
643
+ },
644
+ "basicRules": {
645
+ "$ref": "../util.json#/$defs/basicRules"
646
+ },
647
+ "legacy": {
648
+ "$ref": "../util.json#/$defs/legacy"
649
+ },
650
+ "scalingLevelDice": {
651
+ "oneOf": [
652
+ {
653
+ "type": "array",
654
+ "items": {
655
+ "$ref": "#/$defs/scalingLevelDiceItem"
656
+ }
657
+ },
658
+ {
659
+ "$ref": "#/$defs/scalingLevelDiceItem"
660
+ }
661
+ ]
662
+ },
663
+ "hasFluff": {
664
+ "type": "boolean"
665
+ },
666
+ "hasFluffImages": {
667
+ "type": "boolean"
668
+ },
669
+ "groups": {
670
+ "type": "array",
671
+ "items": {
672
+ "type": "object",
673
+ "properties": {
674
+ "name": {
675
+ "type": "string"
676
+ },
677
+ "source": {
678
+ "$ref": "../util.json#/$defs/source"
679
+ }
680
+ },
681
+ "required": [
682
+ "name",
683
+ "source"
684
+ ]
685
+ },
686
+ "minItems": 1,
687
+ "uniqueItems": true
688
+ }
689
+ },
690
+ "additionalProperties": false,
691
+ "required": [
692
+ "name",
693
+ "level",
694
+ "school",
695
+ "time",
696
+ "range",
697
+ "duration",
698
+ "entries",
699
+ "source"
700
+ ]
701
+ },
702
+ {
703
+ "type": "object",
704
+ "properties": {
705
+ "name": {
706
+ "type": "string"
707
+ },
708
+ "level": {
709
+ "type": "integer"
710
+ },
711
+ "school": {
712
+ "$ref": "../util.json#/$defs/spellSchool"
713
+ },
714
+ "meta": {
715
+ "type": "object",
716
+ "properties": {
717
+ "ritual": {
718
+ "type": "boolean"
719
+ },
720
+ "technomagic": {
721
+ "type": "boolean"
722
+ }
723
+ },
724
+ "additionalProperties": false
725
+ },
726
+ "time": {
727
+ "type": "array",
728
+ "items": {
729
+ "$ref": "#/$defs/time"
730
+ }
731
+ },
732
+ "range": {
733
+ "type": "object",
734
+ "properties": {
735
+ "type": {
736
+ "type": "string",
737
+ "enum": [
738
+ "special",
739
+ "point",
740
+ "line",
741
+ "cube",
742
+ "cone",
743
+ "radius",
744
+ "sphere",
745
+ "hemisphere",
746
+ "cylinder"
747
+ ]
748
+ },
749
+ "distance": {
750
+ "type": "object",
751
+ "properties": {
752
+ "type": {
753
+ "type": "string",
754
+ "enum": [
755
+ "feet",
756
+ "yards",
757
+ "miles",
758
+ "self",
759
+ "touch",
760
+ "unlimited",
761
+ "plane",
762
+ "sight"
763
+ ]
764
+ },
765
+ "amount": {
766
+ "type": "integer"
767
+ }
768
+ },
769
+ "required": [
770
+ "type"
771
+ ],
772
+ "additionalProperties": false
773
+ }
774
+ },
775
+ "required": [
776
+ "type"
777
+ ],
778
+ "additionalProperties": false
779
+ },
780
+ "components": {
781
+ "type": "object",
782
+ "properties": {
783
+ "v": {
784
+ "type": "boolean"
785
+ },
786
+ "s": {
787
+ "type": "boolean"
788
+ },
789
+ "m": {
790
+ "oneOf": [
791
+ {
792
+ "type": "object",
793
+ "properties": {
794
+ "text": {
795
+ "type": "string"
796
+ },
797
+ "cost": {
798
+ "description": "In copper pieces.",
799
+ "type": "number"
800
+ },
801
+ "consume": {
802
+ "oneOf": [
803
+ {
804
+ "type": "boolean"
805
+ },
806
+ {
807
+ "type": "string",
808
+ "const": "optional"
809
+ }
810
+ ]
811
+ }
812
+ },
813
+ "required": [
814
+ "text"
815
+ ],
816
+ "additionalProperties": false
817
+ },
818
+ {
819
+ "type": [
820
+ "boolean",
821
+ "string"
822
+ ]
823
+ }
824
+ ]
825
+ },
826
+ "r": {
827
+ "description": "\"Royalty\" components, as introduced in Acquisitions Incorporated",
828
+ "type": "boolean"
829
+ }
830
+ },
831
+ "additionalProperties": false
832
+ },
833
+ "duration": {
834
+ "type": "array",
835
+ "items": {
836
+ "$ref": "#/$defs/duration"
837
+ }
838
+ },
839
+ "entries": {
840
+ "type": "array",
841
+ "items": {
842
+ "$ref": "../entry.json"
843
+ }
844
+ },
845
+ "entriesHigherLevel": {
846
+ "type": "array",
847
+ "items": {
848
+ "$ref": "../entry.json"
849
+ }
850
+ },
851
+ "source": {
852
+ "$ref": "../util.json#/$defs/source"
853
+ },
854
+ "page": {
855
+ "$ref": "../util.json#/$defs/page"
856
+ },
857
+ "additionalSources": {
858
+ "$ref": "../util.json#/$defs/additionalSources"
859
+ },
860
+ "otherSources": {
861
+ "$ref": "../util.json#/$defs/otherSources"
862
+ },
863
+ "damageInflict": {
864
+ "type": "array",
865
+ "uniqueItems": true,
866
+ "items": {
867
+ "$ref": "../util.json#/$defs/dataDamageType"
868
+ }
869
+ },
870
+ "damageResist": {
871
+ "type": "array",
872
+ "minItems": 1,
873
+ "uniqueItems": true,
874
+ "items": {
875
+ "$ref": "../util.json#/$defs/dataDamageType"
876
+ }
877
+ },
878
+ "damageImmune": {
879
+ "type": "array",
880
+ "minItems": 1,
881
+ "uniqueItems": true,
882
+ "items": {
883
+ "$ref": "../util.json#/$defs/dataDamageType"
884
+ }
885
+ },
886
+ "damageVulnerable": {
887
+ "type": "array",
888
+ "minItems": 1,
889
+ "uniqueItems": true,
890
+ "items": {
891
+ "$ref": "../util.json#/$defs/dataDamageType"
892
+ }
893
+ },
894
+ "conditionInflict": {
895
+ "$ref": "../util.json#/$defs/tagsConditions"
896
+ },
897
+ "conditionImmune": {
898
+ "$ref": "../util.json#/$defs/tagsConditions"
899
+ },
900
+ "savingThrow": {
901
+ "$ref": "../util.json#/$defs/tagsSavingThrow"
902
+ },
903
+ "abilityCheck": {
904
+ "type": "array",
905
+ "minItems": 1,
906
+ "uniqueItems": true,
907
+ "items": {
908
+ "type": "string",
909
+ "enum": [
910
+ "strength",
911
+ "constitution",
912
+ "dexterity",
913
+ "intelligence",
914
+ "wisdom",
915
+ "charisma"
916
+ ]
917
+ }
918
+ },
919
+ "spellAttack": {
920
+ "type": "array",
921
+ "minItems": 1,
922
+ "uniqueItems": true,
923
+ "items": {
924
+ "type": "string",
925
+ "description": "M: Melee\n R: Ranged\n O: Other/Unknown",
926
+ "enum": [
927
+ "M",
928
+ "R",
929
+ "O"
930
+ ]
931
+ }
932
+ },
933
+ "areaTags": {
934
+ "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",
935
+ "type": "array",
936
+ "minItems": 1,
937
+ "uniqueItems": true,
938
+ "items": {
939
+ "type": "string",
940
+ "enum": [
941
+ "ST",
942
+ "MT",
943
+ "R",
944
+ "N",
945
+ "C",
946
+ "Y",
947
+ "H",
948
+ "L",
949
+ "S",
950
+ "Q",
951
+ "W"
952
+ ]
953
+ }
954
+ },
955
+ "miscTags": {
956
+ "type": "array",
957
+ "description": "AAD: Additional Attack Damage\n DFT: Difficult Terrain\n FMV: Forced Movement\n HL: Healing\n LGT: Creates Light\n LGTS: Creates Sunlight\n MAC: Modifies AC\n OBJ: Affects Objects\n OBS: Obscures Vision\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",
958
+ "minItems": 1,
959
+ "uniqueItems": true,
960
+ "items": {
961
+ "type": "string",
962
+ "enum": [
963
+ "AAD",
964
+ "DFT",
965
+ "FMV",
966
+ "HL",
967
+ "LGT",
968
+ "LGTS",
969
+ "MAC",
970
+ "OBJ",
971
+ "OBS",
972
+ "PRM",
973
+ "PS",
974
+ "RO",
975
+ "SCL",
976
+ "SMN",
977
+ "SGT",
978
+ "THP",
979
+ "TP",
980
+ "UBA"
981
+ ]
982
+ }
983
+ },
984
+ "affectsCreatureType": {
985
+ "type": "array",
986
+ "minItems": 1,
987
+ "uniqueItems": true,
988
+ "items": {
989
+ "$ref": "../util.json#/$defs/creatureType"
990
+ }
991
+ },
992
+ "srd": {
993
+ "$ref": "../util.json#/$defs/srd"
994
+ },
995
+ "basicRules": {
996
+ "$ref": "../util.json#/$defs/basicRules"
997
+ },
998
+ "legacy": {
999
+ "$ref": "../util.json#/$defs/legacy"
1000
+ },
1001
+ "scalingLevelDice": {
1002
+ "oneOf": [
1003
+ {
1004
+ "type": "array",
1005
+ "items": {
1006
+ "$ref": "#/$defs/scalingLevelDiceItem"
1007
+ }
1008
+ },
1009
+ {
1010
+ "$ref": "#/$defs/scalingLevelDiceItem"
1011
+ }
1012
+ ]
1013
+ },
1014
+ "hasFluff": {
1015
+ "type": "boolean"
1016
+ },
1017
+ "hasFluffImages": {
1018
+ "type": "boolean"
1019
+ },
1020
+ "groups": {
1021
+ "type": "array",
1022
+ "items": {
1023
+ "type": "object",
1024
+ "properties": {
1025
+ "name": {
1026
+ "type": "string"
1027
+ },
1028
+ "source": {
1029
+ "$ref": "../util.json#/$defs/source"
1030
+ }
1031
+ },
1032
+ "required": [
1033
+ "name",
1034
+ "source"
1035
+ ]
1036
+ },
1037
+ "minItems": 1,
1038
+ "uniqueItems": true
1039
+ },
1040
+ "_copy": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "name": {
1044
+ "type": "string"
1045
+ },
1046
+ "source": {
1047
+ "$ref": "../util.json#/$defs/source"
1048
+ },
1049
+ "pantheon": {
1050
+ "description": "Used in deity data",
1051
+ "type": "string"
1052
+ },
1053
+ "shortName": {
1054
+ "description": "Used in subclass data",
1055
+ "type": "string"
1056
+ },
1057
+ "className": {
1058
+ "description": "Used in subclass data",
1059
+ "type": "string"
1060
+ },
1061
+ "classSource": {
1062
+ "description": "Used in subclass data",
1063
+ "$ref": "../util.json#/$defs/source"
1064
+ },
1065
+ "_mod": {
1066
+ "$ref": "../util.json#/$defs/_modObject"
1067
+ },
1068
+ "_trait": {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "name": {
1072
+ "type": "string"
1073
+ },
1074
+ "source": {
1075
+ "$ref": "../util.json#/$defs/source"
1076
+ }
1077
+ },
1078
+ "required": [
1079
+ "name",
1080
+ "source"
1081
+ ]
1082
+ },
1083
+ "_preserve": {
1084
+ "type": "object",
1085
+ "patternProperties": {
1086
+ ".*": {
1087
+ "const": true
1088
+ }
1089
+ }
1090
+ }
1091
+ },
1092
+ "required": [
1093
+ "name",
1094
+ "source"
1095
+ ],
1096
+ "additionalProperties": false
1097
+ }
1098
+ },
1099
+ "additionalProperties": false,
1100
+ "required": [
1101
+ "_copy"
1102
+ ]
1103
+ }
1104
+ ]
1105
+ },
1106
+ "time": {
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "number": {
1110
+ "type": "integer"
1111
+ },
1112
+ "unit": {
1113
+ "type": "string",
1114
+ "examples": [
1115
+ "action",
1116
+ "bonus",
1117
+ "reaction",
1118
+ "round",
1119
+ "minute",
1120
+ "hour"
1121
+ ]
1122
+ },
1123
+ "condition": {
1124
+ "type": "string"
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "unit"
1129
+ ],
1130
+ "additionalProperties": false
1131
+ },
1132
+ "duration": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "type": {
1136
+ "type": "string",
1137
+ "enum": [
1138
+ "instant",
1139
+ "timed",
1140
+ "permanent",
1141
+ "special"
1142
+ ]
1143
+ },
1144
+ "duration": {
1145
+ "type": "object",
1146
+ "properties": {
1147
+ "type": {
1148
+ "type": "string",
1149
+ "enum": [
1150
+ "hour",
1151
+ "minute",
1152
+ "turn",
1153
+ "round",
1154
+ "week",
1155
+ "day",
1156
+ "year"
1157
+ ]
1158
+ },
1159
+ "amount": {
1160
+ "type": "integer"
1161
+ },
1162
+ "upTo": {
1163
+ "type": "boolean"
1164
+ }
1165
+ },
1166
+ "required": [
1167
+ "type"
1168
+ ],
1169
+ "additionalProperties": false
1170
+ },
1171
+ "concentration": {
1172
+ "type": "boolean"
1173
+ },
1174
+ "ends": {
1175
+ "type": "array",
1176
+ "items": {
1177
+ "type": "string",
1178
+ "description": "The examples given are short forms that are automatically expanded to \"discharged\", \"dispelled\" & \"triggered\".\nHomebrew files should state custom end conditions in full.",
1179
+ "enum": [
1180
+ "dispel",
1181
+ "trigger",
1182
+ "discharge"
1183
+ ]
1184
+ }
1185
+ },
1186
+ "condition": {
1187
+ "type": "string"
1188
+ }
1189
+ },
1190
+ "required": [
1191
+ "type"
1192
+ ],
1193
+ "additionalProperties": false
1194
+ },
1195
+ "class": {
1196
+ "type": "object",
1197
+ "properties": {
1198
+ "name": {
1199
+ "type": "string"
1200
+ },
1201
+ "source": {
1202
+ "$ref": "../util.json#/$defs/source"
1203
+ },
1204
+ "definedInSource": {
1205
+ "$ref": "../util.json#/$defs/source"
1206
+ }
1207
+ },
1208
+ "required": [
1209
+ "name",
1210
+ "source"
1211
+ ],
1212
+ "additionalProperties": false
1213
+ },
1214
+ "scalingLevelDiceItem": {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "label": {
1218
+ "type": "string"
1219
+ },
1220
+ "scaling": {
1221
+ "type": "object",
1222
+ "patternProperties": {
1223
+ "\\d+": {
1224
+ "type": "string"
1225
+ }
1226
+ },
1227
+ "additionalProperties": false
1228
+ }
1229
+ },
1230
+ "additionalProperties": false
1231
+ }
1232
+ },
1233
+ "properties": {
1234
+ "spell": {
1235
+ "type": "array",
1236
+ "items": {
1237
+ "$ref": "#/$defs/spell"
1238
+ },
1239
+ "minItems": 1,
1240
+ "uniqueItems": true
1241
+ },
1242
+ "_meta": {
1243
+ "$ref": "../util.json#/$defs/metaBlock"
1244
+ }
1245
+ },
1246
+ "required": [
1247
+ "spell"
1248
+ ],
1249
+ "additionalProperties": false
1250
+ }