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,177 @@
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
+ },
145
+ "additionalProperties": false,
146
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG."
147
+ },
148
+ "trapDataXGE": {
149
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
150
+ "type": "object",
151
+ "properties": {
152
+ "name": {
153
+ "type": "string"
154
+ },
155
+ "alias": {
156
+ "$ref": "util.json#/$defs/alias"
157
+ },
158
+ "trapHazType": {
159
+ "type": "string",
160
+ "enum": [
161
+ "SMPL",
162
+ "CMPX"
163
+ ]
164
+ },
165
+ "source": {
166
+ "$ref": "util.json#/$defs/source"
167
+ },
168
+ "page": {
169
+ "$ref": "util.json#/$defs/page"
170
+ },
171
+ "otherSources": {
172
+ "$ref": "util.json#/$defs/otherSources"
173
+ },
174
+ "referenceSources": {
175
+ "$ref": "util.json#/$defs/referenceSources"
176
+ },
177
+ "reprintedAs": {
178
+ "$ref": "util.json#/$defs/reprintedAs"
179
+ },
180
+ "entries": {
181
+ "type": "array",
182
+ "items": {
183
+ "$ref": "entry.json"
184
+ }
185
+ },
186
+ "rating": {
187
+ "$ref": "#/$defs/_trapHazardRating"
188
+ },
189
+ "trigger": {
190
+ "$ref": "#/$defs/_trapTrigger"
191
+ },
192
+ "initiative": {
193
+ "oneOf": [
194
+ {
195
+ "type": "integer",
196
+ "minimum": 1,
197
+ "maximum": 3
198
+ }
199
+ ]
200
+ },
201
+ "initiativeNote": {
202
+ "$ref": "entry.json"
203
+ },
204
+ "effect": {
205
+ "type": "array",
206
+ "items": {
207
+ "$ref": "entry.json"
208
+ }
209
+ },
210
+ "eActive": {
211
+ "type": "array",
212
+ "items": {
213
+ "$ref": "entry.json"
214
+ }
215
+ },
216
+ "eDynamic": {
217
+ "type": "array",
218
+ "items": {
219
+ "$ref": "entry.json"
220
+ }
221
+ },
222
+ "eConstant": {
223
+ "type": "array",
224
+ "items": {
225
+ "$ref": "entry.json"
226
+ }
227
+ },
228
+ "countermeasures": {
229
+ "type": "array",
230
+ "items": {
231
+ "$ref": "entry.json"
232
+ }
233
+ },
234
+ "legacy": {
235
+ "$ref": "util.json#/$defs/legacy"
236
+ },
237
+ "hasFluff": {
238
+ "type": "boolean"
239
+ },
240
+ "hasFluffImages": {
241
+ "type": "boolean"
242
+ }
243
+ },
244
+ "additionalProperties": false,
245
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps"
246
+ },
81
247
  "trap": {
82
- "oneOf": [
248
+ "anyOf": [
83
249
  {
84
- "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
85
250
  "type": "object",
251
+ "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
86
252
  "properties": {
87
253
  "name": {
88
254
  "type": "string"
@@ -145,17 +311,90 @@
145
311
  }
146
312
  },
147
313
  "additionalProperties": false,
314
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG.",
148
315
  "required": [
149
316
  "name",
150
317
  "trapHazType",
151
318
  "source",
152
319
  "entries"
153
- ],
154
- "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG."
320
+ ]
155
321
  },
156
322
  {
157
- "description": "XGE \"Traps Revisited\" Simple/Complex traps",
158
323
  "type": "object",
324
+ "description": "Older format, used in DMG.\n\nExtended to support XDMG.",
325
+ "properties": {
326
+ "name": {
327
+ "type": "string"
328
+ },
329
+ "alias": {
330
+ "$ref": "util.json#/$defs/alias"
331
+ },
332
+ "trapHazType": {
333
+ "type": "string",
334
+ "description": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap",
335
+ "enum": [
336
+ "MECH",
337
+ "MAG",
338
+ "TRP",
339
+ "HAUNT"
340
+ ],
341
+ "markdownDescription": "- HAUNT: Haunted Trap\n- MAG: Magical Trap\n- MECH: Mechanical Trap\n- TRP: Trap"
342
+ },
343
+ "source": {
344
+ "$ref": "util.json#/$defs/source"
345
+ },
346
+ "page": {
347
+ "$ref": "util.json#/$defs/page"
348
+ },
349
+ "otherSources": {
350
+ "$ref": "util.json#/$defs/otherSources"
351
+ },
352
+ "referenceSources": {
353
+ "$ref": "util.json#/$defs/referenceSources"
354
+ },
355
+ "reprintedAs": {
356
+ "$ref": "util.json#/$defs/reprintedAs"
357
+ },
358
+ "trigger": {
359
+ "$ref": "#/$defs/_trapTrigger"
360
+ },
361
+ "duration": {
362
+ "$ref": "util-time.json#/$defs/durationEffect"
363
+ },
364
+ "entries": {
365
+ "type": "array",
366
+ "items": {
367
+ "$ref": "entry.json"
368
+ }
369
+ },
370
+ "rating": {
371
+ "$ref": "#/$defs/_trapHazardRating"
372
+ },
373
+ "hauntBonus": {
374
+ "type": "string"
375
+ },
376
+ "legacy": {
377
+ "$ref": "util.json#/$defs/legacy"
378
+ },
379
+ "hasFluff": {
380
+ "type": "boolean"
381
+ },
382
+ "hasFluffImages": {
383
+ "type": "boolean"
384
+ },
385
+ "_copy": {
386
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
387
+ }
388
+ },
389
+ "additionalProperties": false,
390
+ "markdownDescription": "Older format, used in DMG.\n\nExtended to support XDMG.",
391
+ "required": [
392
+ "_copy"
393
+ ]
394
+ },
395
+ {
396
+ "type": "object",
397
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
159
398
  "properties": {
160
399
  "name": {
161
400
  "type": "string"
@@ -250,6 +489,7 @@
250
489
  }
251
490
  },
252
491
  "additionalProperties": false,
492
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps",
253
493
  "required": [
254
494
  "name",
255
495
  "trapHazType",
@@ -257,12 +497,116 @@
257
497
  "entries",
258
498
  "trigger",
259
499
  "countermeasures"
260
- ],
261
- "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps"
500
+ ]
501
+ },
502
+ {
503
+ "type": "object",
504
+ "description": "XGE \"Traps Revisited\" Simple/Complex traps",
505
+ "properties": {
506
+ "name": {
507
+ "type": "string"
508
+ },
509
+ "alias": {
510
+ "$ref": "util.json#/$defs/alias"
511
+ },
512
+ "trapHazType": {
513
+ "type": "string",
514
+ "enum": [
515
+ "SMPL",
516
+ "CMPX"
517
+ ]
518
+ },
519
+ "source": {
520
+ "$ref": "util.json#/$defs/source"
521
+ },
522
+ "page": {
523
+ "$ref": "util.json#/$defs/page"
524
+ },
525
+ "otherSources": {
526
+ "$ref": "util.json#/$defs/otherSources"
527
+ },
528
+ "referenceSources": {
529
+ "$ref": "util.json#/$defs/referenceSources"
530
+ },
531
+ "reprintedAs": {
532
+ "$ref": "util.json#/$defs/reprintedAs"
533
+ },
534
+ "entries": {
535
+ "type": "array",
536
+ "items": {
537
+ "$ref": "entry.json"
538
+ }
539
+ },
540
+ "rating": {
541
+ "$ref": "#/$defs/_trapHazardRating"
542
+ },
543
+ "trigger": {
544
+ "$ref": "#/$defs/_trapTrigger"
545
+ },
546
+ "initiative": {
547
+ "oneOf": [
548
+ {
549
+ "type": "integer",
550
+ "minimum": 1,
551
+ "maximum": 3
552
+ }
553
+ ]
554
+ },
555
+ "initiativeNote": {
556
+ "$ref": "entry.json"
557
+ },
558
+ "effect": {
559
+ "type": "array",
560
+ "items": {
561
+ "$ref": "entry.json"
562
+ }
563
+ },
564
+ "eActive": {
565
+ "type": "array",
566
+ "items": {
567
+ "$ref": "entry.json"
568
+ }
569
+ },
570
+ "eDynamic": {
571
+ "type": "array",
572
+ "items": {
573
+ "$ref": "entry.json"
574
+ }
575
+ },
576
+ "eConstant": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "entry.json"
580
+ }
581
+ },
582
+ "countermeasures": {
583
+ "type": "array",
584
+ "items": {
585
+ "$ref": "entry.json"
586
+ }
587
+ },
588
+ "legacy": {
589
+ "$ref": "util.json#/$defs/legacy"
590
+ },
591
+ "hasFluff": {
592
+ "type": "boolean"
593
+ },
594
+ "hasFluffImages": {
595
+ "type": "boolean"
596
+ },
597
+ "_copy": {
598
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
599
+ }
600
+ },
601
+ "additionalProperties": false,
602
+ "markdownDescription": "XGE "Traps Revisited" Simple/Complex traps",
603
+ "required": [
604
+ "_copy"
605
+ ]
262
606
  }
263
607
  ]
264
608
  },
265
- "hazard": {
609
+ "hazardData": {
266
610
  "type": "object",
267
611
  "properties": {
268
612
  "name": {
@@ -314,15 +658,136 @@
314
658
  "type": "boolean"
315
659
  }
316
660
  },
317
- "additionalProperties": false,
318
- "required": [
319
- "name",
320
- "source",
321
- "entries"
661
+ "additionalProperties": false
662
+ },
663
+ "hazard": {
664
+ "anyOf": [
665
+ {
666
+ "type": "object",
667
+ "properties": {
668
+ "name": {
669
+ "type": "string"
670
+ },
671
+ "alias": {
672
+ "$ref": "util.json#/$defs/alias"
673
+ },
674
+ "trapHazType": {
675
+ "type": "string",
676
+ "description": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
677
+ "markdownDescription": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
678
+ "enum": [
679
+ "ENV",
680
+ "EST",
681
+ "GEN",
682
+ "WTH",
683
+ "WLD"
684
+ ]
685
+ },
686
+ "source": {
687
+ "$ref": "util.json#/$defs/source"
688
+ },
689
+ "page": {
690
+ "$ref": "util.json#/$defs/page"
691
+ },
692
+ "otherSources": {
693
+ "$ref": "util.json#/$defs/otherSources"
694
+ },
695
+ "reprintedAs": {
696
+ "$ref": "util.json#/$defs/reprintedAs"
697
+ },
698
+ "entries": {
699
+ "type": "array",
700
+ "items": {
701
+ "$ref": "entry.json"
702
+ }
703
+ },
704
+ "legacy": {
705
+ "$ref": "util.json#/$defs/legacy"
706
+ },
707
+ "rating": {
708
+ "$ref": "#/$defs/_trapHazardRating"
709
+ },
710
+ "hasFluff": {
711
+ "type": "boolean"
712
+ },
713
+ "hasFluffImages": {
714
+ "type": "boolean"
715
+ }
716
+ },
717
+ "additionalProperties": false,
718
+ "required": [
719
+ "name",
720
+ "source",
721
+ "entries"
722
+ ]
723
+ },
724
+ {
725
+ "type": "object",
726
+ "properties": {
727
+ "name": {
728
+ "type": "string"
729
+ },
730
+ "alias": {
731
+ "$ref": "util.json#/$defs/alias"
732
+ },
733
+ "trapHazType": {
734
+ "type": "string",
735
+ "description": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
736
+ "markdownDescription": "- ENV: Environmental Hazard\n- EST: Eldritch Storm\n- GEN: Generic\n- WTH: Weather\n- WLD: Wilderness Hazard",
737
+ "enum": [
738
+ "ENV",
739
+ "EST",
740
+ "GEN",
741
+ "WTH",
742
+ "WLD"
743
+ ]
744
+ },
745
+ "source": {
746
+ "$ref": "util.json#/$defs/source"
747
+ },
748
+ "page": {
749
+ "$ref": "util.json#/$defs/page"
750
+ },
751
+ "otherSources": {
752
+ "$ref": "util.json#/$defs/otherSources"
753
+ },
754
+ "reprintedAs": {
755
+ "$ref": "util.json#/$defs/reprintedAs"
756
+ },
757
+ "entries": {
758
+ "type": "array",
759
+ "items": {
760
+ "$ref": "entry.json"
761
+ }
762
+ },
763
+ "legacy": {
764
+ "$ref": "util.json#/$defs/legacy"
765
+ },
766
+ "rating": {
767
+ "$ref": "#/$defs/_trapHazardRating"
768
+ },
769
+ "hasFluff": {
770
+ "type": "boolean"
771
+ },
772
+ "hasFluffImages": {
773
+ "type": "boolean"
774
+ },
775
+ "_copy": {
776
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
777
+ }
778
+ },
779
+ "additionalProperties": false,
780
+ "required": [
781
+ "_copy"
782
+ ]
783
+ }
322
784
  ]
323
785
  }
324
786
  },
325
787
  "properties": {
788
+ "_meta": {
789
+ "$ref": "util.json#/$defs/metaBlock"
790
+ },
326
791
  "trap": {
327
792
  "type": "array",
328
793
  "minItems": 1,
@@ -340,5 +805,9 @@
340
805
  }
341
806
  }
342
807
  },
808
+ "required": [
809
+ "trap",
810
+ "hazard"
811
+ ],
343
812
  "additionalProperties": false
344
813
  }
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "util-copy.json",
4
4
  "title": "Util: Copy",
5
- "version": "1.0.11",
5
+ "version": "1.1.0",
6
6
  "$defs": {
7
7
  "_mod_renameArr_rename": {
8
8
  "type": "object",
@@ -1160,6 +1160,148 @@
1160
1160
  "const": true
1161
1161
  }
1162
1162
  }
1163
+ },
1164
+ "copyableProps": {
1165
+ "type": "string",
1166
+ "description": "This is the list of props for which there is a `_copy` implementation. `_copy` may not be declared for props other than these.",
1167
+ "enum": [
1168
+ "monster",
1169
+ "monsterFluff",
1170
+ "legendaryGroup",
1171
+ "class",
1172
+ "classFluff",
1173
+ "subclass",
1174
+ "subclassFluff",
1175
+ "classFeature",
1176
+ "subclassFeature",
1177
+ "spell",
1178
+ "spellFluff",
1179
+ "action",
1180
+ "item",
1181
+ "itemGroup",
1182
+ "baseitem",
1183
+ "itemProperty",
1184
+ "itemType",
1185
+ "itemMastery",
1186
+ "magicvariant",
1187
+ "itemFluff",
1188
+ "background",
1189
+ "backgroundFluff",
1190
+ "charoption",
1191
+ "charoptionFluff",
1192
+ "condition",
1193
+ "conditionFluff",
1194
+ "disease",
1195
+ "diseaseFluff",
1196
+ "status",
1197
+ "statusFluff",
1198
+ "cult",
1199
+ "boon",
1200
+ "deity",
1201
+ "feat",
1202
+ "featFluff",
1203
+ "language",
1204
+ "languageFluff",
1205
+ "object",
1206
+ "objectFluff",
1207
+ "optionalfeature",
1208
+ "optionalfeatureFluff",
1209
+ "psionic",
1210
+ "race",
1211
+ "subrace",
1212
+ "raceFluff",
1213
+ "reward",
1214
+ "recipe",
1215
+ "recipeFluff",
1216
+ "rewardFluff",
1217
+ "table",
1218
+ "trap",
1219
+ "trapFluff",
1220
+ "hazard",
1221
+ "hazardFluff",
1222
+ "variantrule",
1223
+ "vehicle",
1224
+ "vehicleUpgrade",
1225
+ "vehicleFluff",
1226
+ "skill",
1227
+ "sense",
1228
+ "deck",
1229
+ "card",
1230
+ "facility",
1231
+ "facilityFluff",
1232
+ "encounterShape"
1233
+ ],
1234
+ "markdownDescription": "This is the list of props for which there is a _copy implementation. _copy may not be declared for props other than these."
1235
+ },
1236
+ "_non-copyableProps": {
1237
+ "type": "string",
1238
+ "description": "This is the list of props for which there is no `_copy` implementation. `includes` may be declared for these as well as for copyableProps.",
1239
+ "enum": [
1240
+ "adventure",
1241
+ "adventureData",
1242
+ "adventure",
1243
+ "adventureData",
1244
+ "foundryMonster",
1245
+ "foundryMonsterAction",
1246
+ "foundryMonsterBonus",
1247
+ "foundryMonsterReaction",
1248
+ "foundryMonsterTrait",
1249
+ "foundryMonsterLegendary",
1250
+ "foundryMonsterMythic",
1251
+ "book",
1252
+ "bookData",
1253
+ "foundryClass",
1254
+ "foundrySubclass",
1255
+ "foundryClassFeature",
1256
+ "foundrySubclassFeature",
1257
+ "roll20Spell",
1258
+ "foundrySpell",
1259
+ "foundryAction",
1260
+ "foundryItem",
1261
+ "foundryMagicvariant",
1262
+ "foundryBaseitem",
1263
+ "itemEntry",
1264
+ "itemTypeAdditionalEntries",
1265
+ "linkedLootTables",
1266
+ "foundryBackgroundFeature",
1267
+ "encounter",
1268
+ "foundryFeat",
1269
+ "makebrewCreatureTrait",
1270
+ "makebrewCreatureAction",
1271
+ "reducedItemProperty",
1272
+ "reducedItemType",
1273
+ "monsterfeatures",
1274
+ "name",
1275
+ "foundryOptionalfeature",
1276
+ "foundryPsionicDisciplineFocus",
1277
+ "foundryPsionicDisciplineActive",
1278
+ "foundryRace",
1279
+ "foundryRaceFeature",
1280
+ "raceFluffMeta",
1281
+ "foundryReward",
1282
+ "foundryVehicleUpgrade",
1283
+ "spellList",
1284
+ "citation"
1285
+ ],
1286
+ "markdownDescription": "This is the list of props for which there is no _copy implementation. includes may be declared for these as well as for copyableProps."
1287
+ },
1288
+ "includesProps": {
1289
+ "anyOf": [
1290
+ {
1291
+ "$ref": "#/$defs/copyableProps"
1292
+ },
1293
+ {
1294
+ "$ref": "#/$defs/_non-copyableProps"
1295
+ },
1296
+ {
1297
+ "type": "string",
1298
+ "description": "\"Wildcard\" property, which will load all content from a given source. Where possible, narrower properties (those above) should be used instead.\n\n\"*\" is primarily intended for use when hosting locally, to allow for the creation a compact file containing only a `_meta` with an `includes.*` array of all homebrew sources to be loaded.",
1299
+ "enum": [
1300
+ "*"
1301
+ ],
1302
+ "markdownDescription": ""Wildcard" property, which will load all content from a given source. Where possible, narrower properties (those above) should be used instead.\n\n"*" is primarily intended for use when hosting locally, to allow for the creation a compact file containing only a _meta with an includes.* array of all homebrew sources to be loaded."
1303
+ }
1304
+ ]
1163
1305
  }
1164
1306
  }
1165
1307
  }