5etools-utils 0.15.17 → 0.16.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 (126) hide show
  1. package/README.md +13 -13
  2. package/bin/clean-html.js +0 -0
  3. package/bin/lint-js-changed.js +17 -0
  4. package/bin/test-edition-sources.js +0 -0
  5. package/bin/test-file-contents.js +0 -0
  6. package/bin/test-file-locations.js +0 -0
  7. package/bin/test-file-names.js +0 -0
  8. package/bin/test-file-props.js +0 -0
  9. package/bin/test-img-file-extensions.js +0 -0
  10. package/bin/test-img-file-sizes.js +0 -0
  11. package/bin/test-img-source-names-brew.js +0 -0
  12. package/bin/test-img-source-names-ua.js +0 -0
  13. package/bin/test-json-brew.js +0 -0
  14. package/bin/test-json-ua.js +0 -0
  15. package/lib/Lint/LintJsChanged.js +33 -0
  16. package/lib/UtilGit.js +39 -0
  17. package/lib/eslint/eslint-plugin-jquery.js +49 -0
  18. package/package.json +16 -6
  19. package/schema/brew/charcreationoptions.json +162 -8
  20. package/schema/brew/cultsboons.json +399 -14
  21. package/schema/brew/encounterbuilder.json +81 -2
  22. package/schema/brew/fluff-charcreationoptions.json +5 -33
  23. package/schema/brew/homebrew.json +8 -2
  24. package/schema/brew/items-base.json +290 -28
  25. package/schema/brew/languages.json +195 -6
  26. package/schema/brew/objects.json +389 -9
  27. package/schema/brew/psionics.json +356 -7
  28. package/schema/brew/rewards.json +207 -8
  29. package/schema/brew/senses.json +68 -7
  30. package/schema/brew/skills.json +74 -7
  31. package/schema/brew/tables.json +676 -94
  32. package/schema/brew/trapshazards.json +571 -14
  33. package/schema/brew/util-copy.json +143 -1
  34. package/schema/brew/util.json +4 -2
  35. package/schema/brew/variantrules.json +151 -22
  36. package/schema/brew/vehicles.json +6672 -61
  37. package/schema/brew-fast/charcreationoptions.json +162 -8
  38. package/schema/brew-fast/cultsboons.json +399 -14
  39. package/schema/brew-fast/encounterbuilder.json +81 -2
  40. package/schema/brew-fast/fluff-charcreationoptions.json +5 -33
  41. package/schema/brew-fast/homebrew.json +8 -2
  42. package/schema/brew-fast/items-base.json +290 -28
  43. package/schema/brew-fast/languages.json +195 -6
  44. package/schema/brew-fast/objects.json +389 -9
  45. package/schema/brew-fast/psionics.json +356 -7
  46. package/schema/brew-fast/rewards.json +207 -8
  47. package/schema/brew-fast/senses.json +68 -7
  48. package/schema/brew-fast/skills.json +74 -7
  49. package/schema/brew-fast/tables.json +676 -94
  50. package/schema/brew-fast/trapshazards.json +571 -14
  51. package/schema/brew-fast/util-copy.json +143 -1
  52. package/schema/brew-fast/util.json +4 -2
  53. package/schema/brew-fast/variantrules.json +151 -22
  54. package/schema/brew-fast/vehicles.json +6672 -61
  55. package/schema/site/charcreationoptions.json +134 -8
  56. package/schema/site/cultsboons.json +315 -14
  57. package/schema/site/encounterbuilder.json +81 -2
  58. package/schema/site/fluff-charcreationoptions.json +5 -33
  59. package/schema/site/homebrew.json +8 -2
  60. package/schema/site/items-base.json +374 -40
  61. package/schema/site/languages.json +197 -6
  62. package/schema/site/objects.json +361 -9
  63. package/schema/site/psionics.json +314 -7
  64. package/schema/site/rewards.json +165 -8
  65. package/schema/site/senses.json +92 -7
  66. package/schema/site/skills.json +98 -7
  67. package/schema/site/tables.json +600 -87
  68. package/schema/site/trapshazards.json +555 -14
  69. package/schema/site/util-copy.json +143 -1
  70. package/schema/site/util.json +4 -2
  71. package/schema/site/variantrules.json +161 -22
  72. package/schema/site/vehicles.json +6446 -86
  73. package/schema/site-fast/charcreationoptions.json +134 -8
  74. package/schema/site-fast/cultsboons.json +315 -14
  75. package/schema/site-fast/encounterbuilder.json +81 -2
  76. package/schema/site-fast/fluff-charcreationoptions.json +5 -33
  77. package/schema/site-fast/homebrew.json +8 -2
  78. package/schema/site-fast/items-base.json +374 -40
  79. package/schema/site-fast/languages.json +197 -6
  80. package/schema/site-fast/objects.json +361 -9
  81. package/schema/site-fast/psionics.json +314 -7
  82. package/schema/site-fast/rewards.json +165 -8
  83. package/schema/site-fast/senses.json +92 -7
  84. package/schema/site-fast/skills.json +98 -7
  85. package/schema/site-fast/tables.json +600 -87
  86. package/schema/site-fast/trapshazards.json +555 -14
  87. package/schema/site-fast/util-copy.json +143 -1
  88. package/schema/site-fast/util.json +4 -2
  89. package/schema/site-fast/variantrules.json +161 -22
  90. package/schema/site-fast/vehicles.json +6446 -86
  91. package/schema/ua/charcreationoptions.json +110 -8
  92. package/schema/ua/cultsboons.json +315 -14
  93. package/schema/ua/encounterbuilder.json +81 -2
  94. package/schema/ua/fluff-charcreationoptions.json +5 -33
  95. package/schema/ua/homebrew.json +8 -2
  96. package/schema/ua/items-base.json +290 -28
  97. package/schema/ua/languages.json +173 -6
  98. package/schema/ua/objects.json +367 -9
  99. package/schema/ua/psionics.json +314 -7
  100. package/schema/ua/rewards.json +165 -8
  101. package/schema/ua/senses.json +68 -7
  102. package/schema/ua/skills.json +74 -7
  103. package/schema/ua/tables.json +564 -87
  104. package/schema/ua/trapshazards.json +483 -14
  105. package/schema/ua/util-copy.json +143 -1
  106. package/schema/ua/util.json +4 -2
  107. package/schema/ua/variantrules.json +139 -22
  108. package/schema/ua/vehicles.json +6574 -76
  109. package/schema/ua-fast/charcreationoptions.json +110 -8
  110. package/schema/ua-fast/cultsboons.json +315 -14
  111. package/schema/ua-fast/encounterbuilder.json +81 -2
  112. package/schema/ua-fast/fluff-charcreationoptions.json +5 -33
  113. package/schema/ua-fast/homebrew.json +8 -2
  114. package/schema/ua-fast/items-base.json +290 -28
  115. package/schema/ua-fast/languages.json +173 -6
  116. package/schema/ua-fast/objects.json +367 -9
  117. package/schema/ua-fast/psionics.json +314 -7
  118. package/schema/ua-fast/rewards.json +165 -8
  119. package/schema/ua-fast/senses.json +68 -7
  120. package/schema/ua-fast/skills.json +74 -7
  121. package/schema/ua-fast/tables.json +564 -87
  122. package/schema/ua-fast/trapshazards.json +483 -14
  123. package/schema/ua-fast/util-copy.json +143 -1
  124. package/schema/ua-fast/util.json +4 -2
  125. package/schema/ua-fast/variantrules.json +139 -22
  126. package/schema/ua-fast/vehicles.json +6574 -76
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "trapshazards.json",
4
- "version": "1.4.9",
4
+ "version": "1.5.0",
5
5
  "type": "object",
6
6
  "$defs": {
7
7
  "_trapHazardTier": {
@@ -78,11 +78,201 @@
78
78
  },
79
79
  "minItems": 1
80
80
  },
81
+ "trapDataDMG": {
82
+ "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
83
+ "type": "object",
84
+ "properties": {
85
+ "name": {
86
+ "type": "string"
87
+ },
88
+ "alias": {
89
+ "$ref": "util.json#/$defs/alias"
90
+ },
91
+ "trapHazType": {
92
+ "type": "string",
93
+ "description": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap",
94
+ "enum": [
95
+ "MECH",
96
+ "MAG",
97
+ "TRP",
98
+ "HAUNT"
99
+ ],
100
+ "markdownDescription": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap"
101
+ },
102
+ "source": {
103
+ "$ref": "util.json#/$defs/source"
104
+ },
105
+ "page": {
106
+ "$ref": "util.json#/$defs/page"
107
+ },
108
+ "otherSources": {
109
+ "$ref": "util.json#/$defs/otherSources"
110
+ },
111
+ "referenceSources": {
112
+ "$ref": "util.json#/$defs/referenceSources"
113
+ },
114
+ "reprintedAs": {
115
+ "$ref": "util.json#/$defs/reprintedAs"
116
+ },
117
+ "trigger": {
118
+ "$ref": "#/$defs/_trapTrigger"
119
+ },
120
+ "duration": {
121
+ "$ref": "util-time.json#/$defs/durationEffect"
122
+ },
123
+ "entries": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "rating": {
130
+ "$ref": "#/$defs/_trapHazardRating"
131
+ },
132
+ "hauntBonus": {
133
+ "type": "string"
134
+ },
135
+ "legacy": {
136
+ "$ref": "util.json#/$defs/legacy"
137
+ },
138
+ "hasFluff": {
139
+ "type": "boolean"
140
+ },
141
+ "hasFluffImages": {
142
+ "type": "boolean"
143
+ },
144
+ "srd": {
145
+ "$ref": "util.json#/$defs/srd"
146
+ },
147
+ "srd52": {
148
+ "$ref": "util.json#/$defs/srd"
149
+ },
150
+ "basicRules": {
151
+ "$ref": "util.json#/$defs/basicRules"
152
+ },
153
+ "basicRules2024": {
154
+ "$ref": "util.json#/$defs/basicRules"
155
+ }
156
+ },
157
+ "additionalProperties": false,
158
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG."
159
+ },
160
+ "trapDataXGE": {
161
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
162
+ "type": "object",
163
+ "properties": {
164
+ "name": {
165
+ "type": "string"
166
+ },
167
+ "alias": {
168
+ "$ref": "util.json#/$defs/alias"
169
+ },
170
+ "trapHazType": {
171
+ "type": "string",
172
+ "enum": [
173
+ "SMPL",
174
+ "CMPX"
175
+ ]
176
+ },
177
+ "source": {
178
+ "$ref": "util.json#/$defs/source"
179
+ },
180
+ "page": {
181
+ "$ref": "util.json#/$defs/page"
182
+ },
183
+ "otherSources": {
184
+ "$ref": "util.json#/$defs/otherSources"
185
+ },
186
+ "referenceSources": {
187
+ "$ref": "util.json#/$defs/referenceSources"
188
+ },
189
+ "reprintedAs": {
190
+ "$ref": "util.json#/$defs/reprintedAs"
191
+ },
192
+ "entries": {
193
+ "type": "array",
194
+ "items": {
195
+ "$ref": "entry.json"
196
+ }
197
+ },
198
+ "rating": {
199
+ "$ref": "#/$defs/_trapHazardRating"
200
+ },
201
+ "trigger": {
202
+ "$ref": "#/$defs/_trapTrigger"
203
+ },
204
+ "initiative": {
205
+ "oneOf": [
206
+ {
207
+ "type": "integer",
208
+ "minimum": 1,
209
+ "maximum": 3
210
+ }
211
+ ]
212
+ },
213
+ "initiativeNote": {
214
+ "$ref": "entry.json"
215
+ },
216
+ "effect": {
217
+ "type": "array",
218
+ "items": {
219
+ "$ref": "entry.json"
220
+ }
221
+ },
222
+ "eActive": {
223
+ "type": "array",
224
+ "items": {
225
+ "$ref": "entry.json"
226
+ }
227
+ },
228
+ "eDynamic": {
229
+ "type": "array",
230
+ "items": {
231
+ "$ref": "entry.json"
232
+ }
233
+ },
234
+ "eConstant": {
235
+ "type": "array",
236
+ "items": {
237
+ "$ref": "entry.json"
238
+ }
239
+ },
240
+ "countermeasures": {
241
+ "type": "array",
242
+ "items": {
243
+ "$ref": "entry.json"
244
+ }
245
+ },
246
+ "legacy": {
247
+ "$ref": "util.json#/$defs/legacy"
248
+ },
249
+ "hasFluff": {
250
+ "type": "boolean"
251
+ },
252
+ "hasFluffImages": {
253
+ "type": "boolean"
254
+ },
255
+ "srd": {
256
+ "$ref": "util.json#/$defs/srd"
257
+ },
258
+ "srd52": {
259
+ "$ref": "util.json#/$defs/srd"
260
+ },
261
+ "basicRules": {
262
+ "$ref": "util.json#/$defs/basicRules"
263
+ },
264
+ "basicRules2024": {
265
+ "$ref": "util.json#/$defs/basicRules"
266
+ }
267
+ },
268
+ "additionalProperties": false,
269
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps"
270
+ },
81
271
  "trap": {
82
- "oneOf": [
272
+ "anyOf": [
83
273
  {
84
- "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
85
274
  "type": "object",
275
+ "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
86
276
  "properties": {
87
277
  "name": {
88
278
  "type": "string"
@@ -157,17 +347,102 @@
157
347
  }
158
348
  },
159
349
  "additionalProperties": false,
350
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG.",
160
351
  "required": [
161
352
  "name",
162
353
  "trapHazType",
163
354
  "source",
164
355
  "entries"
165
- ],
166
- "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG."
356
+ ]
167
357
  },
168
358
  {
169
- "description": "XGE \"Traps Revisited\" Simple/Complex traps",
170
359
  "type": "object",
360
+ "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
361
+ "properties": {
362
+ "name": {
363
+ "type": "string"
364
+ },
365
+ "alias": {
366
+ "$ref": "util.json#/$defs/alias"
367
+ },
368
+ "trapHazType": {
369
+ "type": "string",
370
+ "description": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap",
371
+ "enum": [
372
+ "MECH",
373
+ "MAG",
374
+ "TRP",
375
+ "HAUNT"
376
+ ],
377
+ "markdownDescription": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap"
378
+ },
379
+ "source": {
380
+ "$ref": "util.json#/$defs/source"
381
+ },
382
+ "page": {
383
+ "$ref": "util.json#/$defs/page"
384
+ },
385
+ "otherSources": {
386
+ "$ref": "util.json#/$defs/otherSources"
387
+ },
388
+ "referenceSources": {
389
+ "$ref": "util.json#/$defs/referenceSources"
390
+ },
391
+ "reprintedAs": {
392
+ "$ref": "util.json#/$defs/reprintedAs"
393
+ },
394
+ "trigger": {
395
+ "$ref": "#/$defs/_trapTrigger"
396
+ },
397
+ "duration": {
398
+ "$ref": "util-time.json#/$defs/durationEffect"
399
+ },
400
+ "entries": {
401
+ "type": "array",
402
+ "items": {
403
+ "$ref": "entry.json"
404
+ }
405
+ },
406
+ "rating": {
407
+ "$ref": "#/$defs/_trapHazardRating"
408
+ },
409
+ "hauntBonus": {
410
+ "type": "string"
411
+ },
412
+ "legacy": {
413
+ "$ref": "util.json#/$defs/legacy"
414
+ },
415
+ "hasFluff": {
416
+ "type": "boolean"
417
+ },
418
+ "hasFluffImages": {
419
+ "type": "boolean"
420
+ },
421
+ "srd": {
422
+ "$ref": "util.json#/$defs/srd"
423
+ },
424
+ "srd52": {
425
+ "$ref": "util.json#/$defs/srd"
426
+ },
427
+ "basicRules": {
428
+ "$ref": "util.json#/$defs/basicRules"
429
+ },
430
+ "basicRules2024": {
431
+ "$ref": "util.json#/$defs/basicRules"
432
+ },
433
+ "_copy": {
434
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
435
+ }
436
+ },
437
+ "additionalProperties": false,
438
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG.",
439
+ "required": [
440
+ "_copy"
441
+ ]
442
+ },
443
+ {
444
+ "type": "object",
445
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
171
446
  "properties": {
172
447
  "name": {
173
448
  "type": "string"
@@ -274,6 +549,7 @@
274
549
  }
275
550
  },
276
551
  "additionalProperties": false,
552
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps",
277
553
  "required": [
278
554
  "name",
279
555
  "trapHazType",
@@ -281,12 +557,128 @@
281
557
  "entries",
282
558
  "trigger",
283
559
  "countermeasures"
284
- ],
285
- "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps"
560
+ ]
561
+ },
562
+ {
563
+ "type": "object",
564
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
565
+ "properties": {
566
+ "name": {
567
+ "type": "string"
568
+ },
569
+ "alias": {
570
+ "$ref": "util.json#/$defs/alias"
571
+ },
572
+ "trapHazType": {
573
+ "type": "string",
574
+ "enum": [
575
+ "SMPL",
576
+ "CMPX"
577
+ ]
578
+ },
579
+ "source": {
580
+ "$ref": "util.json#/$defs/source"
581
+ },
582
+ "page": {
583
+ "$ref": "util.json#/$defs/page"
584
+ },
585
+ "otherSources": {
586
+ "$ref": "util.json#/$defs/otherSources"
587
+ },
588
+ "referenceSources": {
589
+ "$ref": "util.json#/$defs/referenceSources"
590
+ },
591
+ "reprintedAs": {
592
+ "$ref": "util.json#/$defs/reprintedAs"
593
+ },
594
+ "entries": {
595
+ "type": "array",
596
+ "items": {
597
+ "$ref": "entry.json"
598
+ }
599
+ },
600
+ "rating": {
601
+ "$ref": "#/$defs/_trapHazardRating"
602
+ },
603
+ "trigger": {
604
+ "$ref": "#/$defs/_trapTrigger"
605
+ },
606
+ "initiative": {
607
+ "oneOf": [
608
+ {
609
+ "type": "integer",
610
+ "minimum": 1,
611
+ "maximum": 3
612
+ }
613
+ ]
614
+ },
615
+ "initiativeNote": {
616
+ "$ref": "entry.json"
617
+ },
618
+ "effect": {
619
+ "type": "array",
620
+ "items": {
621
+ "$ref": "entry.json"
622
+ }
623
+ },
624
+ "eActive": {
625
+ "type": "array",
626
+ "items": {
627
+ "$ref": "entry.json"
628
+ }
629
+ },
630
+ "eDynamic": {
631
+ "type": "array",
632
+ "items": {
633
+ "$ref": "entry.json"
634
+ }
635
+ },
636
+ "eConstant": {
637
+ "type": "array",
638
+ "items": {
639
+ "$ref": "entry.json"
640
+ }
641
+ },
642
+ "countermeasures": {
643
+ "type": "array",
644
+ "items": {
645
+ "$ref": "entry.json"
646
+ }
647
+ },
648
+ "legacy": {
649
+ "$ref": "util.json#/$defs/legacy"
650
+ },
651
+ "hasFluff": {
652
+ "type": "boolean"
653
+ },
654
+ "hasFluffImages": {
655
+ "type": "boolean"
656
+ },
657
+ "srd": {
658
+ "$ref": "util.json#/$defs/srd"
659
+ },
660
+ "srd52": {
661
+ "$ref": "util.json#/$defs/srd"
662
+ },
663
+ "basicRules": {
664
+ "$ref": "util.json#/$defs/basicRules"
665
+ },
666
+ "basicRules2024": {
667
+ "$ref": "util.json#/$defs/basicRules"
668
+ },
669
+ "_copy": {
670
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
671
+ }
672
+ },
673
+ "additionalProperties": false,
674
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps",
675
+ "required": [
676
+ "_copy"
677
+ ]
286
678
  }
287
679
  ]
288
680
  },
289
- "hazard": {
681
+ "hazardData": {
290
682
  "type": "object",
291
683
  "properties": {
292
684
  "name": {
@@ -350,15 +742,160 @@
350
742
  "$ref": "util.json#/$defs/basicRules"
351
743
  }
352
744
  },
353
- "additionalProperties": false,
354
- "required": [
355
- "name",
356
- "source",
357
- "entries"
745
+ "additionalProperties": false
746
+ },
747
+ "hazard": {
748
+ "anyOf": [
749
+ {
750
+ "type": "object",
751
+ "properties": {
752
+ "name": {
753
+ "type": "string"
754
+ },
755
+ "alias": {
756
+ "$ref": "util.json#/$defs/alias"
757
+ },
758
+ "trapHazType": {
759
+ "type": "string",
760
+ "description": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
761
+ "markdownDescription": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
762
+ "enum": [
763
+ "ENV",
764
+ "EST",
765
+ "GEN",
766
+ "WTH",
767
+ "WLD"
768
+ ]
769
+ },
770
+ "source": {
771
+ "$ref": "util.json#/$defs/source"
772
+ },
773
+ "page": {
774
+ "$ref": "util.json#/$defs/page"
775
+ },
776
+ "otherSources": {
777
+ "$ref": "util.json#/$defs/otherSources"
778
+ },
779
+ "reprintedAs": {
780
+ "$ref": "util.json#/$defs/reprintedAs"
781
+ },
782
+ "entries": {
783
+ "type": "array",
784
+ "items": {
785
+ "$ref": "entry.json"
786
+ }
787
+ },
788
+ "legacy": {
789
+ "$ref": "util.json#/$defs/legacy"
790
+ },
791
+ "rating": {
792
+ "$ref": "#/$defs/_trapHazardRating"
793
+ },
794
+ "hasFluff": {
795
+ "type": "boolean"
796
+ },
797
+ "hasFluffImages": {
798
+ "type": "boolean"
799
+ },
800
+ "srd": {
801
+ "$ref": "util.json#/$defs/srd"
802
+ },
803
+ "srd52": {
804
+ "$ref": "util.json#/$defs/srd"
805
+ },
806
+ "basicRules": {
807
+ "$ref": "util.json#/$defs/basicRules"
808
+ },
809
+ "basicRules2024": {
810
+ "$ref": "util.json#/$defs/basicRules"
811
+ }
812
+ },
813
+ "additionalProperties": false,
814
+ "required": [
815
+ "name",
816
+ "source",
817
+ "entries"
818
+ ]
819
+ },
820
+ {
821
+ "type": "object",
822
+ "properties": {
823
+ "name": {
824
+ "type": "string"
825
+ },
826
+ "alias": {
827
+ "$ref": "util.json#/$defs/alias"
828
+ },
829
+ "trapHazType": {
830
+ "type": "string",
831
+ "description": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
832
+ "markdownDescription": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
833
+ "enum": [
834
+ "ENV",
835
+ "EST",
836
+ "GEN",
837
+ "WTH",
838
+ "WLD"
839
+ ]
840
+ },
841
+ "source": {
842
+ "$ref": "util.json#/$defs/source"
843
+ },
844
+ "page": {
845
+ "$ref": "util.json#/$defs/page"
846
+ },
847
+ "otherSources": {
848
+ "$ref": "util.json#/$defs/otherSources"
849
+ },
850
+ "reprintedAs": {
851
+ "$ref": "util.json#/$defs/reprintedAs"
852
+ },
853
+ "entries": {
854
+ "type": "array",
855
+ "items": {
856
+ "$ref": "entry.json"
857
+ }
858
+ },
859
+ "legacy": {
860
+ "$ref": "util.json#/$defs/legacy"
861
+ },
862
+ "rating": {
863
+ "$ref": "#/$defs/_trapHazardRating"
864
+ },
865
+ "hasFluff": {
866
+ "type": "boolean"
867
+ },
868
+ "hasFluffImages": {
869
+ "type": "boolean"
870
+ },
871
+ "srd": {
872
+ "$ref": "util.json#/$defs/srd"
873
+ },
874
+ "srd52": {
875
+ "$ref": "util.json#/$defs/srd"
876
+ },
877
+ "basicRules": {
878
+ "$ref": "util.json#/$defs/basicRules"
879
+ },
880
+ "basicRules2024": {
881
+ "$ref": "util.json#/$defs/basicRules"
882
+ },
883
+ "_copy": {
884
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
885
+ }
886
+ },
887
+ "additionalProperties": false,
888
+ "required": [
889
+ "_copy"
890
+ ]
891
+ }
358
892
  ]
359
893
  }
360
894
  },
361
895
  "properties": {
896
+ "_meta": {
897
+ "$ref": "util.json#/$defs/metaBlock"
898
+ },
362
899
  "trap": {
363
900
  "type": "array",
364
901
  "minItems": 1,
@@ -376,5 +913,9 @@
376
913
  }
377
914
  }
378
915
  },
916
+ "required": [
917
+ "trap",
918
+ "hazard"
919
+ ],
379
920
  "additionalProperties": false
380
921
  }