5etools-utils 0.9.63 → 0.9.65

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.6",
4
+ "version": "1.14.7",
5
5
  "type": "object",
6
6
  "$defs": {
7
7
  "itemData": {
@@ -250,15 +250,6 @@
250
250
  "type": "string"
251
251
  }
252
252
  },
253
- "items": {
254
- "description": "This is required for itemGroup entries.",
255
- "type": "array",
256
- "minItems": 1,
257
- "uniqueItems": true,
258
- "items": {
259
- "type": "string"
260
- }
261
- },
262
253
  "ability": {
263
254
  "description": "Item ability score adjustments.",
264
255
  "type": "object",
@@ -558,6 +549,14 @@
558
549
  },
559
550
  "additionalProperties": false
560
551
  },
552
+ "_itemGroupItems": {
553
+ "type": "array",
554
+ "minItems": 1,
555
+ "uniqueItems": true,
556
+ "items": {
557
+ "type": "string"
558
+ }
559
+ },
561
560
  "item": {
562
561
  "anyOf": [
563
562
  {
@@ -806,15 +805,6 @@
806
805
  "type": "string"
807
806
  }
808
807
  },
809
- "items": {
810
- "description": "This is required for itemGroup entries.",
811
- "type": "array",
812
- "minItems": 1,
813
- "uniqueItems": true,
814
- "items": {
815
- "type": "string"
816
- }
817
- },
818
808
  "ability": {
819
809
  "description": "Item ability score adjustments.",
820
810
  "type": "object",
@@ -1365,15 +1355,6 @@
1365
1355
  "type": "string"
1366
1356
  }
1367
1357
  },
1368
- "items": {
1369
- "description": "This is required for itemGroup entries.",
1370
- "type": "array",
1371
- "minItems": 1,
1372
- "uniqueItems": true,
1373
- "items": {
1374
- "type": "string"
1375
- }
1376
- },
1377
1358
  "ability": {
1378
1359
  "description": "Item ability score adjustments.",
1379
1360
  "type": "object",
@@ -1680,35 +1661,1134 @@
1680
1661
  ]
1681
1662
  }
1682
1663
  ]
1683
- }
1684
- },
1685
- "properties": {
1686
- "item": {
1687
- "type": "array",
1688
- "items": {
1689
- "$ref": "#/$defs/item"
1690
- },
1691
- "uniqueItems": true,
1692
- "minItems": 1
1693
1664
  },
1694
1665
  "itemGroup": {
1695
- "description": "Used to create fake item entries for groups of related items, often referred to as a single item (e.g. arcane foci)",
1696
- "type": "array",
1697
- "items": {
1698
- "type": "object",
1699
- "$ref": "#/$defs/item",
1700
- "oneOf": [
1701
- {
1702
- "required": [
1703
- "items"
1704
- ]
1705
- },
1706
- {
1707
- "required": [
1708
- "_copy"
1709
- ]
1710
- }
1711
- ]
1666
+ "anyOf": [
1667
+ {
1668
+ "type": "object",
1669
+ "properties": {
1670
+ "name": {
1671
+ "type": "string"
1672
+ },
1673
+ "type": {
1674
+ "$ref": "items-shared.json#/$defs/itemType"
1675
+ },
1676
+ "typeAlt": {
1677
+ "$ref": "items-shared.json#/$defs/itemType"
1678
+ },
1679
+ "rarity": {
1680
+ "$ref": "items-shared.json#/$defs/itemRarity"
1681
+ },
1682
+ "source": {
1683
+ "$ref": "util.json#/$defs/source"
1684
+ },
1685
+ "page": {
1686
+ "$ref": "util.json#/$defs/page"
1687
+ },
1688
+ "additionalSources": {
1689
+ "$ref": "util.json#/$defs/additionalSources"
1690
+ },
1691
+ "reprintedAs": {
1692
+ "$ref": "util.json#/$defs/reprintedAs"
1693
+ },
1694
+ "baseItem": {
1695
+ "type": "string"
1696
+ },
1697
+ "ac": {
1698
+ "type": "integer"
1699
+ },
1700
+ "age": {
1701
+ "$ref": "items-shared.json#/$defs/itemAge"
1702
+ },
1703
+ "carryingCapacity": {
1704
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
1705
+ },
1706
+ "dmg1": {
1707
+ "type": "string"
1708
+ },
1709
+ "dmg2": {
1710
+ "type": "string",
1711
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
1712
+ },
1713
+ "dmgType": {
1714
+ "$ref": "util.json#/$defs/dataDamageTags"
1715
+ },
1716
+ "entries": {
1717
+ "type": "array",
1718
+ "items": {
1719
+ "$ref": "entry.json"
1720
+ }
1721
+ },
1722
+ "additionalEntries": {
1723
+ "type": "array",
1724
+ "items": {
1725
+ "$ref": "entry.json"
1726
+ }
1727
+ },
1728
+ "property": {
1729
+ "$ref": "items-shared.json#/$defs/itemProperty"
1730
+ },
1731
+ "range": {
1732
+ "type": "string"
1733
+ },
1734
+ "reload": {
1735
+ "type": [
1736
+ "string",
1737
+ "integer"
1738
+ ]
1739
+ },
1740
+ "reqAttune": {
1741
+ "type": [
1742
+ "string",
1743
+ "boolean"
1744
+ ]
1745
+ },
1746
+ "reqAttuneAlt": {
1747
+ "description": "Used for filtering.",
1748
+ "type": [
1749
+ "string",
1750
+ "boolean"
1751
+ ]
1752
+ },
1753
+ "curse": {
1754
+ "type": "boolean"
1755
+ },
1756
+ "vulnerable": {
1757
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
1758
+ },
1759
+ "resist": {
1760
+ "$ref": "util.json#/$defs/damageResistArray"
1761
+ },
1762
+ "immune": {
1763
+ "$ref": "util.json#/$defs/damageImmunityArray"
1764
+ },
1765
+ "conditionImmune": {
1766
+ "$ref": "util.json#/$defs/conditionImmunityArray"
1767
+ },
1768
+ "detail1": {
1769
+ "description": "A descriptive field that can be used to complete entries in variants.",
1770
+ "type": "string"
1771
+ },
1772
+ "scfType": {
1773
+ "$ref": "items-shared.json#/$defs/itemScfType"
1774
+ },
1775
+ "speed": {
1776
+ "$ref": "items-shared.json#/$defs/itemSpeed"
1777
+ },
1778
+ "stealth": {
1779
+ "type": "boolean"
1780
+ },
1781
+ "strength": {
1782
+ "type": [
1783
+ "string",
1784
+ "null"
1785
+ ]
1786
+ },
1787
+ "dexterityMax": {
1788
+ "description": "Maximum dexterity modifier for medium armor.",
1789
+ "type": [
1790
+ "integer",
1791
+ "null"
1792
+ ]
1793
+ },
1794
+ "firearm": {
1795
+ "type": "boolean"
1796
+ },
1797
+ "staff": {
1798
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
1799
+ "type": "boolean"
1800
+ },
1801
+ "tier": {
1802
+ "$ref": "items-shared.json#/$defs/itemTier"
1803
+ },
1804
+ "value": {
1805
+ "description": "In copper pieces.",
1806
+ "type": [
1807
+ "number",
1808
+ "null"
1809
+ ]
1810
+ },
1811
+ "valueMult": {
1812
+ "type": "number"
1813
+ },
1814
+ "weaponCategory": {
1815
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
1816
+ },
1817
+ "weight": {
1818
+ "type": "number"
1819
+ },
1820
+ "weightMult": {
1821
+ "type": "number"
1822
+ },
1823
+ "weightNote": {
1824
+ "type": "string"
1825
+ },
1826
+ "wondrous": {
1827
+ "type": "boolean"
1828
+ },
1829
+ "tattoo": {
1830
+ "type": "boolean"
1831
+ },
1832
+ "sentient": {
1833
+ "type": "boolean"
1834
+ },
1835
+ "poison": {
1836
+ "type": "boolean"
1837
+ },
1838
+ "poisonTypes": {
1839
+ "type": "array",
1840
+ "items": {
1841
+ "type": "string",
1842
+ "enum": [
1843
+ "contact",
1844
+ "ingested",
1845
+ "injury",
1846
+ "inhaled"
1847
+ ]
1848
+ }
1849
+ },
1850
+ "crew": {
1851
+ "type": "integer"
1852
+ },
1853
+ "crewMin": {
1854
+ "description": "For crews specified as an X-Y min-max.",
1855
+ "type": "integer"
1856
+ },
1857
+ "crewMax": {
1858
+ "description": "For crews specified as an X-Y min-max.",
1859
+ "type": "integer"
1860
+ },
1861
+ "capPassenger": {
1862
+ "type": "integer"
1863
+ },
1864
+ "capCargo": {
1865
+ "type": "number"
1866
+ },
1867
+ "vehSpeed": {
1868
+ "type": "number"
1869
+ },
1870
+ "vehAc": {
1871
+ "type": "integer"
1872
+ },
1873
+ "vehHp": {
1874
+ "type": "integer"
1875
+ },
1876
+ "vehDmgThresh": {
1877
+ "type": "integer"
1878
+ },
1879
+ "travelCost": {
1880
+ "description": "In copper pieces per mile per passenger.",
1881
+ "type": "integer"
1882
+ },
1883
+ "shippingCost": {
1884
+ "description": "In copper pieces per 100 lbs per mile.",
1885
+ "type": "integer"
1886
+ },
1887
+ "charges": {
1888
+ "type": [
1889
+ "string",
1890
+ "integer"
1891
+ ]
1892
+ },
1893
+ "recharge": {
1894
+ "$ref": "items-shared.json#/$defs/itemRecharge"
1895
+ },
1896
+ "rechargeAmount": {
1897
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
1898
+ },
1899
+ "optionalfeatures": {
1900
+ "type": "array",
1901
+ "items": {
1902
+ "type": "string"
1903
+ }
1904
+ },
1905
+ "attachedSpells": {
1906
+ "type": "array",
1907
+ "minItems": 1,
1908
+ "uniqueItems": true,
1909
+ "items": {
1910
+ "type": "string"
1911
+ }
1912
+ },
1913
+ "ability": {
1914
+ "description": "Item ability score adjustments.",
1915
+ "type": "object",
1916
+ "properties": {
1917
+ "choose": {
1918
+ "type": "array",
1919
+ "items": {
1920
+ "type": "object",
1921
+ "properties": {
1922
+ "from": {
1923
+ "type": "array",
1924
+ "items": {
1925
+ "enum": [
1926
+ "str",
1927
+ "dex",
1928
+ "con",
1929
+ "int",
1930
+ "wis",
1931
+ "cha"
1932
+ ]
1933
+ },
1934
+ "uniqueItems": true
1935
+ },
1936
+ "count": {
1937
+ "type": "integer"
1938
+ },
1939
+ "amount": {
1940
+ "type": "integer"
1941
+ }
1942
+ },
1943
+ "required": [
1944
+ "from"
1945
+ ],
1946
+ "additionalProperties": false
1947
+ }
1948
+ },
1949
+ "static": {
1950
+ "type": "object",
1951
+ "properties": {
1952
+ "str": {
1953
+ "type": "integer"
1954
+ },
1955
+ "dex": {
1956
+ "type": "integer"
1957
+ },
1958
+ "con": {
1959
+ "type": "integer"
1960
+ },
1961
+ "int": {
1962
+ "type": "integer"
1963
+ },
1964
+ "wis": {
1965
+ "type": "integer"
1966
+ },
1967
+ "cha": {
1968
+ "type": "integer"
1969
+ }
1970
+ },
1971
+ "additionalProperties": false
1972
+ },
1973
+ "str": {
1974
+ "type": "integer"
1975
+ },
1976
+ "dex": {
1977
+ "type": "integer"
1978
+ },
1979
+ "con": {
1980
+ "type": "integer"
1981
+ },
1982
+ "int": {
1983
+ "type": "integer"
1984
+ },
1985
+ "wis": {
1986
+ "type": "integer"
1987
+ },
1988
+ "cha": {
1989
+ "type": "integer"
1990
+ }
1991
+ }
1992
+ },
1993
+ "focus": {
1994
+ "description": "Item can be used as a spellcasting focus",
1995
+ "oneOf": [
1996
+ {
1997
+ "type": "boolean"
1998
+ },
1999
+ {
2000
+ "type": "array",
2001
+ "items": {
2002
+ "type": "string",
2003
+ "enum": [
2004
+ "Artificer",
2005
+ "Bard",
2006
+ "Cleric",
2007
+ "Druid",
2008
+ "Paladin",
2009
+ "Ranger",
2010
+ "Sorcerer",
2011
+ "Warlock",
2012
+ "Wizard"
2013
+ ]
2014
+ }
2015
+ }
2016
+ ]
2017
+ },
2018
+ "lootTables": {
2019
+ "type": "array",
2020
+ "items": {
2021
+ "type": "string"
2022
+ }
2023
+ },
2024
+ "critThreshold": {
2025
+ "type": "integer"
2026
+ },
2027
+ "bonusAc": {
2028
+ "type": "string"
2029
+ },
2030
+ "bonusWeapon": {
2031
+ "type": "string"
2032
+ },
2033
+ "bonusWeaponAttack": {
2034
+ "type": "string"
2035
+ },
2036
+ "bonusWeaponDamage": {
2037
+ "type": "string"
2038
+ },
2039
+ "bonusWeaponCritDamage": {
2040
+ "type": "string"
2041
+ },
2042
+ "bonusSpellAttack": {
2043
+ "type": "string"
2044
+ },
2045
+ "bonusSpellDamage": {
2046
+ "type": "string"
2047
+ },
2048
+ "bonusSpellSaveDc": {
2049
+ "type": "string"
2050
+ },
2051
+ "bonusSavingThrow": {
2052
+ "type": "string"
2053
+ },
2054
+ "bonusAbilityCheck": {
2055
+ "type": "string"
2056
+ },
2057
+ "bonusProficiencyBonus": {
2058
+ "type": "string"
2059
+ },
2060
+ "modifySpeed": {
2061
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
2062
+ },
2063
+ "otherSources": {
2064
+ "$ref": "util.json#/$defs/otherSources"
2065
+ },
2066
+ "srd": {
2067
+ "$ref": "util.json#/$defs/srd"
2068
+ },
2069
+ "basicRules": {
2070
+ "$ref": "util.json#/$defs/basicRules"
2071
+ },
2072
+ "legacy": {
2073
+ "$ref": "util.json#/$defs/legacy"
2074
+ },
2075
+ "packContents": {
2076
+ "type": "array",
2077
+ "items": {
2078
+ "oneOf": [
2079
+ {
2080
+ "type": "string"
2081
+ },
2082
+ {
2083
+ "type": "object",
2084
+ "properties": {
2085
+ "special": {
2086
+ "type": "string"
2087
+ },
2088
+ "quantity": {
2089
+ "type": "integer"
2090
+ }
2091
+ },
2092
+ "additionalProperties": false,
2093
+ "required": [
2094
+ "special"
2095
+ ]
2096
+ },
2097
+ {
2098
+ "type": "object",
2099
+ "properties": {
2100
+ "item": {
2101
+ "type": "string"
2102
+ },
2103
+ "quantity": {
2104
+ "type": "integer"
2105
+ }
2106
+ },
2107
+ "additionalProperties": false,
2108
+ "required": [
2109
+ "item",
2110
+ "quantity"
2111
+ ]
2112
+ }
2113
+ ]
2114
+ }
2115
+ },
2116
+ "atomicPackContents": {
2117
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
2118
+ "type": "boolean"
2119
+ },
2120
+ "containerCapacity": {
2121
+ "type": "object",
2122
+ "properties": {
2123
+ "weight": {
2124
+ "type": "array",
2125
+ "items": {
2126
+ "type": "integer"
2127
+ }
2128
+ },
2129
+ "item": {
2130
+ "type": "array",
2131
+ "items": {
2132
+ "type": "object",
2133
+ "patternProperties": {
2134
+ ".*": {
2135
+ "type": "integer"
2136
+ }
2137
+ },
2138
+ "additionalProperties": false
2139
+ }
2140
+ },
2141
+ "weightless": {
2142
+ "description": "If the container renders its contents weightless.",
2143
+ "type": "boolean"
2144
+ }
2145
+ },
2146
+ "additionalProperties": false
2147
+ },
2148
+ "ammoType": {
2149
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
2150
+ },
2151
+ "grantsProficiency": {
2152
+ "type": "boolean"
2153
+ },
2154
+ "grantsLanguage": {
2155
+ "type": "boolean"
2156
+ },
2157
+ "spellScrollLevel": {
2158
+ "type": "integer"
2159
+ },
2160
+ "seeAlsoDeck": {
2161
+ "type": "array",
2162
+ "items": {
2163
+ "type": "string",
2164
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
2165
+ }
2166
+ },
2167
+ "seeAlsoVehicle": {
2168
+ "type": "array",
2169
+ "items": {
2170
+ "type": "string",
2171
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
2172
+ }
2173
+ },
2174
+ "reqAttuneTags": {
2175
+ "$ref": "util.json#/$defs/reqAttuneTags"
2176
+ },
2177
+ "reqAttuneAltTags": {
2178
+ "$ref": "util.json#/$defs/reqAttuneTags"
2179
+ },
2180
+ "miscTags": {
2181
+ "type": "array",
2182
+ "items": {
2183
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
2184
+ "enum": [
2185
+ "CF/W",
2186
+ "TT"
2187
+ ]
2188
+ }
2189
+ },
2190
+ "mastery": {
2191
+ "$ref": "items-shared.json#/$defs/itemMastery"
2192
+ },
2193
+ "reach": {
2194
+ "$ref": "items-shared.json#/$defs/itemReach"
2195
+ },
2196
+ "hasFluff": {
2197
+ "type": "boolean"
2198
+ },
2199
+ "hasFluffImages": {
2200
+ "type": "boolean"
2201
+ },
2202
+ "hasRefs": {
2203
+ "type": "boolean",
2204
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
2205
+ },
2206
+ "customProperties": {
2207
+ "$ref": "items-shared.json#/$defs/customProperties"
2208
+ },
2209
+ "items": {
2210
+ "$ref": "#/$defs/_itemGroupItems"
2211
+ }
2212
+ },
2213
+ "additionalProperties": false,
2214
+ "required": [
2215
+ "name",
2216
+ "rarity",
2217
+ "source",
2218
+ "items"
2219
+ ]
2220
+ },
2221
+ {
2222
+ "type": "object",
2223
+ "properties": {
2224
+ "name": {
2225
+ "type": "string"
2226
+ },
2227
+ "type": {
2228
+ "$ref": "items-shared.json#/$defs/itemType"
2229
+ },
2230
+ "typeAlt": {
2231
+ "$ref": "items-shared.json#/$defs/itemType"
2232
+ },
2233
+ "rarity": {
2234
+ "$ref": "items-shared.json#/$defs/itemRarity"
2235
+ },
2236
+ "source": {
2237
+ "$ref": "util.json#/$defs/source"
2238
+ },
2239
+ "page": {
2240
+ "$ref": "util.json#/$defs/page"
2241
+ },
2242
+ "additionalSources": {
2243
+ "$ref": "util.json#/$defs/additionalSources"
2244
+ },
2245
+ "reprintedAs": {
2246
+ "$ref": "util.json#/$defs/reprintedAs"
2247
+ },
2248
+ "baseItem": {
2249
+ "type": "string"
2250
+ },
2251
+ "ac": {
2252
+ "type": "integer"
2253
+ },
2254
+ "age": {
2255
+ "$ref": "items-shared.json#/$defs/itemAge"
2256
+ },
2257
+ "carryingCapacity": {
2258
+ "$ref": "items-shared.json#/$defs/itemCarryingCapacity"
2259
+ },
2260
+ "dmg1": {
2261
+ "type": "string"
2262
+ },
2263
+ "dmg2": {
2264
+ "type": "string",
2265
+ "description": "The versatile or alternative damage dice of the weapon, e.g. \"1d10\""
2266
+ },
2267
+ "dmgType": {
2268
+ "$ref": "util.json#/$defs/dataDamageTags"
2269
+ },
2270
+ "entries": {
2271
+ "type": "array",
2272
+ "items": {
2273
+ "$ref": "entry.json"
2274
+ }
2275
+ },
2276
+ "additionalEntries": {
2277
+ "type": "array",
2278
+ "items": {
2279
+ "$ref": "entry.json"
2280
+ }
2281
+ },
2282
+ "property": {
2283
+ "$ref": "items-shared.json#/$defs/itemProperty"
2284
+ },
2285
+ "range": {
2286
+ "type": "string"
2287
+ },
2288
+ "reload": {
2289
+ "type": [
2290
+ "string",
2291
+ "integer"
2292
+ ]
2293
+ },
2294
+ "reqAttune": {
2295
+ "type": [
2296
+ "string",
2297
+ "boolean"
2298
+ ]
2299
+ },
2300
+ "reqAttuneAlt": {
2301
+ "description": "Used for filtering.",
2302
+ "type": [
2303
+ "string",
2304
+ "boolean"
2305
+ ]
2306
+ },
2307
+ "curse": {
2308
+ "type": "boolean"
2309
+ },
2310
+ "vulnerable": {
2311
+ "$ref": "util.json#/$defs/damageVulnerabilityArray"
2312
+ },
2313
+ "resist": {
2314
+ "$ref": "util.json#/$defs/damageResistArray"
2315
+ },
2316
+ "immune": {
2317
+ "$ref": "util.json#/$defs/damageImmunityArray"
2318
+ },
2319
+ "conditionImmune": {
2320
+ "$ref": "util.json#/$defs/conditionImmunityArray"
2321
+ },
2322
+ "detail1": {
2323
+ "description": "A descriptive field that can be used to complete entries in variants.",
2324
+ "type": "string"
2325
+ },
2326
+ "scfType": {
2327
+ "$ref": "items-shared.json#/$defs/itemScfType"
2328
+ },
2329
+ "speed": {
2330
+ "$ref": "items-shared.json#/$defs/itemSpeed"
2331
+ },
2332
+ "stealth": {
2333
+ "type": "boolean"
2334
+ },
2335
+ "strength": {
2336
+ "type": [
2337
+ "string",
2338
+ "null"
2339
+ ]
2340
+ },
2341
+ "dexterityMax": {
2342
+ "description": "Maximum dexterity modifier for medium armor.",
2343
+ "type": [
2344
+ "integer",
2345
+ "null"
2346
+ ]
2347
+ },
2348
+ "firearm": {
2349
+ "type": "boolean"
2350
+ },
2351
+ "staff": {
2352
+ "description": "Adds the italicized \"Staff\" text to the item info line (below the name).",
2353
+ "type": "boolean"
2354
+ },
2355
+ "tier": {
2356
+ "$ref": "items-shared.json#/$defs/itemTier"
2357
+ },
2358
+ "value": {
2359
+ "description": "In copper pieces.",
2360
+ "type": [
2361
+ "number",
2362
+ "null"
2363
+ ]
2364
+ },
2365
+ "valueMult": {
2366
+ "type": "number"
2367
+ },
2368
+ "weaponCategory": {
2369
+ "$ref": "items-shared.json#/$defs/itemWeaponCategory"
2370
+ },
2371
+ "weight": {
2372
+ "type": "number"
2373
+ },
2374
+ "weightMult": {
2375
+ "type": "number"
2376
+ },
2377
+ "weightNote": {
2378
+ "type": "string"
2379
+ },
2380
+ "wondrous": {
2381
+ "type": "boolean"
2382
+ },
2383
+ "tattoo": {
2384
+ "type": "boolean"
2385
+ },
2386
+ "sentient": {
2387
+ "type": "boolean"
2388
+ },
2389
+ "poison": {
2390
+ "type": "boolean"
2391
+ },
2392
+ "poisonTypes": {
2393
+ "type": "array",
2394
+ "items": {
2395
+ "type": "string",
2396
+ "enum": [
2397
+ "contact",
2398
+ "ingested",
2399
+ "injury",
2400
+ "inhaled"
2401
+ ]
2402
+ }
2403
+ },
2404
+ "crew": {
2405
+ "type": "integer"
2406
+ },
2407
+ "crewMin": {
2408
+ "description": "For crews specified as an X-Y min-max.",
2409
+ "type": "integer"
2410
+ },
2411
+ "crewMax": {
2412
+ "description": "For crews specified as an X-Y min-max.",
2413
+ "type": "integer"
2414
+ },
2415
+ "capPassenger": {
2416
+ "type": "integer"
2417
+ },
2418
+ "capCargo": {
2419
+ "type": "number"
2420
+ },
2421
+ "vehSpeed": {
2422
+ "type": "number"
2423
+ },
2424
+ "vehAc": {
2425
+ "type": "integer"
2426
+ },
2427
+ "vehHp": {
2428
+ "type": "integer"
2429
+ },
2430
+ "vehDmgThresh": {
2431
+ "type": "integer"
2432
+ },
2433
+ "travelCost": {
2434
+ "description": "In copper pieces per mile per passenger.",
2435
+ "type": "integer"
2436
+ },
2437
+ "shippingCost": {
2438
+ "description": "In copper pieces per 100 lbs per mile.",
2439
+ "type": "integer"
2440
+ },
2441
+ "charges": {
2442
+ "type": [
2443
+ "string",
2444
+ "integer"
2445
+ ]
2446
+ },
2447
+ "recharge": {
2448
+ "$ref": "items-shared.json#/$defs/itemRecharge"
2449
+ },
2450
+ "rechargeAmount": {
2451
+ "$ref": "items-shared.json#/$defs/itemRechargeAmount"
2452
+ },
2453
+ "optionalfeatures": {
2454
+ "type": "array",
2455
+ "items": {
2456
+ "type": "string"
2457
+ }
2458
+ },
2459
+ "attachedSpells": {
2460
+ "type": "array",
2461
+ "minItems": 1,
2462
+ "uniqueItems": true,
2463
+ "items": {
2464
+ "type": "string"
2465
+ }
2466
+ },
2467
+ "ability": {
2468
+ "description": "Item ability score adjustments.",
2469
+ "type": "object",
2470
+ "properties": {
2471
+ "choose": {
2472
+ "type": "array",
2473
+ "items": {
2474
+ "type": "object",
2475
+ "properties": {
2476
+ "from": {
2477
+ "type": "array",
2478
+ "items": {
2479
+ "enum": [
2480
+ "str",
2481
+ "dex",
2482
+ "con",
2483
+ "int",
2484
+ "wis",
2485
+ "cha"
2486
+ ]
2487
+ },
2488
+ "uniqueItems": true
2489
+ },
2490
+ "count": {
2491
+ "type": "integer"
2492
+ },
2493
+ "amount": {
2494
+ "type": "integer"
2495
+ }
2496
+ },
2497
+ "required": [
2498
+ "from"
2499
+ ],
2500
+ "additionalProperties": false
2501
+ }
2502
+ },
2503
+ "static": {
2504
+ "type": "object",
2505
+ "properties": {
2506
+ "str": {
2507
+ "type": "integer"
2508
+ },
2509
+ "dex": {
2510
+ "type": "integer"
2511
+ },
2512
+ "con": {
2513
+ "type": "integer"
2514
+ },
2515
+ "int": {
2516
+ "type": "integer"
2517
+ },
2518
+ "wis": {
2519
+ "type": "integer"
2520
+ },
2521
+ "cha": {
2522
+ "type": "integer"
2523
+ }
2524
+ },
2525
+ "additionalProperties": false
2526
+ },
2527
+ "str": {
2528
+ "type": "integer"
2529
+ },
2530
+ "dex": {
2531
+ "type": "integer"
2532
+ },
2533
+ "con": {
2534
+ "type": "integer"
2535
+ },
2536
+ "int": {
2537
+ "type": "integer"
2538
+ },
2539
+ "wis": {
2540
+ "type": "integer"
2541
+ },
2542
+ "cha": {
2543
+ "type": "integer"
2544
+ }
2545
+ }
2546
+ },
2547
+ "focus": {
2548
+ "description": "Item can be used as a spellcasting focus",
2549
+ "oneOf": [
2550
+ {
2551
+ "type": "boolean"
2552
+ },
2553
+ {
2554
+ "type": "array",
2555
+ "items": {
2556
+ "type": "string",
2557
+ "enum": [
2558
+ "Artificer",
2559
+ "Bard",
2560
+ "Cleric",
2561
+ "Druid",
2562
+ "Paladin",
2563
+ "Ranger",
2564
+ "Sorcerer",
2565
+ "Warlock",
2566
+ "Wizard"
2567
+ ]
2568
+ }
2569
+ }
2570
+ ]
2571
+ },
2572
+ "lootTables": {
2573
+ "type": "array",
2574
+ "items": {
2575
+ "type": "string"
2576
+ }
2577
+ },
2578
+ "critThreshold": {
2579
+ "type": "integer"
2580
+ },
2581
+ "bonusAc": {
2582
+ "type": "string"
2583
+ },
2584
+ "bonusWeapon": {
2585
+ "type": "string"
2586
+ },
2587
+ "bonusWeaponAttack": {
2588
+ "type": "string"
2589
+ },
2590
+ "bonusWeaponDamage": {
2591
+ "type": "string"
2592
+ },
2593
+ "bonusWeaponCritDamage": {
2594
+ "type": "string"
2595
+ },
2596
+ "bonusSpellAttack": {
2597
+ "type": "string"
2598
+ },
2599
+ "bonusSpellDamage": {
2600
+ "type": "string"
2601
+ },
2602
+ "bonusSpellSaveDc": {
2603
+ "type": "string"
2604
+ },
2605
+ "bonusSavingThrow": {
2606
+ "type": "string"
2607
+ },
2608
+ "bonusAbilityCheck": {
2609
+ "type": "string"
2610
+ },
2611
+ "bonusProficiencyBonus": {
2612
+ "type": "string"
2613
+ },
2614
+ "modifySpeed": {
2615
+ "$ref": "items-shared.json#/$defs/itemModifySpeed"
2616
+ },
2617
+ "otherSources": {
2618
+ "$ref": "util.json#/$defs/otherSources"
2619
+ },
2620
+ "srd": {
2621
+ "$ref": "util.json#/$defs/srd"
2622
+ },
2623
+ "basicRules": {
2624
+ "$ref": "util.json#/$defs/basicRules"
2625
+ },
2626
+ "legacy": {
2627
+ "$ref": "util.json#/$defs/legacy"
2628
+ },
2629
+ "packContents": {
2630
+ "type": "array",
2631
+ "items": {
2632
+ "oneOf": [
2633
+ {
2634
+ "type": "string"
2635
+ },
2636
+ {
2637
+ "type": "object",
2638
+ "properties": {
2639
+ "special": {
2640
+ "type": "string"
2641
+ },
2642
+ "quantity": {
2643
+ "type": "integer"
2644
+ }
2645
+ },
2646
+ "additionalProperties": false,
2647
+ "required": [
2648
+ "special"
2649
+ ]
2650
+ },
2651
+ {
2652
+ "type": "object",
2653
+ "properties": {
2654
+ "item": {
2655
+ "type": "string"
2656
+ },
2657
+ "quantity": {
2658
+ "type": "integer"
2659
+ }
2660
+ },
2661
+ "additionalProperties": false,
2662
+ "required": [
2663
+ "item",
2664
+ "quantity"
2665
+ ]
2666
+ }
2667
+ ]
2668
+ }
2669
+ },
2670
+ "atomicPackContents": {
2671
+ "description": "If the item's pack contents should be treated as one atomic unit, rather than handled as individual sub-items.",
2672
+ "type": "boolean"
2673
+ },
2674
+ "containerCapacity": {
2675
+ "type": "object",
2676
+ "properties": {
2677
+ "weight": {
2678
+ "type": "array",
2679
+ "items": {
2680
+ "type": "integer"
2681
+ }
2682
+ },
2683
+ "item": {
2684
+ "type": "array",
2685
+ "items": {
2686
+ "type": "object",
2687
+ "patternProperties": {
2688
+ ".*": {
2689
+ "type": "integer"
2690
+ }
2691
+ },
2692
+ "additionalProperties": false
2693
+ }
2694
+ },
2695
+ "weightless": {
2696
+ "description": "If the container renders its contents weightless.",
2697
+ "type": "boolean"
2698
+ }
2699
+ },
2700
+ "additionalProperties": false
2701
+ },
2702
+ "ammoType": {
2703
+ "$ref": "items-shared.json#/$defs/itemAmmoType"
2704
+ },
2705
+ "grantsProficiency": {
2706
+ "type": "boolean"
2707
+ },
2708
+ "grantsLanguage": {
2709
+ "type": "boolean"
2710
+ },
2711
+ "spellScrollLevel": {
2712
+ "type": "integer"
2713
+ },
2714
+ "seeAlsoDeck": {
2715
+ "type": "array",
2716
+ "items": {
2717
+ "type": "string",
2718
+ "description": "UIDs of \"deck\"s to be linked in a \"See Also\" footnote.\nEx.: \"deck of many things|dmg\"."
2719
+ }
2720
+ },
2721
+ "seeAlsoVehicle": {
2722
+ "type": "array",
2723
+ "items": {
2724
+ "type": "string",
2725
+ "description": "UIDs of \"vehicle\"s to be linked in a \"See Also\" footnote.\nEx.: \"rowboat|gos\"."
2726
+ }
2727
+ },
2728
+ "reqAttuneTags": {
2729
+ "$ref": "util.json#/$defs/reqAttuneTags"
2730
+ },
2731
+ "reqAttuneAltTags": {
2732
+ "$ref": "util.json#/$defs/reqAttuneTags"
2733
+ },
2734
+ "miscTags": {
2735
+ "type": "array",
2736
+ "items": {
2737
+ "description": "CF/W: Creates Food/Water\nTT: Trinket Table",
2738
+ "enum": [
2739
+ "CF/W",
2740
+ "TT"
2741
+ ]
2742
+ }
2743
+ },
2744
+ "mastery": {
2745
+ "$ref": "items-shared.json#/$defs/itemMastery"
2746
+ },
2747
+ "reach": {
2748
+ "$ref": "items-shared.json#/$defs/itemReach"
2749
+ },
2750
+ "hasFluff": {
2751
+ "type": "boolean"
2752
+ },
2753
+ "hasFluffImages": {
2754
+ "type": "boolean"
2755
+ },
2756
+ "hasRefs": {
2757
+ "type": "boolean",
2758
+ "description": "Whether this item has references within its data to dedicated \"itemEntry\"s."
2759
+ },
2760
+ "customProperties": {
2761
+ "$ref": "items-shared.json#/$defs/customProperties"
2762
+ },
2763
+ "items": {
2764
+ "$ref": "#/$defs/_itemGroupItems"
2765
+ },
2766
+ "_copy": {
2767
+ "$ref": "util.json#/$defs/copyBlock_copy_generic"
2768
+ }
2769
+ },
2770
+ "additionalProperties": false,
2771
+ "required": [
2772
+ "_copy"
2773
+ ]
2774
+ }
2775
+ ]
2776
+ }
2777
+ },
2778
+ "properties": {
2779
+ "item": {
2780
+ "type": "array",
2781
+ "items": {
2782
+ "$ref": "#/$defs/item"
2783
+ },
2784
+ "uniqueItems": true,
2785
+ "minItems": 1
2786
+ },
2787
+ "itemGroup": {
2788
+ "description": "Used to create fake item entries for groups of related items, often referred to as a single item (e.g. arcane foci)",
2789
+ "type": "array",
2790
+ "items": {
2791
+ "$ref": "#/$defs/itemGroup"
1712
2792
  },
1713
2793
  "uniqueItems": true,
1714
2794
  "minItems": 1