5etools-utils 0.12.5 → 0.12.7

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 (127) hide show
  1. package/package.json +1 -1
  2. package/schema/brew/backgrounds.json +1 -1
  3. package/schema/brew/bestiary/bestiary.json +2 -2
  4. package/schema/brew/bestiary/legendarygroups.json +1 -1
  5. package/schema/brew/bestiary/template.json +4 -4
  6. package/schema/brew/class/class.json +2 -2
  7. package/schema/brew/decks.json +2 -2
  8. package/schema/brew/deities.json +1 -1
  9. package/schema/brew/feats.json +1 -1
  10. package/schema/brew/fluff-races.json +1 -1
  11. package/schema/brew/foundry-races.json +2 -2
  12. package/schema/brew/items-base.json +2 -2
  13. package/schema/brew/items.json +1075 -509
  14. package/schema/brew/optionalfeatures.json +1 -1
  15. package/schema/brew/races.json +8 -8
  16. package/schema/brew/recipes.json +1 -1
  17. package/schema/brew/sources-5etools.json +7 -0
  18. package/schema/brew/spells/spells.json +1 -1
  19. package/schema/brew/util-copy.json +960 -0
  20. package/schema/brew/util-foundry.json +8 -2
  21. package/schema/brew/util-token.json +7 -3
  22. package/schema/brew/util.json +2 -856
  23. package/schema/brew-fast/backgrounds.json +1 -1
  24. package/schema/brew-fast/bestiary/bestiary.json +2 -2
  25. package/schema/brew-fast/bestiary/legendarygroups.json +1 -1
  26. package/schema/brew-fast/bestiary/template.json +4 -4
  27. package/schema/brew-fast/class/class.json +2 -2
  28. package/schema/brew-fast/decks.json +2 -2
  29. package/schema/brew-fast/deities.json +1 -1
  30. package/schema/brew-fast/feats.json +1 -1
  31. package/schema/brew-fast/fluff-races.json +1 -1
  32. package/schema/brew-fast/foundry-races.json +2 -2
  33. package/schema/brew-fast/items-base.json +2 -2
  34. package/schema/brew-fast/items.json +1075 -509
  35. package/schema/brew-fast/optionalfeatures.json +1 -1
  36. package/schema/brew-fast/races.json +8 -8
  37. package/schema/brew-fast/recipes.json +1 -1
  38. package/schema/brew-fast/sources-5etools.json +7 -0
  39. package/schema/brew-fast/spells/spells.json +1 -1
  40. package/schema/brew-fast/util-copy.json +960 -0
  41. package/schema/brew-fast/util-foundry.json +8 -2
  42. package/schema/brew-fast/util-token.json +7 -3
  43. package/schema/brew-fast/util.json +2 -856
  44. package/schema/site/backgrounds.json +1 -1
  45. package/schema/site/bestiary/bestiary.json +2 -2
  46. package/schema/site/bestiary/legendarygroups.json +1 -1
  47. package/schema/site/bestiary/template.json +4 -4
  48. package/schema/site/class/class.json +2 -2
  49. package/schema/site/decks.json +2 -2
  50. package/schema/site/deities.json +1 -1
  51. package/schema/site/feats.json +1 -1
  52. package/schema/site/fluff-races.json +1 -1
  53. package/schema/site/foundry-races.json +2 -2
  54. package/schema/site/items-base.json +2 -2
  55. package/schema/site/items.json +1253 -728
  56. package/schema/site/optionalfeatures.json +1 -1
  57. package/schema/site/races.json +8 -8
  58. package/schema/site/recipes.json +1 -1
  59. package/schema/site/sources-5etools.json +7 -0
  60. package/schema/site/spells/spells.json +1 -1
  61. package/schema/site/util-copy.json +960 -0
  62. package/schema/site/util-foundry.json +8 -2
  63. package/schema/site/util-token.json +7 -3
  64. package/schema/site/util.json +2 -856
  65. package/schema/site-fast/backgrounds.json +1 -1
  66. package/schema/site-fast/bestiary/bestiary.json +2 -2
  67. package/schema/site-fast/bestiary/legendarygroups.json +1 -1
  68. package/schema/site-fast/bestiary/template.json +4 -4
  69. package/schema/site-fast/class/class.json +2 -2
  70. package/schema/site-fast/decks.json +2 -2
  71. package/schema/site-fast/deities.json +1 -1
  72. package/schema/site-fast/feats.json +1 -1
  73. package/schema/site-fast/fluff-races.json +1 -1
  74. package/schema/site-fast/foundry-races.json +2 -2
  75. package/schema/site-fast/items-base.json +2 -2
  76. package/schema/site-fast/items.json +1253 -728
  77. package/schema/site-fast/optionalfeatures.json +1 -1
  78. package/schema/site-fast/races.json +8 -8
  79. package/schema/site-fast/recipes.json +1 -1
  80. package/schema/site-fast/sources-5etools.json +7 -0
  81. package/schema/site-fast/spells/spells.json +1 -1
  82. package/schema/site-fast/util-copy.json +960 -0
  83. package/schema/site-fast/util-foundry.json +8 -2
  84. package/schema/site-fast/util-token.json +7 -3
  85. package/schema/site-fast/util.json +2 -856
  86. package/schema/ua/backgrounds.json +1 -1
  87. package/schema/ua/bestiary/bestiary.json +2 -2
  88. package/schema/ua/bestiary/legendarygroups.json +1 -1
  89. package/schema/ua/bestiary/template.json +4 -4
  90. package/schema/ua/class/class.json +2 -2
  91. package/schema/ua/decks.json +2 -2
  92. package/schema/ua/deities.json +1 -1
  93. package/schema/ua/feats.json +1 -1
  94. package/schema/ua/fluff-races.json +1 -1
  95. package/schema/ua/foundry-races.json +2 -2
  96. package/schema/ua/items-base.json +2 -2
  97. package/schema/ua/items.json +1257 -729
  98. package/schema/ua/optionalfeatures.json +1 -1
  99. package/schema/ua/races.json +8 -8
  100. package/schema/ua/recipes.json +1 -1
  101. package/schema/ua/sources-5etools.json +7 -0
  102. package/schema/ua/spells/spells.json +1 -1
  103. package/schema/ua/util-copy.json +960 -0
  104. package/schema/ua/util-foundry.json +8 -2
  105. package/schema/ua/util-token.json +7 -3
  106. package/schema/ua/util.json +2 -856
  107. package/schema/ua-fast/backgrounds.json +1 -1
  108. package/schema/ua-fast/bestiary/bestiary.json +2 -2
  109. package/schema/ua-fast/bestiary/legendarygroups.json +1 -1
  110. package/schema/ua-fast/bestiary/template.json +4 -4
  111. package/schema/ua-fast/class/class.json +2 -2
  112. package/schema/ua-fast/decks.json +2 -2
  113. package/schema/ua-fast/deities.json +1 -1
  114. package/schema/ua-fast/feats.json +1 -1
  115. package/schema/ua-fast/fluff-races.json +1 -1
  116. package/schema/ua-fast/foundry-races.json +2 -2
  117. package/schema/ua-fast/items-base.json +2 -2
  118. package/schema/ua-fast/items.json +1257 -729
  119. package/schema/ua-fast/optionalfeatures.json +1 -1
  120. package/schema/ua-fast/races.json +8 -8
  121. package/schema/ua-fast/recipes.json +1 -1
  122. package/schema/ua-fast/sources-5etools.json +7 -0
  123. package/schema/ua-fast/spells/spells.json +1 -1
  124. package/schema/ua-fast/util-copy.json +960 -0
  125. package/schema/ua-fast/util-foundry.json +8 -2
  126. package/schema/ua-fast/util-token.json +7 -3
  127. package/schema/ua-fast/util.json +2 -856
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "items.json",
4
- "version": "1.14.11",
4
+ "version": "1.14.12",
5
5
  "type": "object",
6
6
  "$defs": {
7
7
  "itemData": {
@@ -521,521 +521,524 @@
521
521
  "type": "string"
522
522
  }
523
523
  },
524
- "item": {
525
- "anyOf": [
526
- {
527
- "type": "object",
528
- "properties": {
529
- "name": {
530
- "type": "string"
531
- },
532
- "alias": {
533
- "$ref": "util.json#/$defs/alias"
534
- },
535
- "type": {
536
- "$ref": "items-shared.json#/$defs/itemType"
537
- },
538
- "typeAlt": {
539
- "$ref": "items-shared.json#/$defs/itemType"
540
- },
541
- "rarity": {
542
- "$ref": "items-shared.json#/$defs/itemRarity"
543
- },
544
- "source": {
545
- "$ref": "util.json#/$defs/source"
546
- },
547
- "page": {
548
- "$ref": "util.json#/$defs/page"
549
- },
550
- "additionalSources": {
551
- "$ref": "util.json#/$defs/additionalSources"
552
- },
553
- "reprintedAs": {
554
- "$ref": "util.json#/$defs/reprintedAs"
555
- },
556
- "baseItem": {
557
- "type": "string"
558
- },
559
- "ac": {
560
- "type": "integer"
561
- },
562
- "age": {
563
- "$ref": "items-shared.json#/$defs/itemAge"
564
- },
565
- "carryingCapacity": {
566
- "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
567
- },
568
- "dmg1": {
569
- "type": "string"
570
- },
571
- "dmg2": {
572
- "type": "string",
573
- "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
574
- },
575
- "dmgType": {
576
- "$ref": "util.json#/$defs/dataDamageTags"
577
- },
578
- "entries": {
579
- "type": "array",
580
- "items": {
581
- "$ref": "entry.json"
582
- }
583
- },
584
- "additionalEntries": {
585
- "type": "array",
586
- "items": {
587
- "$ref": "entry.json"
588
- }
589
- },
590
- "property": {
591
- "$ref": "items-shared.json#/$defs/itemProperty"
592
- },
593
- "range": {
594
- "type": "string"
595
- },
596
- "reload": {
597
- "type": [
598
- "string",
599
- "integer"
600
- ]
601
- },
602
- "reqAttune": {
603
- "type": [
604
- "string",
605
- "boolean"
606
- ]
607
- },
608
- "reqAttuneAlt": {
609
- "description": "Used for filtering.",
610
- "type": [
611
- "string",
612
- "boolean"
613
- ]
614
- },
615
- "curse": {
616
- "type": "boolean"
617
- },
618
- "vulnerable": {
619
- "$ref": "util.json#/$defs/damageVulnerabilityArray"
620
- },
621
- "resist": {
622
- "$ref": "util.json#/$defs/damageResistArray"
623
- },
624
- "immune": {
625
- "$ref": "util.json#/$defs/damageImmunityArray"
626
- },
627
- "conditionImmune": {
628
- "$ref": "util.json#/$defs/conditionImmunityArray"
629
- },
630
- "detail1": {
631
- "description": "A descriptive field that can be used to complete entries in variants.",
632
- "type": "string"
633
- },
634
- "scfType": {
635
- "$ref": "items-shared.json#/$defs/itemScfType"
636
- },
637
- "speed": {
638
- "$ref": "items-shared.json#/$defs/itemSpeed"
639
- },
640
- "stealth": {
641
- "type": "boolean"
642
- },
643
- "strength": {
644
- "type": [
645
- "string",
646
- "null"
647
- ]
648
- },
649
- "dexterityMax": {
650
- "$ref": "items-shared.json#/$defs/itemDexterityMax"
651
- },
652
- "firearm": {
653
- "type": "boolean"
654
- },
655
- "staff": {
656
- "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
657
- "type": "boolean"
658
- },
659
- "tier": {
660
- "$ref": "items-shared.json#/$defs/itemTier"
661
- },
662
- "value": {
663
- "description": "In copper pieces.",
664
- "type": [
665
- "number",
666
- "null"
667
- ]
668
- },
669
- "valueMult": {
670
- "type": "number"
671
- },
672
- "weaponCategory": {
673
- "$ref": "items-shared.json#/$defs/itemWeaponCategory"
674
- },
675
- "weight": {
676
- "type": "number"
677
- },
678
- "weightMult": {
679
- "type": "number"
680
- },
681
- "weightNote": {
682
- "type": "string"
683
- },
684
- "wondrous": {
685
- "type": "boolean"
686
- },
687
- "tattoo": {
688
- "type": "boolean"
689
- },
690
- "sentient": {
691
- "type": "boolean"
692
- },
693
- "poison": {
694
- "type": "boolean"
695
- },
696
- "poisonTypes": {
697
- "type": "array",
698
- "items": {
699
- "type": "string",
700
- "enum": [
701
- "contact",
702
- "ingested",
703
- "injury",
704
- "inhaled"
705
- ]
706
- }
707
- },
708
- "crew": {
709
- "type": "integer"
710
- },
711
- "crewMin": {
712
- "description": "For crews specified as an X-Y min-max.",
713
- "type": "integer"
714
- },
715
- "crewMax": {
716
- "description": "For crews specified as an X-Y min-max.",
717
- "type": "integer"
718
- },
719
- "capPassenger": {
720
- "type": "integer"
721
- },
722
- "capCargo": {
723
- "type": "number"
724
- },
725
- "vehSpeed": {
726
- "type": "number"
727
- },
728
- "vehAc": {
729
- "type": "integer"
730
- },
731
- "vehHp": {
732
- "type": "integer"
733
- },
734
- "vehDmgThresh": {
735
- "type": "integer"
736
- },
737
- "travelCost": {
738
- "description": "In copper pieces per mile per passenger.",
739
- "type": "integer"
740
- },
741
- "shippingCost": {
742
- "description": "In copper pieces per 100 lbs per mile.",
743
- "type": "integer"
744
- },
745
- "charges": {
746
- "type": [
747
- "string",
748
- "integer"
749
- ]
750
- },
751
- "recharge": {
752
- "$ref": "items-shared.json#/$defs/itemRecharge"
753
- },
754
- "rechargeAmount": {
755
- "$ref": "items-shared.json#/$defs/itemRechargeAmount"
756
- },
757
- "optionalfeatures": {
758
- "type": "array",
759
- "items": {
760
- "type": "string"
761
- }
762
- },
763
- "attachedSpells": {
524
+ "_item": {
525
+ "type": "object",
526
+ "properties": {
527
+ "name": {
528
+ "type": "string"
529
+ },
530
+ "alias": {
531
+ "$ref": "util.json#/$defs/alias"
532
+ },
533
+ "type": {
534
+ "$ref": "items-shared.json#/$defs/itemType"
535
+ },
536
+ "typeAlt": {
537
+ "$ref": "items-shared.json#/$defs/itemType"
538
+ },
539
+ "rarity": {
540
+ "$ref": "items-shared.json#/$defs/itemRarity"
541
+ },
542
+ "source": {
543
+ "$ref": "util.json#/$defs/source"
544
+ },
545
+ "page": {
546
+ "$ref": "util.json#/$defs/page"
547
+ },
548
+ "additionalSources": {
549
+ "$ref": "util.json#/$defs/additionalSources"
550
+ },
551
+ "reprintedAs": {
552
+ "$ref": "util.json#/$defs/reprintedAs"
553
+ },
554
+ "baseItem": {
555
+ "type": "string"
556
+ },
557
+ "ac": {
558
+ "type": "integer"
559
+ },
560
+ "age": {
561
+ "$ref": "items-shared.json#/$defs/itemAge"
562
+ },
563
+ "carryingCapacity": {
564
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
565
+ },
566
+ "dmg1": {
567
+ "type": "string"
568
+ },
569
+ "dmg2": {
570
+ "type": "string",
571
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
572
+ },
573
+ "dmgType": {
574
+ "$ref": "util.json#/$defs/dataDamageTags"
575
+ },
576
+ "entries": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "entry.json"
580
+ }
581
+ },
582
+ "additionalEntries": {
583
+ "type": "array",
584
+ "items": {
585
+ "$ref": "entry.json"
586
+ }
587
+ },
588
+ "property": {
589
+ "$ref": "items-shared.json#/$defs/itemProperty"
590
+ },
591
+ "range": {
592
+ "type": "string"
593
+ },
594
+ "reload": {
595
+ "type": [
596
+ "string",
597
+ "integer"
598
+ ]
599
+ },
600
+ "reqAttune": {
601
+ "type": [
602
+ "string",
603
+ "boolean"
604
+ ]
605
+ },
606
+ "reqAttuneAlt": {
607
+ "description": "Used for filtering.",
608
+ "type": [
609
+ "string",
610
+ "boolean"
611
+ ]
612
+ },
613
+ "curse": {
614
+ "type": "boolean"
615
+ },
616
+ "vulnerable": {
617
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
618
+ },
619
+ "resist": {
620
+ "$ref": "util.json#/$defs/damageResistArray"
621
+ },
622
+ "immune": {
623
+ "$ref": "util.json#/$defs/damageImmunityArray"
624
+ },
625
+ "conditionImmune": {
626
+ "$ref": "util.json#/$defs/conditionImmunityArray"
627
+ },
628
+ "detail1": {
629
+ "description": "A descriptive field that can be used to complete entries in variants.",
630
+ "type": "string"
631
+ },
632
+ "scfType": {
633
+ "$ref": "items-shared.json#/$defs/itemScfType"
634
+ },
635
+ "speed": {
636
+ "$ref": "items-shared.json#/$defs/itemSpeed"
637
+ },
638
+ "stealth": {
639
+ "type": "boolean"
640
+ },
641
+ "strength": {
642
+ "type": [
643
+ "string",
644
+ "null"
645
+ ]
646
+ },
647
+ "dexterityMax": {
648
+ "$ref": "items-shared.json#/$defs/itemDexterityMax"
649
+ },
650
+ "firearm": {
651
+ "type": "boolean"
652
+ },
653
+ "staff": {
654
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
655
+ "type": "boolean"
656
+ },
657
+ "tier": {
658
+ "$ref": "items-shared.json#/$defs/itemTier"
659
+ },
660
+ "value": {
661
+ "description": "In copper pieces.",
662
+ "type": [
663
+ "number",
664
+ "null"
665
+ ]
666
+ },
667
+ "valueMult": {
668
+ "type": "number"
669
+ },
670
+ "weaponCategory": {
671
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
672
+ },
673
+ "weight": {
674
+ "type": "number"
675
+ },
676
+ "weightMult": {
677
+ "type": "number"
678
+ },
679
+ "weightNote": {
680
+ "type": "string"
681
+ },
682
+ "wondrous": {
683
+ "type": "boolean"
684
+ },
685
+ "tattoo": {
686
+ "type": "boolean"
687
+ },
688
+ "sentient": {
689
+ "type": "boolean"
690
+ },
691
+ "poison": {
692
+ "type": "boolean"
693
+ },
694
+ "poisonTypes": {
695
+ "type": "array",
696
+ "items": {
697
+ "type": "string",
698
+ "enum": [
699
+ "contact",
700
+ "ingested",
701
+ "injury",
702
+ "inhaled"
703
+ ]
704
+ }
705
+ },
706
+ "crew": {
707
+ "type": "integer"
708
+ },
709
+ "crewMin": {
710
+ "description": "For crews specified as an X-Y min-max.",
711
+ "type": "integer"
712
+ },
713
+ "crewMax": {
714
+ "description": "For crews specified as an X-Y min-max.",
715
+ "type": "integer"
716
+ },
717
+ "capPassenger": {
718
+ "type": "integer"
719
+ },
720
+ "capCargo": {
721
+ "type": "number"
722
+ },
723
+ "vehSpeed": {
724
+ "type": "number"
725
+ },
726
+ "vehAc": {
727
+ "type": "integer"
728
+ },
729
+ "vehHp": {
730
+ "type": "integer"
731
+ },
732
+ "vehDmgThresh": {
733
+ "type": "integer"
734
+ },
735
+ "travelCost": {
736
+ "description": "In copper pieces per mile per passenger.",
737
+ "type": "integer"
738
+ },
739
+ "shippingCost": {
740
+ "description": "In copper pieces per 100 lbs per mile.",
741
+ "type": "integer"
742
+ },
743
+ "charges": {
744
+ "type": [
745
+ "string",
746
+ "integer"
747
+ ]
748
+ },
749
+ "recharge": {
750
+ "$ref": "items-shared.json#/$defs/itemRecharge"
751
+ },
752
+ "rechargeAmount": {
753
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
754
+ },
755
+ "optionalfeatures": {
756
+ "type": "array",
757
+ "items": {
758
+ "type": "string"
759
+ }
760
+ },
761
+ "attachedSpells": {
762
+ "type": "array",
763
+ "minItems": 1,
764
+ "uniqueItems": true,
765
+ "items": {
766
+ "type": "string"
767
+ }
768
+ },
769
+ "ability": {
770
+ "description": "Item ability score adjustments.",
771
+ "type": "object",
772
+ "properties": {
773
+ "choose": {
764
774
  "type": "array",
765
- "minItems": 1,
766
- "uniqueItems": true,
767
775
  "items": {
768
- "type": "string"
769
- }
770
- },
771
- "ability": {
772
- "description": "Item ability score adjustments.",
773
- "type": "object",
774
- "properties": {
775
- "choose": {
776
- "type": "array",
777
- "items": {
778
- "type": "object",
779
- "properties": {
780
- "from": {
781
- "type": "array",
782
- "items": {
783
- "enum": [
784
- "str",
785
- "dex",
786
- "con",
787
- "int",
788
- "wis",
789
- "cha"
790
- ]
791
- },
792
- "uniqueItems": true
793
- },
794
- "count": {
795
- "type": "integer"
796
- },
797
- "amount": {
798
- "type": "integer"
799
- }
800
- },
801
- "required": [
802
- "from"
803
- ],
804
- "additionalProperties": false
805
- }
806
- },
807
- "static": {
808
- "type": "object",
809
- "properties": {
810
- "str": {
811
- "type": "integer"
812
- },
813
- "dex": {
814
- "type": "integer"
815
- },
816
- "con": {
817
- "type": "integer"
818
- },
819
- "int": {
820
- "type": "integer"
821
- },
822
- "wis": {
823
- "type": "integer"
776
+ "type": "object",
777
+ "properties": {
778
+ "from": {
779
+ "type": "array",
780
+ "items": {
781
+ "enum": [
782
+ "str",
783
+ "dex",
784
+ "con",
785
+ "int",
786
+ "wis",
787
+ "cha"
788
+ ]
824
789
  },
825
- "cha": {
826
- "type": "integer"
827
- }
790
+ "uniqueItems": true
828
791
  },
829
- "additionalProperties": false
830
- },
831
- "str": {
832
- "type": "integer"
833
- },
834
- "dex": {
835
- "type": "integer"
836
- },
837
- "con": {
838
- "type": "integer"
839
- },
840
- "int": {
841
- "type": "integer"
842
- },
843
- "wis": {
844
- "type": "integer"
845
- },
846
- "cha": {
847
- "type": "integer"
848
- }
849
- }
850
- },
851
- "focus": {
852
- "description": "Item can be used as a spellcasting focus",
853
- "oneOf": [
854
- {
855
- "type": "boolean"
856
- },
857
- {
858
- "type": "array",
859
- "items": {
860
- "type": "string",
861
- "enum": [
862
- "Artificer",
863
- "Bard",
864
- "Cleric",
865
- "Druid",
866
- "Paladin",
867
- "Ranger",
868
- "Sorcerer",
869
- "Warlock",
870
- "Wizard"
871
- ]
792
+ "count": {
793
+ "type": "integer"
794
+ },
795
+ "amount": {
796
+ "type": "integer"
872
797
  }
873
- }
874
- ]
875
- },
876
- "lootTables": {
877
- "type": "array",
878
- "items": {
879
- "type": "string"
880
- }
881
- },
882
- "critThreshold": {
883
- "type": "integer"
884
- },
885
- "bonusAc": {
886
- "type": "string"
887
- },
888
- "bonusWeapon": {
889
- "type": "string"
890
- },
891
- "bonusWeaponAttack": {
892
- "type": "string"
893
- },
894
- "bonusWeaponDamage": {
895
- "type": "string"
896
- },
897
- "bonusWeaponCritDamage": {
898
- "type": "string"
899
- },
900
- "bonusSpellAttack": {
901
- "type": "string"
902
- },
903
- "bonusSpellDamage": {
904
- "type": "string"
905
- },
906
- "bonusSpellSaveDc": {
907
- "type": "string"
908
- },
909
- "bonusSavingThrow": {
910
- "type": "string"
911
- },
912
- "bonusAbilityCheck": {
913
- "type": "string"
914
- },
915
- "bonusProficiencyBonus": {
916
- "type": "string"
917
- },
918
- "bonusSavingThrowConcentration": {
919
- "type": "string"
920
- },
921
- "modifySpeed": {
922
- "$ref": "items-shared.json#/$defs/itemModifySpeed"
923
- },
924
- "otherSources": {
925
- "$ref": "util.json#/$defs/otherSources"
926
- },
927
- "srd": {
928
- "$ref": "util.json#/$defs/srd"
929
- },
930
- "basicRules": {
931
- "$ref": "util.json#/$defs/basicRules"
932
- },
933
- "legacy": {
934
- "$ref": "util.json#/$defs/legacy"
935
- },
936
- "atomicPackContents": {
937
- "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
938
- "type": "boolean"
798
+ },
799
+ "required": [
800
+ "from"
801
+ ],
802
+ "additionalProperties": false
803
+ }
939
804
  },
940
- "containerCapacity": {
805
+ "static": {
941
806
  "type": "object",
942
807
  "properties": {
943
- "weight": {
944
- "type": "array",
945
- "items": {
946
- "type": "integer"
947
- }
808
+ "str": {
809
+ "type": "integer"
948
810
  },
949
- "item": {
950
- "type": "array",
951
- "items": {
952
- "type": "object",
953
- "patternProperties": {
954
- ".*": {
955
- "type": "integer"
956
- }
957
- },
958
- "additionalProperties": false
959
- }
811
+ "dex": {
812
+ "type": "integer"
960
813
  },
961
- "weightless": {
962
- "description": "If the container renders its contents weightless.",
963
- "type": "boolean"
814
+ "con": {
815
+ "type": "integer"
816
+ },
817
+ "int": {
818
+ "type": "integer"
819
+ },
820
+ "wis": {
821
+ "type": "integer"
822
+ },
823
+ "cha": {
824
+ "type": "integer"
964
825
  }
965
826
  },
966
827
  "additionalProperties": false
967
828
  },
968
- "ammoType": {
969
- "$ref": "items-shared.json#/$defs/itemAmmoType"
829
+ "str": {
830
+ "type": "integer"
970
831
  },
971
- "packContents": {
972
- "$ref": "items-shared.json#/$defs/packContents"
832
+ "dex": {
833
+ "type": "integer"
973
834
  },
974
- "grantsProficiency": {
975
- "type": "boolean"
835
+ "con": {
836
+ "type": "integer"
976
837
  },
977
- "grantsLanguage": {
978
- "type": "boolean"
838
+ "int": {
839
+ "type": "integer"
979
840
  },
980
- "spellScrollLevel": {
841
+ "wis": {
981
842
  "type": "integer"
982
843
  },
983
- "seeAlsoDeck": {
844
+ "cha": {
845
+ "type": "integer"
846
+ }
847
+ }
848
+ },
849
+ "focus": {
850
+ "description": "Item can be used as a spellcasting focus",
851
+ "oneOf": [
852
+ {
853
+ "type": "boolean"
854
+ },
855
+ {
984
856
  "type": "array",
985
857
  "items": {
986
858
  "type": "string",
987
- "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
859
+ "enum": [
860
+ "Artificer",
861
+ "Bard",
862
+ "Cleric",
863
+ "Druid",
864
+ "Paladin",
865
+ "Ranger",
866
+ "Sorcerer",
867
+ "Warlock",
868
+ "Wizard"
869
+ ]
988
870
  }
989
- },
990
- "seeAlsoVehicle": {
871
+ }
872
+ ]
873
+ },
874
+ "lootTables": {
875
+ "type": "array",
876
+ "items": {
877
+ "type": "string"
878
+ }
879
+ },
880
+ "critThreshold": {
881
+ "type": "integer"
882
+ },
883
+ "bonusAc": {
884
+ "type": "string"
885
+ },
886
+ "bonusWeapon": {
887
+ "type": "string"
888
+ },
889
+ "bonusWeaponAttack": {
890
+ "type": "string"
891
+ },
892
+ "bonusWeaponDamage": {
893
+ "type": "string"
894
+ },
895
+ "bonusWeaponCritDamage": {
896
+ "type": "string"
897
+ },
898
+ "bonusSpellAttack": {
899
+ "type": "string"
900
+ },
901
+ "bonusSpellDamage": {
902
+ "type": "string"
903
+ },
904
+ "bonusSpellSaveDc": {
905
+ "type": "string"
906
+ },
907
+ "bonusSavingThrow": {
908
+ "type": "string"
909
+ },
910
+ "bonusAbilityCheck": {
911
+ "type": "string"
912
+ },
913
+ "bonusProficiencyBonus": {
914
+ "type": "string"
915
+ },
916
+ "bonusSavingThrowConcentration": {
917
+ "type": "string"
918
+ },
919
+ "modifySpeed": {
920
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
921
+ },
922
+ "otherSources": {
923
+ "$ref": "util.json#/$defs/otherSources"
924
+ },
925
+ "srd": {
926
+ "$ref": "util.json#/$defs/srd"
927
+ },
928
+ "basicRules": {
929
+ "$ref": "util.json#/$defs/basicRules"
930
+ },
931
+ "legacy": {
932
+ "$ref": "util.json#/$defs/legacy"
933
+ },
934
+ "atomicPackContents": {
935
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
936
+ "type": "boolean"
937
+ },
938
+ "containerCapacity": {
939
+ "type": "object",
940
+ "properties": {
941
+ "weight": {
991
942
  "type": "array",
992
943
  "items": {
993
- "type": "string",
994
- "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
944
+ "type": "integer"
995
945
  }
996
946
  },
997
- "reqAttuneTags": {
998
- "$ref": "util.json#/$defs/reqAttuneTags"
999
- },
1000
- "reqAttuneAltTags": {
1001
- "$ref": "util.json#/$defs/reqAttuneTags"
1002
- },
1003
- "miscTags": {
947
+ "item": {
1004
948
  "type": "array",
1005
949
  "items": {
1006
- "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1007
- "enum": [
1008
- "CF/W",
1009
- "TT"
1010
- ]
950
+ "type": "object",
951
+ "patternProperties": {
952
+ ".*": {
953
+ "type": "integer"
954
+ }
955
+ },
956
+ "additionalProperties": false
1011
957
  }
1012
958
  },
1013
- "mastery": {
1014
- "$ref": "items-shared.json#/$defs/itemMastery"
1015
- },
1016
- "reach": {
1017
- "$ref": "items-shared.json#/$defs/itemReach"
1018
- },
1019
- "hasFluff": {
1020
- "type": "boolean"
1021
- },
1022
- "hasFluffImages": {
959
+ "weightless": {
960
+ "description": "If the container renders its contents weightless.",
1023
961
  "type": "boolean"
1024
- },
1025
- "hasRefs": {
1026
- "type": "boolean",
1027
- "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1028
- },
1029
- "customProperties": {
1030
- "$ref": "items-shared.json#/$defs/customProperties"
1031
962
  }
1032
963
  },
1033
- "additionalProperties": false,
1034
- "required": [
1035
- "name",
1036
- "rarity",
1037
- "source"
1038
- ]
964
+ "additionalProperties": false
965
+ },
966
+ "ammoType": {
967
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
968
+ },
969
+ "packContents": {
970
+ "$ref": "items-shared.json#/$defs/packContents"
971
+ },
972
+ "grantsProficiency": {
973
+ "type": "boolean"
974
+ },
975
+ "grantsLanguage": {
976
+ "type": "boolean"
977
+ },
978
+ "spellScrollLevel": {
979
+ "type": "integer"
980
+ },
981
+ "seeAlsoDeck": {
982
+ "type": "array",
983
+ "items": {
984
+ "type": "string",
985
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
986
+ }
987
+ },
988
+ "seeAlsoVehicle": {
989
+ "type": "array",
990
+ "items": {
991
+ "type": "string",
992
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
993
+ }
994
+ },
995
+ "reqAttuneTags": {
996
+ "$ref": "util.json#/$defs/reqAttuneTags"
997
+ },
998
+ "reqAttuneAltTags": {
999
+ "$ref": "util.json#/$defs/reqAttuneTags"
1000
+ },
1001
+ "miscTags": {
1002
+ "type": "array",
1003
+ "items": {
1004
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1005
+ "enum": [
1006
+ "CF/W",
1007
+ "TT"
1008
+ ]
1009
+ }
1010
+ },
1011
+ "mastery": {
1012
+ "$ref": "items-shared.json#/$defs/itemMastery"
1013
+ },
1014
+ "reach": {
1015
+ "$ref": "items-shared.json#/$defs/itemReach"
1016
+ },
1017
+ "hasFluff": {
1018
+ "type": "boolean"
1019
+ },
1020
+ "hasFluffImages": {
1021
+ "type": "boolean"
1022
+ },
1023
+ "hasRefs": {
1024
+ "type": "boolean",
1025
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1026
+ },
1027
+ "customProperties": {
1028
+ "$ref": "items-shared.json#/$defs/customProperties"
1029
+ }
1030
+ },
1031
+ "additionalProperties": false,
1032
+ "required": [
1033
+ "name",
1034
+ "rarity",
1035
+ "source"
1036
+ ]
1037
+ },
1038
+ "item": {
1039
+ "anyOf": [
1040
+ {
1041
+ "$ref": "#/$defs/_item"
1039
1042
  },
1040
1043
  {
1041
1044
  "type": "object",
@@ -1252,96 +1255,592 @@
1252
1255
  "description": "In copper pieces per mile per passenger.",
1253
1256
  "type": "integer"
1254
1257
  },
1255
- "shippingCost": {
1256
- "description": "In copper pieces per 100 lbs per mile.",
1258
+ "shippingCost": {
1259
+ "description": "In copper pieces per 100 lbs per mile.",
1260
+ "type": "integer"
1261
+ },
1262
+ "charges": {
1263
+ "type": [
1264
+ "string",
1265
+ "integer"
1266
+ ]
1267
+ },
1268
+ "recharge": {
1269
+ "$ref": "items-shared.json#/$defs/itemRecharge"
1270
+ },
1271
+ "rechargeAmount": {
1272
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1273
+ },
1274
+ "optionalfeatures": {
1275
+ "type": "array",
1276
+ "items": {
1277
+ "type": "string"
1278
+ }
1279
+ },
1280
+ "attachedSpells": {
1281
+ "type": "array",
1282
+ "minItems": 1,
1283
+ "uniqueItems": true,
1284
+ "items": {
1285
+ "type": "string"
1286
+ }
1287
+ },
1288
+ "ability": {
1289
+ "description": "Item ability score adjustments.",
1290
+ "type": "object",
1291
+ "properties": {
1292
+ "choose": {
1293
+ "type": "array",
1294
+ "items": {
1295
+ "type": "object",
1296
+ "properties": {
1297
+ "from": {
1298
+ "type": "array",
1299
+ "items": {
1300
+ "enum": [
1301
+ "str",
1302
+ "dex",
1303
+ "con",
1304
+ "int",
1305
+ "wis",
1306
+ "cha"
1307
+ ]
1308
+ },
1309
+ "uniqueItems": true
1310
+ },
1311
+ "count": {
1312
+ "type": "integer"
1313
+ },
1314
+ "amount": {
1315
+ "type": "integer"
1316
+ }
1317
+ },
1318
+ "required": [
1319
+ "from"
1320
+ ],
1321
+ "additionalProperties": false
1322
+ }
1323
+ },
1324
+ "static": {
1325
+ "type": "object",
1326
+ "properties": {
1327
+ "str": {
1328
+ "type": "integer"
1329
+ },
1330
+ "dex": {
1331
+ "type": "integer"
1332
+ },
1333
+ "con": {
1334
+ "type": "integer"
1335
+ },
1336
+ "int": {
1337
+ "type": "integer"
1338
+ },
1339
+ "wis": {
1340
+ "type": "integer"
1341
+ },
1342
+ "cha": {
1343
+ "type": "integer"
1344
+ }
1345
+ },
1346
+ "additionalProperties": false
1347
+ },
1348
+ "str": {
1349
+ "type": "integer"
1350
+ },
1351
+ "dex": {
1352
+ "type": "integer"
1353
+ },
1354
+ "con": {
1355
+ "type": "integer"
1356
+ },
1357
+ "int": {
1358
+ "type": "integer"
1359
+ },
1360
+ "wis": {
1361
+ "type": "integer"
1362
+ },
1363
+ "cha": {
1364
+ "type": "integer"
1365
+ }
1366
+ }
1367
+ },
1368
+ "focus": {
1369
+ "description": "Item can be used as a spellcasting focus",
1370
+ "oneOf": [
1371
+ {
1372
+ "type": "boolean"
1373
+ },
1374
+ {
1375
+ "type": "array",
1376
+ "items": {
1377
+ "type": "string",
1378
+ "enum": [
1379
+ "Artificer",
1380
+ "Bard",
1381
+ "Cleric",
1382
+ "Druid",
1383
+ "Paladin",
1384
+ "Ranger",
1385
+ "Sorcerer",
1386
+ "Warlock",
1387
+ "Wizard"
1388
+ ]
1389
+ }
1390
+ }
1391
+ ]
1392
+ },
1393
+ "lootTables": {
1394
+ "type": "array",
1395
+ "items": {
1396
+ "type": "string"
1397
+ }
1398
+ },
1399
+ "critThreshold": {
1400
+ "type": "integer"
1401
+ },
1402
+ "bonusAc": {
1403
+ "type": "string"
1404
+ },
1405
+ "bonusWeapon": {
1406
+ "type": "string"
1407
+ },
1408
+ "bonusWeaponAttack": {
1409
+ "type": "string"
1410
+ },
1411
+ "bonusWeaponDamage": {
1412
+ "type": "string"
1413
+ },
1414
+ "bonusWeaponCritDamage": {
1415
+ "type": "string"
1416
+ },
1417
+ "bonusSpellAttack": {
1418
+ "type": "string"
1419
+ },
1420
+ "bonusSpellDamage": {
1421
+ "type": "string"
1422
+ },
1423
+ "bonusSpellSaveDc": {
1424
+ "type": "string"
1425
+ },
1426
+ "bonusSavingThrow": {
1427
+ "type": "string"
1428
+ },
1429
+ "bonusAbilityCheck": {
1430
+ "type": "string"
1431
+ },
1432
+ "bonusProficiencyBonus": {
1433
+ "type": "string"
1434
+ },
1435
+ "bonusSavingThrowConcentration": {
1436
+ "type": "string"
1437
+ },
1438
+ "modifySpeed": {
1439
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
1440
+ },
1441
+ "otherSources": {
1442
+ "$ref": "util.json#/$defs/otherSources"
1443
+ },
1444
+ "srd": {
1445
+ "$ref": "util.json#/$defs/srd"
1446
+ },
1447
+ "basicRules": {
1448
+ "$ref": "util.json#/$defs/basicRules"
1449
+ },
1450
+ "legacy": {
1451
+ "$ref": "util.json#/$defs/legacy"
1452
+ },
1453
+ "atomicPackContents": {
1454
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
1455
+ "type": "boolean"
1456
+ },
1457
+ "containerCapacity": {
1458
+ "type": "object",
1459
+ "properties": {
1460
+ "weight": {
1461
+ "type": "array",
1462
+ "items": {
1463
+ "type": "integer"
1464
+ }
1465
+ },
1466
+ "item": {
1467
+ "type": "array",
1468
+ "items": {
1469
+ "type": "object",
1470
+ "patternProperties": {
1471
+ ".*": {
1472
+ "type": "integer"
1473
+ }
1474
+ },
1475
+ "additionalProperties": false
1476
+ }
1477
+ },
1478
+ "weightless": {
1479
+ "description": "If the container renders its contents weightless.",
1480
+ "type": "boolean"
1481
+ }
1482
+ },
1483
+ "additionalProperties": false
1484
+ },
1485
+ "ammoType": {
1486
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
1487
+ },
1488
+ "packContents": {
1489
+ "$ref": "items-shared.json#/$defs/packContents"
1490
+ },
1491
+ "grantsProficiency": {
1492
+ "type": "boolean"
1493
+ },
1494
+ "grantsLanguage": {
1495
+ "type": "boolean"
1496
+ },
1497
+ "spellScrollLevel": {
1257
1498
  "type": "integer"
1258
1499
  },
1259
- "charges": {
1260
- "type": [
1261
- "string",
1262
- "integer"
1263
- ]
1500
+ "seeAlsoDeck": {
1501
+ "type": "array",
1502
+ "items": {
1503
+ "type": "string",
1504
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
1505
+ }
1264
1506
  },
1265
- "recharge": {
1266
- "$ref": "items-shared.json#/$defs/itemRecharge"
1507
+ "seeAlsoVehicle": {
1508
+ "type": "array",
1509
+ "items": {
1510
+ "type": "string",
1511
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
1512
+ }
1267
1513
  },
1268
- "rechargeAmount": {
1269
- "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1514
+ "reqAttuneTags": {
1515
+ "$ref": "util.json#/$defs/reqAttuneTags"
1270
1516
  },
1271
- "optionalfeatures": {
1517
+ "reqAttuneAltTags": {
1518
+ "$ref": "util.json#/$defs/reqAttuneTags"
1519
+ },
1520
+ "miscTags": {
1272
1521
  "type": "array",
1273
1522
  "items": {
1274
- "type": "string"
1523
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1524
+ "enum": [
1525
+ "CF/W",
1526
+ "TT"
1527
+ ]
1275
1528
  }
1276
1529
  },
1277
- "attachedSpells": {
1530
+ "mastery": {
1531
+ "$ref": "items-shared.json#/$defs/itemMastery"
1532
+ },
1533
+ "reach": {
1534
+ "$ref": "items-shared.json#/$defs/itemReach"
1535
+ },
1536
+ "hasFluff": {
1537
+ "type": "boolean"
1538
+ },
1539
+ "hasFluffImages": {
1540
+ "type": "boolean"
1541
+ },
1542
+ "hasRefs": {
1543
+ "type": "boolean",
1544
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1545
+ },
1546
+ "customProperties": {
1547
+ "$ref": "items-shared.json#/$defs/customProperties"
1548
+ },
1549
+ "_copy": {
1550
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
1551
+ }
1552
+ },
1553
+ "additionalProperties": false,
1554
+ "required": [
1555
+ "_copy"
1556
+ ]
1557
+ }
1558
+ ]
1559
+ },
1560
+ "subEntityItem": {
1561
+ "type": "object",
1562
+ "properties": {
1563
+ "name": {
1564
+ "type": "string"
1565
+ },
1566
+ "alias": {
1567
+ "$ref": "util.json#/$defs/alias"
1568
+ },
1569
+ "type": {
1570
+ "$ref": "items-shared.json#/$defs/itemType"
1571
+ },
1572
+ "typeAlt": {
1573
+ "$ref": "items-shared.json#/$defs/itemType"
1574
+ },
1575
+ "rarity": {
1576
+ "$ref": "items-shared.json#/$defs/itemRarity"
1577
+ },
1578
+ "source": {
1579
+ "$ref": "util.json#/$defs/source"
1580
+ },
1581
+ "page": {
1582
+ "$ref": "util.json#/$defs/page"
1583
+ },
1584
+ "additionalSources": {
1585
+ "$ref": "util.json#/$defs/additionalSources"
1586
+ },
1587
+ "reprintedAs": {
1588
+ "$ref": "util.json#/$defs/reprintedAs"
1589
+ },
1590
+ "baseItem": {
1591
+ "type": "string"
1592
+ },
1593
+ "ac": {
1594
+ "type": "integer"
1595
+ },
1596
+ "age": {
1597
+ "$ref": "items-shared.json#/$defs/itemAge"
1598
+ },
1599
+ "carryingCapacity": {
1600
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
1601
+ },
1602
+ "dmg1": {
1603
+ "type": "string"
1604
+ },
1605
+ "dmg2": {
1606
+ "type": "string",
1607
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
1608
+ },
1609
+ "dmgType": {
1610
+ "$ref": "util.json#/$defs/dataDamageTags"
1611
+ },
1612
+ "entries": {
1613
+ "type": "array",
1614
+ "items": {
1615
+ "$ref": "entry.json"
1616
+ }
1617
+ },
1618
+ "additionalEntries": {
1619
+ "type": "array",
1620
+ "items": {
1621
+ "$ref": "entry.json"
1622
+ }
1623
+ },
1624
+ "property": {
1625
+ "$ref": "items-shared.json#/$defs/itemProperty"
1626
+ },
1627
+ "range": {
1628
+ "type": "string"
1629
+ },
1630
+ "reload": {
1631
+ "type": [
1632
+ "string",
1633
+ "integer"
1634
+ ]
1635
+ },
1636
+ "reqAttune": {
1637
+ "type": [
1638
+ "string",
1639
+ "boolean"
1640
+ ]
1641
+ },
1642
+ "reqAttuneAlt": {
1643
+ "description": "Used for filtering.",
1644
+ "type": [
1645
+ "string",
1646
+ "boolean"
1647
+ ]
1648
+ },
1649
+ "curse": {
1650
+ "type": "boolean"
1651
+ },
1652
+ "vulnerable": {
1653
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
1654
+ },
1655
+ "resist": {
1656
+ "$ref": "util.json#/$defs/damageResistArray"
1657
+ },
1658
+ "immune": {
1659
+ "$ref": "util.json#/$defs/damageImmunityArray"
1660
+ },
1661
+ "conditionImmune": {
1662
+ "$ref": "util.json#/$defs/conditionImmunityArray"
1663
+ },
1664
+ "detail1": {
1665
+ "description": "A descriptive field that can be used to complete entries in variants.",
1666
+ "type": "string"
1667
+ },
1668
+ "scfType": {
1669
+ "$ref": "items-shared.json#/$defs/itemScfType"
1670
+ },
1671
+ "speed": {
1672
+ "$ref": "items-shared.json#/$defs/itemSpeed"
1673
+ },
1674
+ "stealth": {
1675
+ "type": "boolean"
1676
+ },
1677
+ "strength": {
1678
+ "type": [
1679
+ "string",
1680
+ "null"
1681
+ ]
1682
+ },
1683
+ "dexterityMax": {
1684
+ "$ref": "items-shared.json#/$defs/itemDexterityMax"
1685
+ },
1686
+ "firearm": {
1687
+ "type": "boolean"
1688
+ },
1689
+ "staff": {
1690
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
1691
+ "type": "boolean"
1692
+ },
1693
+ "tier": {
1694
+ "$ref": "items-shared.json#/$defs/itemTier"
1695
+ },
1696
+ "value": {
1697
+ "description": "In copper pieces.",
1698
+ "type": [
1699
+ "number",
1700
+ "null"
1701
+ ]
1702
+ },
1703
+ "valueMult": {
1704
+ "type": "number"
1705
+ },
1706
+ "weaponCategory": {
1707
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
1708
+ },
1709
+ "weight": {
1710
+ "type": "number"
1711
+ },
1712
+ "weightMult": {
1713
+ "type": "number"
1714
+ },
1715
+ "weightNote": {
1716
+ "type": "string"
1717
+ },
1718
+ "wondrous": {
1719
+ "type": "boolean"
1720
+ },
1721
+ "tattoo": {
1722
+ "type": "boolean"
1723
+ },
1724
+ "sentient": {
1725
+ "type": "boolean"
1726
+ },
1727
+ "poison": {
1728
+ "type": "boolean"
1729
+ },
1730
+ "poisonTypes": {
1731
+ "type": "array",
1732
+ "items": {
1733
+ "type": "string",
1734
+ "enum": [
1735
+ "contact",
1736
+ "ingested",
1737
+ "injury",
1738
+ "inhaled"
1739
+ ]
1740
+ }
1741
+ },
1742
+ "crew": {
1743
+ "type": "integer"
1744
+ },
1745
+ "crewMin": {
1746
+ "description": "For crews specified as an X-Y min-max.",
1747
+ "type": "integer"
1748
+ },
1749
+ "crewMax": {
1750
+ "description": "For crews specified as an X-Y min-max.",
1751
+ "type": "integer"
1752
+ },
1753
+ "capPassenger": {
1754
+ "type": "integer"
1755
+ },
1756
+ "capCargo": {
1757
+ "type": "number"
1758
+ },
1759
+ "vehSpeed": {
1760
+ "type": "number"
1761
+ },
1762
+ "vehAc": {
1763
+ "type": "integer"
1764
+ },
1765
+ "vehHp": {
1766
+ "type": "integer"
1767
+ },
1768
+ "vehDmgThresh": {
1769
+ "type": "integer"
1770
+ },
1771
+ "travelCost": {
1772
+ "description": "In copper pieces per mile per passenger.",
1773
+ "type": "integer"
1774
+ },
1775
+ "shippingCost": {
1776
+ "description": "In copper pieces per 100 lbs per mile.",
1777
+ "type": "integer"
1778
+ },
1779
+ "charges": {
1780
+ "type": [
1781
+ "string",
1782
+ "integer"
1783
+ ]
1784
+ },
1785
+ "recharge": {
1786
+ "$ref": "items-shared.json#/$defs/itemRecharge"
1787
+ },
1788
+ "rechargeAmount": {
1789
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1790
+ },
1791
+ "optionalfeatures": {
1792
+ "type": "array",
1793
+ "items": {
1794
+ "type": "string"
1795
+ }
1796
+ },
1797
+ "attachedSpells": {
1798
+ "type": "array",
1799
+ "minItems": 1,
1800
+ "uniqueItems": true,
1801
+ "items": {
1802
+ "type": "string"
1803
+ }
1804
+ },
1805
+ "ability": {
1806
+ "description": "Item ability score adjustments.",
1807
+ "type": "object",
1808
+ "properties": {
1809
+ "choose": {
1278
1810
  "type": "array",
1279
- "minItems": 1,
1280
- "uniqueItems": true,
1281
1811
  "items": {
1282
- "type": "string"
1812
+ "type": "object",
1813
+ "properties": {
1814
+ "from": {
1815
+ "type": "array",
1816
+ "items": {
1817
+ "enum": [
1818
+ "str",
1819
+ "dex",
1820
+ "con",
1821
+ "int",
1822
+ "wis",
1823
+ "cha"
1824
+ ]
1825
+ },
1826
+ "uniqueItems": true
1827
+ },
1828
+ "count": {
1829
+ "type": "integer"
1830
+ },
1831
+ "amount": {
1832
+ "type": "integer"
1833
+ }
1834
+ },
1835
+ "required": [
1836
+ "from"
1837
+ ],
1838
+ "additionalProperties": false
1283
1839
  }
1284
1840
  },
1285
- "ability": {
1286
- "description": "Item ability score adjustments.",
1841
+ "static": {
1287
1842
  "type": "object",
1288
1843
  "properties": {
1289
- "choose": {
1290
- "type": "array",
1291
- "items": {
1292
- "type": "object",
1293
- "properties": {
1294
- "from": {
1295
- "type": "array",
1296
- "items": {
1297
- "enum": [
1298
- "str",
1299
- "dex",
1300
- "con",
1301
- "int",
1302
- "wis",
1303
- "cha"
1304
- ]
1305
- },
1306
- "uniqueItems": true
1307
- },
1308
- "count": {
1309
- "type": "integer"
1310
- },
1311
- "amount": {
1312
- "type": "integer"
1313
- }
1314
- },
1315
- "required": [
1316
- "from"
1317
- ],
1318
- "additionalProperties": false
1319
- }
1320
- },
1321
- "static": {
1322
- "type": "object",
1323
- "properties": {
1324
- "str": {
1325
- "type": "integer"
1326
- },
1327
- "dex": {
1328
- "type": "integer"
1329
- },
1330
- "con": {
1331
- "type": "integer"
1332
- },
1333
- "int": {
1334
- "type": "integer"
1335
- },
1336
- "wis": {
1337
- "type": "integer"
1338
- },
1339
- "cha": {
1340
- "type": "integer"
1341
- }
1342
- },
1343
- "additionalProperties": false
1344
- },
1345
1844
  "str": {
1346
1845
  "type": "integer"
1347
1846
  },
@@ -1352,208 +1851,237 @@
1352
1851
  "type": "integer"
1353
1852
  },
1354
1853
  "int": {
1355
- "type": "integer"
1356
- },
1357
- "wis": {
1358
- "type": "integer"
1359
- },
1360
- "cha": {
1361
- "type": "integer"
1362
- }
1363
- }
1364
- },
1365
- "focus": {
1366
- "description": "Item can be used as a spellcasting focus",
1367
- "oneOf": [
1368
- {
1369
- "type": "boolean"
1370
- },
1371
- {
1372
- "type": "array",
1373
- "items": {
1374
- "type": "string",
1375
- "enum": [
1376
- "Artificer",
1377
- "Bard",
1378
- "Cleric",
1379
- "Druid",
1380
- "Paladin",
1381
- "Ranger",
1382
- "Sorcerer",
1383
- "Warlock",
1384
- "Wizard"
1385
- ]
1386
- }
1387
- }
1388
- ]
1389
- },
1390
- "lootTables": {
1391
- "type": "array",
1392
- "items": {
1393
- "type": "string"
1394
- }
1395
- },
1396
- "critThreshold": {
1397
- "type": "integer"
1398
- },
1399
- "bonusAc": {
1400
- "type": "string"
1401
- },
1402
- "bonusWeapon": {
1403
- "type": "string"
1404
- },
1405
- "bonusWeaponAttack": {
1406
- "type": "string"
1407
- },
1408
- "bonusWeaponDamage": {
1409
- "type": "string"
1410
- },
1411
- "bonusWeaponCritDamage": {
1412
- "type": "string"
1413
- },
1414
- "bonusSpellAttack": {
1415
- "type": "string"
1416
- },
1417
- "bonusSpellDamage": {
1418
- "type": "string"
1419
- },
1420
- "bonusSpellSaveDc": {
1421
- "type": "string"
1422
- },
1423
- "bonusSavingThrow": {
1424
- "type": "string"
1425
- },
1426
- "bonusAbilityCheck": {
1427
- "type": "string"
1428
- },
1429
- "bonusProficiencyBonus": {
1430
- "type": "string"
1431
- },
1432
- "bonusSavingThrowConcentration": {
1433
- "type": "string"
1434
- },
1435
- "modifySpeed": {
1436
- "$ref": "items-shared.json#/$defs/itemModifySpeed"
1437
- },
1438
- "otherSources": {
1439
- "$ref": "util.json#/$defs/otherSources"
1440
- },
1441
- "srd": {
1442
- "$ref": "util.json#/$defs/srd"
1443
- },
1444
- "basicRules": {
1445
- "$ref": "util.json#/$defs/basicRules"
1446
- },
1447
- "legacy": {
1448
- "$ref": "util.json#/$defs/legacy"
1449
- },
1450
- "atomicPackContents": {
1451
- "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
1452
- "type": "boolean"
1453
- },
1454
- "containerCapacity": {
1455
- "type": "object",
1456
- "properties": {
1457
- "weight": {
1458
- "type": "array",
1459
- "items": {
1460
- "type": "integer"
1461
- }
1854
+ "type": "integer"
1462
1855
  },
1463
- "item": {
1464
- "type": "array",
1465
- "items": {
1466
- "type": "object",
1467
- "patternProperties": {
1468
- ".*": {
1469
- "type": "integer"
1470
- }
1471
- },
1472
- "additionalProperties": false
1473
- }
1856
+ "wis": {
1857
+ "type": "integer"
1474
1858
  },
1475
- "weightless": {
1476
- "description": "If the container renders its contents weightless.",
1477
- "type": "boolean"
1859
+ "cha": {
1860
+ "type": "integer"
1478
1861
  }
1479
1862
  },
1480
1863
  "additionalProperties": false
1481
1864
  },
1482
- "ammoType": {
1483
- "$ref": "items-shared.json#/$defs/itemAmmoType"
1865
+ "str": {
1866
+ "type": "integer"
1484
1867
  },
1485
- "packContents": {
1486
- "$ref": "items-shared.json#/$defs/packContents"
1868
+ "dex": {
1869
+ "type": "integer"
1487
1870
  },
1488
- "grantsProficiency": {
1489
- "type": "boolean"
1871
+ "con": {
1872
+ "type": "integer"
1490
1873
  },
1491
- "grantsLanguage": {
1492
- "type": "boolean"
1874
+ "int": {
1875
+ "type": "integer"
1493
1876
  },
1494
- "spellScrollLevel": {
1877
+ "wis": {
1495
1878
  "type": "integer"
1496
1879
  },
1497
- "seeAlsoDeck": {
1880
+ "cha": {
1881
+ "type": "integer"
1882
+ }
1883
+ }
1884
+ },
1885
+ "focus": {
1886
+ "description": "Item can be used as a spellcasting focus",
1887
+ "oneOf": [
1888
+ {
1889
+ "type": "boolean"
1890
+ },
1891
+ {
1498
1892
  "type": "array",
1499
1893
  "items": {
1500
1894
  "type": "string",
1501
- "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
1895
+ "enum": [
1896
+ "Artificer",
1897
+ "Bard",
1898
+ "Cleric",
1899
+ "Druid",
1900
+ "Paladin",
1901
+ "Ranger",
1902
+ "Sorcerer",
1903
+ "Warlock",
1904
+ "Wizard"
1905
+ ]
1502
1906
  }
1503
- },
1504
- "seeAlsoVehicle": {
1907
+ }
1908
+ ]
1909
+ },
1910
+ "lootTables": {
1911
+ "type": "array",
1912
+ "items": {
1913
+ "type": "string"
1914
+ }
1915
+ },
1916
+ "critThreshold": {
1917
+ "type": "integer"
1918
+ },
1919
+ "bonusAc": {
1920
+ "type": "string"
1921
+ },
1922
+ "bonusWeapon": {
1923
+ "type": "string"
1924
+ },
1925
+ "bonusWeaponAttack": {
1926
+ "type": "string"
1927
+ },
1928
+ "bonusWeaponDamage": {
1929
+ "type": "string"
1930
+ },
1931
+ "bonusWeaponCritDamage": {
1932
+ "type": "string"
1933
+ },
1934
+ "bonusSpellAttack": {
1935
+ "type": "string"
1936
+ },
1937
+ "bonusSpellDamage": {
1938
+ "type": "string"
1939
+ },
1940
+ "bonusSpellSaveDc": {
1941
+ "type": "string"
1942
+ },
1943
+ "bonusSavingThrow": {
1944
+ "type": "string"
1945
+ },
1946
+ "bonusAbilityCheck": {
1947
+ "type": "string"
1948
+ },
1949
+ "bonusProficiencyBonus": {
1950
+ "type": "string"
1951
+ },
1952
+ "bonusSavingThrowConcentration": {
1953
+ "type": "string"
1954
+ },
1955
+ "modifySpeed": {
1956
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
1957
+ },
1958
+ "otherSources": {
1959
+ "$ref": "util.json#/$defs/otherSources"
1960
+ },
1961
+ "srd": {
1962
+ "$ref": "util.json#/$defs/srd"
1963
+ },
1964
+ "basicRules": {
1965
+ "$ref": "util.json#/$defs/basicRules"
1966
+ },
1967
+ "legacy": {
1968
+ "$ref": "util.json#/$defs/legacy"
1969
+ },
1970
+ "atomicPackContents": {
1971
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
1972
+ "type": "boolean"
1973
+ },
1974
+ "containerCapacity": {
1975
+ "type": "object",
1976
+ "properties": {
1977
+ "weight": {
1505
1978
  "type": "array",
1506
1979
  "items": {
1507
- "type": "string",
1508
- "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
1980
+ "type": "integer"
1509
1981
  }
1510
1982
  },
1511
- "reqAttuneTags": {
1512
- "$ref": "util.json#/$defs/reqAttuneTags"
1513
- },
1514
- "reqAttuneAltTags": {
1515
- "$ref": "util.json#/$defs/reqAttuneTags"
1516
- },
1517
- "miscTags": {
1983
+ "item": {
1518
1984
  "type": "array",
1519
1985
  "items": {
1520
- "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1521
- "enum": [
1522
- "CF/W",
1523
- "TT"
1524
- ]
1986
+ "type": "object",
1987
+ "patternProperties": {
1988
+ ".*": {
1989
+ "type": "integer"
1990
+ }
1991
+ },
1992
+ "additionalProperties": false
1525
1993
  }
1526
1994
  },
1527
- "mastery": {
1528
- "$ref": "items-shared.json#/$defs/itemMastery"
1529
- },
1530
- "reach": {
1531
- "$ref": "items-shared.json#/$defs/itemReach"
1532
- },
1533
- "hasFluff": {
1534
- "type": "boolean"
1535
- },
1536
- "hasFluffImages": {
1995
+ "weightless": {
1996
+ "description": "If the container renders its contents weightless.",
1537
1997
  "type": "boolean"
1538
- },
1539
- "hasRefs": {
1540
- "type": "boolean",
1541
- "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1542
- },
1543
- "customProperties": {
1544
- "$ref": "items-shared.json#/$defs/customProperties"
1545
- },
1546
- "_copy": {
1547
- "$ref": "util.json#/$defs/copyBlock_copy_generic"
1548
1998
  }
1549
1999
  },
1550
- "additionalProperties": false,
1551
- "required": [
1552
- "_copy"
1553
- ]
2000
+ "additionalProperties": false
2001
+ },
2002
+ "ammoType": {
2003
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
2004
+ },
2005
+ "packContents": {
2006
+ "$ref": "items-shared.json#/$defs/packContents"
2007
+ },
2008
+ "grantsProficiency": {
2009
+ "type": "boolean"
2010
+ },
2011
+ "grantsLanguage": {
2012
+ "type": "boolean"
2013
+ },
2014
+ "spellScrollLevel": {
2015
+ "type": "integer"
2016
+ },
2017
+ "seeAlsoDeck": {
2018
+ "type": "array",
2019
+ "items": {
2020
+ "type": "string",
2021
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
2022
+ }
2023
+ },
2024
+ "seeAlsoVehicle": {
2025
+ "type": "array",
2026
+ "items": {
2027
+ "type": "string",
2028
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
2029
+ }
2030
+ },
2031
+ "reqAttuneTags": {
2032
+ "$ref": "util.json#/$defs/reqAttuneTags"
2033
+ },
2034
+ "reqAttuneAltTags": {
2035
+ "$ref": "util.json#/$defs/reqAttuneTags"
2036
+ },
2037
+ "miscTags": {
2038
+ "type": "array",
2039
+ "items": {
2040
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
2041
+ "enum": [
2042
+ "CF/W",
2043
+ "TT"
2044
+ ]
2045
+ }
2046
+ },
2047
+ "mastery": {
2048
+ "$ref": "items-shared.json#/$defs/itemMastery"
2049
+ },
2050
+ "reach": {
2051
+ "$ref": "items-shared.json#/$defs/itemReach"
2052
+ },
2053
+ "hasFluff": {
2054
+ "type": "boolean"
2055
+ },
2056
+ "hasFluffImages": {
2057
+ "type": "boolean"
2058
+ },
2059
+ "hasRefs": {
2060
+ "type": "boolean",
2061
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
2062
+ },
2063
+ "customProperties": {
2064
+ "$ref": "items-shared.json#/$defs/customProperties"
2065
+ },
2066
+ "foundrySystem": {
2067
+ "$ref": "util-foundry.json#/$defs/foundrySystemObject"
1554
2068
  }
2069
+ },
2070
+ "additionalProperties": false,
2071
+ "required": [
2072
+ "name",
2073
+ "rarity",
2074
+ "source"
1555
2075
  ]
1556
2076
  },
2077
+ "subEntityItemArray": {
2078
+ "type": "array",
2079
+ "items": {
2080
+ "$ref": "#/$defs/subEntityItem"
2081
+ },
2082
+ "uniqueItems": true,
2083
+ "minItems": 1
2084
+ },
1557
2085
  "itemGroup": {
1558
2086
  "anyOf": [
1559
2087
  {
@@ -2584,7 +3112,7 @@
2584
3112
  "$ref": "#/$defs/_itemGroupItems"
2585
3113
  },
2586
3114
  "_copy": {
2587
- "$ref": "util.json#/$defs/copyBlock_copy_generic"
3115
+ "$ref": "util-copy.json#/$defs/copyBlock_copy_generic"
2588
3116
  }
2589
3117
  },
2590
3118
  "additionalProperties": false,