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,959 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "items-base.json",
4
+ "version": "1.5.8",
5
+ "$defs": {
6
+ "itemPropertyLookupArray": {
7
+ "type": "array",
8
+ "minItems": 1,
9
+ "uniqueItems": true,
10
+ "items": {
11
+ "$ref": "#/$defs/itemPropertyLookup"
12
+ }
13
+ },
14
+ "itemTypeLookupArray": {
15
+ "type": "array",
16
+ "minItems": 1,
17
+ "uniqueItems": true,
18
+ "items": {
19
+ "$ref": "#/$defs/itemTypeLookup"
20
+ }
21
+ },
22
+ "itemLookupBase": {
23
+ "type": "object",
24
+ "properties": {
25
+ "abbreviation": {
26
+ "type": "string"
27
+ },
28
+ "source": {
29
+ "$ref": "util.json#/$defs/source"
30
+ },
31
+ "page": {
32
+ "$ref": "util.json#/$defs/page"
33
+ },
34
+ "name": {
35
+ "type": "string"
36
+ }
37
+ },
38
+ "additionalProperties": false,
39
+ "required": [
40
+ "abbreviation",
41
+ "source",
42
+ "page"
43
+ ]
44
+ },
45
+ "itemPropertyLookup": {
46
+ "anyOf": [
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "abbreviation": {
51
+ "type": "string"
52
+ },
53
+ "source": {
54
+ "$ref": "util.json#/$defs/source"
55
+ },
56
+ "page": {
57
+ "$ref": "util.json#/$defs/page"
58
+ },
59
+ "name": {
60
+ "type": "string"
61
+ },
62
+ "template": {
63
+ "type": "string"
64
+ },
65
+ "entries": {
66
+ "type": "array",
67
+ "items": {
68
+ "$ref": "entry.json"
69
+ }
70
+ }
71
+ },
72
+ "additionalProperties": false,
73
+ "required": [
74
+ "abbreviation",
75
+ "source",
76
+ "page"
77
+ ]
78
+ },
79
+ {
80
+ "type": "object",
81
+ "properties": {
82
+ "abbreviation": {
83
+ "type": "string"
84
+ },
85
+ "source": {
86
+ "$ref": "util.json#/$defs/source"
87
+ },
88
+ "page": {
89
+ "$ref": "util.json#/$defs/page"
90
+ },
91
+ "name": {
92
+ "type": "string"
93
+ },
94
+ "template": {
95
+ "type": "string"
96
+ },
97
+ "entriesTemplate": {
98
+ "type": "array",
99
+ "items": {
100
+ "$ref": "entry.json"
101
+ }
102
+ }
103
+ },
104
+ "additionalProperties": false,
105
+ "required": [
106
+ "abbreviation",
107
+ "source",
108
+ "page"
109
+ ]
110
+ }
111
+ ]
112
+ },
113
+ "itemTypeLookup": {
114
+ "anyOf": [
115
+ {
116
+ "type": "object",
117
+ "properties": {
118
+ "abbreviation": {
119
+ "type": "string"
120
+ },
121
+ "source": {
122
+ "$ref": "util.json#/$defs/source"
123
+ },
124
+ "page": {
125
+ "$ref": "util.json#/$defs/page"
126
+ },
127
+ "name": {
128
+ "type": "string"
129
+ },
130
+ "entries": {
131
+ "type": "array",
132
+ "items": {
133
+ "$ref": "entry.json"
134
+ }
135
+ }
136
+ },
137
+ "additionalProperties": false,
138
+ "required": [
139
+ "abbreviation",
140
+ "source",
141
+ "page"
142
+ ]
143
+ },
144
+ {
145
+ "type": "object",
146
+ "properties": {
147
+ "abbreviation": {
148
+ "type": "string"
149
+ },
150
+ "source": {
151
+ "$ref": "util.json#/$defs/source"
152
+ },
153
+ "page": {
154
+ "$ref": "util.json#/$defs/page"
155
+ },
156
+ "name": {
157
+ "type": "string"
158
+ },
159
+ "entriesTemplate": {
160
+ "type": "array",
161
+ "items": {
162
+ "$ref": "entry.json"
163
+ }
164
+ }
165
+ },
166
+ "additionalProperties": false,
167
+ "required": [
168
+ "abbreviation",
169
+ "source",
170
+ "page"
171
+ ]
172
+ }
173
+ ]
174
+ },
175
+ "baseitemData": {
176
+ "type": "object",
177
+ "properties": {
178
+ "name": {
179
+ "type": "string"
180
+ },
181
+ "type": {
182
+ "$ref": "items-shared.json#/$defs/itemType"
183
+ },
184
+ "rarity": {
185
+ "$ref": "items-shared.json#/$defs/itemRarity"
186
+ },
187
+ "source": {
188
+ "$ref": "util.json#/$defs/source"
189
+ },
190
+ "page": {
191
+ "$ref": "util.json#/$defs/page"
192
+ },
193
+ "ac": {
194
+ "type": "integer"
195
+ },
196
+ "age": {
197
+ "$ref": "items-shared.json#/$defs/itemAge"
198
+ },
199
+ "armor": {
200
+ "description": "Flag used when merging generic variants",
201
+ "type": "boolean"
202
+ },
203
+ "axe": {
204
+ "type": "boolean"
205
+ },
206
+ "dmg1": {
207
+ "type": "string"
208
+ },
209
+ "dmg2": {
210
+ "type": "string"
211
+ },
212
+ "dmgType": {
213
+ "$ref": "util.json#/$defs/dataDamageTags"
214
+ },
215
+ "entries": {
216
+ "type": "array",
217
+ "items": {
218
+ "$ref": "entry.json"
219
+ }
220
+ },
221
+ "property": {
222
+ "$ref": "items-shared.json#/$defs/itemProperty"
223
+ },
224
+ "range": {
225
+ "type": "string"
226
+ },
227
+ "reload": {
228
+ "type": "integer"
229
+ },
230
+ "scfType": {
231
+ "$ref": "items-shared.json#/$defs/itemScfType"
232
+ },
233
+ "vulnerable": {
234
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
235
+ },
236
+ "resist": {
237
+ "$ref": "util.json#/$defs/damageResistArray"
238
+ },
239
+ "immune": {
240
+ "$ref": "util.json#/$defs/damageImmunityArray"
241
+ },
242
+ "conditionImmune": {
243
+ "$ref": "util.json#/$defs/conditionImmunityArray"
244
+ },
245
+ "stealth": {
246
+ "type": "boolean"
247
+ },
248
+ "strength": {
249
+ "type": "string"
250
+ },
251
+ "sword": {
252
+ "type": "boolean"
253
+ },
254
+ "mace": {
255
+ "type": "boolean"
256
+ },
257
+ "spear": {
258
+ "type": "boolean"
259
+ },
260
+ "hammer": {
261
+ "type": "boolean"
262
+ },
263
+ "bow": {
264
+ "type": "boolean"
265
+ },
266
+ "crossbow": {
267
+ "type": "boolean"
268
+ },
269
+ "club": {
270
+ "type": "boolean"
271
+ },
272
+ "dagger": {
273
+ "type": "boolean"
274
+ },
275
+ "net": {
276
+ "type": "boolean"
277
+ },
278
+ "firearm": {
279
+ "type": "boolean"
280
+ },
281
+ "staff": {
282
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
283
+ "type": "boolean"
284
+ },
285
+ "value": {
286
+ "description": "In copper pieces.",
287
+ "type": "number"
288
+ },
289
+ "valueMult": {
290
+ "type": "number"
291
+ },
292
+ "weapon": {
293
+ "type": "boolean"
294
+ },
295
+ "weaponCategory": {
296
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
297
+ },
298
+ "weight": {
299
+ "type": "number"
300
+ },
301
+ "weightMult": {
302
+ "type": "number"
303
+ },
304
+ "quantity": {
305
+ "type": "integer"
306
+ },
307
+ "srd": {
308
+ "$ref": "util.json#/$defs/srd"
309
+ },
310
+ "basicRules": {
311
+ "$ref": "util.json#/$defs/basicRules"
312
+ },
313
+ "legacy": {
314
+ "$ref": "util.json#/$defs/legacy"
315
+ },
316
+ "otherSources": {
317
+ "$ref": "util.json#/$defs/otherSources"
318
+ },
319
+ "ammoType": {
320
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
321
+ },
322
+ "packContents": {
323
+ "type": "array",
324
+ "items": {
325
+ "oneOf": [
326
+ {
327
+ "type": "string"
328
+ },
329
+ {
330
+ "type": "object",
331
+ "properties": {
332
+ "special": {
333
+ "type": "string"
334
+ },
335
+ "quantity": {
336
+ "type": "integer"
337
+ }
338
+ },
339
+ "additionalProperties": false,
340
+ "required": [
341
+ "special"
342
+ ]
343
+ },
344
+ {
345
+ "type": "object",
346
+ "properties": {
347
+ "item": {
348
+ "type": "string"
349
+ },
350
+ "quantity": {
351
+ "type": "integer"
352
+ }
353
+ },
354
+ "additionalProperties": false,
355
+ "required": [
356
+ "item",
357
+ "quantity"
358
+ ]
359
+ }
360
+ ]
361
+ }
362
+ },
363
+ "lootTables": {
364
+ "type": "array",
365
+ "items": {
366
+ "type": "string"
367
+ }
368
+ },
369
+ "mastery": {
370
+ "$ref": "items-shared.json#/$defs/itemMastery"
371
+ },
372
+ "hasFluff": {
373
+ "type": "boolean"
374
+ },
375
+ "hasFluffImages": {
376
+ "type": "boolean"
377
+ }
378
+ },
379
+ "additionalProperties": false
380
+ },
381
+ "baseitem": {
382
+ "anyOf": [
383
+ {
384
+ "type": "object",
385
+ "properties": {
386
+ "name": {
387
+ "type": "string"
388
+ },
389
+ "type": {
390
+ "$ref": "items-shared.json#/$defs/itemType"
391
+ },
392
+ "rarity": {
393
+ "$ref": "items-shared.json#/$defs/itemRarity"
394
+ },
395
+ "source": {
396
+ "$ref": "util.json#/$defs/source"
397
+ },
398
+ "page": {
399
+ "$ref": "util.json#/$defs/page"
400
+ },
401
+ "ac": {
402
+ "type": "integer"
403
+ },
404
+ "age": {
405
+ "$ref": "items-shared.json#/$defs/itemAge"
406
+ },
407
+ "armor": {
408
+ "description": "Flag used when merging generic variants",
409
+ "type": "boolean"
410
+ },
411
+ "axe": {
412
+ "type": "boolean"
413
+ },
414
+ "dmg1": {
415
+ "type": "string"
416
+ },
417
+ "dmg2": {
418
+ "type": "string"
419
+ },
420
+ "dmgType": {
421
+ "$ref": "util.json#/$defs/dataDamageTags"
422
+ },
423
+ "entries": {
424
+ "type": "array",
425
+ "items": {
426
+ "$ref": "entry.json"
427
+ }
428
+ },
429
+ "property": {
430
+ "$ref": "items-shared.json#/$defs/itemProperty"
431
+ },
432
+ "range": {
433
+ "type": "string"
434
+ },
435
+ "reload": {
436
+ "type": "integer"
437
+ },
438
+ "scfType": {
439
+ "$ref": "items-shared.json#/$defs/itemScfType"
440
+ },
441
+ "vulnerable": {
442
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
443
+ },
444
+ "resist": {
445
+ "$ref": "util.json#/$defs/damageResistArray"
446
+ },
447
+ "immune": {
448
+ "$ref": "util.json#/$defs/damageImmunityArray"
449
+ },
450
+ "conditionImmune": {
451
+ "$ref": "util.json#/$defs/conditionImmunityArray"
452
+ },
453
+ "stealth": {
454
+ "type": "boolean"
455
+ },
456
+ "strength": {
457
+ "type": "string"
458
+ },
459
+ "sword": {
460
+ "type": "boolean"
461
+ },
462
+ "mace": {
463
+ "type": "boolean"
464
+ },
465
+ "spear": {
466
+ "type": "boolean"
467
+ },
468
+ "hammer": {
469
+ "type": "boolean"
470
+ },
471
+ "bow": {
472
+ "type": "boolean"
473
+ },
474
+ "crossbow": {
475
+ "type": "boolean"
476
+ },
477
+ "club": {
478
+ "type": "boolean"
479
+ },
480
+ "dagger": {
481
+ "type": "boolean"
482
+ },
483
+ "net": {
484
+ "type": "boolean"
485
+ },
486
+ "firearm": {
487
+ "type": "boolean"
488
+ },
489
+ "staff": {
490
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
491
+ "type": "boolean"
492
+ },
493
+ "value": {
494
+ "description": "In copper pieces.",
495
+ "type": "number"
496
+ },
497
+ "valueMult": {
498
+ "type": "number"
499
+ },
500
+ "weapon": {
501
+ "type": "boolean"
502
+ },
503
+ "weaponCategory": {
504
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
505
+ },
506
+ "weight": {
507
+ "type": "number"
508
+ },
509
+ "weightMult": {
510
+ "type": "number"
511
+ },
512
+ "quantity": {
513
+ "type": "integer"
514
+ },
515
+ "srd": {
516
+ "$ref": "util.json#/$defs/srd"
517
+ },
518
+ "basicRules": {
519
+ "$ref": "util.json#/$defs/basicRules"
520
+ },
521
+ "legacy": {
522
+ "$ref": "util.json#/$defs/legacy"
523
+ },
524
+ "otherSources": {
525
+ "$ref": "util.json#/$defs/otherSources"
526
+ },
527
+ "ammoType": {
528
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
529
+ },
530
+ "packContents": {
531
+ "type": "array",
532
+ "items": {
533
+ "oneOf": [
534
+ {
535
+ "type": "string"
536
+ },
537
+ {
538
+ "type": "object",
539
+ "properties": {
540
+ "special": {
541
+ "type": "string"
542
+ },
543
+ "quantity": {
544
+ "type": "integer"
545
+ }
546
+ },
547
+ "additionalProperties": false,
548
+ "required": [
549
+ "special"
550
+ ]
551
+ },
552
+ {
553
+ "type": "object",
554
+ "properties": {
555
+ "item": {
556
+ "type": "string"
557
+ },
558
+ "quantity": {
559
+ "type": "integer"
560
+ }
561
+ },
562
+ "additionalProperties": false,
563
+ "required": [
564
+ "item",
565
+ "quantity"
566
+ ]
567
+ }
568
+ ]
569
+ }
570
+ },
571
+ "lootTables": {
572
+ "type": "array",
573
+ "items": {
574
+ "type": "string"
575
+ }
576
+ },
577
+ "mastery": {
578
+ "$ref": "items-shared.json#/$defs/itemMastery"
579
+ },
580
+ "hasFluff": {
581
+ "type": "boolean"
582
+ },
583
+ "hasFluffImages": {
584
+ "type": "boolean"
585
+ }
586
+ },
587
+ "additionalProperties": false,
588
+ "required": [
589
+ "name",
590
+ "type",
591
+ "rarity",
592
+ "source"
593
+ ]
594
+ },
595
+ {
596
+ "type": "object",
597
+ "properties": {
598
+ "name": {
599
+ "type": "string"
600
+ },
601
+ "type": {
602
+ "$ref": "items-shared.json#/$defs/itemType"
603
+ },
604
+ "rarity": {
605
+ "$ref": "items-shared.json#/$defs/itemRarity"
606
+ },
607
+ "source": {
608
+ "$ref": "util.json#/$defs/source"
609
+ },
610
+ "page": {
611
+ "$ref": "util.json#/$defs/page"
612
+ },
613
+ "ac": {
614
+ "type": "integer"
615
+ },
616
+ "age": {
617
+ "$ref": "items-shared.json#/$defs/itemAge"
618
+ },
619
+ "armor": {
620
+ "description": "Flag used when merging generic variants",
621
+ "type": "boolean"
622
+ },
623
+ "axe": {
624
+ "type": "boolean"
625
+ },
626
+ "dmg1": {
627
+ "type": "string"
628
+ },
629
+ "dmg2": {
630
+ "type": "string"
631
+ },
632
+ "dmgType": {
633
+ "$ref": "util.json#/$defs/dataDamageTags"
634
+ },
635
+ "entries": {
636
+ "type": "array",
637
+ "items": {
638
+ "$ref": "entry.json"
639
+ }
640
+ },
641
+ "property": {
642
+ "$ref": "items-shared.json#/$defs/itemProperty"
643
+ },
644
+ "range": {
645
+ "type": "string"
646
+ },
647
+ "reload": {
648
+ "type": "integer"
649
+ },
650
+ "scfType": {
651
+ "$ref": "items-shared.json#/$defs/itemScfType"
652
+ },
653
+ "vulnerable": {
654
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
655
+ },
656
+ "resist": {
657
+ "$ref": "util.json#/$defs/damageResistArray"
658
+ },
659
+ "immune": {
660
+ "$ref": "util.json#/$defs/damageImmunityArray"
661
+ },
662
+ "conditionImmune": {
663
+ "$ref": "util.json#/$defs/conditionImmunityArray"
664
+ },
665
+ "stealth": {
666
+ "type": "boolean"
667
+ },
668
+ "strength": {
669
+ "type": "string"
670
+ },
671
+ "sword": {
672
+ "type": "boolean"
673
+ },
674
+ "mace": {
675
+ "type": "boolean"
676
+ },
677
+ "spear": {
678
+ "type": "boolean"
679
+ },
680
+ "hammer": {
681
+ "type": "boolean"
682
+ },
683
+ "bow": {
684
+ "type": "boolean"
685
+ },
686
+ "crossbow": {
687
+ "type": "boolean"
688
+ },
689
+ "club": {
690
+ "type": "boolean"
691
+ },
692
+ "dagger": {
693
+ "type": "boolean"
694
+ },
695
+ "net": {
696
+ "type": "boolean"
697
+ },
698
+ "firearm": {
699
+ "type": "boolean"
700
+ },
701
+ "staff": {
702
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
703
+ "type": "boolean"
704
+ },
705
+ "value": {
706
+ "description": "In copper pieces.",
707
+ "type": "number"
708
+ },
709
+ "valueMult": {
710
+ "type": "number"
711
+ },
712
+ "weapon": {
713
+ "type": "boolean"
714
+ },
715
+ "weaponCategory": {
716
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
717
+ },
718
+ "weight": {
719
+ "type": "number"
720
+ },
721
+ "weightMult": {
722
+ "type": "number"
723
+ },
724
+ "quantity": {
725
+ "type": "integer"
726
+ },
727
+ "srd": {
728
+ "$ref": "util.json#/$defs/srd"
729
+ },
730
+ "basicRules": {
731
+ "$ref": "util.json#/$defs/basicRules"
732
+ },
733
+ "legacy": {
734
+ "$ref": "util.json#/$defs/legacy"
735
+ },
736
+ "otherSources": {
737
+ "$ref": "util.json#/$defs/otherSources"
738
+ },
739
+ "ammoType": {
740
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
741
+ },
742
+ "packContents": {
743
+ "type": "array",
744
+ "items": {
745
+ "oneOf": [
746
+ {
747
+ "type": "string"
748
+ },
749
+ {
750
+ "type": "object",
751
+ "properties": {
752
+ "special": {
753
+ "type": "string"
754
+ },
755
+ "quantity": {
756
+ "type": "integer"
757
+ }
758
+ },
759
+ "additionalProperties": false,
760
+ "required": [
761
+ "special"
762
+ ]
763
+ },
764
+ {
765
+ "type": "object",
766
+ "properties": {
767
+ "item": {
768
+ "type": "string"
769
+ },
770
+ "quantity": {
771
+ "type": "integer"
772
+ }
773
+ },
774
+ "additionalProperties": false,
775
+ "required": [
776
+ "item",
777
+ "quantity"
778
+ ]
779
+ }
780
+ ]
781
+ }
782
+ },
783
+ "lootTables": {
784
+ "type": "array",
785
+ "items": {
786
+ "type": "string"
787
+ }
788
+ },
789
+ "mastery": {
790
+ "$ref": "items-shared.json#/$defs/itemMastery"
791
+ },
792
+ "hasFluff": {
793
+ "type": "boolean"
794
+ },
795
+ "hasFluffImages": {
796
+ "type": "boolean"
797
+ },
798
+ "_copy": {
799
+ "type": "object",
800
+ "properties": {
801
+ "name": {
802
+ "type": "string"
803
+ },
804
+ "source": {
805
+ "$ref": "util.json#/$defs/source"
806
+ },
807
+ "pantheon": {
808
+ "description": "Used in deity data",
809
+ "type": "string"
810
+ },
811
+ "shortName": {
812
+ "description": "Used in subclass data",
813
+ "type": "string"
814
+ },
815
+ "className": {
816
+ "description": "Used in subclass data",
817
+ "type": "string"
818
+ },
819
+ "classSource": {
820
+ "description": "Used in subclass data",
821
+ "$ref": "util.json#/$defs/source"
822
+ },
823
+ "_mod": {
824
+ "$ref": "util.json#/$defs/_modObject"
825
+ },
826
+ "_trait": {
827
+ "type": "object",
828
+ "properties": {
829
+ "name": {
830
+ "type": "string"
831
+ },
832
+ "source": {
833
+ "$ref": "util.json#/$defs/source"
834
+ }
835
+ },
836
+ "required": [
837
+ "name",
838
+ "source"
839
+ ]
840
+ },
841
+ "_preserve": {
842
+ "type": "object",
843
+ "patternProperties": {
844
+ ".*": {
845
+ "const": true
846
+ }
847
+ }
848
+ }
849
+ },
850
+ "required": [
851
+ "name",
852
+ "source"
853
+ ],
854
+ "additionalProperties": false
855
+ }
856
+ },
857
+ "additionalProperties": false,
858
+ "required": [
859
+ "_copy"
860
+ ]
861
+ }
862
+ ]
863
+ }
864
+ },
865
+ "type": "object",
866
+ "properties": {
867
+ "baseitem": {
868
+ "type": "array",
869
+ "minItems": 1,
870
+ "uniqueItems": true,
871
+ "items": {
872
+ "$ref": "#/$defs/baseitem"
873
+ }
874
+ },
875
+ "itemProperty": {
876
+ "$ref": "#/$defs/itemPropertyLookupArray"
877
+ },
878
+ "itemType": {
879
+ "$ref": "#/$defs/itemTypeLookupArray"
880
+ },
881
+ "itemEntry": {
882
+ "type": "array",
883
+ "minItems": 1,
884
+ "items": {
885
+ "type": "object",
886
+ "properties": {
887
+ "name": {
888
+ "type": "string"
889
+ },
890
+ "source": {
891
+ "$ref": "util.json#/$defs/source"
892
+ },
893
+ "entriesTemplate": {
894
+ "type": "array",
895
+ "items": {
896
+ "$ref": "entry.json"
897
+ }
898
+ }
899
+ }
900
+ }
901
+ },
902
+ "itemTypeAdditionalEntries": {
903
+ "type": "array",
904
+ "minItems": 1,
905
+ "items": {
906
+ "type": "object",
907
+ "properties": {
908
+ "appliesTo": {
909
+ "type": "string"
910
+ },
911
+ "source": {
912
+ "$ref": "util.json#/$defs/source"
913
+ },
914
+ "entries": {
915
+ "type": "array",
916
+ "items": {
917
+ "$ref": "entry.json"
918
+ }
919
+ }
920
+ },
921
+ "additionalProperties": false
922
+ }
923
+ },
924
+ "itemMastery": {
925
+ "type": "array",
926
+ "minItems": 1,
927
+ "items": {
928
+ "type": "object",
929
+ "properties": {
930
+ "name": {
931
+ "type": "string"
932
+ },
933
+ "source": {
934
+ "$ref": "util.json#/$defs/source"
935
+ },
936
+ "page": {
937
+ "$ref": "util.json#/$defs/page"
938
+ },
939
+ "prerequisite": {
940
+ "$ref": "util.json#/$defs/prerequisite"
941
+ },
942
+ "entries": {
943
+ "type": "array",
944
+ "items": {
945
+ "$ref": "entry.json"
946
+ }
947
+ }
948
+ },
949
+ "required": [
950
+ "name",
951
+ "source",
952
+ "entries"
953
+ ],
954
+ "additionalProperties": false
955
+ }
956
+ }
957
+ },
958
+ "additionalProperties": false
959
+ }