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