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