5etools-utils 0.12.5 → 0.12.6

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.
@@ -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": {
@@ -562,8 +562,566 @@
562
562
  "type": "string"
563
563
  }
564
564
  },
565
+ "_item": {
566
+ "type": "object",
567
+ "properties": {
568
+ "name": {
569
+ "type": "string"
570
+ },
571
+ "alias": {
572
+ "$ref": "util.json#/$defs/alias"
573
+ },
574
+ "type": {
575
+ "$ref": "items-shared.json#/$defs/itemType"
576
+ },
577
+ "typeAlt": {
578
+ "$ref": "items-shared.json#/$defs/itemType"
579
+ },
580
+ "rarity": {
581
+ "$ref": "items-shared.json#/$defs/itemRarity"
582
+ },
583
+ "source": {
584
+ "$ref": "util.json#/$defs/source"
585
+ },
586
+ "page": {
587
+ "$ref": "util.json#/$defs/page"
588
+ },
589
+ "additionalSources": {
590
+ "$ref": "util.json#/$defs/additionalSources"
591
+ },
592
+ "reprintedAs": {
593
+ "$ref": "util.json#/$defs/reprintedAs"
594
+ },
595
+ "baseItem": {
596
+ "type": "string"
597
+ },
598
+ "ac": {
599
+ "type": "integer"
600
+ },
601
+ "age": {
602
+ "$ref": "items-shared.json#/$defs/itemAge"
603
+ },
604
+ "carryingCapacity": {
605
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
606
+ },
607
+ "dmg1": {
608
+ "type": "string"
609
+ },
610
+ "dmg2": {
611
+ "type": "string",
612
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
613
+ },
614
+ "dmgType": {
615
+ "$ref": "util.json#/$defs/dataDamageTags"
616
+ },
617
+ "entries": {
618
+ "type": "array",
619
+ "items": {
620
+ "$ref": "entry.json"
621
+ }
622
+ },
623
+ "additionalEntries": {
624
+ "type": "array",
625
+ "items": {
626
+ "$ref": "entry.json"
627
+ }
628
+ },
629
+ "property": {
630
+ "$ref": "items-shared.json#/$defs/itemProperty"
631
+ },
632
+ "range": {
633
+ "type": "string"
634
+ },
635
+ "reload": {
636
+ "type": [
637
+ "string",
638
+ "integer"
639
+ ]
640
+ },
641
+ "reqAttune": {
642
+ "type": [
643
+ "string",
644
+ "boolean"
645
+ ]
646
+ },
647
+ "reqAttuneAlt": {
648
+ "description": "Used for filtering.",
649
+ "type": [
650
+ "string",
651
+ "boolean"
652
+ ]
653
+ },
654
+ "curse": {
655
+ "type": "boolean"
656
+ },
657
+ "vulnerable": {
658
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
659
+ },
660
+ "resist": {
661
+ "$ref": "util.json#/$defs/damageResistArray"
662
+ },
663
+ "immune": {
664
+ "$ref": "util.json#/$defs/damageImmunityArray"
665
+ },
666
+ "conditionImmune": {
667
+ "$ref": "util.json#/$defs/conditionImmunityArray"
668
+ },
669
+ "detail1": {
670
+ "description": "A descriptive field that can be used to complete entries in variants.",
671
+ "type": "string"
672
+ },
673
+ "scfType": {
674
+ "$ref": "items-shared.json#/$defs/itemScfType"
675
+ },
676
+ "speed": {
677
+ "$ref": "items-shared.json#/$defs/itemSpeed"
678
+ },
679
+ "stealth": {
680
+ "type": "boolean"
681
+ },
682
+ "strength": {
683
+ "type": [
684
+ "string",
685
+ "null"
686
+ ]
687
+ },
688
+ "dexterityMax": {
689
+ "$ref": "items-shared.json#/$defs/itemDexterityMax"
690
+ },
691
+ "firearm": {
692
+ "type": "boolean"
693
+ },
694
+ "staff": {
695
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
696
+ "type": "boolean"
697
+ },
698
+ "tier": {
699
+ "$ref": "items-shared.json#/$defs/itemTier"
700
+ },
701
+ "value": {
702
+ "description": "In copper pieces.",
703
+ "type": [
704
+ "number",
705
+ "null"
706
+ ]
707
+ },
708
+ "valueMult": {
709
+ "type": "number"
710
+ },
711
+ "weaponCategory": {
712
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
713
+ },
714
+ "weight": {
715
+ "type": "number"
716
+ },
717
+ "weightMult": {
718
+ "type": "number"
719
+ },
720
+ "weightNote": {
721
+ "type": "string"
722
+ },
723
+ "wondrous": {
724
+ "type": "boolean"
725
+ },
726
+ "tattoo": {
727
+ "type": "boolean"
728
+ },
729
+ "sentient": {
730
+ "type": "boolean"
731
+ },
732
+ "poison": {
733
+ "type": "boolean"
734
+ },
735
+ "poisonTypes": {
736
+ "type": "array",
737
+ "items": {
738
+ "type": "string",
739
+ "examples": [
740
+ "contact",
741
+ "ingested",
742
+ "injury",
743
+ "inhaled"
744
+ ]
745
+ }
746
+ },
747
+ "crew": {
748
+ "type": "integer"
749
+ },
750
+ "crewMin": {
751
+ "description": "For crews specified as an X-Y min-max.",
752
+ "type": "integer"
753
+ },
754
+ "crewMax": {
755
+ "description": "For crews specified as an X-Y min-max.",
756
+ "type": "integer"
757
+ },
758
+ "capPassenger": {
759
+ "type": "integer"
760
+ },
761
+ "capCargo": {
762
+ "type": "number"
763
+ },
764
+ "vehSpeed": {
765
+ "type": "number"
766
+ },
767
+ "vehAc": {
768
+ "type": "integer"
769
+ },
770
+ "vehHp": {
771
+ "type": "integer"
772
+ },
773
+ "vehDmgThresh": {
774
+ "type": "integer"
775
+ },
776
+ "travelCost": {
777
+ "description": "In copper pieces per mile per passenger.",
778
+ "type": "integer"
779
+ },
780
+ "shippingCost": {
781
+ "description": "In copper pieces per 100 lbs per mile.",
782
+ "type": "integer"
783
+ },
784
+ "charges": {
785
+ "type": [
786
+ "string",
787
+ "integer"
788
+ ]
789
+ },
790
+ "recharge": {
791
+ "$ref": "items-shared.json#/$defs/itemRecharge"
792
+ },
793
+ "rechargeAmount": {
794
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
795
+ },
796
+ "optionalfeatures": {
797
+ "type": "array",
798
+ "items": {
799
+ "type": "string"
800
+ }
801
+ },
802
+ "attachedSpells": {
803
+ "type": "array",
804
+ "minItems": 1,
805
+ "uniqueItems": true,
806
+ "items": {
807
+ "type": "string"
808
+ }
809
+ },
810
+ "ability": {
811
+ "description": "Item ability score adjustments.",
812
+ "type": "object",
813
+ "properties": {
814
+ "choose": {
815
+ "type": "array",
816
+ "items": {
817
+ "type": "object",
818
+ "properties": {
819
+ "from": {
820
+ "type": "array",
821
+ "items": {
822
+ "enum": [
823
+ "str",
824
+ "dex",
825
+ "con",
826
+ "int",
827
+ "wis",
828
+ "cha"
829
+ ]
830
+ },
831
+ "uniqueItems": true
832
+ },
833
+ "count": {
834
+ "type": "integer"
835
+ },
836
+ "amount": {
837
+ "type": "integer"
838
+ }
839
+ },
840
+ "required": [
841
+ "from"
842
+ ],
843
+ "additionalProperties": false
844
+ }
845
+ },
846
+ "static": {
847
+ "type": "object",
848
+ "properties": {
849
+ "str": {
850
+ "type": "integer"
851
+ },
852
+ "dex": {
853
+ "type": "integer"
854
+ },
855
+ "con": {
856
+ "type": "integer"
857
+ },
858
+ "int": {
859
+ "type": "integer"
860
+ },
861
+ "wis": {
862
+ "type": "integer"
863
+ },
864
+ "cha": {
865
+ "type": "integer"
866
+ }
867
+ },
868
+ "additionalProperties": false
869
+ },
870
+ "str": {
871
+ "type": "integer"
872
+ },
873
+ "dex": {
874
+ "type": "integer"
875
+ },
876
+ "con": {
877
+ "type": "integer"
878
+ },
879
+ "int": {
880
+ "type": "integer"
881
+ },
882
+ "wis": {
883
+ "type": "integer"
884
+ },
885
+ "cha": {
886
+ "type": "integer"
887
+ }
888
+ }
889
+ },
890
+ "focus": {
891
+ "description": "Item can be used as a spellcasting focus",
892
+ "oneOf": [
893
+ {
894
+ "type": "boolean"
895
+ },
896
+ {
897
+ "type": "array",
898
+ "items": {
899
+ "type": "string",
900
+ "examples": [
901
+ "Artificer",
902
+ "Bard",
903
+ "Cleric",
904
+ "Druid",
905
+ "Paladin",
906
+ "Ranger",
907
+ "Sorcerer",
908
+ "Warlock",
909
+ "Wizard"
910
+ ]
911
+ }
912
+ }
913
+ ]
914
+ },
915
+ "lootTables": {
916
+ "type": "array",
917
+ "items": {
918
+ "type": "string"
919
+ }
920
+ },
921
+ "critThreshold": {
922
+ "type": "integer"
923
+ },
924
+ "bonusAc": {
925
+ "type": "string"
926
+ },
927
+ "bonusWeapon": {
928
+ "type": "string"
929
+ },
930
+ "bonusWeaponAttack": {
931
+ "type": "string"
932
+ },
933
+ "bonusWeaponDamage": {
934
+ "type": "string"
935
+ },
936
+ "bonusWeaponCritDamage": {
937
+ "type": "string"
938
+ },
939
+ "bonusSpellAttack": {
940
+ "type": "string"
941
+ },
942
+ "bonusSpellDamage": {
943
+ "type": "string"
944
+ },
945
+ "bonusSpellSaveDc": {
946
+ "type": "string"
947
+ },
948
+ "bonusSavingThrow": {
949
+ "type": "string"
950
+ },
951
+ "bonusAbilityCheck": {
952
+ "type": "string"
953
+ },
954
+ "bonusProficiencyBonus": {
955
+ "type": "string"
956
+ },
957
+ "bonusSavingThrowConcentration": {
958
+ "type": "string"
959
+ },
960
+ "modifySpeed": {
961
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
962
+ },
963
+ "otherSources": {
964
+ "$ref": "util.json#/$defs/otherSources"
965
+ },
966
+ "srd": {
967
+ "$ref": "util.json#/$defs/srd"
968
+ },
969
+ "basicRules": {
970
+ "$ref": "util.json#/$defs/basicRules"
971
+ },
972
+ "legacy": {
973
+ "$ref": "util.json#/$defs/legacy"
974
+ },
975
+ "atomicPackContents": {
976
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
977
+ "type": "boolean"
978
+ },
979
+ "containerCapacity": {
980
+ "type": "object",
981
+ "properties": {
982
+ "weight": {
983
+ "type": "array",
984
+ "items": {
985
+ "type": "integer"
986
+ }
987
+ },
988
+ "item": {
989
+ "type": "array",
990
+ "items": {
991
+ "type": "object",
992
+ "patternProperties": {
993
+ ".*": {
994
+ "type": "integer"
995
+ }
996
+ },
997
+ "additionalProperties": false
998
+ }
999
+ },
1000
+ "weightless": {
1001
+ "description": "If the container renders its contents weightless.",
1002
+ "type": "boolean"
1003
+ }
1004
+ },
1005
+ "additionalProperties": false
1006
+ },
1007
+ "ammoType": {
1008
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
1009
+ },
1010
+ "packContents": {
1011
+ "$ref": "items-shared.json#/$defs/packContents"
1012
+ },
1013
+ "grantsProficiency": {
1014
+ "type": "boolean"
1015
+ },
1016
+ "grantsLanguage": {
1017
+ "type": "boolean"
1018
+ },
1019
+ "spellScrollLevel": {
1020
+ "type": "integer"
1021
+ },
1022
+ "seeAlsoDeck": {
1023
+ "type": "array",
1024
+ "items": {
1025
+ "type": "string",
1026
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
1027
+ }
1028
+ },
1029
+ "seeAlsoVehicle": {
1030
+ "type": "array",
1031
+ "items": {
1032
+ "type": "string",
1033
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
1034
+ }
1035
+ },
1036
+ "reqAttuneTags": {
1037
+ "$ref": "util.json#/$defs/reqAttuneTags"
1038
+ },
1039
+ "reqAttuneAltTags": {
1040
+ "$ref": "util.json#/$defs/reqAttuneTags"
1041
+ },
1042
+ "miscTags": {
1043
+ "type": "array",
1044
+ "items": {
1045
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1046
+ "enum": [
1047
+ "CF/W",
1048
+ "TT"
1049
+ ]
1050
+ }
1051
+ },
1052
+ "mastery": {
1053
+ "$ref": "items-shared.json#/$defs/itemMastery"
1054
+ },
1055
+ "reach": {
1056
+ "$ref": "items-shared.json#/$defs/itemReach"
1057
+ },
1058
+ "hasFluff": {
1059
+ "type": "boolean"
1060
+ },
1061
+ "hasFluffImages": {
1062
+ "type": "boolean"
1063
+ },
1064
+ "hasRefs": {
1065
+ "type": "boolean",
1066
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1067
+ },
1068
+ "customProperties": {
1069
+ "$ref": "items-shared.json#/$defs/customProperties"
1070
+ },
1071
+ "acSpecial": {
1072
+ "$ref": "items-shared.json#/$defs/itemAcSpecial"
1073
+ },
1074
+ "currencyConversion": {
1075
+ "description": "ID of a value conversion table. Homebrew only.",
1076
+ "type": "string"
1077
+ },
1078
+ "alCertificateId": {
1079
+ "description": "Adventurers League item certificate ID; for use in homebrew.",
1080
+ "type": "string"
1081
+ },
1082
+ "foundryType": {
1083
+ "description": "Homebrew only: used to manually specify the exact Foundry item type an item should be imported as. \n\"CONFIG.Item.typeLabels\" correct as of Foundry v0.8.9",
1084
+ "type": "string",
1085
+ "enum": [
1086
+ "weapon",
1087
+ "equipment",
1088
+ "consumable",
1089
+ "tool",
1090
+ "loot",
1091
+ "class",
1092
+ "spell",
1093
+ "feat",
1094
+ "backpack"
1095
+ ]
1096
+ },
1097
+ "foundrySystem": {
1098
+ "$ref": "util-foundry.json#/$defs/foundrySystemObject"
1099
+ },
1100
+ "foundryFlags": {
1101
+ "$ref": "util-foundry.json#/$defs/foundryFlagsObject"
1102
+ },
1103
+ "foundryEffects": {
1104
+ "$ref": "util-foundry.json#/$defs/foundryEffectsArray"
1105
+ },
1106
+ "foundryImg": {
1107
+ "$ref": "util-foundry.json#/$defs/foundryImg"
1108
+ },
1109
+ "fluff": {
1110
+ "$ref": "items-shared.json#/$defs/fluff"
1111
+ }
1112
+ },
1113
+ "additionalProperties": false,
1114
+ "required": [
1115
+ "name",
1116
+ "rarity",
1117
+ "source"
1118
+ ]
1119
+ },
565
1120
  "item": {
566
1121
  "anyOf": [
1122
+ {
1123
+ "$ref": "#/$defs/_item"
1124
+ },
567
1125
  {
568
1126
  "type": "object",
569
1127
  "properties": {
@@ -1110,320 +1668,302 @@
1110
1668
  },
1111
1669
  "fluff": {
1112
1670
  "$ref": "items-shared.json#/$defs/fluff"
1671
+ },
1672
+ "_copy": {
1673
+ "$ref": "util.json#/$defs/copyBlock_copy_generic"
1113
1674
  }
1114
1675
  },
1115
1676
  "additionalProperties": false,
1116
1677
  "required": [
1117
- "name",
1118
- "rarity",
1119
- "source"
1678
+ "_copy"
1679
+ ]
1680
+ }
1681
+ ]
1682
+ },
1683
+ "subEntityItem": {
1684
+ "type": "object",
1685
+ "properties": {
1686
+ "name": {
1687
+ "type": "string"
1688
+ },
1689
+ "alias": {
1690
+ "$ref": "util.json#/$defs/alias"
1691
+ },
1692
+ "type": {
1693
+ "$ref": "items-shared.json#/$defs/itemType"
1694
+ },
1695
+ "typeAlt": {
1696
+ "$ref": "items-shared.json#/$defs/itemType"
1697
+ },
1698
+ "rarity": {
1699
+ "$ref": "items-shared.json#/$defs/itemRarity"
1700
+ },
1701
+ "source": {
1702
+ "$ref": "util.json#/$defs/source"
1703
+ },
1704
+ "page": {
1705
+ "$ref": "util.json#/$defs/page"
1706
+ },
1707
+ "additionalSources": {
1708
+ "$ref": "util.json#/$defs/additionalSources"
1709
+ },
1710
+ "reprintedAs": {
1711
+ "$ref": "util.json#/$defs/reprintedAs"
1712
+ },
1713
+ "baseItem": {
1714
+ "type": "string"
1715
+ },
1716
+ "ac": {
1717
+ "type": "integer"
1718
+ },
1719
+ "age": {
1720
+ "$ref": "items-shared.json#/$defs/itemAge"
1721
+ },
1722
+ "carryingCapacity": {
1723
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
1724
+ },
1725
+ "dmg1": {
1726
+ "type": "string"
1727
+ },
1728
+ "dmg2": {
1729
+ "type": "string",
1730
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
1731
+ },
1732
+ "dmgType": {
1733
+ "$ref": "util.json#/$defs/dataDamageTags"
1734
+ },
1735
+ "entries": {
1736
+ "type": "array",
1737
+ "items": {
1738
+ "$ref": "entry.json"
1739
+ }
1740
+ },
1741
+ "additionalEntries": {
1742
+ "type": "array",
1743
+ "items": {
1744
+ "$ref": "entry.json"
1745
+ }
1746
+ },
1747
+ "property": {
1748
+ "$ref": "items-shared.json#/$defs/itemProperty"
1749
+ },
1750
+ "range": {
1751
+ "type": "string"
1752
+ },
1753
+ "reload": {
1754
+ "type": [
1755
+ "string",
1756
+ "integer"
1757
+ ]
1758
+ },
1759
+ "reqAttune": {
1760
+ "type": [
1761
+ "string",
1762
+ "boolean"
1763
+ ]
1764
+ },
1765
+ "reqAttuneAlt": {
1766
+ "description": "Used for filtering.",
1767
+ "type": [
1768
+ "string",
1769
+ "boolean"
1770
+ ]
1771
+ },
1772
+ "curse": {
1773
+ "type": "boolean"
1774
+ },
1775
+ "vulnerable": {
1776
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
1777
+ },
1778
+ "resist": {
1779
+ "$ref": "util.json#/$defs/damageResistArray"
1780
+ },
1781
+ "immune": {
1782
+ "$ref": "util.json#/$defs/damageImmunityArray"
1783
+ },
1784
+ "conditionImmune": {
1785
+ "$ref": "util.json#/$defs/conditionImmunityArray"
1786
+ },
1787
+ "detail1": {
1788
+ "description": "A descriptive field that can be used to complete entries in variants.",
1789
+ "type": "string"
1790
+ },
1791
+ "scfType": {
1792
+ "$ref": "items-shared.json#/$defs/itemScfType"
1793
+ },
1794
+ "speed": {
1795
+ "$ref": "items-shared.json#/$defs/itemSpeed"
1796
+ },
1797
+ "stealth": {
1798
+ "type": "boolean"
1799
+ },
1800
+ "strength": {
1801
+ "type": [
1802
+ "string",
1803
+ "null"
1804
+ ]
1805
+ },
1806
+ "dexterityMax": {
1807
+ "$ref": "items-shared.json#/$defs/itemDexterityMax"
1808
+ },
1809
+ "firearm": {
1810
+ "type": "boolean"
1811
+ },
1812
+ "staff": {
1813
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
1814
+ "type": "boolean"
1815
+ },
1816
+ "tier": {
1817
+ "$ref": "items-shared.json#/$defs/itemTier"
1818
+ },
1819
+ "value": {
1820
+ "description": "In copper pieces.",
1821
+ "type": [
1822
+ "number",
1823
+ "null"
1824
+ ]
1825
+ },
1826
+ "valueMult": {
1827
+ "type": "number"
1828
+ },
1829
+ "weaponCategory": {
1830
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
1831
+ },
1832
+ "weight": {
1833
+ "type": "number"
1834
+ },
1835
+ "weightMult": {
1836
+ "type": "number"
1837
+ },
1838
+ "weightNote": {
1839
+ "type": "string"
1840
+ },
1841
+ "wondrous": {
1842
+ "type": "boolean"
1843
+ },
1844
+ "tattoo": {
1845
+ "type": "boolean"
1846
+ },
1847
+ "sentient": {
1848
+ "type": "boolean"
1849
+ },
1850
+ "poison": {
1851
+ "type": "boolean"
1852
+ },
1853
+ "poisonTypes": {
1854
+ "type": "array",
1855
+ "items": {
1856
+ "type": "string",
1857
+ "examples": [
1858
+ "contact",
1859
+ "ingested",
1860
+ "injury",
1861
+ "inhaled"
1862
+ ]
1863
+ }
1864
+ },
1865
+ "crew": {
1866
+ "type": "integer"
1867
+ },
1868
+ "crewMin": {
1869
+ "description": "For crews specified as an X-Y min-max.",
1870
+ "type": "integer"
1871
+ },
1872
+ "crewMax": {
1873
+ "description": "For crews specified as an X-Y min-max.",
1874
+ "type": "integer"
1875
+ },
1876
+ "capPassenger": {
1877
+ "type": "integer"
1878
+ },
1879
+ "capCargo": {
1880
+ "type": "number"
1881
+ },
1882
+ "vehSpeed": {
1883
+ "type": "number"
1884
+ },
1885
+ "vehAc": {
1886
+ "type": "integer"
1887
+ },
1888
+ "vehHp": {
1889
+ "type": "integer"
1890
+ },
1891
+ "vehDmgThresh": {
1892
+ "type": "integer"
1893
+ },
1894
+ "travelCost": {
1895
+ "description": "In copper pieces per mile per passenger.",
1896
+ "type": "integer"
1897
+ },
1898
+ "shippingCost": {
1899
+ "description": "In copper pieces per 100 lbs per mile.",
1900
+ "type": "integer"
1901
+ },
1902
+ "charges": {
1903
+ "type": [
1904
+ "string",
1905
+ "integer"
1120
1906
  ]
1121
1907
  },
1122
- {
1908
+ "recharge": {
1909
+ "$ref": "items-shared.json#/$defs/itemRecharge"
1910
+ },
1911
+ "rechargeAmount": {
1912
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1913
+ },
1914
+ "optionalfeatures": {
1915
+ "type": "array",
1916
+ "items": {
1917
+ "type": "string"
1918
+ }
1919
+ },
1920
+ "attachedSpells": {
1921
+ "type": "array",
1922
+ "minItems": 1,
1923
+ "uniqueItems": true,
1924
+ "items": {
1925
+ "type": "string"
1926
+ }
1927
+ },
1928
+ "ability": {
1929
+ "description": "Item ability score adjustments.",
1123
1930
  "type": "object",
1124
1931
  "properties": {
1125
- "name": {
1126
- "type": "string"
1127
- },
1128
- "alias": {
1129
- "$ref": "util.json#/$defs/alias"
1130
- },
1131
- "type": {
1132
- "$ref": "items-shared.json#/$defs/itemType"
1133
- },
1134
- "typeAlt": {
1135
- "$ref": "items-shared.json#/$defs/itemType"
1136
- },
1137
- "rarity": {
1138
- "$ref": "items-shared.json#/$defs/itemRarity"
1139
- },
1140
- "source": {
1141
- "$ref": "util.json#/$defs/source"
1142
- },
1143
- "page": {
1144
- "$ref": "util.json#/$defs/page"
1145
- },
1146
- "additionalSources": {
1147
- "$ref": "util.json#/$defs/additionalSources"
1148
- },
1149
- "reprintedAs": {
1150
- "$ref": "util.json#/$defs/reprintedAs"
1151
- },
1152
- "baseItem": {
1153
- "type": "string"
1154
- },
1155
- "ac": {
1156
- "type": "integer"
1157
- },
1158
- "age": {
1159
- "$ref": "items-shared.json#/$defs/itemAge"
1160
- },
1161
- "carryingCapacity": {
1162
- "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
1163
- },
1164
- "dmg1": {
1165
- "type": "string"
1166
- },
1167
- "dmg2": {
1168
- "type": "string",
1169
- "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
1170
- },
1171
- "dmgType": {
1172
- "$ref": "util.json#/$defs/dataDamageTags"
1173
- },
1174
- "entries": {
1175
- "type": "array",
1176
- "items": {
1177
- "$ref": "entry.json"
1178
- }
1179
- },
1180
- "additionalEntries": {
1181
- "type": "array",
1182
- "items": {
1183
- "$ref": "entry.json"
1184
- }
1185
- },
1186
- "property": {
1187
- "$ref": "items-shared.json#/$defs/itemProperty"
1188
- },
1189
- "range": {
1190
- "type": "string"
1191
- },
1192
- "reload": {
1193
- "type": [
1194
- "string",
1195
- "integer"
1196
- ]
1197
- },
1198
- "reqAttune": {
1199
- "type": [
1200
- "string",
1201
- "boolean"
1202
- ]
1203
- },
1204
- "reqAttuneAlt": {
1205
- "description": "Used for filtering.",
1206
- "type": [
1207
- "string",
1208
- "boolean"
1209
- ]
1210
- },
1211
- "curse": {
1212
- "type": "boolean"
1213
- },
1214
- "vulnerable": {
1215
- "$ref": "util.json#/$defs/damageVulnerabilityArray"
1216
- },
1217
- "resist": {
1218
- "$ref": "util.json#/$defs/damageResistArray"
1219
- },
1220
- "immune": {
1221
- "$ref": "util.json#/$defs/damageImmunityArray"
1222
- },
1223
- "conditionImmune": {
1224
- "$ref": "util.json#/$defs/conditionImmunityArray"
1225
- },
1226
- "detail1": {
1227
- "description": "A descriptive field that can be used to complete entries in variants.",
1228
- "type": "string"
1229
- },
1230
- "scfType": {
1231
- "$ref": "items-shared.json#/$defs/itemScfType"
1232
- },
1233
- "speed": {
1234
- "$ref": "items-shared.json#/$defs/itemSpeed"
1235
- },
1236
- "stealth": {
1237
- "type": "boolean"
1238
- },
1239
- "strength": {
1240
- "type": [
1241
- "string",
1242
- "null"
1243
- ]
1244
- },
1245
- "dexterityMax": {
1246
- "$ref": "items-shared.json#/$defs/itemDexterityMax"
1247
- },
1248
- "firearm": {
1249
- "type": "boolean"
1250
- },
1251
- "staff": {
1252
- "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
1253
- "type": "boolean"
1254
- },
1255
- "tier": {
1256
- "$ref": "items-shared.json#/$defs/itemTier"
1257
- },
1258
- "value": {
1259
- "description": "In copper pieces.",
1260
- "type": [
1261
- "number",
1262
- "null"
1263
- ]
1264
- },
1265
- "valueMult": {
1266
- "type": "number"
1267
- },
1268
- "weaponCategory": {
1269
- "$ref": "items-shared.json#/$defs/itemWeaponCategory"
1270
- },
1271
- "weight": {
1272
- "type": "number"
1273
- },
1274
- "weightMult": {
1275
- "type": "number"
1276
- },
1277
- "weightNote": {
1278
- "type": "string"
1279
- },
1280
- "wondrous": {
1281
- "type": "boolean"
1282
- },
1283
- "tattoo": {
1284
- "type": "boolean"
1285
- },
1286
- "sentient": {
1287
- "type": "boolean"
1288
- },
1289
- "poison": {
1290
- "type": "boolean"
1291
- },
1292
- "poisonTypes": {
1293
- "type": "array",
1294
- "items": {
1295
- "type": "string",
1296
- "examples": [
1297
- "contact",
1298
- "ingested",
1299
- "injury",
1300
- "inhaled"
1301
- ]
1302
- }
1303
- },
1304
- "crew": {
1305
- "type": "integer"
1306
- },
1307
- "crewMin": {
1308
- "description": "For crews specified as an X-Y min-max.",
1309
- "type": "integer"
1310
- },
1311
- "crewMax": {
1312
- "description": "For crews specified as an X-Y min-max.",
1313
- "type": "integer"
1314
- },
1315
- "capPassenger": {
1316
- "type": "integer"
1317
- },
1318
- "capCargo": {
1319
- "type": "number"
1320
- },
1321
- "vehSpeed": {
1322
- "type": "number"
1323
- },
1324
- "vehAc": {
1325
- "type": "integer"
1326
- },
1327
- "vehHp": {
1328
- "type": "integer"
1329
- },
1330
- "vehDmgThresh": {
1331
- "type": "integer"
1332
- },
1333
- "travelCost": {
1334
- "description": "In copper pieces per mile per passenger.",
1335
- "type": "integer"
1336
- },
1337
- "shippingCost": {
1338
- "description": "In copper pieces per 100 lbs per mile.",
1339
- "type": "integer"
1340
- },
1341
- "charges": {
1342
- "type": [
1343
- "string",
1344
- "integer"
1345
- ]
1346
- },
1347
- "recharge": {
1348
- "$ref": "items-shared.json#/$defs/itemRecharge"
1349
- },
1350
- "rechargeAmount": {
1351
- "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1352
- },
1353
- "optionalfeatures": {
1354
- "type": "array",
1355
- "items": {
1356
- "type": "string"
1357
- }
1358
- },
1359
- "attachedSpells": {
1932
+ "choose": {
1360
1933
  "type": "array",
1361
- "minItems": 1,
1362
- "uniqueItems": true,
1363
1934
  "items": {
1364
- "type": "string"
1935
+ "type": "object",
1936
+ "properties": {
1937
+ "from": {
1938
+ "type": "array",
1939
+ "items": {
1940
+ "enum": [
1941
+ "str",
1942
+ "dex",
1943
+ "con",
1944
+ "int",
1945
+ "wis",
1946
+ "cha"
1947
+ ]
1948
+ },
1949
+ "uniqueItems": true
1950
+ },
1951
+ "count": {
1952
+ "type": "integer"
1953
+ },
1954
+ "amount": {
1955
+ "type": "integer"
1956
+ }
1957
+ },
1958
+ "required": [
1959
+ "from"
1960
+ ],
1961
+ "additionalProperties": false
1365
1962
  }
1366
1963
  },
1367
- "ability": {
1368
- "description": "Item ability score adjustments.",
1964
+ "static": {
1369
1965
  "type": "object",
1370
1966
  "properties": {
1371
- "choose": {
1372
- "type": "array",
1373
- "items": {
1374
- "type": "object",
1375
- "properties": {
1376
- "from": {
1377
- "type": "array",
1378
- "items": {
1379
- "enum": [
1380
- "str",
1381
- "dex",
1382
- "con",
1383
- "int",
1384
- "wis",
1385
- "cha"
1386
- ]
1387
- },
1388
- "uniqueItems": true
1389
- },
1390
- "count": {
1391
- "type": "integer"
1392
- },
1393
- "amount": {
1394
- "type": "integer"
1395
- }
1396
- },
1397
- "required": [
1398
- "from"
1399
- ],
1400
- "additionalProperties": false
1401
- }
1402
- },
1403
- "static": {
1404
- "type": "object",
1405
- "properties": {
1406
- "str": {
1407
- "type": "integer"
1408
- },
1409
- "dex": {
1410
- "type": "integer"
1411
- },
1412
- "con": {
1413
- "type": "integer"
1414
- },
1415
- "int": {
1416
- "type": "integer"
1417
- },
1418
- "wis": {
1419
- "type": "integer"
1420
- },
1421
- "cha": {
1422
- "type": "integer"
1423
- }
1424
- },
1425
- "additionalProperties": false
1426
- },
1427
1967
  "str": {
1428
1968
  "type": "integer"
1429
1969
  },
@@ -1442,241 +1982,267 @@
1442
1982
  "cha": {
1443
1983
  "type": "integer"
1444
1984
  }
1445
- }
1446
- },
1447
- "focus": {
1448
- "description": "Item can be used as a spellcasting focus",
1449
- "oneOf": [
1450
- {
1451
- "type": "boolean"
1452
- },
1453
- {
1454
- "type": "array",
1455
- "items": {
1456
- "type": "string",
1457
- "examples": [
1458
- "Artificer",
1459
- "Bard",
1460
- "Cleric",
1461
- "Druid",
1462
- "Paladin",
1463
- "Ranger",
1464
- "Sorcerer",
1465
- "Warlock",
1466
- "Wizard"
1467
- ]
1468
- }
1469
- }
1470
- ]
1471
- },
1472
- "lootTables": {
1473
- "type": "array",
1474
- "items": {
1475
- "type": "string"
1476
- }
1477
- },
1478
- "critThreshold": {
1479
- "type": "integer"
1480
- },
1481
- "bonusAc": {
1482
- "type": "string"
1483
- },
1484
- "bonusWeapon": {
1485
- "type": "string"
1486
- },
1487
- "bonusWeaponAttack": {
1488
- "type": "string"
1489
- },
1490
- "bonusWeaponDamage": {
1491
- "type": "string"
1492
- },
1493
- "bonusWeaponCritDamage": {
1494
- "type": "string"
1495
- },
1496
- "bonusSpellAttack": {
1497
- "type": "string"
1498
- },
1499
- "bonusSpellDamage": {
1500
- "type": "string"
1501
- },
1502
- "bonusSpellSaveDc": {
1503
- "type": "string"
1504
- },
1505
- "bonusSavingThrow": {
1506
- "type": "string"
1507
- },
1508
- "bonusAbilityCheck": {
1509
- "type": "string"
1510
- },
1511
- "bonusProficiencyBonus": {
1512
- "type": "string"
1513
- },
1514
- "bonusSavingThrowConcentration": {
1515
- "type": "string"
1516
- },
1517
- "modifySpeed": {
1518
- "$ref": "items-shared.json#/$defs/itemModifySpeed"
1519
- },
1520
- "otherSources": {
1521
- "$ref": "util.json#/$defs/otherSources"
1522
- },
1523
- "srd": {
1524
- "$ref": "util.json#/$defs/srd"
1525
- },
1526
- "basicRules": {
1527
- "$ref": "util.json#/$defs/basicRules"
1528
- },
1529
- "legacy": {
1530
- "$ref": "util.json#/$defs/legacy"
1531
- },
1532
- "atomicPackContents": {
1533
- "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
1534
- "type": "boolean"
1535
- },
1536
- "containerCapacity": {
1537
- "type": "object",
1538
- "properties": {
1539
- "weight": {
1540
- "type": "array",
1541
- "items": {
1542
- "type": "integer"
1543
- }
1544
- },
1545
- "item": {
1546
- "type": "array",
1547
- "items": {
1548
- "type": "object",
1549
- "patternProperties": {
1550
- ".*": {
1551
- "type": "integer"
1552
- }
1553
- },
1554
- "additionalProperties": false
1555
- }
1556
- },
1557
- "weightless": {
1558
- "description": "If the container renders its contents weightless.",
1559
- "type": "boolean"
1560
- }
1561
1985
  },
1562
1986
  "additionalProperties": false
1563
1987
  },
1564
- "ammoType": {
1565
- "$ref": "items-shared.json#/$defs/itemAmmoType"
1988
+ "str": {
1989
+ "type": "integer"
1566
1990
  },
1567
- "packContents": {
1568
- "$ref": "items-shared.json#/$defs/packContents"
1991
+ "dex": {
1992
+ "type": "integer"
1569
1993
  },
1570
- "grantsProficiency": {
1571
- "type": "boolean"
1994
+ "con": {
1995
+ "type": "integer"
1572
1996
  },
1573
- "grantsLanguage": {
1574
- "type": "boolean"
1997
+ "int": {
1998
+ "type": "integer"
1575
1999
  },
1576
- "spellScrollLevel": {
2000
+ "wis": {
1577
2001
  "type": "integer"
1578
2002
  },
1579
- "seeAlsoDeck": {
2003
+ "cha": {
2004
+ "type": "integer"
2005
+ }
2006
+ }
2007
+ },
2008
+ "focus": {
2009
+ "description": "Item can be used as a spellcasting focus",
2010
+ "oneOf": [
2011
+ {
2012
+ "type": "boolean"
2013
+ },
2014
+ {
1580
2015
  "type": "array",
1581
2016
  "items": {
1582
2017
  "type": "string",
1583
- "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
2018
+ "examples": [
2019
+ "Artificer",
2020
+ "Bard",
2021
+ "Cleric",
2022
+ "Druid",
2023
+ "Paladin",
2024
+ "Ranger",
2025
+ "Sorcerer",
2026
+ "Warlock",
2027
+ "Wizard"
2028
+ ]
1584
2029
  }
1585
- },
1586
- "seeAlsoVehicle": {
2030
+ }
2031
+ ]
2032
+ },
2033
+ "lootTables": {
2034
+ "type": "array",
2035
+ "items": {
2036
+ "type": "string"
2037
+ }
2038
+ },
2039
+ "critThreshold": {
2040
+ "type": "integer"
2041
+ },
2042
+ "bonusAc": {
2043
+ "type": "string"
2044
+ },
2045
+ "bonusWeapon": {
2046
+ "type": "string"
2047
+ },
2048
+ "bonusWeaponAttack": {
2049
+ "type": "string"
2050
+ },
2051
+ "bonusWeaponDamage": {
2052
+ "type": "string"
2053
+ },
2054
+ "bonusWeaponCritDamage": {
2055
+ "type": "string"
2056
+ },
2057
+ "bonusSpellAttack": {
2058
+ "type": "string"
2059
+ },
2060
+ "bonusSpellDamage": {
2061
+ "type": "string"
2062
+ },
2063
+ "bonusSpellSaveDc": {
2064
+ "type": "string"
2065
+ },
2066
+ "bonusSavingThrow": {
2067
+ "type": "string"
2068
+ },
2069
+ "bonusAbilityCheck": {
2070
+ "type": "string"
2071
+ },
2072
+ "bonusProficiencyBonus": {
2073
+ "type": "string"
2074
+ },
2075
+ "bonusSavingThrowConcentration": {
2076
+ "type": "string"
2077
+ },
2078
+ "modifySpeed": {
2079
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
2080
+ },
2081
+ "otherSources": {
2082
+ "$ref": "util.json#/$defs/otherSources"
2083
+ },
2084
+ "srd": {
2085
+ "$ref": "util.json#/$defs/srd"
2086
+ },
2087
+ "basicRules": {
2088
+ "$ref": "util.json#/$defs/basicRules"
2089
+ },
2090
+ "legacy": {
2091
+ "$ref": "util.json#/$defs/legacy"
2092
+ },
2093
+ "atomicPackContents": {
2094
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
2095
+ "type": "boolean"
2096
+ },
2097
+ "containerCapacity": {
2098
+ "type": "object",
2099
+ "properties": {
2100
+ "weight": {
1587
2101
  "type": "array",
1588
2102
  "items": {
1589
- "type": "string",
1590
- "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
2103
+ "type": "integer"
1591
2104
  }
1592
2105
  },
1593
- "reqAttuneTags": {
1594
- "$ref": "util.json#/$defs/reqAttuneTags"
1595
- },
1596
- "reqAttuneAltTags": {
1597
- "$ref": "util.json#/$defs/reqAttuneTags"
1598
- },
1599
- "miscTags": {
2106
+ "item": {
1600
2107
  "type": "array",
1601
2108
  "items": {
1602
- "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
1603
- "enum": [
1604
- "CF/W",
1605
- "TT"
1606
- ]
2109
+ "type": "object",
2110
+ "patternProperties": {
2111
+ ".*": {
2112
+ "type": "integer"
2113
+ }
2114
+ },
2115
+ "additionalProperties": false
1607
2116
  }
1608
2117
  },
1609
- "mastery": {
1610
- "$ref": "items-shared.json#/$defs/itemMastery"
1611
- },
1612
- "reach": {
1613
- "$ref": "items-shared.json#/$defs/itemReach"
1614
- },
1615
- "hasFluff": {
1616
- "type": "boolean"
1617
- },
1618
- "hasFluffImages": {
2118
+ "weightless": {
2119
+ "description": "If the container renders its contents weightless.",
1619
2120
  "type": "boolean"
1620
- },
1621
- "hasRefs": {
1622
- "type": "boolean",
1623
- "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
1624
- },
1625
- "customProperties": {
1626
- "$ref": "items-shared.json#/$defs/customProperties"
1627
- },
1628
- "acSpecial": {
1629
- "$ref": "items-shared.json#/$defs/itemAcSpecial"
1630
- },
1631
- "currencyConversion": {
1632
- "description": "ID of a value conversion table. Homebrew only.",
1633
- "type": "string"
1634
- },
1635
- "alCertificateId": {
1636
- "description": "Adventurers League item certificate ID; for use in homebrew.",
1637
- "type": "string"
1638
- },
1639
- "foundryType": {
1640
- "description": "Homebrew only: used to manually specify the exact Foundry item type an item should be imported as. \n\"CONFIG.Item.typeLabels\" correct as of Foundry v0.8.9",
1641
- "type": "string",
1642
- "enum": [
1643
- "weapon",
1644
- "equipment",
1645
- "consumable",
1646
- "tool",
1647
- "loot",
1648
- "class",
1649
- "spell",
1650
- "feat",
1651
- "backpack"
1652
- ]
1653
- },
1654
- "foundrySystem": {
1655
- "$ref": "util-foundry.json#/$defs/foundrySystemObject"
1656
- },
1657
- "foundryFlags": {
1658
- "$ref": "util-foundry.json#/$defs/foundryFlagsObject"
1659
- },
1660
- "foundryEffects": {
1661
- "$ref": "util-foundry.json#/$defs/foundryEffectsArray"
1662
- },
1663
- "foundryImg": {
1664
- "$ref": "util-foundry.json#/$defs/foundryImg"
1665
- },
1666
- "fluff": {
1667
- "$ref": "items-shared.json#/$defs/fluff"
1668
- },
1669
- "_copy": {
1670
- "$ref": "util.json#/$defs/copyBlock_copy_generic"
1671
2121
  }
1672
2122
  },
1673
- "additionalProperties": false,
1674
- "required": [
1675
- "_copy"
2123
+ "additionalProperties": false
2124
+ },
2125
+ "ammoType": {
2126
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
2127
+ },
2128
+ "packContents": {
2129
+ "$ref": "items-shared.json#/$defs/packContents"
2130
+ },
2131
+ "grantsProficiency": {
2132
+ "type": "boolean"
2133
+ },
2134
+ "grantsLanguage": {
2135
+ "type": "boolean"
2136
+ },
2137
+ "spellScrollLevel": {
2138
+ "type": "integer"
2139
+ },
2140
+ "seeAlsoDeck": {
2141
+ "type": "array",
2142
+ "items": {
2143
+ "type": "string",
2144
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
2145
+ }
2146
+ },
2147
+ "seeAlsoVehicle": {
2148
+ "type": "array",
2149
+ "items": {
2150
+ "type": "string",
2151
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
2152
+ }
2153
+ },
2154
+ "reqAttuneTags": {
2155
+ "$ref": "util.json#/$defs/reqAttuneTags"
2156
+ },
2157
+ "reqAttuneAltTags": {
2158
+ "$ref": "util.json#/$defs/reqAttuneTags"
2159
+ },
2160
+ "miscTags": {
2161
+ "type": "array",
2162
+ "items": {
2163
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
2164
+ "enum": [
2165
+ "CF/W",
2166
+ "TT"
2167
+ ]
2168
+ }
2169
+ },
2170
+ "mastery": {
2171
+ "$ref": "items-shared.json#/$defs/itemMastery"
2172
+ },
2173
+ "reach": {
2174
+ "$ref": "items-shared.json#/$defs/itemReach"
2175
+ },
2176
+ "hasFluff": {
2177
+ "type": "boolean"
2178
+ },
2179
+ "hasFluffImages": {
2180
+ "type": "boolean"
2181
+ },
2182
+ "hasRefs": {
2183
+ "type": "boolean",
2184
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
2185
+ },
2186
+ "customProperties": {
2187
+ "$ref": "items-shared.json#/$defs/customProperties"
2188
+ },
2189
+ "acSpecial": {
2190
+ "$ref": "items-shared.json#/$defs/itemAcSpecial"
2191
+ },
2192
+ "currencyConversion": {
2193
+ "description": "ID of a value conversion table. Homebrew only.",
2194
+ "type": "string"
2195
+ },
2196
+ "alCertificateId": {
2197
+ "description": "Adventurers League item certificate ID; for use in homebrew.",
2198
+ "type": "string"
2199
+ },
2200
+ "foundryType": {
2201
+ "description": "Homebrew only: used to manually specify the exact Foundry item type an item should be imported as. \n\"CONFIG.Item.typeLabels\" correct as of Foundry v0.8.9",
2202
+ "type": "string",
2203
+ "enum": [
2204
+ "weapon",
2205
+ "equipment",
2206
+ "consumable",
2207
+ "tool",
2208
+ "loot",
2209
+ "class",
2210
+ "spell",
2211
+ "feat",
2212
+ "backpack"
1676
2213
  ]
2214
+ },
2215
+ "foundrySystem": {
2216
+ "$ref": "util-foundry.json#/$defs/foundrySystemObject"
2217
+ },
2218
+ "foundryFlags": {
2219
+ "$ref": "util-foundry.json#/$defs/foundryFlagsObject"
2220
+ },
2221
+ "foundryEffects": {
2222
+ "$ref": "util-foundry.json#/$defs/foundryEffectsArray"
2223
+ },
2224
+ "foundryImg": {
2225
+ "$ref": "util-foundry.json#/$defs/foundryImg"
2226
+ },
2227
+ "fluff": {
2228
+ "$ref": "items-shared.json#/$defs/fluff"
1677
2229
  }
2230
+ },
2231
+ "additionalProperties": false,
2232
+ "required": [
2233
+ "name",
2234
+ "rarity",
2235
+ "source"
1678
2236
  ]
1679
2237
  },
2238
+ "subEntityItemArray": {
2239
+ "type": "array",
2240
+ "items": {
2241
+ "$ref": "#/$defs/subEntityItem"
2242
+ },
2243
+ "uniqueItems": true,
2244
+ "minItems": 1
2245
+ },
1680
2246
  "itemGroup": {
1681
2247
  "anyOf": [
1682
2248
  {