5etools-utils 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/package.json +3 -2
  2. package/schema/brew/actions.json +109 -0
  3. package/schema/brew/adventure/adventure.json +12 -0
  4. package/schema/brew/adventures.json +249 -0
  5. package/schema/brew/backgrounds.json +425 -0
  6. package/schema/brew/bestiary/bestiary.json +3766 -0
  7. package/schema/brew/bestiary/fluff-bestiary.json +15 -0
  8. package/schema/brew/bestiary/foundry.json +15 -0
  9. package/schema/brew/bestiary/legendarygroups.json +202 -0
  10. package/schema/brew/bestiary/traits.json +85 -0
  11. package/schema/brew/book/book.json +12 -0
  12. package/schema/brew/books.json +137 -0
  13. package/schema/brew/charcreationoptions.json +96 -0
  14. package/schema/brew/class/class.json +2059 -0
  15. package/schema/brew/class/foundry.json +373 -0
  16. package/schema/brew/conditionsdiseases.json +103 -0
  17. package/schema/brew/cultsboons.json +196 -0
  18. package/schema/brew/deities.json +482 -0
  19. package/schema/brew/encounters.json +99 -0
  20. package/schema/brew/entry.json +3538 -0
  21. package/schema/brew/feats.json +215 -0
  22. package/schema/brew/fluff-backgrounds.json +15 -0
  23. package/schema/brew/fluff-charcreationoptions.json +43 -0
  24. package/schema/brew/fluff-conditionsdiseases.json +43 -0
  25. package/schema/brew/fluff-feats.json +15 -0
  26. package/schema/brew/fluff-items.json +15 -0
  27. package/schema/brew/fluff-languages.json +42 -0
  28. package/schema/brew/fluff-objects.json +15 -0
  29. package/schema/brew/fluff-races.json +214 -0
  30. package/schema/brew/fluff-recipes.json +42 -0
  31. package/schema/brew/fluff-vehicles.json +63 -0
  32. package/schema/brew/foundry-actions.json +15 -0
  33. package/schema/brew/foundry-backgrounds.json +47 -0
  34. package/schema/brew/foundry-feats.json +15 -0
  35. package/schema/brew/foundry-items.json +57 -0
  36. package/schema/brew/foundry-optionalfeatures.json +15 -0
  37. package/schema/brew/foundry-psionics.json +50 -0
  38. package/schema/brew/foundry-races.json +52 -0
  39. package/schema/brew/foundry-rewards.json +15 -0
  40. package/schema/brew/foundry-vehicles.json +15 -0
  41. package/schema/brew/generated/bookref-quick.json +72 -0
  42. package/schema/brew/homebrew.json +564 -0
  43. package/schema/brew/items-base.json +460 -0
  44. package/schema/brew/items-shared.json +295 -0
  45. package/schema/brew/items.json +1866 -0
  46. package/schema/brew/languages.json +127 -0
  47. package/schema/brew/loot.json +510 -0
  48. package/schema/brew/magicvariants.json +387 -0
  49. package/schema/brew/makebrew-creature.json +40 -0
  50. package/schema/brew/makecards.json +43 -0
  51. package/schema/brew/monsterfeatures.json +53 -0
  52. package/schema/brew/msbcr.json +60 -0
  53. package/schema/brew/names.json +91 -0
  54. package/schema/brew/objects.json +172 -0
  55. package/schema/brew/optionalfeatures.json +139 -0
  56. package/schema/brew/psionics.json +185 -0
  57. package/schema/brew/races.json +1799 -0
  58. package/schema/brew/recipes.json +191 -0
  59. package/schema/brew/renderdemo.json +16 -0
  60. package/schema/brew/rewards.json +102 -0
  61. package/schema/brew/senses.json +54 -0
  62. package/schema/brew/skills.json +54 -0
  63. package/schema/brew/spells/fluff-spells.json +15 -0
  64. package/schema/brew/spells/foundry.json +15 -0
  65. package/schema/brew/spells/roll20.json +112 -0
  66. package/schema/brew/spells/spells.json +1841 -0
  67. package/schema/brew/tables.json +202 -0
  68. package/schema/brew/trapshazards.json +249 -0
  69. package/schema/brew/util.json +3867 -0
  70. package/schema/brew/variantrules.json +74 -0
  71. package/schema/brew/vehicles.json +854 -0
  72. package/schema/brew-fast/actions.json +109 -0
  73. package/schema/brew-fast/adventure/adventure.json +12 -0
  74. package/schema/brew-fast/adventures.json +249 -0
  75. package/schema/brew-fast/backgrounds.json +425 -0
  76. package/schema/brew-fast/bestiary/bestiary.json +3766 -0
  77. package/schema/brew-fast/bestiary/fluff-bestiary.json +15 -0
  78. package/schema/brew-fast/bestiary/foundry.json +15 -0
  79. package/schema/brew-fast/bestiary/legendarygroups.json +202 -0
  80. package/schema/brew-fast/bestiary/traits.json +85 -0
  81. package/schema/brew-fast/book/book.json +12 -0
  82. package/schema/brew-fast/books.json +137 -0
  83. package/schema/brew-fast/charcreationoptions.json +96 -0
  84. package/schema/brew-fast/class/class.json +2059 -0
  85. package/schema/brew-fast/class/foundry.json +373 -0
  86. package/schema/brew-fast/conditionsdiseases.json +103 -0
  87. package/schema/brew-fast/cultsboons.json +196 -0
  88. package/schema/brew-fast/deities.json +482 -0
  89. package/schema/brew-fast/encounters.json +99 -0
  90. package/schema/brew-fast/entry.json +3538 -0
  91. package/schema/brew-fast/feats.json +215 -0
  92. package/schema/brew-fast/fluff-backgrounds.json +15 -0
  93. package/schema/brew-fast/fluff-charcreationoptions.json +43 -0
  94. package/schema/brew-fast/fluff-conditionsdiseases.json +43 -0
  95. package/schema/brew-fast/fluff-feats.json +15 -0
  96. package/schema/brew-fast/fluff-items.json +15 -0
  97. package/schema/brew-fast/fluff-languages.json +42 -0
  98. package/schema/brew-fast/fluff-objects.json +15 -0
  99. package/schema/brew-fast/fluff-races.json +214 -0
  100. package/schema/brew-fast/fluff-recipes.json +42 -0
  101. package/schema/brew-fast/fluff-vehicles.json +63 -0
  102. package/schema/brew-fast/foundry-actions.json +15 -0
  103. package/schema/brew-fast/foundry-backgrounds.json +47 -0
  104. package/schema/brew-fast/foundry-feats.json +15 -0
  105. package/schema/brew-fast/foundry-items.json +57 -0
  106. package/schema/brew-fast/foundry-optionalfeatures.json +15 -0
  107. package/schema/brew-fast/foundry-psionics.json +50 -0
  108. package/schema/brew-fast/foundry-races.json +52 -0
  109. package/schema/brew-fast/foundry-rewards.json +15 -0
  110. package/schema/brew-fast/foundry-vehicles.json +15 -0
  111. package/schema/brew-fast/generated/bookref-quick.json +72 -0
  112. package/schema/brew-fast/homebrew.json +562 -0
  113. package/schema/brew-fast/items-base.json +460 -0
  114. package/schema/brew-fast/items-shared.json +295 -0
  115. package/schema/brew-fast/items.json +1866 -0
  116. package/schema/brew-fast/languages.json +127 -0
  117. package/schema/brew-fast/loot.json +510 -0
  118. package/schema/brew-fast/magicvariants.json +387 -0
  119. package/schema/brew-fast/makebrew-creature.json +40 -0
  120. package/schema/brew-fast/makecards.json +43 -0
  121. package/schema/brew-fast/monsterfeatures.json +53 -0
  122. package/schema/brew-fast/msbcr.json +60 -0
  123. package/schema/brew-fast/names.json +91 -0
  124. package/schema/brew-fast/objects.json +172 -0
  125. package/schema/brew-fast/optionalfeatures.json +139 -0
  126. package/schema/brew-fast/psionics.json +185 -0
  127. package/schema/brew-fast/races.json +1799 -0
  128. package/schema/brew-fast/recipes.json +191 -0
  129. package/schema/brew-fast/renderdemo.json +16 -0
  130. package/schema/brew-fast/rewards.json +102 -0
  131. package/schema/brew-fast/senses.json +54 -0
  132. package/schema/brew-fast/skills.json +54 -0
  133. package/schema/brew-fast/spells/fluff-spells.json +15 -0
  134. package/schema/brew-fast/spells/foundry.json +15 -0
  135. package/schema/brew-fast/spells/roll20.json +112 -0
  136. package/schema/brew-fast/spells/spells.json +1841 -0
  137. package/schema/brew-fast/tables.json +202 -0
  138. package/schema/brew-fast/trapshazards.json +249 -0
  139. package/schema/brew-fast/util.json +3867 -0
  140. package/schema/brew-fast/variantrules.json +74 -0
  141. package/schema/brew-fast/vehicles.json +854 -0
  142. package/schema/site/actions.json +97 -0
  143. package/schema/site/adventure/adventure.json +12 -0
  144. package/schema/site/adventures.json +211 -0
  145. package/schema/site/backgrounds.json +306 -0
  146. package/schema/site/bestiary/bestiary.json +3537 -0
  147. package/schema/site/bestiary/fluff-bestiary.json +15 -0
  148. package/schema/site/bestiary/foundry.json +15 -0
  149. package/schema/site/bestiary/legendarygroups.json +202 -0
  150. package/schema/site/bestiary/traits.json +85 -0
  151. package/schema/site/book/book.json +12 -0
  152. package/schema/site/books.json +137 -0
  153. package/schema/site/charcreationoptions.json +80 -0
  154. package/schema/site/class/class.json +1792 -0
  155. package/schema/site/class/foundry.json +373 -0
  156. package/schema/site/conditionsdiseases.json +82 -0
  157. package/schema/site/cultsboons.json +172 -0
  158. package/schema/site/deities.json +461 -0
  159. package/schema/site/encounters.json +99 -0
  160. package/schema/site/entry.json +3471 -0
  161. package/schema/site/feats.json +199 -0
  162. package/schema/site/fluff-backgrounds.json +15 -0
  163. package/schema/site/fluff-charcreationoptions.json +43 -0
  164. package/schema/site/fluff-conditionsdiseases.json +43 -0
  165. package/schema/site/fluff-feats.json +15 -0
  166. package/schema/site/fluff-items.json +15 -0
  167. package/schema/site/fluff-languages.json +42 -0
  168. package/schema/site/fluff-objects.json +15 -0
  169. package/schema/site/fluff-races.json +214 -0
  170. package/schema/site/fluff-recipes.json +42 -0
  171. package/schema/site/fluff-vehicles.json +63 -0
  172. package/schema/site/foundry-actions.json +15 -0
  173. package/schema/site/foundry-backgrounds.json +47 -0
  174. package/schema/site/foundry-feats.json +15 -0
  175. package/schema/site/foundry-items.json +57 -0
  176. package/schema/site/foundry-optionalfeatures.json +15 -0
  177. package/schema/site/foundry-psionics.json +50 -0
  178. package/schema/site/foundry-races.json +52 -0
  179. package/schema/site/foundry-rewards.json +15 -0
  180. package/schema/site/foundry-vehicles.json +15 -0
  181. package/schema/site/generated/bookref-quick.json +72 -0
  182. package/schema/site/homebrew.json +564 -0
  183. package/schema/site/items-base.json +425 -0
  184. package/schema/site/items-shared.json +259 -0
  185. package/schema/site/items.json +1722 -0
  186. package/schema/site/languages.json +120 -0
  187. package/schema/site/loot.json +510 -0
  188. package/schema/site/magicvariants.json +355 -0
  189. package/schema/site/makebrew-creature.json +39 -0
  190. package/schema/site/makecards.json +43 -0
  191. package/schema/site/monsterfeatures.json +53 -0
  192. package/schema/site/msbcr.json +60 -0
  193. package/schema/site/names.json +91 -0
  194. package/schema/site/objects.json +165 -0
  195. package/schema/site/optionalfeatures.json +127 -0
  196. package/schema/site/psionics.json +173 -0
  197. package/schema/site/races.json +1708 -0
  198. package/schema/site/recipes.json +185 -0
  199. package/schema/site/renderdemo.json +16 -0
  200. package/schema/site/rewards.json +90 -0
  201. package/schema/site/senses.json +54 -0
  202. package/schema/site/skills.json +54 -0
  203. package/schema/site/spells/fluff-spells.json +15 -0
  204. package/schema/site/spells/foundry.json +15 -0
  205. package/schema/site/spells/roll20.json +112 -0
  206. package/schema/site/spells/spells.json +1238 -0
  207. package/schema/site/tables.json +185 -0
  208. package/schema/site/trapshazards.json +227 -0
  209. package/schema/site/util.json +3857 -0
  210. package/schema/site/variantrules.json +71 -0
  211. package/schema/site/vehicles.json +807 -0
  212. package/schema/site-fast/actions.json +97 -0
  213. package/schema/site-fast/adventure/adventure.json +12 -0
  214. package/schema/site-fast/adventures.json +211 -0
  215. package/schema/site-fast/backgrounds.json +306 -0
  216. package/schema/site-fast/bestiary/bestiary.json +3537 -0
  217. package/schema/site-fast/bestiary/fluff-bestiary.json +15 -0
  218. package/schema/site-fast/bestiary/foundry.json +15 -0
  219. package/schema/site-fast/bestiary/legendarygroups.json +202 -0
  220. package/schema/site-fast/bestiary/traits.json +85 -0
  221. package/schema/site-fast/book/book.json +12 -0
  222. package/schema/site-fast/books.json +137 -0
  223. package/schema/site-fast/charcreationoptions.json +80 -0
  224. package/schema/site-fast/class/class.json +1792 -0
  225. package/schema/site-fast/class/foundry.json +373 -0
  226. package/schema/site-fast/conditionsdiseases.json +82 -0
  227. package/schema/site-fast/cultsboons.json +172 -0
  228. package/schema/site-fast/deities.json +461 -0
  229. package/schema/site-fast/encounters.json +99 -0
  230. package/schema/site-fast/entry.json +3471 -0
  231. package/schema/site-fast/feats.json +199 -0
  232. package/schema/site-fast/fluff-backgrounds.json +15 -0
  233. package/schema/site-fast/fluff-charcreationoptions.json +43 -0
  234. package/schema/site-fast/fluff-conditionsdiseases.json +43 -0
  235. package/schema/site-fast/fluff-feats.json +15 -0
  236. package/schema/site-fast/fluff-items.json +15 -0
  237. package/schema/site-fast/fluff-languages.json +42 -0
  238. package/schema/site-fast/fluff-objects.json +15 -0
  239. package/schema/site-fast/fluff-races.json +214 -0
  240. package/schema/site-fast/fluff-recipes.json +42 -0
  241. package/schema/site-fast/fluff-vehicles.json +63 -0
  242. package/schema/site-fast/foundry-actions.json +15 -0
  243. package/schema/site-fast/foundry-backgrounds.json +47 -0
  244. package/schema/site-fast/foundry-feats.json +15 -0
  245. package/schema/site-fast/foundry-items.json +57 -0
  246. package/schema/site-fast/foundry-optionalfeatures.json +15 -0
  247. package/schema/site-fast/foundry-psionics.json +50 -0
  248. package/schema/site-fast/foundry-races.json +52 -0
  249. package/schema/site-fast/foundry-rewards.json +15 -0
  250. package/schema/site-fast/foundry-vehicles.json +15 -0
  251. package/schema/site-fast/generated/bookref-quick.json +72 -0
  252. package/schema/site-fast/homebrew.json +562 -0
  253. package/schema/site-fast/items-base.json +425 -0
  254. package/schema/site-fast/items-shared.json +259 -0
  255. package/schema/site-fast/items.json +1722 -0
  256. package/schema/site-fast/languages.json +120 -0
  257. package/schema/site-fast/loot.json +510 -0
  258. package/schema/site-fast/magicvariants.json +355 -0
  259. package/schema/site-fast/makebrew-creature.json +39 -0
  260. package/schema/site-fast/makecards.json +43 -0
  261. package/schema/site-fast/monsterfeatures.json +53 -0
  262. package/schema/site-fast/msbcr.json +60 -0
  263. package/schema/site-fast/names.json +91 -0
  264. package/schema/site-fast/objects.json +165 -0
  265. package/schema/site-fast/optionalfeatures.json +127 -0
  266. package/schema/site-fast/psionics.json +173 -0
  267. package/schema/site-fast/races.json +1708 -0
  268. package/schema/site-fast/recipes.json +185 -0
  269. package/schema/site-fast/renderdemo.json +16 -0
  270. package/schema/site-fast/rewards.json +90 -0
  271. package/schema/site-fast/senses.json +54 -0
  272. package/schema/site-fast/skills.json +54 -0
  273. package/schema/site-fast/spells/fluff-spells.json +15 -0
  274. package/schema/site-fast/spells/foundry.json +15 -0
  275. package/schema/site-fast/spells/roll20.json +112 -0
  276. package/schema/site-fast/spells/spells.json +1238 -0
  277. package/schema/site-fast/tables.json +185 -0
  278. package/schema/site-fast/trapshazards.json +227 -0
  279. package/schema/site-fast/util.json +3857 -0
  280. package/schema/site-fast/variantrules.json +71 -0
  281. package/schema/site-fast/vehicles.json +807 -0
@@ -0,0 +1,1708 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "races.json",
4
+ "version": "1.12.1",
5
+ "type": "object",
6
+ "$defs": {
7
+ "sharedData": {
8
+ "type": "object",
9
+ "properties": {
10
+ "name": {
11
+ "type": "string"
12
+ },
13
+ "alias": {
14
+ "$ref": "util.json#/$defs/alias"
15
+ },
16
+ "source": {
17
+ "type": "string"
18
+ },
19
+ "page": {
20
+ "$ref": "util.json#/$defs/page"
21
+ },
22
+ "otherSources": {
23
+ "$ref": "util.json#/$defs/otherSources"
24
+ },
25
+ "additionalSources": {
26
+ "$ref": "util.json#/$defs/additionalSources"
27
+ },
28
+ "reprintedAs": {
29
+ "$ref": "util.json#/$defs/reprintedAs"
30
+ },
31
+ "ability": {
32
+ "$ref": "#/$defs/abilityScores"
33
+ },
34
+ "size": {
35
+ "type": "array",
36
+ "items": {
37
+ "$ref": "util.json#/$defs/size"
38
+ }
39
+ },
40
+ "speed": {
41
+ "$ref": "util.json#/$defs/speed"
42
+ },
43
+ "entries": {
44
+ "type": "array",
45
+ "items": {
46
+ "$ref": "entry.json"
47
+ }
48
+ },
49
+ "darkvision": {
50
+ "type": "integer"
51
+ },
52
+ "blindsight": {
53
+ "type": "integer"
54
+ },
55
+ "feats": {
56
+ "$ref": "util.json#/$defs/additionalFeatsArray"
57
+ },
58
+ "traitTags": {
59
+ "oneOf": [
60
+ {
61
+ "type": "array",
62
+ "items": {
63
+ "$ref": "#/$defs/traitTag"
64
+ }
65
+ },
66
+ {
67
+ "type": "null"
68
+ }
69
+ ]
70
+ },
71
+ "soundClip": {
72
+ "$ref": "entry.json#/$defs/mediaHref"
73
+ },
74
+ "languageProficiencies": {
75
+ "$ref": "util.json#/$defs/languageProficiencies"
76
+ },
77
+ "skillProficiencies": {
78
+ "oneOf": [
79
+ {
80
+ "$ref": "util.json#/$defs/skillProficiencies"
81
+ },
82
+ {
83
+ "type": "null"
84
+ }
85
+ ]
86
+ },
87
+ "toolProficiencies": {
88
+ "$ref": "util.json#/$defs/toolProficiencies"
89
+ },
90
+ "skillToolLanguageProficiencies": {
91
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
92
+ },
93
+ "expertise": {
94
+ "$ref": "util.json#/$defs/expertise"
95
+ },
96
+ "weaponProficiencies": {
97
+ "$ref": "util.json#/$defs/weaponProficiencies"
98
+ },
99
+ "armorProficiencies": {
100
+ "$ref": "util.json#/$defs/armorProficiencies"
101
+ },
102
+ "srd": {
103
+ "$ref": "util.json#/$defs/srd"
104
+ },
105
+ "basicRules": {
106
+ "$ref": "util.json#/$defs/basicRules"
107
+ },
108
+ "lineage": {
109
+ "oneOf": [
110
+ {
111
+ "$ref": "#/$defs/lineage"
112
+ },
113
+ {
114
+ "type": "null"
115
+ }
116
+ ]
117
+ },
118
+ "heightAndWeight": {
119
+ "oneOf": [
120
+ {
121
+ "$ref": "#/$defs/heightAndWeight"
122
+ },
123
+ {
124
+ "type": "null"
125
+ }
126
+ ]
127
+ },
128
+ "additionalSpells": {
129
+ "oneOf": [
130
+ {
131
+ "type": "null"
132
+ },
133
+ {
134
+ "$ref": "util.json#/$defs/additionalSpellsArray"
135
+ }
136
+ ]
137
+ },
138
+ "resist": {
139
+ "oneOf": [
140
+ {
141
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
142
+ },
143
+ {
144
+ "type": "null"
145
+ }
146
+ ]
147
+ },
148
+ "immune": {
149
+ "oneOf": [
150
+ {
151
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
152
+ },
153
+ {
154
+ "type": "null"
155
+ }
156
+ ]
157
+ },
158
+ "vulnerable": {
159
+ "oneOf": [
160
+ {
161
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
162
+ },
163
+ {
164
+ "type": "null"
165
+ }
166
+ ]
167
+ },
168
+ "conditionImmune": {
169
+ "oneOf": [
170
+ {
171
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
172
+ },
173
+ {
174
+ "type": "null"
175
+ }
176
+ ]
177
+ },
178
+ "creatureTypes": {
179
+ "type": "array",
180
+ "items": {
181
+ "oneOf": [
182
+ {
183
+ "type": "object",
184
+ "properties": {
185
+ "choose": {
186
+ "type": "array",
187
+ "items": {
188
+ "$ref": "util.json#/$defs/creatureType"
189
+ }
190
+ }
191
+ },
192
+ "required": [
193
+ "choose"
194
+ ],
195
+ "additionalProperties": false
196
+ },
197
+ {
198
+ "$ref": "util.json#/$defs/creatureType"
199
+ }
200
+ ]
201
+ }
202
+ },
203
+ "creatureTypeTags": {
204
+ "type": "array",
205
+ "uniqueItems": true,
206
+ "minItems": 1,
207
+ "items": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "age": {
212
+ "$ref": "#/$defs/age"
213
+ },
214
+ "hasFluff": {
215
+ "type": "boolean"
216
+ },
217
+ "hasFluffImages": {
218
+ "type": "boolean"
219
+ },
220
+ "_versions": {
221
+ "$ref": "util.json#/$defs/versionsArray"
222
+ }
223
+ },
224
+ "additionalProperties": false
225
+ },
226
+ "subraceData": {
227
+ "type": "object",
228
+ "properties": {
229
+ "name": {
230
+ "type": "string"
231
+ },
232
+ "alias": {
233
+ "$ref": "util.json#/$defs/alias"
234
+ },
235
+ "source": {
236
+ "type": "string"
237
+ },
238
+ "page": {
239
+ "$ref": "util.json#/$defs/page"
240
+ },
241
+ "otherSources": {
242
+ "$ref": "util.json#/$defs/otherSources"
243
+ },
244
+ "additionalSources": {
245
+ "$ref": "util.json#/$defs/additionalSources"
246
+ },
247
+ "reprintedAs": {
248
+ "$ref": "util.json#/$defs/reprintedAs"
249
+ },
250
+ "ability": {
251
+ "$ref": "#/$defs/abilityScores"
252
+ },
253
+ "size": {
254
+ "type": "array",
255
+ "items": {
256
+ "$ref": "util.json#/$defs/size"
257
+ }
258
+ },
259
+ "speed": {
260
+ "$ref": "util.json#/$defs/speed"
261
+ },
262
+ "entries": {
263
+ "type": "array",
264
+ "items": {
265
+ "$ref": "entry.json"
266
+ }
267
+ },
268
+ "darkvision": {
269
+ "type": "integer"
270
+ },
271
+ "blindsight": {
272
+ "type": "integer"
273
+ },
274
+ "feats": {
275
+ "$ref": "util.json#/$defs/additionalFeatsArray"
276
+ },
277
+ "traitTags": {
278
+ "oneOf": [
279
+ {
280
+ "type": "array",
281
+ "items": {
282
+ "$ref": "#/$defs/traitTag"
283
+ }
284
+ },
285
+ {
286
+ "type": "null"
287
+ }
288
+ ]
289
+ },
290
+ "soundClip": {
291
+ "$ref": "entry.json#/$defs/mediaHref"
292
+ },
293
+ "languageProficiencies": {
294
+ "$ref": "util.json#/$defs/languageProficiencies"
295
+ },
296
+ "skillProficiencies": {
297
+ "oneOf": [
298
+ {
299
+ "$ref": "util.json#/$defs/skillProficiencies"
300
+ },
301
+ {
302
+ "type": "null"
303
+ }
304
+ ]
305
+ },
306
+ "toolProficiencies": {
307
+ "$ref": "util.json#/$defs/toolProficiencies"
308
+ },
309
+ "skillToolLanguageProficiencies": {
310
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
311
+ },
312
+ "expertise": {
313
+ "$ref": "util.json#/$defs/expertise"
314
+ },
315
+ "weaponProficiencies": {
316
+ "$ref": "util.json#/$defs/weaponProficiencies"
317
+ },
318
+ "armorProficiencies": {
319
+ "$ref": "util.json#/$defs/armorProficiencies"
320
+ },
321
+ "srd": {
322
+ "$ref": "util.json#/$defs/srd"
323
+ },
324
+ "basicRules": {
325
+ "$ref": "util.json#/$defs/basicRules"
326
+ },
327
+ "lineage": {
328
+ "oneOf": [
329
+ {
330
+ "$ref": "#/$defs/lineage"
331
+ },
332
+ {
333
+ "type": "null"
334
+ }
335
+ ]
336
+ },
337
+ "heightAndWeight": {
338
+ "oneOf": [
339
+ {
340
+ "$ref": "#/$defs/heightAndWeight"
341
+ },
342
+ {
343
+ "type": "null"
344
+ }
345
+ ]
346
+ },
347
+ "additionalSpells": {
348
+ "oneOf": [
349
+ {
350
+ "type": "null"
351
+ },
352
+ {
353
+ "$ref": "util.json#/$defs/additionalSpellsArray"
354
+ }
355
+ ]
356
+ },
357
+ "resist": {
358
+ "oneOf": [
359
+ {
360
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
361
+ },
362
+ {
363
+ "type": "null"
364
+ }
365
+ ]
366
+ },
367
+ "immune": {
368
+ "oneOf": [
369
+ {
370
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
371
+ },
372
+ {
373
+ "type": "null"
374
+ }
375
+ ]
376
+ },
377
+ "vulnerable": {
378
+ "oneOf": [
379
+ {
380
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
381
+ },
382
+ {
383
+ "type": "null"
384
+ }
385
+ ]
386
+ },
387
+ "conditionImmune": {
388
+ "oneOf": [
389
+ {
390
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
391
+ },
392
+ {
393
+ "type": "null"
394
+ }
395
+ ]
396
+ },
397
+ "creatureTypes": {
398
+ "type": "array",
399
+ "items": {
400
+ "oneOf": [
401
+ {
402
+ "type": "object",
403
+ "properties": {
404
+ "choose": {
405
+ "type": "array",
406
+ "items": {
407
+ "$ref": "util.json#/$defs/creatureType"
408
+ }
409
+ }
410
+ },
411
+ "required": [
412
+ "choose"
413
+ ],
414
+ "additionalProperties": false
415
+ },
416
+ {
417
+ "$ref": "util.json#/$defs/creatureType"
418
+ }
419
+ ]
420
+ }
421
+ },
422
+ "creatureTypeTags": {
423
+ "type": "array",
424
+ "uniqueItems": true,
425
+ "minItems": 1,
426
+ "items": {
427
+ "type": "string"
428
+ }
429
+ },
430
+ "age": {
431
+ "$ref": "#/$defs/age"
432
+ },
433
+ "hasFluff": {
434
+ "type": "boolean"
435
+ },
436
+ "hasFluffImages": {
437
+ "type": "boolean"
438
+ },
439
+ "_versions": {
440
+ "$ref": "util.json#/$defs/versionsArray"
441
+ },
442
+ "raceName": {
443
+ "type": "string"
444
+ },
445
+ "raceSource": {
446
+ "type": "string"
447
+ },
448
+ "overwrite": {
449
+ "description": "Map of 'property' -> true where 'property' is a property on the base race which should be overwritten by that of the subrace",
450
+ "type": "object"
451
+ }
452
+ },
453
+ "additionalProperties": false
454
+ },
455
+ "raceData": {
456
+ "$ref": "#/$defs/sharedData"
457
+ },
458
+ "traitTag": {
459
+ "oneOf": [
460
+ {
461
+ "$ref": "util.json#/$defs/proficiencyTag"
462
+ },
463
+ {
464
+ "type": "string",
465
+ "enum": [
466
+ "Amphibious",
467
+ "Dragonmark",
468
+ "Improved Resting",
469
+ "Magic Resistance",
470
+ "Monstrous Race",
471
+ "Natural Armor",
472
+ "Natural Weapon",
473
+ "NPC Race",
474
+ "Powerful Build",
475
+ "Skill Bonus Dice",
476
+ "Sunlight Sensitivity",
477
+ "Tool Bonus Dice",
478
+ "Uncommon Race"
479
+ ]
480
+ }
481
+ ]
482
+ },
483
+ "abilityScores": {
484
+ "type": "array",
485
+ "items": {
486
+ "type": "object",
487
+ "properties": {
488
+ "str": {
489
+ "type": "integer"
490
+ },
491
+ "dex": {
492
+ "type": "integer"
493
+ },
494
+ "con": {
495
+ "type": "integer"
496
+ },
497
+ "int": {
498
+ "type": "integer"
499
+ },
500
+ "wis": {
501
+ "type": "integer"
502
+ },
503
+ "cha": {
504
+ "type": "integer"
505
+ },
506
+ "choose": {
507
+ "type": "object",
508
+ "properties": {
509
+ "from": {
510
+ "type": "array",
511
+ "items": {
512
+ "enum": [
513
+ "str",
514
+ "dex",
515
+ "con",
516
+ "int",
517
+ "wis",
518
+ "cha"
519
+ ]
520
+ },
521
+ "uniqueItems": true
522
+ },
523
+ "count": {
524
+ "type": "integer"
525
+ },
526
+ "amount": {
527
+ "type": "integer"
528
+ },
529
+ "weighted": {
530
+ "type": "object",
531
+ "properties": {
532
+ "from": {
533
+ "type": "array",
534
+ "items": {
535
+ "enum": [
536
+ "str",
537
+ "dex",
538
+ "con",
539
+ "int",
540
+ "wis",
541
+ "cha"
542
+ ]
543
+ },
544
+ "uniqueItems": true
545
+ },
546
+ "weights": {
547
+ "type": "array",
548
+ "items": {
549
+ "type": "integer"
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
555
+ }
556
+ }
557
+ }
558
+ },
559
+ "heightAndWeight": {
560
+ "type": "object",
561
+ "properties": {
562
+ "baseHeight": {
563
+ "type": "integer"
564
+ },
565
+ "heightMod": {
566
+ "type": "string"
567
+ },
568
+ "baseWeight": {
569
+ "type": "integer"
570
+ },
571
+ "weightMod": {
572
+ "type": "string"
573
+ }
574
+ },
575
+ "required": [
576
+ "baseHeight",
577
+ "heightMod",
578
+ "baseWeight"
579
+ ],
580
+ "additionalProperties": false
581
+ },
582
+ "lineage": {
583
+ "oneOf": [
584
+ {
585
+ "description": "For lineages that should be filterable using the \"Lineage\" filter, but should not have any modifications applied.",
586
+ "type": "boolean",
587
+ "const": true
588
+ },
589
+ {
590
+ "description": "For lineages which modify the race with e.g. specific ability score modes.",
591
+ "type": "string",
592
+ "enum": [
593
+ "UA1",
594
+ "VRGR"
595
+ ]
596
+ }
597
+ ]
598
+ },
599
+ "age": {
600
+ "type": "object",
601
+ "properties": {
602
+ "mature": {
603
+ "type": "integer"
604
+ },
605
+ "max": {
606
+ "type": "integer"
607
+ }
608
+ }
609
+ },
610
+ "race": {
611
+ "anyOf": [
612
+ {
613
+ "type": "object",
614
+ "properties": {
615
+ "name": {
616
+ "type": "string"
617
+ },
618
+ "alias": {
619
+ "$ref": "util.json#/$defs/alias"
620
+ },
621
+ "source": {
622
+ "type": "string"
623
+ },
624
+ "page": {
625
+ "$ref": "util.json#/$defs/page"
626
+ },
627
+ "otherSources": {
628
+ "$ref": "util.json#/$defs/otherSources"
629
+ },
630
+ "additionalSources": {
631
+ "$ref": "util.json#/$defs/additionalSources"
632
+ },
633
+ "reprintedAs": {
634
+ "$ref": "util.json#/$defs/reprintedAs"
635
+ },
636
+ "ability": {
637
+ "$ref": "#/$defs/abilityScores"
638
+ },
639
+ "size": {
640
+ "type": "array",
641
+ "items": {
642
+ "$ref": "util.json#/$defs/size"
643
+ }
644
+ },
645
+ "speed": {
646
+ "$ref": "util.json#/$defs/speed"
647
+ },
648
+ "entries": {
649
+ "type": "array",
650
+ "items": {
651
+ "$ref": "entry.json"
652
+ }
653
+ },
654
+ "darkvision": {
655
+ "type": "integer"
656
+ },
657
+ "blindsight": {
658
+ "type": "integer"
659
+ },
660
+ "feats": {
661
+ "$ref": "util.json#/$defs/additionalFeatsArray"
662
+ },
663
+ "traitTags": {
664
+ "oneOf": [
665
+ {
666
+ "type": "array",
667
+ "items": {
668
+ "$ref": "#/$defs/traitTag"
669
+ }
670
+ },
671
+ {
672
+ "type": "null"
673
+ }
674
+ ]
675
+ },
676
+ "soundClip": {
677
+ "$ref": "entry.json#/$defs/mediaHref"
678
+ },
679
+ "languageProficiencies": {
680
+ "$ref": "util.json#/$defs/languageProficiencies"
681
+ },
682
+ "skillProficiencies": {
683
+ "oneOf": [
684
+ {
685
+ "$ref": "util.json#/$defs/skillProficiencies"
686
+ },
687
+ {
688
+ "type": "null"
689
+ }
690
+ ]
691
+ },
692
+ "toolProficiencies": {
693
+ "$ref": "util.json#/$defs/toolProficiencies"
694
+ },
695
+ "skillToolLanguageProficiencies": {
696
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
697
+ },
698
+ "expertise": {
699
+ "$ref": "util.json#/$defs/expertise"
700
+ },
701
+ "weaponProficiencies": {
702
+ "$ref": "util.json#/$defs/weaponProficiencies"
703
+ },
704
+ "armorProficiencies": {
705
+ "$ref": "util.json#/$defs/armorProficiencies"
706
+ },
707
+ "srd": {
708
+ "$ref": "util.json#/$defs/srd"
709
+ },
710
+ "basicRules": {
711
+ "$ref": "util.json#/$defs/basicRules"
712
+ },
713
+ "lineage": {
714
+ "oneOf": [
715
+ {
716
+ "$ref": "#/$defs/lineage"
717
+ },
718
+ {
719
+ "type": "null"
720
+ }
721
+ ]
722
+ },
723
+ "heightAndWeight": {
724
+ "oneOf": [
725
+ {
726
+ "$ref": "#/$defs/heightAndWeight"
727
+ },
728
+ {
729
+ "type": "null"
730
+ }
731
+ ]
732
+ },
733
+ "additionalSpells": {
734
+ "oneOf": [
735
+ {
736
+ "type": "null"
737
+ },
738
+ {
739
+ "$ref": "util.json#/$defs/additionalSpellsArray"
740
+ }
741
+ ]
742
+ },
743
+ "resist": {
744
+ "oneOf": [
745
+ {
746
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
747
+ },
748
+ {
749
+ "type": "null"
750
+ }
751
+ ]
752
+ },
753
+ "immune": {
754
+ "oneOf": [
755
+ {
756
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
757
+ },
758
+ {
759
+ "type": "null"
760
+ }
761
+ ]
762
+ },
763
+ "vulnerable": {
764
+ "oneOf": [
765
+ {
766
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
767
+ },
768
+ {
769
+ "type": "null"
770
+ }
771
+ ]
772
+ },
773
+ "conditionImmune": {
774
+ "oneOf": [
775
+ {
776
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
777
+ },
778
+ {
779
+ "type": "null"
780
+ }
781
+ ]
782
+ },
783
+ "creatureTypes": {
784
+ "type": "array",
785
+ "items": {
786
+ "oneOf": [
787
+ {
788
+ "type": "object",
789
+ "properties": {
790
+ "choose": {
791
+ "type": "array",
792
+ "items": {
793
+ "$ref": "util.json#/$defs/creatureType"
794
+ }
795
+ }
796
+ },
797
+ "required": [
798
+ "choose"
799
+ ],
800
+ "additionalProperties": false
801
+ },
802
+ {
803
+ "$ref": "util.json#/$defs/creatureType"
804
+ }
805
+ ]
806
+ }
807
+ },
808
+ "creatureTypeTags": {
809
+ "type": "array",
810
+ "uniqueItems": true,
811
+ "minItems": 1,
812
+ "items": {
813
+ "type": "string"
814
+ }
815
+ },
816
+ "age": {
817
+ "$ref": "#/$defs/age"
818
+ },
819
+ "hasFluff": {
820
+ "type": "boolean"
821
+ },
822
+ "hasFluffImages": {
823
+ "type": "boolean"
824
+ },
825
+ "_versions": {
826
+ "$ref": "util.json#/$defs/versionsArray"
827
+ }
828
+ },
829
+ "additionalProperties": false,
830
+ "required": [
831
+ "name",
832
+ "source"
833
+ ]
834
+ },
835
+ {
836
+ "type": "object",
837
+ "properties": {
838
+ "name": {
839
+ "type": "string"
840
+ },
841
+ "alias": {
842
+ "$ref": "util.json#/$defs/alias"
843
+ },
844
+ "source": {
845
+ "type": "string"
846
+ },
847
+ "page": {
848
+ "$ref": "util.json#/$defs/page"
849
+ },
850
+ "otherSources": {
851
+ "$ref": "util.json#/$defs/otherSources"
852
+ },
853
+ "additionalSources": {
854
+ "$ref": "util.json#/$defs/additionalSources"
855
+ },
856
+ "reprintedAs": {
857
+ "$ref": "util.json#/$defs/reprintedAs"
858
+ },
859
+ "ability": {
860
+ "$ref": "#/$defs/abilityScores"
861
+ },
862
+ "size": {
863
+ "type": "array",
864
+ "items": {
865
+ "$ref": "util.json#/$defs/size"
866
+ }
867
+ },
868
+ "speed": {
869
+ "$ref": "util.json#/$defs/speed"
870
+ },
871
+ "entries": {
872
+ "type": "array",
873
+ "items": {
874
+ "$ref": "entry.json"
875
+ }
876
+ },
877
+ "darkvision": {
878
+ "type": "integer"
879
+ },
880
+ "blindsight": {
881
+ "type": "integer"
882
+ },
883
+ "feats": {
884
+ "$ref": "util.json#/$defs/additionalFeatsArray"
885
+ },
886
+ "traitTags": {
887
+ "oneOf": [
888
+ {
889
+ "type": "array",
890
+ "items": {
891
+ "$ref": "#/$defs/traitTag"
892
+ }
893
+ },
894
+ {
895
+ "type": "null"
896
+ }
897
+ ]
898
+ },
899
+ "soundClip": {
900
+ "$ref": "entry.json#/$defs/mediaHref"
901
+ },
902
+ "languageProficiencies": {
903
+ "$ref": "util.json#/$defs/languageProficiencies"
904
+ },
905
+ "skillProficiencies": {
906
+ "oneOf": [
907
+ {
908
+ "$ref": "util.json#/$defs/skillProficiencies"
909
+ },
910
+ {
911
+ "type": "null"
912
+ }
913
+ ]
914
+ },
915
+ "toolProficiencies": {
916
+ "$ref": "util.json#/$defs/toolProficiencies"
917
+ },
918
+ "skillToolLanguageProficiencies": {
919
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
920
+ },
921
+ "expertise": {
922
+ "$ref": "util.json#/$defs/expertise"
923
+ },
924
+ "weaponProficiencies": {
925
+ "$ref": "util.json#/$defs/weaponProficiencies"
926
+ },
927
+ "armorProficiencies": {
928
+ "$ref": "util.json#/$defs/armorProficiencies"
929
+ },
930
+ "srd": {
931
+ "$ref": "util.json#/$defs/srd"
932
+ },
933
+ "basicRules": {
934
+ "$ref": "util.json#/$defs/basicRules"
935
+ },
936
+ "lineage": {
937
+ "oneOf": [
938
+ {
939
+ "$ref": "#/$defs/lineage"
940
+ },
941
+ {
942
+ "type": "null"
943
+ }
944
+ ]
945
+ },
946
+ "heightAndWeight": {
947
+ "oneOf": [
948
+ {
949
+ "$ref": "#/$defs/heightAndWeight"
950
+ },
951
+ {
952
+ "type": "null"
953
+ }
954
+ ]
955
+ },
956
+ "additionalSpells": {
957
+ "oneOf": [
958
+ {
959
+ "type": "null"
960
+ },
961
+ {
962
+ "$ref": "util.json#/$defs/additionalSpellsArray"
963
+ }
964
+ ]
965
+ },
966
+ "resist": {
967
+ "oneOf": [
968
+ {
969
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
970
+ },
971
+ {
972
+ "type": "null"
973
+ }
974
+ ]
975
+ },
976
+ "immune": {
977
+ "oneOf": [
978
+ {
979
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
980
+ },
981
+ {
982
+ "type": "null"
983
+ }
984
+ ]
985
+ },
986
+ "vulnerable": {
987
+ "oneOf": [
988
+ {
989
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
990
+ },
991
+ {
992
+ "type": "null"
993
+ }
994
+ ]
995
+ },
996
+ "conditionImmune": {
997
+ "oneOf": [
998
+ {
999
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
1000
+ },
1001
+ {
1002
+ "type": "null"
1003
+ }
1004
+ ]
1005
+ },
1006
+ "creatureTypes": {
1007
+ "type": "array",
1008
+ "items": {
1009
+ "oneOf": [
1010
+ {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "choose": {
1014
+ "type": "array",
1015
+ "items": {
1016
+ "$ref": "util.json#/$defs/creatureType"
1017
+ }
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "choose"
1022
+ ],
1023
+ "additionalProperties": false
1024
+ },
1025
+ {
1026
+ "$ref": "util.json#/$defs/creatureType"
1027
+ }
1028
+ ]
1029
+ }
1030
+ },
1031
+ "creatureTypeTags": {
1032
+ "type": "array",
1033
+ "uniqueItems": true,
1034
+ "minItems": 1,
1035
+ "items": {
1036
+ "type": "string"
1037
+ }
1038
+ },
1039
+ "age": {
1040
+ "$ref": "#/$defs/age"
1041
+ },
1042
+ "hasFluff": {
1043
+ "type": "boolean"
1044
+ },
1045
+ "hasFluffImages": {
1046
+ "type": "boolean"
1047
+ },
1048
+ "_versions": {
1049
+ "$ref": "util.json#/$defs/versionsArray"
1050
+ },
1051
+ "_copy": {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "name": {
1055
+ "type": "string"
1056
+ },
1057
+ "source": {
1058
+ "type": "string"
1059
+ },
1060
+ "pantheon": {
1061
+ "description": "Used in deity data",
1062
+ "type": "string"
1063
+ },
1064
+ "shortName": {
1065
+ "description": "Used in subclass data",
1066
+ "type": "string"
1067
+ },
1068
+ "className": {
1069
+ "description": "Used in subclass data",
1070
+ "type": "string"
1071
+ },
1072
+ "classSource": {
1073
+ "description": "Used in subclass data",
1074
+ "type": "string"
1075
+ },
1076
+ "_mod": {
1077
+ "$ref": "util.json#/$defs/_modObject"
1078
+ },
1079
+ "_trait": {
1080
+ "type": "object",
1081
+ "properties": {
1082
+ "name": {
1083
+ "type": "string"
1084
+ },
1085
+ "source": {
1086
+ "type": "string"
1087
+ }
1088
+ },
1089
+ "required": [
1090
+ "name",
1091
+ "source"
1092
+ ]
1093
+ },
1094
+ "_preserve": {
1095
+ "type": "object",
1096
+ "patternProperties": {
1097
+ ".*": {
1098
+ "const": true
1099
+ }
1100
+ }
1101
+ }
1102
+ },
1103
+ "required": [
1104
+ "name",
1105
+ "source"
1106
+ ],
1107
+ "additionalProperties": false
1108
+ }
1109
+ },
1110
+ "additionalProperties": false,
1111
+ "required": [
1112
+ "_copy"
1113
+ ]
1114
+ }
1115
+ ]
1116
+ },
1117
+ "subrace": {
1118
+ "anyOf": [
1119
+ {
1120
+ "type": "object",
1121
+ "properties": {
1122
+ "name": {
1123
+ "type": "string"
1124
+ },
1125
+ "alias": {
1126
+ "$ref": "util.json#/$defs/alias"
1127
+ },
1128
+ "source": {
1129
+ "type": "string"
1130
+ },
1131
+ "page": {
1132
+ "$ref": "util.json#/$defs/page"
1133
+ },
1134
+ "otherSources": {
1135
+ "$ref": "util.json#/$defs/otherSources"
1136
+ },
1137
+ "additionalSources": {
1138
+ "$ref": "util.json#/$defs/additionalSources"
1139
+ },
1140
+ "reprintedAs": {
1141
+ "$ref": "util.json#/$defs/reprintedAs"
1142
+ },
1143
+ "ability": {
1144
+ "$ref": "#/$defs/abilityScores"
1145
+ },
1146
+ "size": {
1147
+ "type": "array",
1148
+ "items": {
1149
+ "$ref": "util.json#/$defs/size"
1150
+ }
1151
+ },
1152
+ "speed": {
1153
+ "$ref": "util.json#/$defs/speed"
1154
+ },
1155
+ "entries": {
1156
+ "type": "array",
1157
+ "items": {
1158
+ "$ref": "entry.json"
1159
+ }
1160
+ },
1161
+ "darkvision": {
1162
+ "type": "integer"
1163
+ },
1164
+ "blindsight": {
1165
+ "type": "integer"
1166
+ },
1167
+ "feats": {
1168
+ "$ref": "util.json#/$defs/additionalFeatsArray"
1169
+ },
1170
+ "traitTags": {
1171
+ "oneOf": [
1172
+ {
1173
+ "type": "array",
1174
+ "items": {
1175
+ "$ref": "#/$defs/traitTag"
1176
+ }
1177
+ },
1178
+ {
1179
+ "type": "null"
1180
+ }
1181
+ ]
1182
+ },
1183
+ "soundClip": {
1184
+ "$ref": "entry.json#/$defs/mediaHref"
1185
+ },
1186
+ "languageProficiencies": {
1187
+ "$ref": "util.json#/$defs/languageProficiencies"
1188
+ },
1189
+ "skillProficiencies": {
1190
+ "oneOf": [
1191
+ {
1192
+ "$ref": "util.json#/$defs/skillProficiencies"
1193
+ },
1194
+ {
1195
+ "type": "null"
1196
+ }
1197
+ ]
1198
+ },
1199
+ "toolProficiencies": {
1200
+ "$ref": "util.json#/$defs/toolProficiencies"
1201
+ },
1202
+ "skillToolLanguageProficiencies": {
1203
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
1204
+ },
1205
+ "expertise": {
1206
+ "$ref": "util.json#/$defs/expertise"
1207
+ },
1208
+ "weaponProficiencies": {
1209
+ "$ref": "util.json#/$defs/weaponProficiencies"
1210
+ },
1211
+ "armorProficiencies": {
1212
+ "$ref": "util.json#/$defs/armorProficiencies"
1213
+ },
1214
+ "srd": {
1215
+ "$ref": "util.json#/$defs/srd"
1216
+ },
1217
+ "basicRules": {
1218
+ "$ref": "util.json#/$defs/basicRules"
1219
+ },
1220
+ "lineage": {
1221
+ "oneOf": [
1222
+ {
1223
+ "$ref": "#/$defs/lineage"
1224
+ },
1225
+ {
1226
+ "type": "null"
1227
+ }
1228
+ ]
1229
+ },
1230
+ "heightAndWeight": {
1231
+ "oneOf": [
1232
+ {
1233
+ "$ref": "#/$defs/heightAndWeight"
1234
+ },
1235
+ {
1236
+ "type": "null"
1237
+ }
1238
+ ]
1239
+ },
1240
+ "additionalSpells": {
1241
+ "oneOf": [
1242
+ {
1243
+ "type": "null"
1244
+ },
1245
+ {
1246
+ "$ref": "util.json#/$defs/additionalSpellsArray"
1247
+ }
1248
+ ]
1249
+ },
1250
+ "resist": {
1251
+ "oneOf": [
1252
+ {
1253
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
1254
+ },
1255
+ {
1256
+ "type": "null"
1257
+ }
1258
+ ]
1259
+ },
1260
+ "immune": {
1261
+ "oneOf": [
1262
+ {
1263
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
1264
+ },
1265
+ {
1266
+ "type": "null"
1267
+ }
1268
+ ]
1269
+ },
1270
+ "vulnerable": {
1271
+ "oneOf": [
1272
+ {
1273
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
1274
+ },
1275
+ {
1276
+ "type": "null"
1277
+ }
1278
+ ]
1279
+ },
1280
+ "conditionImmune": {
1281
+ "oneOf": [
1282
+ {
1283
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
1284
+ },
1285
+ {
1286
+ "type": "null"
1287
+ }
1288
+ ]
1289
+ },
1290
+ "creatureTypes": {
1291
+ "type": "array",
1292
+ "items": {
1293
+ "oneOf": [
1294
+ {
1295
+ "type": "object",
1296
+ "properties": {
1297
+ "choose": {
1298
+ "type": "array",
1299
+ "items": {
1300
+ "$ref": "util.json#/$defs/creatureType"
1301
+ }
1302
+ }
1303
+ },
1304
+ "required": [
1305
+ "choose"
1306
+ ],
1307
+ "additionalProperties": false
1308
+ },
1309
+ {
1310
+ "$ref": "util.json#/$defs/creatureType"
1311
+ }
1312
+ ]
1313
+ }
1314
+ },
1315
+ "creatureTypeTags": {
1316
+ "type": "array",
1317
+ "uniqueItems": true,
1318
+ "minItems": 1,
1319
+ "items": {
1320
+ "type": "string"
1321
+ }
1322
+ },
1323
+ "age": {
1324
+ "$ref": "#/$defs/age"
1325
+ },
1326
+ "hasFluff": {
1327
+ "type": "boolean"
1328
+ },
1329
+ "hasFluffImages": {
1330
+ "type": "boolean"
1331
+ },
1332
+ "_versions": {
1333
+ "$ref": "util.json#/$defs/versionsArray"
1334
+ },
1335
+ "raceName": {
1336
+ "type": "string"
1337
+ },
1338
+ "raceSource": {
1339
+ "type": "string"
1340
+ },
1341
+ "overwrite": {
1342
+ "description": "Map of 'property' -> true where 'property' is a property on the base race which should be overwritten by that of the subrace",
1343
+ "type": "object"
1344
+ }
1345
+ },
1346
+ "additionalProperties": false,
1347
+ "required": [
1348
+ "source",
1349
+ "raceName",
1350
+ "raceSource"
1351
+ ]
1352
+ },
1353
+ {
1354
+ "type": "object",
1355
+ "properties": {
1356
+ "name": {
1357
+ "type": "string"
1358
+ },
1359
+ "alias": {
1360
+ "$ref": "util.json#/$defs/alias"
1361
+ },
1362
+ "source": {
1363
+ "type": "string"
1364
+ },
1365
+ "page": {
1366
+ "$ref": "util.json#/$defs/page"
1367
+ },
1368
+ "otherSources": {
1369
+ "$ref": "util.json#/$defs/otherSources"
1370
+ },
1371
+ "additionalSources": {
1372
+ "$ref": "util.json#/$defs/additionalSources"
1373
+ },
1374
+ "reprintedAs": {
1375
+ "$ref": "util.json#/$defs/reprintedAs"
1376
+ },
1377
+ "ability": {
1378
+ "$ref": "#/$defs/abilityScores"
1379
+ },
1380
+ "size": {
1381
+ "type": "array",
1382
+ "items": {
1383
+ "$ref": "util.json#/$defs/size"
1384
+ }
1385
+ },
1386
+ "speed": {
1387
+ "$ref": "util.json#/$defs/speed"
1388
+ },
1389
+ "entries": {
1390
+ "type": "array",
1391
+ "items": {
1392
+ "$ref": "entry.json"
1393
+ }
1394
+ },
1395
+ "darkvision": {
1396
+ "type": "integer"
1397
+ },
1398
+ "blindsight": {
1399
+ "type": "integer"
1400
+ },
1401
+ "feats": {
1402
+ "$ref": "util.json#/$defs/additionalFeatsArray"
1403
+ },
1404
+ "traitTags": {
1405
+ "oneOf": [
1406
+ {
1407
+ "type": "array",
1408
+ "items": {
1409
+ "$ref": "#/$defs/traitTag"
1410
+ }
1411
+ },
1412
+ {
1413
+ "type": "null"
1414
+ }
1415
+ ]
1416
+ },
1417
+ "soundClip": {
1418
+ "$ref": "entry.json#/$defs/mediaHref"
1419
+ },
1420
+ "languageProficiencies": {
1421
+ "$ref": "util.json#/$defs/languageProficiencies"
1422
+ },
1423
+ "skillProficiencies": {
1424
+ "oneOf": [
1425
+ {
1426
+ "$ref": "util.json#/$defs/skillProficiencies"
1427
+ },
1428
+ {
1429
+ "type": "null"
1430
+ }
1431
+ ]
1432
+ },
1433
+ "toolProficiencies": {
1434
+ "$ref": "util.json#/$defs/toolProficiencies"
1435
+ },
1436
+ "skillToolLanguageProficiencies": {
1437
+ "$ref": "util.json#/$defs/skillToolLanguageProficiencies"
1438
+ },
1439
+ "expertise": {
1440
+ "$ref": "util.json#/$defs/expertise"
1441
+ },
1442
+ "weaponProficiencies": {
1443
+ "$ref": "util.json#/$defs/weaponProficiencies"
1444
+ },
1445
+ "armorProficiencies": {
1446
+ "$ref": "util.json#/$defs/armorProficiencies"
1447
+ },
1448
+ "srd": {
1449
+ "$ref": "util.json#/$defs/srd"
1450
+ },
1451
+ "basicRules": {
1452
+ "$ref": "util.json#/$defs/basicRules"
1453
+ },
1454
+ "lineage": {
1455
+ "oneOf": [
1456
+ {
1457
+ "$ref": "#/$defs/lineage"
1458
+ },
1459
+ {
1460
+ "type": "null"
1461
+ }
1462
+ ]
1463
+ },
1464
+ "heightAndWeight": {
1465
+ "oneOf": [
1466
+ {
1467
+ "$ref": "#/$defs/heightAndWeight"
1468
+ },
1469
+ {
1470
+ "type": "null"
1471
+ }
1472
+ ]
1473
+ },
1474
+ "additionalSpells": {
1475
+ "oneOf": [
1476
+ {
1477
+ "type": "null"
1478
+ },
1479
+ {
1480
+ "$ref": "util.json#/$defs/additionalSpellsArray"
1481
+ }
1482
+ ]
1483
+ },
1484
+ "resist": {
1485
+ "oneOf": [
1486
+ {
1487
+ "$ref": "util.json#/$defs/damageResistArrayPlayer"
1488
+ },
1489
+ {
1490
+ "type": "null"
1491
+ }
1492
+ ]
1493
+ },
1494
+ "immune": {
1495
+ "oneOf": [
1496
+ {
1497
+ "$ref": "util.json#/$defs/damageImmunityArrayPlayer"
1498
+ },
1499
+ {
1500
+ "type": "null"
1501
+ }
1502
+ ]
1503
+ },
1504
+ "vulnerable": {
1505
+ "oneOf": [
1506
+ {
1507
+ "$ref": "util.json#/$defs/damageVulnerabilityArrayPlayer"
1508
+ },
1509
+ {
1510
+ "type": "null"
1511
+ }
1512
+ ]
1513
+ },
1514
+ "conditionImmune": {
1515
+ "oneOf": [
1516
+ {
1517
+ "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
1518
+ },
1519
+ {
1520
+ "type": "null"
1521
+ }
1522
+ ]
1523
+ },
1524
+ "creatureTypes": {
1525
+ "type": "array",
1526
+ "items": {
1527
+ "oneOf": [
1528
+ {
1529
+ "type": "object",
1530
+ "properties": {
1531
+ "choose": {
1532
+ "type": "array",
1533
+ "items": {
1534
+ "$ref": "util.json#/$defs/creatureType"
1535
+ }
1536
+ }
1537
+ },
1538
+ "required": [
1539
+ "choose"
1540
+ ],
1541
+ "additionalProperties": false
1542
+ },
1543
+ {
1544
+ "$ref": "util.json#/$defs/creatureType"
1545
+ }
1546
+ ]
1547
+ }
1548
+ },
1549
+ "creatureTypeTags": {
1550
+ "type": "array",
1551
+ "uniqueItems": true,
1552
+ "minItems": 1,
1553
+ "items": {
1554
+ "type": "string"
1555
+ }
1556
+ },
1557
+ "age": {
1558
+ "$ref": "#/$defs/age"
1559
+ },
1560
+ "hasFluff": {
1561
+ "type": "boolean"
1562
+ },
1563
+ "hasFluffImages": {
1564
+ "type": "boolean"
1565
+ },
1566
+ "_versions": {
1567
+ "$ref": "util.json#/$defs/versionsArray"
1568
+ },
1569
+ "raceName": {
1570
+ "type": "string"
1571
+ },
1572
+ "raceSource": {
1573
+ "type": "string"
1574
+ },
1575
+ "overwrite": {
1576
+ "description": "Map of 'property' -> true where 'property' is a property on the base race which should be overwritten by that of the subrace",
1577
+ "type": "object"
1578
+ },
1579
+ "_copy": {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "name": {
1583
+ "type": "string"
1584
+ },
1585
+ "source": {
1586
+ "type": "string"
1587
+ },
1588
+ "pantheon": {
1589
+ "description": "Used in deity data",
1590
+ "type": "string"
1591
+ },
1592
+ "shortName": {
1593
+ "description": "Used in subclass data",
1594
+ "type": "string"
1595
+ },
1596
+ "className": {
1597
+ "description": "Used in subclass data",
1598
+ "type": "string"
1599
+ },
1600
+ "classSource": {
1601
+ "description": "Used in subclass data",
1602
+ "type": "string"
1603
+ },
1604
+ "_mod": {
1605
+ "$ref": "util.json#/$defs/_modObject"
1606
+ },
1607
+ "_trait": {
1608
+ "type": "object",
1609
+ "properties": {
1610
+ "name": {
1611
+ "type": "string"
1612
+ },
1613
+ "source": {
1614
+ "type": "string"
1615
+ }
1616
+ },
1617
+ "required": [
1618
+ "name",
1619
+ "source"
1620
+ ]
1621
+ },
1622
+ "_preserve": {
1623
+ "type": "object",
1624
+ "patternProperties": {
1625
+ ".*": {
1626
+ "const": true
1627
+ }
1628
+ }
1629
+ }
1630
+ },
1631
+ "required": [
1632
+ "name",
1633
+ "source"
1634
+ ],
1635
+ "additionalProperties": false
1636
+ }
1637
+ },
1638
+ "additionalProperties": false,
1639
+ "required": [
1640
+ "_copy"
1641
+ ]
1642
+ }
1643
+ ]
1644
+ },
1645
+ "fluff": {
1646
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source.",
1647
+ "anyOf": [
1648
+ {
1649
+ "$ref": "util.json#/$defs/fluffObject"
1650
+ },
1651
+ {
1652
+ "description": "References \"raceFluff\" array items",
1653
+ "type": "object",
1654
+ "properties": {
1655
+ "_raceFluff": {
1656
+ "type": "object",
1657
+ "properties": {
1658
+ "name": {
1659
+ "type": "string"
1660
+ },
1661
+ "source": {
1662
+ "type": "string"
1663
+ }
1664
+ }
1665
+ },
1666
+ "_appendRaceFluff": {
1667
+ "type": "object",
1668
+ "properties": {
1669
+ "name": {
1670
+ "type": "string"
1671
+ },
1672
+ "source": {
1673
+ "type": "string"
1674
+ }
1675
+ }
1676
+ }
1677
+ }
1678
+ }
1679
+ ]
1680
+ }
1681
+ },
1682
+ "properties": {
1683
+ "race": {
1684
+ "type": "array",
1685
+ "uniqueItems": true,
1686
+ "minItems": 1,
1687
+ "items": {
1688
+ "$ref": "#/$defs/race"
1689
+ }
1690
+ },
1691
+ "subrace": {
1692
+ "type": "array",
1693
+ "uniqueItems": true,
1694
+ "minItems": 1,
1695
+ "items": {
1696
+ "$ref": "#/$defs/subrace"
1697
+ }
1698
+ },
1699
+ "_meta": {
1700
+ "$ref": "util.json#/$defs/metaBlock"
1701
+ }
1702
+ },
1703
+ "required": [
1704
+ "race",
1705
+ "subrace"
1706
+ ],
1707
+ "additionalProperties": false
1708
+ }