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,3766 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "version": "1.21.9",
4
+ "title": "Bestiary Schema",
5
+ "$id": "bestiary.json",
6
+ "type": "object",
7
+ "$defs": {
8
+ "align": {
9
+ "oneOf": [
10
+ {
11
+ "$ref": "../util.json#/$defs/alignment"
12
+ },
13
+ {
14
+ "type": "object",
15
+ "properties": {
16
+ "alignment": {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "../util.json#/$defs/alignment"
20
+ }
21
+ },
22
+ "chance": {
23
+ "type": "integer"
24
+ },
25
+ "note": {
26
+ "type": "string"
27
+ }
28
+ },
29
+ "additionalProperties": false,
30
+ "required": [
31
+ "alignment"
32
+ ]
33
+ },
34
+ {
35
+ "type": "object",
36
+ "properties": {
37
+ "special": {
38
+ "type": "string"
39
+ }
40
+ },
41
+ "additionalProperties": false,
42
+ "required": [
43
+ "special"
44
+ ]
45
+ }
46
+ ]
47
+ },
48
+ "acItem": {
49
+ "oneOf": [
50
+ {
51
+ "type": "object",
52
+ "properties": {
53
+ "ac": {
54
+ "type": "integer"
55
+ },
56
+ "from": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string"
60
+ }
61
+ },
62
+ "condition": {
63
+ "type": "string"
64
+ },
65
+ "braces": {
66
+ "type": "boolean"
67
+ }
68
+ },
69
+ "required": [
70
+ "ac"
71
+ ],
72
+ "additionalProperties": false
73
+ },
74
+ {
75
+ "type": "object",
76
+ "properties": {
77
+ "special": {
78
+ "type": "string"
79
+ }
80
+ },
81
+ "required": [
82
+ "special"
83
+ ],
84
+ "additionalProperties": false
85
+ },
86
+ {
87
+ "type": "integer"
88
+ }
89
+ ]
90
+ },
91
+ "creatureData": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string"
96
+ },
97
+ "shortName": {
98
+ "description": "Used anywhere a shortened form of the creatures name is required (e.g. in legendary action headers).\nIf not supplied, a shortened name will be automatically generated from the creature's full name.\nAlternatively use \"true\" if the \"shortName\" should be an exact copy of the creature's \"name\".",
99
+ "type": [
100
+ "string",
101
+ "boolean"
102
+ ]
103
+ },
104
+ "alias": {
105
+ "$ref": "../util.json#/$defs/alias"
106
+ },
107
+ "group": {
108
+ "description": "A group name, indexed by search. E.g. searching \"Lycanthrope\" would otherwise fail to find anything.\nOnly works on the bestiary page, not in the full site search.",
109
+ "type": [
110
+ "null",
111
+ "array"
112
+ ],
113
+ "items": {
114
+ "type": "string"
115
+ }
116
+ },
117
+ "level": {
118
+ "description": "Used in sidekicks, which can have levels (and generally do not have alignment)",
119
+ "type": "integer"
120
+ },
121
+ "size": {
122
+ "type": "array",
123
+ "items": {
124
+ "$ref": "../util.json#/$defs/size"
125
+ },
126
+ "uniqueItems": true
127
+ },
128
+ "sizeNote": {
129
+ "type": "string"
130
+ },
131
+ "type": {
132
+ "oneOf": [
133
+ {
134
+ "type": "object",
135
+ "properties": {
136
+ "type": {
137
+ "$ref": "../util.json#/$defs/creatureType"
138
+ },
139
+ "swarmSize": {
140
+ "$ref": "../util.json#/$defs/size",
141
+ "description": "Size of the individual creatures that make up the swarm."
142
+ },
143
+ "tags": {
144
+ "type": "array",
145
+ "uniqueItems": true,
146
+ "items": {
147
+ "oneOf": [
148
+ {
149
+ "type": "string"
150
+ },
151
+ {
152
+ "type": "object",
153
+ "properties": {
154
+ "tag": {
155
+ "type": "string"
156
+ },
157
+ "prefix": {
158
+ "type": "string"
159
+ }
160
+ },
161
+ "required": [
162
+ "tag",
163
+ "prefix"
164
+ ],
165
+ "additionalProperties": false
166
+ }
167
+ ]
168
+ }
169
+ },
170
+ "sidekickType": {
171
+ "type": "string",
172
+ "enum": [
173
+ "expert",
174
+ "spellcaster",
175
+ "warrior"
176
+ ]
177
+ },
178
+ "sidekickTags": {
179
+ "type": "array",
180
+ "uniqueItems": true,
181
+ "items": {
182
+ "oneOf": [
183
+ {
184
+ "type": "string"
185
+ },
186
+ {
187
+ "type": "object",
188
+ "properties": {
189
+ "tag": {
190
+ "type": "string"
191
+ },
192
+ "prefix": {
193
+ "type": "string"
194
+ }
195
+ },
196
+ "required": [
197
+ "tag",
198
+ "prefix"
199
+ ],
200
+ "additionalProperties": false
201
+ }
202
+ ]
203
+ }
204
+ },
205
+ "sidekickHidden": {
206
+ "const": true
207
+ }
208
+ },
209
+ "required": [
210
+ "type"
211
+ ],
212
+ "additionalProperties": false
213
+ },
214
+ {
215
+ "$ref": "../util.json#/$defs/creatureType"
216
+ }
217
+ ]
218
+ },
219
+ "source": {
220
+ "type": "string"
221
+ },
222
+ "sourceSub": {
223
+ "type": "string",
224
+ "description": "Sub-source text that is shown when hovered."
225
+ },
226
+ "otherSources": {
227
+ "$ref": "../util.json#/$defs/otherSources"
228
+ },
229
+ "reprintedAs": {
230
+ "$ref": "../util.json#/$defs/reprintedAs"
231
+ },
232
+ "alignment": {
233
+ "type": "array",
234
+ "items": {
235
+ "$ref": "#/$defs/align"
236
+ }
237
+ },
238
+ "alignmentPrefix": {
239
+ "type": "string"
240
+ },
241
+ "ac": {
242
+ "type": "array",
243
+ "items": {
244
+ "$ref": "#/$defs/acItem"
245
+ }
246
+ },
247
+ "hp": {
248
+ "oneOf": [
249
+ {
250
+ "type": "object",
251
+ "properties": {
252
+ "average": {
253
+ "type": "integer"
254
+ },
255
+ "formula": {
256
+ "type": "string"
257
+ }
258
+ },
259
+ "required": [
260
+ "average",
261
+ "formula"
262
+ ],
263
+ "additionalProperties": false
264
+ },
265
+ {
266
+ "type": "object",
267
+ "properties": {
268
+ "special": {
269
+ "type": "string"
270
+ }
271
+ },
272
+ "additionalProperties": false
273
+ }
274
+ ]
275
+ },
276
+ "speed": {
277
+ "$ref": "../util.json#/$defs/speed"
278
+ },
279
+ "str": {
280
+ "type": [
281
+ "integer",
282
+ "null"
283
+ ]
284
+ },
285
+ "dex": {
286
+ "type": [
287
+ "integer",
288
+ "null"
289
+ ]
290
+ },
291
+ "con": {
292
+ "type": [
293
+ "integer",
294
+ "null"
295
+ ]
296
+ },
297
+ "int": {
298
+ "type": [
299
+ "integer",
300
+ "null"
301
+ ]
302
+ },
303
+ "wis": {
304
+ "type": [
305
+ "integer",
306
+ "null"
307
+ ]
308
+ },
309
+ "cha": {
310
+ "type": [
311
+ "integer",
312
+ "null"
313
+ ]
314
+ },
315
+ "save": {
316
+ "type": "object",
317
+ "properties": {
318
+ "str": {
319
+ "type": "string"
320
+ },
321
+ "dex": {
322
+ "type": "string"
323
+ },
324
+ "con": {
325
+ "type": "string"
326
+ },
327
+ "int": {
328
+ "type": "string"
329
+ },
330
+ "wis": {
331
+ "type": "string"
332
+ },
333
+ "cha": {
334
+ "type": "string"
335
+ },
336
+ "special": {
337
+ "description": "For use in homebrew.",
338
+ "$ref": "../entry.json"
339
+ }
340
+ },
341
+ "additionalProperties": false
342
+ },
343
+ "skill": {
344
+ "type": "object",
345
+ "properties": {
346
+ "acrobatics": {
347
+ "type": "string"
348
+ },
349
+ "animal handling": {
350
+ "type": "string"
351
+ },
352
+ "arcana": {
353
+ "type": "string"
354
+ },
355
+ "athletics": {
356
+ "type": "string"
357
+ },
358
+ "deception": {
359
+ "type": "string"
360
+ },
361
+ "history": {
362
+ "type": "string"
363
+ },
364
+ "insight": {
365
+ "type": "string"
366
+ },
367
+ "intimidation": {
368
+ "type": "string"
369
+ },
370
+ "investigation": {
371
+ "type": "string"
372
+ },
373
+ "medicine": {
374
+ "type": "string"
375
+ },
376
+ "nature": {
377
+ "type": "string"
378
+ },
379
+ "perception": {
380
+ "type": "string"
381
+ },
382
+ "performance": {
383
+ "type": "string"
384
+ },
385
+ "persuasion": {
386
+ "type": "string"
387
+ },
388
+ "religion": {
389
+ "type": "string"
390
+ },
391
+ "sleight of hand": {
392
+ "type": "string"
393
+ },
394
+ "stealth": {
395
+ "type": "string"
396
+ },
397
+ "survival": {
398
+ "type": "string"
399
+ },
400
+ "other": {
401
+ "type": "array",
402
+ "items": {
403
+ "type": "object",
404
+ "properties": {
405
+ "oneOf": {
406
+ "type": "object",
407
+ "properties": {
408
+ "acrobatics": {
409
+ "type": "string"
410
+ },
411
+ "animal handling": {
412
+ "type": "string"
413
+ },
414
+ "arcana": {
415
+ "type": "string"
416
+ },
417
+ "athletics": {
418
+ "type": "string"
419
+ },
420
+ "deception": {
421
+ "type": "string"
422
+ },
423
+ "history": {
424
+ "type": "string"
425
+ },
426
+ "insight": {
427
+ "type": "string"
428
+ },
429
+ "intimidation": {
430
+ "type": "string"
431
+ },
432
+ "investigation": {
433
+ "type": "string"
434
+ },
435
+ "medicine": {
436
+ "type": "string"
437
+ },
438
+ "nature": {
439
+ "type": "string"
440
+ },
441
+ "perception": {
442
+ "type": "string"
443
+ },
444
+ "performance": {
445
+ "type": "string"
446
+ },
447
+ "persuasion": {
448
+ "type": "string"
449
+ },
450
+ "religion": {
451
+ "type": "string"
452
+ },
453
+ "sleight of hand": {
454
+ "type": "string"
455
+ },
456
+ "stealth": {
457
+ "type": "string"
458
+ },
459
+ "survival": {
460
+ "type": "string"
461
+ }
462
+ }
463
+ }
464
+ }
465
+ }
466
+ },
467
+ "special": {
468
+ "description": "For use in homebrew.",
469
+ "$ref": "../entry.json"
470
+ }
471
+ },
472
+ "additionalProperties": false
473
+ },
474
+ "senses": {
475
+ "oneOf": [
476
+ {
477
+ "type": "array",
478
+ "items": {
479
+ "type": "string"
480
+ }
481
+ },
482
+ {
483
+ "type": "null"
484
+ }
485
+ ]
486
+ },
487
+ "passive": {
488
+ "type": [
489
+ "integer",
490
+ "string",
491
+ "null"
492
+ ]
493
+ },
494
+ "languages": {
495
+ "oneOf": [
496
+ {
497
+ "type": "array",
498
+ "minItems": 1,
499
+ "items": {
500
+ "type": "string"
501
+ }
502
+ },
503
+ {
504
+ "type": "null"
505
+ }
506
+ ]
507
+ },
508
+ "pbNote": {
509
+ "type": "string"
510
+ },
511
+ "cr": {
512
+ "oneOf": [
513
+ {
514
+ "type": "string"
515
+ },
516
+ {
517
+ "type": "object",
518
+ "properties": {
519
+ "cr": {
520
+ "type": "string"
521
+ },
522
+ "lair": {
523
+ "type": "string"
524
+ },
525
+ "coven": {
526
+ "type": "string"
527
+ },
528
+ "xp": {
529
+ "type": "integer"
530
+ }
531
+ },
532
+ "additionalProperties": false,
533
+ "required": [
534
+ "cr"
535
+ ]
536
+ }
537
+ ]
538
+ },
539
+ "vulnerable": {
540
+ "$ref": "../util.json#/$defs/damageVulnerabilityArray"
541
+ },
542
+ "resist": {
543
+ "$ref": "../util.json#/$defs/damageResistArray"
544
+ },
545
+ "immune": {
546
+ "$ref": "../util.json#/$defs/damageImmunityArray"
547
+ },
548
+ "conditionImmune": {
549
+ "$ref": "../util.json#/$defs/conditionImmunityArray"
550
+ },
551
+ "spellcasting": {
552
+ "oneOf": [
553
+ {
554
+ "type": "array",
555
+ "items": {
556
+ "$ref": "../entry.json#/$defs/entrySpellcasting"
557
+ }
558
+ },
559
+ {
560
+ "type": "null"
561
+ }
562
+ ]
563
+ },
564
+ "trait": {
565
+ "oneOf": [
566
+ {
567
+ "type": "array",
568
+ "minItems": 1,
569
+ "items": {
570
+ "type": "object",
571
+ "properties": {
572
+ "name": {
573
+ "type": "string"
574
+ },
575
+ "entries": {
576
+ "type": "array",
577
+ "items": {
578
+ "$ref": "../entry.json"
579
+ }
580
+ },
581
+ "type": {
582
+ "type": "string",
583
+ "enum": [
584
+ "entries",
585
+ "inset"
586
+ ]
587
+ },
588
+ "sort": {
589
+ "description": "Forces a sort order. Traits with sort orders will always be arranged before those without.",
590
+ "type": "integer"
591
+ }
592
+ },
593
+ "required": [
594
+ "name",
595
+ "entries"
596
+ ],
597
+ "additionalProperties": false
598
+ }
599
+ },
600
+ {
601
+ "type": "null"
602
+ }
603
+ ]
604
+ },
605
+ "actionNote": {
606
+ "type": "string"
607
+ },
608
+ "actionHeader": {
609
+ "type": "array",
610
+ "minItems": 1,
611
+ "items": {
612
+ "$ref": "../entry.json"
613
+ }
614
+ },
615
+ "action": {
616
+ "oneOf": [
617
+ {
618
+ "type": "array",
619
+ "minItems": 1,
620
+ "items": {
621
+ "type": "object",
622
+ "properties": {
623
+ "name": {
624
+ "type": "string"
625
+ },
626
+ "entries": {
627
+ "type": "array",
628
+ "items": {
629
+ "$ref": "../entry.json"
630
+ }
631
+ }
632
+ },
633
+ "required": [
634
+ "name",
635
+ "entries"
636
+ ],
637
+ "additionalProperties": false
638
+ }
639
+ },
640
+ {
641
+ "type": "null"
642
+ }
643
+ ]
644
+ },
645
+ "bonusNote": {
646
+ "type": "string"
647
+ },
648
+ "bonusHeader": {
649
+ "type": "array",
650
+ "minItems": 1,
651
+ "items": {
652
+ "$ref": "../entry.json"
653
+ }
654
+ },
655
+ "bonus": {
656
+ "type": "array",
657
+ "minItems": 1,
658
+ "items": {
659
+ "type": "object",
660
+ "properties": {
661
+ "name": {
662
+ "type": "string"
663
+ },
664
+ "entries": {
665
+ "type": "array",
666
+ "items": {
667
+ "$ref": "../entry.json"
668
+ }
669
+ }
670
+ },
671
+ "required": [
672
+ "name",
673
+ "entries"
674
+ ],
675
+ "additionalProperties": false
676
+ }
677
+ },
678
+ "reactionNote": {
679
+ "type": "string"
680
+ },
681
+ "reactionHeader": {
682
+ "type": "array",
683
+ "minItems": 1,
684
+ "items": {
685
+ "$ref": "../entry.json"
686
+ }
687
+ },
688
+ "reaction": {
689
+ "type": "array",
690
+ "minItems": 1,
691
+ "items": {
692
+ "type": "object",
693
+ "properties": {
694
+ "name": {
695
+ "type": "string"
696
+ },
697
+ "entries": {
698
+ "type": "array",
699
+ "items": {
700
+ "$ref": "../entry.json"
701
+ }
702
+ }
703
+ },
704
+ "required": [
705
+ "name",
706
+ "entries"
707
+ ],
708
+ "additionalProperties": false
709
+ }
710
+ },
711
+ "legendaryGroup": {
712
+ "type": "object",
713
+ "properties": {
714
+ "name": {
715
+ "type": "string"
716
+ },
717
+ "source": {
718
+ "type": "string"
719
+ }
720
+ }
721
+ },
722
+ "legendaryActions": {
723
+ "type": "number"
724
+ },
725
+ "legendaryHeader": {
726
+ "type": "array",
727
+ "minItems": 1,
728
+ "items": {
729
+ "$ref": "../entry.json"
730
+ }
731
+ },
732
+ "legendary": {
733
+ "oneOf": [
734
+ {
735
+ "type": "array",
736
+ "minItems": 1,
737
+ "items": {
738
+ "type": "object",
739
+ "properties": {
740
+ "name": {
741
+ "type": "string"
742
+ },
743
+ "entries": {
744
+ "type": "array",
745
+ "items": {
746
+ "$ref": "../entry.json"
747
+ }
748
+ }
749
+ },
750
+ "required": [
751
+ "entries"
752
+ ],
753
+ "additionalProperties": false
754
+ }
755
+ },
756
+ {
757
+ "type": "null"
758
+ }
759
+ ]
760
+ },
761
+ "mythicHeader": {
762
+ "type": "array",
763
+ "minItems": 1,
764
+ "items": {
765
+ "$ref": "../entry.json"
766
+ }
767
+ },
768
+ "mythic": {
769
+ "type": "array",
770
+ "minItems": 1,
771
+ "items": {
772
+ "type": "object",
773
+ "properties": {
774
+ "name": {
775
+ "type": "string"
776
+ },
777
+ "entries": {
778
+ "type": "array",
779
+ "items": {
780
+ "$ref": "../entry.json"
781
+ }
782
+ }
783
+ },
784
+ "required": [
785
+ "entries"
786
+ ],
787
+ "additionalProperties": false
788
+ }
789
+ },
790
+ "variant": {
791
+ "type": "array",
792
+ "items": {
793
+ "$ref": "#/$defs/entryVariantBestiary"
794
+ }
795
+ },
796
+ "page": {
797
+ "$ref": "../util.json#/$defs/page"
798
+ },
799
+ "familiar": {
800
+ "type": "boolean"
801
+ },
802
+ "additionalSources": {
803
+ "$ref": "../util.json#/$defs/additionalSources"
804
+ },
805
+ "hasToken": {
806
+ "type": "boolean"
807
+ },
808
+ "tokenUrl": {
809
+ "type": "string"
810
+ },
811
+ "altArt": {
812
+ "type": "array",
813
+ "items": {
814
+ "anyOf": [
815
+ {
816
+ "type": "object",
817
+ "properties": {
818
+ "name": {
819
+ "type": "string"
820
+ },
821
+ "source": {
822
+ "type": "string"
823
+ },
824
+ "page": {
825
+ "$ref": "../util.json#/$defs/page"
826
+ }
827
+ },
828
+ "required": [
829
+ "name",
830
+ "source"
831
+ ]
832
+ },
833
+ {
834
+ "type": "object",
835
+ "description": "An URL pointing to an alternative token for the creature.",
836
+ "properties": {
837
+ "tokenUrl": {
838
+ "type": "string"
839
+ }
840
+ },
841
+ "required": [
842
+ "tokenUrl"
843
+ ],
844
+ "additionalProperties": false
845
+ }
846
+ ]
847
+ }
848
+ },
849
+ "isNamedCreature": {
850
+ "type": "boolean"
851
+ },
852
+ "isNpc": {
853
+ "description": "Used to flag adventure NPCs",
854
+ "type": "boolean"
855
+ },
856
+ "environment": {
857
+ "type": "array",
858
+ "minItems": 1,
859
+ "items": {
860
+ "type": "string",
861
+ "examples": [
862
+ "underwater",
863
+ "coastal",
864
+ "mountain",
865
+ "grassland",
866
+ "hill",
867
+ "arctic",
868
+ "urban",
869
+ "forest",
870
+ "swamp",
871
+ "underdark",
872
+ "desert"
873
+ ]
874
+ }
875
+ },
876
+ "soundClip": {
877
+ "$ref": "../entry.json#/$defs/mediaHref"
878
+ },
879
+ "dragonCastingColor": {
880
+ "type": "string",
881
+ "examples": [
882
+ "black",
883
+ "blue",
884
+ "green",
885
+ "red",
886
+ "white",
887
+ "brass",
888
+ "bronze",
889
+ "copper",
890
+ "gold",
891
+ "silver",
892
+ "deep"
893
+ ]
894
+ },
895
+ "dragonAge": {
896
+ "type": "string",
897
+ "examples": [
898
+ "young",
899
+ "adult",
900
+ "wyrmling",
901
+ "greatwyrm",
902
+ "ancient",
903
+ "aspect"
904
+ ]
905
+ },
906
+ "traitTags": {
907
+ "type": "array",
908
+ "items": {
909
+ "type": "string",
910
+ "enum": [
911
+ "Aggressive",
912
+ "Ambusher",
913
+ "Amorphous",
914
+ "Amphibious",
915
+ "Antimagic Susceptibility",
916
+ "Brute",
917
+ "Charge",
918
+ "Damage Absorption",
919
+ "Death Burst",
920
+ "Devil's Sight",
921
+ "False Appearance",
922
+ "Fey Ancestry",
923
+ "Flyby",
924
+ "Hold Breath",
925
+ "Illumination",
926
+ "Immutable Form",
927
+ "Incorporeal Movement",
928
+ "Keen Senses",
929
+ "Legendary Resistances",
930
+ "Light Sensitivity",
931
+ "Magic Resistance",
932
+ "Magic Weapons",
933
+ "Pack Tactics",
934
+ "Pounce",
935
+ "Rampage",
936
+ "Reckless",
937
+ "Regeneration",
938
+ "Rejuvenation",
939
+ "Shapechanger",
940
+ "Siege Monster",
941
+ "Sneak Attack",
942
+ "Spell Immunity",
943
+ "Spider Climb",
944
+ "Sunlight Sensitivity",
945
+ "Tree Stride",
946
+ "Turn Immunity",
947
+ "Turn Resistance",
948
+ "Undead Fortitude",
949
+ "Unusual Nature",
950
+ "Water Breathing",
951
+ "Web Sense",
952
+ "Web Walker"
953
+ ]
954
+ }
955
+ },
956
+ "actionTags": {
957
+ "type": "array",
958
+ "items": {
959
+ "type": "string",
960
+ "enum": [
961
+ "Breath Weapon",
962
+ "Frightful Presence",
963
+ "Multiattack",
964
+ "Parry",
965
+ "Shapechanger",
966
+ "Swallow",
967
+ "Teleport",
968
+ "Tentacles"
969
+ ]
970
+ }
971
+ },
972
+ "languageTags": {
973
+ "type": "array",
974
+ "items": {
975
+ "type": "string",
976
+ "description": "X: Any (Choose)\n XX: All\n CS: Can't Speak Known Languages\n LF: Languages Known in Life\n TP: Telepathy\n OTH: Other\n -\n AB: Abyssal\n AQ: Aquan\n AU: Auran\n C: Common\n CE: Celestial\n D: Dwarvish\n DR: Draconic\n DS: Deep Speech\n DU: Druidic\n E: Elvish\n G: Gnomish\n GI: Giant\n GO: Goblin\n GTH: Gith\n H: Halfling\n I: Infernal\n IG: Ignan\n O: Orc\n P: Primordial\n S: Sylvan\n T: Terran\n TC: Thieves' cant\n U: Undercommon\n ",
977
+ "enum": [
978
+ "AB",
979
+ "AQ",
980
+ "AU",
981
+ "C",
982
+ "CE",
983
+ "CS",
984
+ "D",
985
+ "DR",
986
+ "DS",
987
+ "DU",
988
+ "E",
989
+ "G",
990
+ "GI",
991
+ "GO",
992
+ "GTH",
993
+ "H",
994
+ "I",
995
+ "IG",
996
+ "LF",
997
+ "O",
998
+ "OTH",
999
+ "P",
1000
+ "S",
1001
+ "T",
1002
+ "TC",
1003
+ "TP",
1004
+ "U",
1005
+ "X",
1006
+ "XX"
1007
+ ]
1008
+ }
1009
+ },
1010
+ "senseTags": {
1011
+ "type": "array",
1012
+ "items": {
1013
+ "type": "string",
1014
+ "description": "B: Blindsight\n D: Darkvision\n SD: Superior Darkvision\n T: Tremorsense\n U: Truesight",
1015
+ "enum": [
1016
+ "B",
1017
+ "D",
1018
+ "SD",
1019
+ "T",
1020
+ "U"
1021
+ ]
1022
+ }
1023
+ },
1024
+ "spellcastingTags": {
1025
+ "type": "array",
1026
+ "items": {
1027
+ "type": "string",
1028
+ "description": "P: Psionics\n I: Innate\n F: Form Only\n S: Shared\n O: Other\n CA: Class, Artificer\n CB: Class, Bard\n CC: Class, Cleric\n CD: Class, Druid\n CP: Class, Paladin\n CR: Class, Ranger\n CS: Class, Sorcerer\n CL: Class, Warlock\n CW: Class, Wizard",
1029
+ "enum": [
1030
+ "P",
1031
+ "I",
1032
+ "F",
1033
+ "S",
1034
+ "O",
1035
+ "CA",
1036
+ "CB",
1037
+ "CC",
1038
+ "CD",
1039
+ "CP",
1040
+ "CR",
1041
+ "CS",
1042
+ "CL",
1043
+ "CW"
1044
+ ]
1045
+ }
1046
+ },
1047
+ "damageTags": {
1048
+ "type": "array",
1049
+ "items": {
1050
+ "$ref": "../util.json#/$defs/dataDamageTags"
1051
+ }
1052
+ },
1053
+ "damageTagsSpell": {
1054
+ "type": "array",
1055
+ "items": {
1056
+ "$ref": "../util.json#/$defs/dataDamageTags"
1057
+ }
1058
+ },
1059
+ "damageTagsLegendary": {
1060
+ "type": "array",
1061
+ "items": {
1062
+ "$ref": "../util.json#/$defs/dataDamageTags"
1063
+ }
1064
+ },
1065
+ "miscTags": {
1066
+ "type": "array",
1067
+ "items": {
1068
+ "description": "AOE: Has Areas of Effect\n HPR: Has HP Reduction\n MW: Has Weapon Attacks, Melee\n RW: Has Weapon Attacks, Ranged\n RCH: Has Reach Attacks\n RNG: Has Ranged Weapons\n THW: Has Thrown Weapons",
1069
+ "enum": [
1070
+ "AOE",
1071
+ "HPR",
1072
+ "MW",
1073
+ "RW",
1074
+ "RCH",
1075
+ "RNG",
1076
+ "THW"
1077
+ ]
1078
+ }
1079
+ },
1080
+ "conditionInflict": {
1081
+ "$ref": "../util.json#/$defs/tagsConditions"
1082
+ },
1083
+ "conditionInflictLegendary": {
1084
+ "$ref": "../util.json#/$defs/tagsConditions"
1085
+ },
1086
+ "conditionInflictSpell": {
1087
+ "$ref": "../util.json#/$defs/tagsConditions"
1088
+ },
1089
+ "footer": {
1090
+ "description": "Intended for homebrew use only.",
1091
+ "type": "array",
1092
+ "items": {
1093
+ "$ref": "../entry.json"
1094
+ }
1095
+ },
1096
+ "srd": {
1097
+ "$ref": "../util.json#/$defs/srd"
1098
+ },
1099
+ "basicRules": {
1100
+ "$ref": "../util.json#/$defs/basicRules"
1101
+ },
1102
+ "summonedBySpell": {
1103
+ "description": "The spell used to summon this creature; specifically for TCE-esque summon spells.",
1104
+ "type": "string"
1105
+ },
1106
+ "summonedBySpellLevel": {
1107
+ "description": "The level of the spell used to summon this creature; specifically for TCE-esque summon spells.",
1108
+ "type": "integer"
1109
+ },
1110
+ "summonedByClass": {
1111
+ "description": "The class which can summon this creature; e.g. for those granted by some TCE class features.",
1112
+ "type": "string"
1113
+ },
1114
+ "_isCopy": {
1115
+ "description": "An internal flag indicating this creature is a copy of another, and is a temporary/placeholder entry which will be factored out using the \"_copy\" format at a later date.",
1116
+ "type": "boolean"
1117
+ },
1118
+ "_versions": {
1119
+ "type": "array",
1120
+ "items": {
1121
+ "$ref": "#/$defs/creatureVersion"
1122
+ }
1123
+ },
1124
+ "hasFluff": {
1125
+ "type": "boolean"
1126
+ },
1127
+ "hasFluffImages": {
1128
+ "type": "boolean"
1129
+ },
1130
+ "externalSources": {
1131
+ "description": "For homebrew use only.",
1132
+ "type": "array",
1133
+ "items": {
1134
+ "type": "object",
1135
+ "properties": {
1136
+ "entry": {
1137
+ "$ref": "../entry.json"
1138
+ }
1139
+ },
1140
+ "required": [
1141
+ "entry"
1142
+ ],
1143
+ "additionalProperties": false
1144
+ }
1145
+ },
1146
+ "fluff": {
1147
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
1148
+ "anyOf": [
1149
+ {
1150
+ "$ref": "../util.json#/$defs/fluffObject"
1151
+ },
1152
+ {
1153
+ "description": "Reference \"monsterFluff\" array items",
1154
+ "type": "object",
1155
+ "properties": {
1156
+ "_monsterFluff": {
1157
+ "type": "object",
1158
+ "properties": {
1159
+ "name": {
1160
+ "type": "string"
1161
+ },
1162
+ "source": {
1163
+ "type": "string"
1164
+ }
1165
+ }
1166
+ },
1167
+ "_appendMonsterFluff": {
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "name": {
1171
+ "type": "string"
1172
+ },
1173
+ "source": {
1174
+ "type": "string"
1175
+ }
1176
+ }
1177
+ }
1178
+ }
1179
+ }
1180
+ ]
1181
+ },
1182
+ "foundryImg": {
1183
+ "$ref": "../util.json#/$defs/foundryImg"
1184
+ }
1185
+ },
1186
+ "additionalProperties": false
1187
+ },
1188
+ "creature": {
1189
+ "anyOf": [
1190
+ {
1191
+ "type": "object",
1192
+ "properties": {
1193
+ "name": {
1194
+ "type": "string"
1195
+ },
1196
+ "shortName": {
1197
+ "description": "Used anywhere a shortened form of the creatures name is required (e.g. in legendary action headers).\nIf not supplied, a shortened name will be automatically generated from the creature's full name.\nAlternatively use \"true\" if the \"shortName\" should be an exact copy of the creature's \"name\".",
1198
+ "type": [
1199
+ "string",
1200
+ "boolean"
1201
+ ]
1202
+ },
1203
+ "alias": {
1204
+ "$ref": "../util.json#/$defs/alias"
1205
+ },
1206
+ "group": {
1207
+ "description": "A group name, indexed by search. E.g. searching \"Lycanthrope\" would otherwise fail to find anything.\nOnly works on the bestiary page, not in the full site search.",
1208
+ "type": [
1209
+ "null",
1210
+ "array"
1211
+ ],
1212
+ "items": {
1213
+ "type": "string"
1214
+ }
1215
+ },
1216
+ "level": {
1217
+ "description": "Used in sidekicks, which can have levels (and generally do not have alignment)",
1218
+ "type": "integer"
1219
+ },
1220
+ "size": {
1221
+ "type": "array",
1222
+ "items": {
1223
+ "$ref": "../util.json#/$defs/size"
1224
+ },
1225
+ "uniqueItems": true
1226
+ },
1227
+ "sizeNote": {
1228
+ "type": "string"
1229
+ },
1230
+ "type": {
1231
+ "oneOf": [
1232
+ {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "type": {
1236
+ "$ref": "../util.json#/$defs/creatureType"
1237
+ },
1238
+ "swarmSize": {
1239
+ "$ref": "../util.json#/$defs/size",
1240
+ "description": "Size of the individual creatures that make up the swarm."
1241
+ },
1242
+ "tags": {
1243
+ "type": "array",
1244
+ "uniqueItems": true,
1245
+ "items": {
1246
+ "oneOf": [
1247
+ {
1248
+ "type": "string"
1249
+ },
1250
+ {
1251
+ "type": "object",
1252
+ "properties": {
1253
+ "tag": {
1254
+ "type": "string"
1255
+ },
1256
+ "prefix": {
1257
+ "type": "string"
1258
+ }
1259
+ },
1260
+ "required": [
1261
+ "tag",
1262
+ "prefix"
1263
+ ],
1264
+ "additionalProperties": false
1265
+ }
1266
+ ]
1267
+ }
1268
+ },
1269
+ "sidekickType": {
1270
+ "type": "string",
1271
+ "enum": [
1272
+ "expert",
1273
+ "spellcaster",
1274
+ "warrior"
1275
+ ]
1276
+ },
1277
+ "sidekickTags": {
1278
+ "type": "array",
1279
+ "uniqueItems": true,
1280
+ "items": {
1281
+ "oneOf": [
1282
+ {
1283
+ "type": "string"
1284
+ },
1285
+ {
1286
+ "type": "object",
1287
+ "properties": {
1288
+ "tag": {
1289
+ "type": "string"
1290
+ },
1291
+ "prefix": {
1292
+ "type": "string"
1293
+ }
1294
+ },
1295
+ "required": [
1296
+ "tag",
1297
+ "prefix"
1298
+ ],
1299
+ "additionalProperties": false
1300
+ }
1301
+ ]
1302
+ }
1303
+ },
1304
+ "sidekickHidden": {
1305
+ "const": true
1306
+ }
1307
+ },
1308
+ "required": [
1309
+ "type"
1310
+ ],
1311
+ "additionalProperties": false
1312
+ },
1313
+ {
1314
+ "$ref": "../util.json#/$defs/creatureType"
1315
+ }
1316
+ ]
1317
+ },
1318
+ "source": {
1319
+ "type": "string"
1320
+ },
1321
+ "sourceSub": {
1322
+ "type": "string",
1323
+ "description": "Sub-source text that is shown when hovered."
1324
+ },
1325
+ "otherSources": {
1326
+ "$ref": "../util.json#/$defs/otherSources"
1327
+ },
1328
+ "reprintedAs": {
1329
+ "$ref": "../util.json#/$defs/reprintedAs"
1330
+ },
1331
+ "alignment": {
1332
+ "type": "array",
1333
+ "items": {
1334
+ "$ref": "#/$defs/align"
1335
+ }
1336
+ },
1337
+ "alignmentPrefix": {
1338
+ "type": "string"
1339
+ },
1340
+ "ac": {
1341
+ "type": "array",
1342
+ "items": {
1343
+ "$ref": "#/$defs/acItem"
1344
+ }
1345
+ },
1346
+ "hp": {
1347
+ "oneOf": [
1348
+ {
1349
+ "type": "object",
1350
+ "properties": {
1351
+ "average": {
1352
+ "type": "integer"
1353
+ },
1354
+ "formula": {
1355
+ "type": "string"
1356
+ }
1357
+ },
1358
+ "required": [
1359
+ "average",
1360
+ "formula"
1361
+ ],
1362
+ "additionalProperties": false
1363
+ },
1364
+ {
1365
+ "type": "object",
1366
+ "properties": {
1367
+ "special": {
1368
+ "type": "string"
1369
+ }
1370
+ },
1371
+ "additionalProperties": false
1372
+ }
1373
+ ]
1374
+ },
1375
+ "speed": {
1376
+ "$ref": "../util.json#/$defs/speed"
1377
+ },
1378
+ "str": {
1379
+ "type": [
1380
+ "integer",
1381
+ "null"
1382
+ ]
1383
+ },
1384
+ "dex": {
1385
+ "type": [
1386
+ "integer",
1387
+ "null"
1388
+ ]
1389
+ },
1390
+ "con": {
1391
+ "type": [
1392
+ "integer",
1393
+ "null"
1394
+ ]
1395
+ },
1396
+ "int": {
1397
+ "type": [
1398
+ "integer",
1399
+ "null"
1400
+ ]
1401
+ },
1402
+ "wis": {
1403
+ "type": [
1404
+ "integer",
1405
+ "null"
1406
+ ]
1407
+ },
1408
+ "cha": {
1409
+ "type": [
1410
+ "integer",
1411
+ "null"
1412
+ ]
1413
+ },
1414
+ "save": {
1415
+ "type": "object",
1416
+ "properties": {
1417
+ "str": {
1418
+ "type": "string"
1419
+ },
1420
+ "dex": {
1421
+ "type": "string"
1422
+ },
1423
+ "con": {
1424
+ "type": "string"
1425
+ },
1426
+ "int": {
1427
+ "type": "string"
1428
+ },
1429
+ "wis": {
1430
+ "type": "string"
1431
+ },
1432
+ "cha": {
1433
+ "type": "string"
1434
+ },
1435
+ "special": {
1436
+ "description": "For use in homebrew.",
1437
+ "$ref": "../entry.json"
1438
+ }
1439
+ },
1440
+ "additionalProperties": false
1441
+ },
1442
+ "skill": {
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "acrobatics": {
1446
+ "type": "string"
1447
+ },
1448
+ "animal handling": {
1449
+ "type": "string"
1450
+ },
1451
+ "arcana": {
1452
+ "type": "string"
1453
+ },
1454
+ "athletics": {
1455
+ "type": "string"
1456
+ },
1457
+ "deception": {
1458
+ "type": "string"
1459
+ },
1460
+ "history": {
1461
+ "type": "string"
1462
+ },
1463
+ "insight": {
1464
+ "type": "string"
1465
+ },
1466
+ "intimidation": {
1467
+ "type": "string"
1468
+ },
1469
+ "investigation": {
1470
+ "type": "string"
1471
+ },
1472
+ "medicine": {
1473
+ "type": "string"
1474
+ },
1475
+ "nature": {
1476
+ "type": "string"
1477
+ },
1478
+ "perception": {
1479
+ "type": "string"
1480
+ },
1481
+ "performance": {
1482
+ "type": "string"
1483
+ },
1484
+ "persuasion": {
1485
+ "type": "string"
1486
+ },
1487
+ "religion": {
1488
+ "type": "string"
1489
+ },
1490
+ "sleight of hand": {
1491
+ "type": "string"
1492
+ },
1493
+ "stealth": {
1494
+ "type": "string"
1495
+ },
1496
+ "survival": {
1497
+ "type": "string"
1498
+ },
1499
+ "other": {
1500
+ "type": "array",
1501
+ "items": {
1502
+ "type": "object",
1503
+ "properties": {
1504
+ "oneOf": {
1505
+ "type": "object",
1506
+ "properties": {
1507
+ "acrobatics": {
1508
+ "type": "string"
1509
+ },
1510
+ "animal handling": {
1511
+ "type": "string"
1512
+ },
1513
+ "arcana": {
1514
+ "type": "string"
1515
+ },
1516
+ "athletics": {
1517
+ "type": "string"
1518
+ },
1519
+ "deception": {
1520
+ "type": "string"
1521
+ },
1522
+ "history": {
1523
+ "type": "string"
1524
+ },
1525
+ "insight": {
1526
+ "type": "string"
1527
+ },
1528
+ "intimidation": {
1529
+ "type": "string"
1530
+ },
1531
+ "investigation": {
1532
+ "type": "string"
1533
+ },
1534
+ "medicine": {
1535
+ "type": "string"
1536
+ },
1537
+ "nature": {
1538
+ "type": "string"
1539
+ },
1540
+ "perception": {
1541
+ "type": "string"
1542
+ },
1543
+ "performance": {
1544
+ "type": "string"
1545
+ },
1546
+ "persuasion": {
1547
+ "type": "string"
1548
+ },
1549
+ "religion": {
1550
+ "type": "string"
1551
+ },
1552
+ "sleight of hand": {
1553
+ "type": "string"
1554
+ },
1555
+ "stealth": {
1556
+ "type": "string"
1557
+ },
1558
+ "survival": {
1559
+ "type": "string"
1560
+ }
1561
+ }
1562
+ }
1563
+ }
1564
+ }
1565
+ },
1566
+ "special": {
1567
+ "description": "For use in homebrew.",
1568
+ "$ref": "../entry.json"
1569
+ }
1570
+ },
1571
+ "additionalProperties": false
1572
+ },
1573
+ "senses": {
1574
+ "oneOf": [
1575
+ {
1576
+ "type": "array",
1577
+ "items": {
1578
+ "type": "string"
1579
+ }
1580
+ },
1581
+ {
1582
+ "type": "null"
1583
+ }
1584
+ ]
1585
+ },
1586
+ "passive": {
1587
+ "type": [
1588
+ "integer",
1589
+ "string",
1590
+ "null"
1591
+ ]
1592
+ },
1593
+ "languages": {
1594
+ "oneOf": [
1595
+ {
1596
+ "type": "array",
1597
+ "minItems": 1,
1598
+ "items": {
1599
+ "type": "string"
1600
+ }
1601
+ },
1602
+ {
1603
+ "type": "null"
1604
+ }
1605
+ ]
1606
+ },
1607
+ "pbNote": {
1608
+ "type": "string"
1609
+ },
1610
+ "cr": {
1611
+ "oneOf": [
1612
+ {
1613
+ "type": "string"
1614
+ },
1615
+ {
1616
+ "type": "object",
1617
+ "properties": {
1618
+ "cr": {
1619
+ "type": "string"
1620
+ },
1621
+ "lair": {
1622
+ "type": "string"
1623
+ },
1624
+ "coven": {
1625
+ "type": "string"
1626
+ },
1627
+ "xp": {
1628
+ "type": "integer"
1629
+ }
1630
+ },
1631
+ "additionalProperties": false,
1632
+ "required": [
1633
+ "cr"
1634
+ ]
1635
+ }
1636
+ ]
1637
+ },
1638
+ "vulnerable": {
1639
+ "$ref": "../util.json#/$defs/damageVulnerabilityArray"
1640
+ },
1641
+ "resist": {
1642
+ "$ref": "../util.json#/$defs/damageResistArray"
1643
+ },
1644
+ "immune": {
1645
+ "$ref": "../util.json#/$defs/damageImmunityArray"
1646
+ },
1647
+ "conditionImmune": {
1648
+ "$ref": "../util.json#/$defs/conditionImmunityArray"
1649
+ },
1650
+ "spellcasting": {
1651
+ "oneOf": [
1652
+ {
1653
+ "type": "array",
1654
+ "items": {
1655
+ "$ref": "../entry.json#/$defs/entrySpellcasting"
1656
+ }
1657
+ },
1658
+ {
1659
+ "type": "null"
1660
+ }
1661
+ ]
1662
+ },
1663
+ "trait": {
1664
+ "oneOf": [
1665
+ {
1666
+ "type": "array",
1667
+ "minItems": 1,
1668
+ "items": {
1669
+ "type": "object",
1670
+ "properties": {
1671
+ "name": {
1672
+ "type": "string"
1673
+ },
1674
+ "entries": {
1675
+ "type": "array",
1676
+ "items": {
1677
+ "$ref": "../entry.json"
1678
+ }
1679
+ },
1680
+ "type": {
1681
+ "type": "string",
1682
+ "enum": [
1683
+ "entries",
1684
+ "inset"
1685
+ ]
1686
+ },
1687
+ "sort": {
1688
+ "description": "Forces a sort order. Traits with sort orders will always be arranged before those without.",
1689
+ "type": "integer"
1690
+ }
1691
+ },
1692
+ "required": [
1693
+ "name",
1694
+ "entries"
1695
+ ],
1696
+ "additionalProperties": false
1697
+ }
1698
+ },
1699
+ {
1700
+ "type": "null"
1701
+ }
1702
+ ]
1703
+ },
1704
+ "actionNote": {
1705
+ "type": "string"
1706
+ },
1707
+ "actionHeader": {
1708
+ "type": "array",
1709
+ "minItems": 1,
1710
+ "items": {
1711
+ "$ref": "../entry.json"
1712
+ }
1713
+ },
1714
+ "action": {
1715
+ "oneOf": [
1716
+ {
1717
+ "type": "array",
1718
+ "minItems": 1,
1719
+ "items": {
1720
+ "type": "object",
1721
+ "properties": {
1722
+ "name": {
1723
+ "type": "string"
1724
+ },
1725
+ "entries": {
1726
+ "type": "array",
1727
+ "items": {
1728
+ "$ref": "../entry.json"
1729
+ }
1730
+ }
1731
+ },
1732
+ "required": [
1733
+ "name",
1734
+ "entries"
1735
+ ],
1736
+ "additionalProperties": false
1737
+ }
1738
+ },
1739
+ {
1740
+ "type": "null"
1741
+ }
1742
+ ]
1743
+ },
1744
+ "bonusNote": {
1745
+ "type": "string"
1746
+ },
1747
+ "bonusHeader": {
1748
+ "type": "array",
1749
+ "minItems": 1,
1750
+ "items": {
1751
+ "$ref": "../entry.json"
1752
+ }
1753
+ },
1754
+ "bonus": {
1755
+ "type": "array",
1756
+ "minItems": 1,
1757
+ "items": {
1758
+ "type": "object",
1759
+ "properties": {
1760
+ "name": {
1761
+ "type": "string"
1762
+ },
1763
+ "entries": {
1764
+ "type": "array",
1765
+ "items": {
1766
+ "$ref": "../entry.json"
1767
+ }
1768
+ }
1769
+ },
1770
+ "required": [
1771
+ "name",
1772
+ "entries"
1773
+ ],
1774
+ "additionalProperties": false
1775
+ }
1776
+ },
1777
+ "reactionNote": {
1778
+ "type": "string"
1779
+ },
1780
+ "reactionHeader": {
1781
+ "type": "array",
1782
+ "minItems": 1,
1783
+ "items": {
1784
+ "$ref": "../entry.json"
1785
+ }
1786
+ },
1787
+ "reaction": {
1788
+ "type": "array",
1789
+ "minItems": 1,
1790
+ "items": {
1791
+ "type": "object",
1792
+ "properties": {
1793
+ "name": {
1794
+ "type": "string"
1795
+ },
1796
+ "entries": {
1797
+ "type": "array",
1798
+ "items": {
1799
+ "$ref": "../entry.json"
1800
+ }
1801
+ }
1802
+ },
1803
+ "required": [
1804
+ "name",
1805
+ "entries"
1806
+ ],
1807
+ "additionalProperties": false
1808
+ }
1809
+ },
1810
+ "legendaryGroup": {
1811
+ "type": "object",
1812
+ "properties": {
1813
+ "name": {
1814
+ "type": "string"
1815
+ },
1816
+ "source": {
1817
+ "type": "string"
1818
+ }
1819
+ }
1820
+ },
1821
+ "legendaryActions": {
1822
+ "type": "number"
1823
+ },
1824
+ "legendaryHeader": {
1825
+ "type": "array",
1826
+ "minItems": 1,
1827
+ "items": {
1828
+ "$ref": "../entry.json"
1829
+ }
1830
+ },
1831
+ "legendary": {
1832
+ "oneOf": [
1833
+ {
1834
+ "type": "array",
1835
+ "minItems": 1,
1836
+ "items": {
1837
+ "type": "object",
1838
+ "properties": {
1839
+ "name": {
1840
+ "type": "string"
1841
+ },
1842
+ "entries": {
1843
+ "type": "array",
1844
+ "items": {
1845
+ "$ref": "../entry.json"
1846
+ }
1847
+ }
1848
+ },
1849
+ "required": [
1850
+ "entries"
1851
+ ],
1852
+ "additionalProperties": false
1853
+ }
1854
+ },
1855
+ {
1856
+ "type": "null"
1857
+ }
1858
+ ]
1859
+ },
1860
+ "mythicHeader": {
1861
+ "type": "array",
1862
+ "minItems": 1,
1863
+ "items": {
1864
+ "$ref": "../entry.json"
1865
+ }
1866
+ },
1867
+ "mythic": {
1868
+ "type": "array",
1869
+ "minItems": 1,
1870
+ "items": {
1871
+ "type": "object",
1872
+ "properties": {
1873
+ "name": {
1874
+ "type": "string"
1875
+ },
1876
+ "entries": {
1877
+ "type": "array",
1878
+ "items": {
1879
+ "$ref": "../entry.json"
1880
+ }
1881
+ }
1882
+ },
1883
+ "required": [
1884
+ "entries"
1885
+ ],
1886
+ "additionalProperties": false
1887
+ }
1888
+ },
1889
+ "variant": {
1890
+ "type": "array",
1891
+ "items": {
1892
+ "$ref": "#/$defs/entryVariantBestiary"
1893
+ }
1894
+ },
1895
+ "page": {
1896
+ "$ref": "../util.json#/$defs/page"
1897
+ },
1898
+ "familiar": {
1899
+ "type": "boolean"
1900
+ },
1901
+ "additionalSources": {
1902
+ "$ref": "../util.json#/$defs/additionalSources"
1903
+ },
1904
+ "hasToken": {
1905
+ "type": "boolean"
1906
+ },
1907
+ "tokenUrl": {
1908
+ "type": "string"
1909
+ },
1910
+ "altArt": {
1911
+ "type": "array",
1912
+ "items": {
1913
+ "anyOf": [
1914
+ {
1915
+ "type": "object",
1916
+ "properties": {
1917
+ "name": {
1918
+ "type": "string"
1919
+ },
1920
+ "source": {
1921
+ "type": "string"
1922
+ },
1923
+ "page": {
1924
+ "$ref": "../util.json#/$defs/page"
1925
+ }
1926
+ },
1927
+ "required": [
1928
+ "name",
1929
+ "source"
1930
+ ]
1931
+ },
1932
+ {
1933
+ "type": "object",
1934
+ "description": "An URL pointing to an alternative token for the creature.",
1935
+ "properties": {
1936
+ "tokenUrl": {
1937
+ "type": "string"
1938
+ }
1939
+ },
1940
+ "required": [
1941
+ "tokenUrl"
1942
+ ],
1943
+ "additionalProperties": false
1944
+ }
1945
+ ]
1946
+ }
1947
+ },
1948
+ "isNamedCreature": {
1949
+ "type": "boolean"
1950
+ },
1951
+ "isNpc": {
1952
+ "description": "Used to flag adventure NPCs",
1953
+ "type": "boolean"
1954
+ },
1955
+ "environment": {
1956
+ "type": "array",
1957
+ "minItems": 1,
1958
+ "items": {
1959
+ "type": "string",
1960
+ "examples": [
1961
+ "underwater",
1962
+ "coastal",
1963
+ "mountain",
1964
+ "grassland",
1965
+ "hill",
1966
+ "arctic",
1967
+ "urban",
1968
+ "forest",
1969
+ "swamp",
1970
+ "underdark",
1971
+ "desert"
1972
+ ]
1973
+ }
1974
+ },
1975
+ "soundClip": {
1976
+ "$ref": "../entry.json#/$defs/mediaHref"
1977
+ },
1978
+ "dragonCastingColor": {
1979
+ "type": "string",
1980
+ "examples": [
1981
+ "black",
1982
+ "blue",
1983
+ "green",
1984
+ "red",
1985
+ "white",
1986
+ "brass",
1987
+ "bronze",
1988
+ "copper",
1989
+ "gold",
1990
+ "silver",
1991
+ "deep"
1992
+ ]
1993
+ },
1994
+ "dragonAge": {
1995
+ "type": "string",
1996
+ "examples": [
1997
+ "young",
1998
+ "adult",
1999
+ "wyrmling",
2000
+ "greatwyrm",
2001
+ "ancient",
2002
+ "aspect"
2003
+ ]
2004
+ },
2005
+ "traitTags": {
2006
+ "type": "array",
2007
+ "items": {
2008
+ "type": "string",
2009
+ "enum": [
2010
+ "Aggressive",
2011
+ "Ambusher",
2012
+ "Amorphous",
2013
+ "Amphibious",
2014
+ "Antimagic Susceptibility",
2015
+ "Brute",
2016
+ "Charge",
2017
+ "Damage Absorption",
2018
+ "Death Burst",
2019
+ "Devil's Sight",
2020
+ "False Appearance",
2021
+ "Fey Ancestry",
2022
+ "Flyby",
2023
+ "Hold Breath",
2024
+ "Illumination",
2025
+ "Immutable Form",
2026
+ "Incorporeal Movement",
2027
+ "Keen Senses",
2028
+ "Legendary Resistances",
2029
+ "Light Sensitivity",
2030
+ "Magic Resistance",
2031
+ "Magic Weapons",
2032
+ "Pack Tactics",
2033
+ "Pounce",
2034
+ "Rampage",
2035
+ "Reckless",
2036
+ "Regeneration",
2037
+ "Rejuvenation",
2038
+ "Shapechanger",
2039
+ "Siege Monster",
2040
+ "Sneak Attack",
2041
+ "Spell Immunity",
2042
+ "Spider Climb",
2043
+ "Sunlight Sensitivity",
2044
+ "Tree Stride",
2045
+ "Turn Immunity",
2046
+ "Turn Resistance",
2047
+ "Undead Fortitude",
2048
+ "Unusual Nature",
2049
+ "Water Breathing",
2050
+ "Web Sense",
2051
+ "Web Walker"
2052
+ ]
2053
+ }
2054
+ },
2055
+ "actionTags": {
2056
+ "type": "array",
2057
+ "items": {
2058
+ "type": "string",
2059
+ "enum": [
2060
+ "Breath Weapon",
2061
+ "Frightful Presence",
2062
+ "Multiattack",
2063
+ "Parry",
2064
+ "Shapechanger",
2065
+ "Swallow",
2066
+ "Teleport",
2067
+ "Tentacles"
2068
+ ]
2069
+ }
2070
+ },
2071
+ "languageTags": {
2072
+ "type": "array",
2073
+ "items": {
2074
+ "type": "string",
2075
+ "description": "X: Any (Choose)\n XX: All\n CS: Can't Speak Known Languages\n LF: Languages Known in Life\n TP: Telepathy\n OTH: Other\n -\n AB: Abyssal\n AQ: Aquan\n AU: Auran\n C: Common\n CE: Celestial\n D: Dwarvish\n DR: Draconic\n DS: Deep Speech\n DU: Druidic\n E: Elvish\n G: Gnomish\n GI: Giant\n GO: Goblin\n GTH: Gith\n H: Halfling\n I: Infernal\n IG: Ignan\n O: Orc\n P: Primordial\n S: Sylvan\n T: Terran\n TC: Thieves' cant\n U: Undercommon\n ",
2076
+ "enum": [
2077
+ "AB",
2078
+ "AQ",
2079
+ "AU",
2080
+ "C",
2081
+ "CE",
2082
+ "CS",
2083
+ "D",
2084
+ "DR",
2085
+ "DS",
2086
+ "DU",
2087
+ "E",
2088
+ "G",
2089
+ "GI",
2090
+ "GO",
2091
+ "GTH",
2092
+ "H",
2093
+ "I",
2094
+ "IG",
2095
+ "LF",
2096
+ "O",
2097
+ "OTH",
2098
+ "P",
2099
+ "S",
2100
+ "T",
2101
+ "TC",
2102
+ "TP",
2103
+ "U",
2104
+ "X",
2105
+ "XX"
2106
+ ]
2107
+ }
2108
+ },
2109
+ "senseTags": {
2110
+ "type": "array",
2111
+ "items": {
2112
+ "type": "string",
2113
+ "description": "B: Blindsight\n D: Darkvision\n SD: Superior Darkvision\n T: Tremorsense\n U: Truesight",
2114
+ "enum": [
2115
+ "B",
2116
+ "D",
2117
+ "SD",
2118
+ "T",
2119
+ "U"
2120
+ ]
2121
+ }
2122
+ },
2123
+ "spellcastingTags": {
2124
+ "type": "array",
2125
+ "items": {
2126
+ "type": "string",
2127
+ "description": "P: Psionics\n I: Innate\n F: Form Only\n S: Shared\n O: Other\n CA: Class, Artificer\n CB: Class, Bard\n CC: Class, Cleric\n CD: Class, Druid\n CP: Class, Paladin\n CR: Class, Ranger\n CS: Class, Sorcerer\n CL: Class, Warlock\n CW: Class, Wizard",
2128
+ "enum": [
2129
+ "P",
2130
+ "I",
2131
+ "F",
2132
+ "S",
2133
+ "O",
2134
+ "CA",
2135
+ "CB",
2136
+ "CC",
2137
+ "CD",
2138
+ "CP",
2139
+ "CR",
2140
+ "CS",
2141
+ "CL",
2142
+ "CW"
2143
+ ]
2144
+ }
2145
+ },
2146
+ "damageTags": {
2147
+ "type": "array",
2148
+ "items": {
2149
+ "$ref": "../util.json#/$defs/dataDamageTags"
2150
+ }
2151
+ },
2152
+ "damageTagsSpell": {
2153
+ "type": "array",
2154
+ "items": {
2155
+ "$ref": "../util.json#/$defs/dataDamageTags"
2156
+ }
2157
+ },
2158
+ "damageTagsLegendary": {
2159
+ "type": "array",
2160
+ "items": {
2161
+ "$ref": "../util.json#/$defs/dataDamageTags"
2162
+ }
2163
+ },
2164
+ "miscTags": {
2165
+ "type": "array",
2166
+ "items": {
2167
+ "description": "AOE: Has Areas of Effect\n HPR: Has HP Reduction\n MW: Has Weapon Attacks, Melee\n RW: Has Weapon Attacks, Ranged\n RCH: Has Reach Attacks\n RNG: Has Ranged Weapons\n THW: Has Thrown Weapons",
2168
+ "enum": [
2169
+ "AOE",
2170
+ "HPR",
2171
+ "MW",
2172
+ "RW",
2173
+ "RCH",
2174
+ "RNG",
2175
+ "THW"
2176
+ ]
2177
+ }
2178
+ },
2179
+ "conditionInflict": {
2180
+ "$ref": "../util.json#/$defs/tagsConditions"
2181
+ },
2182
+ "conditionInflictLegendary": {
2183
+ "$ref": "../util.json#/$defs/tagsConditions"
2184
+ },
2185
+ "conditionInflictSpell": {
2186
+ "$ref": "../util.json#/$defs/tagsConditions"
2187
+ },
2188
+ "footer": {
2189
+ "description": "Intended for homebrew use only.",
2190
+ "type": "array",
2191
+ "items": {
2192
+ "$ref": "../entry.json"
2193
+ }
2194
+ },
2195
+ "srd": {
2196
+ "$ref": "../util.json#/$defs/srd"
2197
+ },
2198
+ "basicRules": {
2199
+ "$ref": "../util.json#/$defs/basicRules"
2200
+ },
2201
+ "summonedBySpell": {
2202
+ "description": "The spell used to summon this creature; specifically for TCE-esque summon spells.",
2203
+ "type": "string"
2204
+ },
2205
+ "summonedBySpellLevel": {
2206
+ "description": "The level of the spell used to summon this creature; specifically for TCE-esque summon spells.",
2207
+ "type": "integer"
2208
+ },
2209
+ "summonedByClass": {
2210
+ "description": "The class which can summon this creature; e.g. for those granted by some TCE class features.",
2211
+ "type": "string"
2212
+ },
2213
+ "_isCopy": {
2214
+ "description": "An internal flag indicating this creature is a copy of another, and is a temporary/placeholder entry which will be factored out using the \"_copy\" format at a later date.",
2215
+ "type": "boolean"
2216
+ },
2217
+ "_versions": {
2218
+ "type": "array",
2219
+ "items": {
2220
+ "$ref": "#/$defs/creatureVersion"
2221
+ }
2222
+ },
2223
+ "hasFluff": {
2224
+ "type": "boolean"
2225
+ },
2226
+ "hasFluffImages": {
2227
+ "type": "boolean"
2228
+ },
2229
+ "externalSources": {
2230
+ "description": "For homebrew use only.",
2231
+ "type": "array",
2232
+ "items": {
2233
+ "type": "object",
2234
+ "properties": {
2235
+ "entry": {
2236
+ "$ref": "../entry.json"
2237
+ }
2238
+ },
2239
+ "required": [
2240
+ "entry"
2241
+ ],
2242
+ "additionalProperties": false
2243
+ }
2244
+ },
2245
+ "fluff": {
2246
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
2247
+ "anyOf": [
2248
+ {
2249
+ "$ref": "../util.json#/$defs/fluffObject"
2250
+ },
2251
+ {
2252
+ "description": "Reference \"monsterFluff\" array items",
2253
+ "type": "object",
2254
+ "properties": {
2255
+ "_monsterFluff": {
2256
+ "type": "object",
2257
+ "properties": {
2258
+ "name": {
2259
+ "type": "string"
2260
+ },
2261
+ "source": {
2262
+ "type": "string"
2263
+ }
2264
+ }
2265
+ },
2266
+ "_appendMonsterFluff": {
2267
+ "type": "object",
2268
+ "properties": {
2269
+ "name": {
2270
+ "type": "string"
2271
+ },
2272
+ "source": {
2273
+ "type": "string"
2274
+ }
2275
+ }
2276
+ }
2277
+ }
2278
+ }
2279
+ ]
2280
+ },
2281
+ "foundryImg": {
2282
+ "$ref": "../util.json#/$defs/foundryImg"
2283
+ }
2284
+ },
2285
+ "additionalProperties": false,
2286
+ "required": [
2287
+ "name",
2288
+ "size",
2289
+ "type",
2290
+ "source",
2291
+ "ac",
2292
+ "hp",
2293
+ "speed",
2294
+ "str",
2295
+ "dex",
2296
+ "con",
2297
+ "int",
2298
+ "wis",
2299
+ "cha",
2300
+ "passive"
2301
+ ]
2302
+ },
2303
+ {
2304
+ "type": "object",
2305
+ "$comment": "This is a custom pre-processor tag, which merges together the array of objects into one. This allows proper inheritance, which JSON schema don't really do.",
2306
+ "properties": {
2307
+ "name": {
2308
+ "type": "string"
2309
+ },
2310
+ "shortName": {
2311
+ "description": "Used anywhere a shortened form of the creatures name is required (e.g. in legendary action headers).\nIf not supplied, a shortened name will be automatically generated from the creature's full name.\nAlternatively use \"true\" if the \"shortName\" should be an exact copy of the creature's \"name\".",
2312
+ "type": [
2313
+ "string",
2314
+ "boolean"
2315
+ ]
2316
+ },
2317
+ "alias": {
2318
+ "$ref": "../util.json#/$defs/alias"
2319
+ },
2320
+ "group": {
2321
+ "description": "A group name, indexed by search. E.g. searching \"Lycanthrope\" would otherwise fail to find anything.\nOnly works on the bestiary page, not in the full site search.",
2322
+ "type": [
2323
+ "null",
2324
+ "array"
2325
+ ],
2326
+ "items": {
2327
+ "type": "string"
2328
+ }
2329
+ },
2330
+ "level": {
2331
+ "description": "Used in sidekicks, which can have levels (and generally do not have alignment)",
2332
+ "type": "integer"
2333
+ },
2334
+ "size": {
2335
+ "type": "array",
2336
+ "items": {
2337
+ "$ref": "../util.json#/$defs/size"
2338
+ },
2339
+ "uniqueItems": true
2340
+ },
2341
+ "sizeNote": {
2342
+ "type": "string"
2343
+ },
2344
+ "type": {
2345
+ "oneOf": [
2346
+ {
2347
+ "type": "object",
2348
+ "properties": {
2349
+ "type": {
2350
+ "$ref": "../util.json#/$defs/creatureType"
2351
+ },
2352
+ "swarmSize": {
2353
+ "$ref": "../util.json#/$defs/size",
2354
+ "description": "Size of the individual creatures that make up the swarm."
2355
+ },
2356
+ "tags": {
2357
+ "type": "array",
2358
+ "uniqueItems": true,
2359
+ "items": {
2360
+ "oneOf": [
2361
+ {
2362
+ "type": "string"
2363
+ },
2364
+ {
2365
+ "type": "object",
2366
+ "properties": {
2367
+ "tag": {
2368
+ "type": "string"
2369
+ },
2370
+ "prefix": {
2371
+ "type": "string"
2372
+ }
2373
+ },
2374
+ "required": [
2375
+ "tag",
2376
+ "prefix"
2377
+ ],
2378
+ "additionalProperties": false
2379
+ }
2380
+ ]
2381
+ }
2382
+ },
2383
+ "sidekickType": {
2384
+ "type": "string",
2385
+ "enum": [
2386
+ "expert",
2387
+ "spellcaster",
2388
+ "warrior"
2389
+ ]
2390
+ },
2391
+ "sidekickTags": {
2392
+ "type": "array",
2393
+ "uniqueItems": true,
2394
+ "items": {
2395
+ "oneOf": [
2396
+ {
2397
+ "type": "string"
2398
+ },
2399
+ {
2400
+ "type": "object",
2401
+ "properties": {
2402
+ "tag": {
2403
+ "type": "string"
2404
+ },
2405
+ "prefix": {
2406
+ "type": "string"
2407
+ }
2408
+ },
2409
+ "required": [
2410
+ "tag",
2411
+ "prefix"
2412
+ ],
2413
+ "additionalProperties": false
2414
+ }
2415
+ ]
2416
+ }
2417
+ },
2418
+ "sidekickHidden": {
2419
+ "const": true
2420
+ }
2421
+ },
2422
+ "required": [
2423
+ "type"
2424
+ ],
2425
+ "additionalProperties": false
2426
+ },
2427
+ {
2428
+ "$ref": "../util.json#/$defs/creatureType"
2429
+ }
2430
+ ]
2431
+ },
2432
+ "source": {
2433
+ "type": "string"
2434
+ },
2435
+ "sourceSub": {
2436
+ "type": "string",
2437
+ "description": "Sub-source text that is shown when hovered."
2438
+ },
2439
+ "otherSources": {
2440
+ "$ref": "../util.json#/$defs/otherSources"
2441
+ },
2442
+ "reprintedAs": {
2443
+ "$ref": "../util.json#/$defs/reprintedAs"
2444
+ },
2445
+ "alignment": {
2446
+ "type": "array",
2447
+ "items": {
2448
+ "$ref": "#/$defs/align"
2449
+ }
2450
+ },
2451
+ "alignmentPrefix": {
2452
+ "type": "string"
2453
+ },
2454
+ "ac": {
2455
+ "type": "array",
2456
+ "items": {
2457
+ "$ref": "#/$defs/acItem"
2458
+ }
2459
+ },
2460
+ "hp": {
2461
+ "oneOf": [
2462
+ {
2463
+ "type": "object",
2464
+ "properties": {
2465
+ "average": {
2466
+ "type": "integer"
2467
+ },
2468
+ "formula": {
2469
+ "type": "string"
2470
+ }
2471
+ },
2472
+ "required": [
2473
+ "average",
2474
+ "formula"
2475
+ ],
2476
+ "additionalProperties": false
2477
+ },
2478
+ {
2479
+ "type": "object",
2480
+ "properties": {
2481
+ "special": {
2482
+ "type": "string"
2483
+ }
2484
+ },
2485
+ "additionalProperties": false
2486
+ }
2487
+ ]
2488
+ },
2489
+ "speed": {
2490
+ "$ref": "../util.json#/$defs/speed"
2491
+ },
2492
+ "str": {
2493
+ "type": [
2494
+ "integer",
2495
+ "null"
2496
+ ]
2497
+ },
2498
+ "dex": {
2499
+ "type": [
2500
+ "integer",
2501
+ "null"
2502
+ ]
2503
+ },
2504
+ "con": {
2505
+ "type": [
2506
+ "integer",
2507
+ "null"
2508
+ ]
2509
+ },
2510
+ "int": {
2511
+ "type": [
2512
+ "integer",
2513
+ "null"
2514
+ ]
2515
+ },
2516
+ "wis": {
2517
+ "type": [
2518
+ "integer",
2519
+ "null"
2520
+ ]
2521
+ },
2522
+ "cha": {
2523
+ "type": [
2524
+ "integer",
2525
+ "null"
2526
+ ]
2527
+ },
2528
+ "save": {
2529
+ "type": "object",
2530
+ "properties": {
2531
+ "str": {
2532
+ "type": "string"
2533
+ },
2534
+ "dex": {
2535
+ "type": "string"
2536
+ },
2537
+ "con": {
2538
+ "type": "string"
2539
+ },
2540
+ "int": {
2541
+ "type": "string"
2542
+ },
2543
+ "wis": {
2544
+ "type": "string"
2545
+ },
2546
+ "cha": {
2547
+ "type": "string"
2548
+ },
2549
+ "special": {
2550
+ "description": "For use in homebrew.",
2551
+ "$ref": "../entry.json"
2552
+ }
2553
+ },
2554
+ "additionalProperties": false
2555
+ },
2556
+ "skill": {
2557
+ "type": "object",
2558
+ "properties": {
2559
+ "acrobatics": {
2560
+ "type": "string"
2561
+ },
2562
+ "animal handling": {
2563
+ "type": "string"
2564
+ },
2565
+ "arcana": {
2566
+ "type": "string"
2567
+ },
2568
+ "athletics": {
2569
+ "type": "string"
2570
+ },
2571
+ "deception": {
2572
+ "type": "string"
2573
+ },
2574
+ "history": {
2575
+ "type": "string"
2576
+ },
2577
+ "insight": {
2578
+ "type": "string"
2579
+ },
2580
+ "intimidation": {
2581
+ "type": "string"
2582
+ },
2583
+ "investigation": {
2584
+ "type": "string"
2585
+ },
2586
+ "medicine": {
2587
+ "type": "string"
2588
+ },
2589
+ "nature": {
2590
+ "type": "string"
2591
+ },
2592
+ "perception": {
2593
+ "type": "string"
2594
+ },
2595
+ "performance": {
2596
+ "type": "string"
2597
+ },
2598
+ "persuasion": {
2599
+ "type": "string"
2600
+ },
2601
+ "religion": {
2602
+ "type": "string"
2603
+ },
2604
+ "sleight of hand": {
2605
+ "type": "string"
2606
+ },
2607
+ "stealth": {
2608
+ "type": "string"
2609
+ },
2610
+ "survival": {
2611
+ "type": "string"
2612
+ },
2613
+ "other": {
2614
+ "type": "array",
2615
+ "items": {
2616
+ "type": "object",
2617
+ "properties": {
2618
+ "oneOf": {
2619
+ "type": "object",
2620
+ "properties": {
2621
+ "acrobatics": {
2622
+ "type": "string"
2623
+ },
2624
+ "animal handling": {
2625
+ "type": "string"
2626
+ },
2627
+ "arcana": {
2628
+ "type": "string"
2629
+ },
2630
+ "athletics": {
2631
+ "type": "string"
2632
+ },
2633
+ "deception": {
2634
+ "type": "string"
2635
+ },
2636
+ "history": {
2637
+ "type": "string"
2638
+ },
2639
+ "insight": {
2640
+ "type": "string"
2641
+ },
2642
+ "intimidation": {
2643
+ "type": "string"
2644
+ },
2645
+ "investigation": {
2646
+ "type": "string"
2647
+ },
2648
+ "medicine": {
2649
+ "type": "string"
2650
+ },
2651
+ "nature": {
2652
+ "type": "string"
2653
+ },
2654
+ "perception": {
2655
+ "type": "string"
2656
+ },
2657
+ "performance": {
2658
+ "type": "string"
2659
+ },
2660
+ "persuasion": {
2661
+ "type": "string"
2662
+ },
2663
+ "religion": {
2664
+ "type": "string"
2665
+ },
2666
+ "sleight of hand": {
2667
+ "type": "string"
2668
+ },
2669
+ "stealth": {
2670
+ "type": "string"
2671
+ },
2672
+ "survival": {
2673
+ "type": "string"
2674
+ }
2675
+ }
2676
+ }
2677
+ }
2678
+ }
2679
+ },
2680
+ "special": {
2681
+ "description": "For use in homebrew.",
2682
+ "$ref": "../entry.json"
2683
+ }
2684
+ },
2685
+ "additionalProperties": false
2686
+ },
2687
+ "senses": {
2688
+ "oneOf": [
2689
+ {
2690
+ "type": "array",
2691
+ "items": {
2692
+ "type": "string"
2693
+ }
2694
+ },
2695
+ {
2696
+ "type": "null"
2697
+ }
2698
+ ]
2699
+ },
2700
+ "passive": {
2701
+ "type": [
2702
+ "integer",
2703
+ "string",
2704
+ "null"
2705
+ ]
2706
+ },
2707
+ "languages": {
2708
+ "oneOf": [
2709
+ {
2710
+ "type": "array",
2711
+ "minItems": 1,
2712
+ "items": {
2713
+ "type": "string"
2714
+ }
2715
+ },
2716
+ {
2717
+ "type": "null"
2718
+ }
2719
+ ]
2720
+ },
2721
+ "pbNote": {
2722
+ "type": "string"
2723
+ },
2724
+ "cr": {
2725
+ "oneOf": [
2726
+ {
2727
+ "type": "string"
2728
+ },
2729
+ {
2730
+ "type": "object",
2731
+ "properties": {
2732
+ "cr": {
2733
+ "type": "string"
2734
+ },
2735
+ "lair": {
2736
+ "type": "string"
2737
+ },
2738
+ "coven": {
2739
+ "type": "string"
2740
+ },
2741
+ "xp": {
2742
+ "type": "integer"
2743
+ }
2744
+ },
2745
+ "additionalProperties": false,
2746
+ "required": [
2747
+ "cr"
2748
+ ]
2749
+ }
2750
+ ]
2751
+ },
2752
+ "vulnerable": {
2753
+ "$ref": "../util.json#/$defs/damageVulnerabilityArray"
2754
+ },
2755
+ "resist": {
2756
+ "$ref": "../util.json#/$defs/damageResistArray"
2757
+ },
2758
+ "immune": {
2759
+ "$ref": "../util.json#/$defs/damageImmunityArray"
2760
+ },
2761
+ "conditionImmune": {
2762
+ "$ref": "../util.json#/$defs/conditionImmunityArray"
2763
+ },
2764
+ "spellcasting": {
2765
+ "oneOf": [
2766
+ {
2767
+ "type": "array",
2768
+ "items": {
2769
+ "$ref": "../entry.json#/$defs/entrySpellcasting"
2770
+ }
2771
+ },
2772
+ {
2773
+ "type": "null"
2774
+ }
2775
+ ]
2776
+ },
2777
+ "trait": {
2778
+ "oneOf": [
2779
+ {
2780
+ "type": "array",
2781
+ "minItems": 1,
2782
+ "items": {
2783
+ "type": "object",
2784
+ "properties": {
2785
+ "name": {
2786
+ "type": "string"
2787
+ },
2788
+ "entries": {
2789
+ "type": "array",
2790
+ "items": {
2791
+ "$ref": "../entry.json"
2792
+ }
2793
+ },
2794
+ "type": {
2795
+ "type": "string",
2796
+ "enum": [
2797
+ "entries",
2798
+ "inset"
2799
+ ]
2800
+ },
2801
+ "sort": {
2802
+ "description": "Forces a sort order. Traits with sort orders will always be arranged before those without.",
2803
+ "type": "integer"
2804
+ }
2805
+ },
2806
+ "required": [
2807
+ "name",
2808
+ "entries"
2809
+ ],
2810
+ "additionalProperties": false
2811
+ }
2812
+ },
2813
+ {
2814
+ "type": "null"
2815
+ }
2816
+ ]
2817
+ },
2818
+ "actionNote": {
2819
+ "type": "string"
2820
+ },
2821
+ "actionHeader": {
2822
+ "type": "array",
2823
+ "minItems": 1,
2824
+ "items": {
2825
+ "$ref": "../entry.json"
2826
+ }
2827
+ },
2828
+ "action": {
2829
+ "oneOf": [
2830
+ {
2831
+ "type": "array",
2832
+ "minItems": 1,
2833
+ "items": {
2834
+ "type": "object",
2835
+ "properties": {
2836
+ "name": {
2837
+ "type": "string"
2838
+ },
2839
+ "entries": {
2840
+ "type": "array",
2841
+ "items": {
2842
+ "$ref": "../entry.json"
2843
+ }
2844
+ }
2845
+ },
2846
+ "required": [
2847
+ "name",
2848
+ "entries"
2849
+ ],
2850
+ "additionalProperties": false
2851
+ }
2852
+ },
2853
+ {
2854
+ "type": "null"
2855
+ }
2856
+ ]
2857
+ },
2858
+ "bonusNote": {
2859
+ "type": "string"
2860
+ },
2861
+ "bonusHeader": {
2862
+ "type": "array",
2863
+ "minItems": 1,
2864
+ "items": {
2865
+ "$ref": "../entry.json"
2866
+ }
2867
+ },
2868
+ "bonus": {
2869
+ "type": "array",
2870
+ "minItems": 1,
2871
+ "items": {
2872
+ "type": "object",
2873
+ "properties": {
2874
+ "name": {
2875
+ "type": "string"
2876
+ },
2877
+ "entries": {
2878
+ "type": "array",
2879
+ "items": {
2880
+ "$ref": "../entry.json"
2881
+ }
2882
+ }
2883
+ },
2884
+ "required": [
2885
+ "name",
2886
+ "entries"
2887
+ ],
2888
+ "additionalProperties": false
2889
+ }
2890
+ },
2891
+ "reactionNote": {
2892
+ "type": "string"
2893
+ },
2894
+ "reactionHeader": {
2895
+ "type": "array",
2896
+ "minItems": 1,
2897
+ "items": {
2898
+ "$ref": "../entry.json"
2899
+ }
2900
+ },
2901
+ "reaction": {
2902
+ "type": "array",
2903
+ "minItems": 1,
2904
+ "items": {
2905
+ "type": "object",
2906
+ "properties": {
2907
+ "name": {
2908
+ "type": "string"
2909
+ },
2910
+ "entries": {
2911
+ "type": "array",
2912
+ "items": {
2913
+ "$ref": "../entry.json"
2914
+ }
2915
+ }
2916
+ },
2917
+ "required": [
2918
+ "name",
2919
+ "entries"
2920
+ ],
2921
+ "additionalProperties": false
2922
+ }
2923
+ },
2924
+ "legendaryGroup": {
2925
+ "type": "object",
2926
+ "properties": {
2927
+ "name": {
2928
+ "type": "string"
2929
+ },
2930
+ "source": {
2931
+ "type": "string"
2932
+ }
2933
+ }
2934
+ },
2935
+ "legendaryActions": {
2936
+ "type": "number"
2937
+ },
2938
+ "legendaryHeader": {
2939
+ "type": "array",
2940
+ "minItems": 1,
2941
+ "items": {
2942
+ "$ref": "../entry.json"
2943
+ }
2944
+ },
2945
+ "legendary": {
2946
+ "oneOf": [
2947
+ {
2948
+ "type": "array",
2949
+ "minItems": 1,
2950
+ "items": {
2951
+ "type": "object",
2952
+ "properties": {
2953
+ "name": {
2954
+ "type": "string"
2955
+ },
2956
+ "entries": {
2957
+ "type": "array",
2958
+ "items": {
2959
+ "$ref": "../entry.json"
2960
+ }
2961
+ }
2962
+ },
2963
+ "required": [
2964
+ "entries"
2965
+ ],
2966
+ "additionalProperties": false
2967
+ }
2968
+ },
2969
+ {
2970
+ "type": "null"
2971
+ }
2972
+ ]
2973
+ },
2974
+ "mythicHeader": {
2975
+ "type": "array",
2976
+ "minItems": 1,
2977
+ "items": {
2978
+ "$ref": "../entry.json"
2979
+ }
2980
+ },
2981
+ "mythic": {
2982
+ "type": "array",
2983
+ "minItems": 1,
2984
+ "items": {
2985
+ "type": "object",
2986
+ "properties": {
2987
+ "name": {
2988
+ "type": "string"
2989
+ },
2990
+ "entries": {
2991
+ "type": "array",
2992
+ "items": {
2993
+ "$ref": "../entry.json"
2994
+ }
2995
+ }
2996
+ },
2997
+ "required": [
2998
+ "entries"
2999
+ ],
3000
+ "additionalProperties": false
3001
+ }
3002
+ },
3003
+ "variant": {
3004
+ "type": "array",
3005
+ "items": {
3006
+ "$ref": "#/$defs/entryVariantBestiary"
3007
+ }
3008
+ },
3009
+ "page": {
3010
+ "$ref": "../util.json#/$defs/page"
3011
+ },
3012
+ "familiar": {
3013
+ "type": "boolean"
3014
+ },
3015
+ "additionalSources": {
3016
+ "$ref": "../util.json#/$defs/additionalSources"
3017
+ },
3018
+ "hasToken": {
3019
+ "type": "boolean"
3020
+ },
3021
+ "tokenUrl": {
3022
+ "type": "string"
3023
+ },
3024
+ "altArt": {
3025
+ "type": "array",
3026
+ "items": {
3027
+ "anyOf": [
3028
+ {
3029
+ "type": "object",
3030
+ "properties": {
3031
+ "name": {
3032
+ "type": "string"
3033
+ },
3034
+ "source": {
3035
+ "type": "string"
3036
+ },
3037
+ "page": {
3038
+ "$ref": "../util.json#/$defs/page"
3039
+ }
3040
+ },
3041
+ "required": [
3042
+ "name",
3043
+ "source"
3044
+ ]
3045
+ },
3046
+ {
3047
+ "type": "object",
3048
+ "description": "An URL pointing to an alternative token for the creature.",
3049
+ "properties": {
3050
+ "tokenUrl": {
3051
+ "type": "string"
3052
+ }
3053
+ },
3054
+ "required": [
3055
+ "tokenUrl"
3056
+ ],
3057
+ "additionalProperties": false
3058
+ }
3059
+ ]
3060
+ }
3061
+ },
3062
+ "isNamedCreature": {
3063
+ "type": "boolean"
3064
+ },
3065
+ "isNpc": {
3066
+ "description": "Used to flag adventure NPCs",
3067
+ "type": "boolean"
3068
+ },
3069
+ "environment": {
3070
+ "type": "array",
3071
+ "minItems": 1,
3072
+ "items": {
3073
+ "type": "string",
3074
+ "examples": [
3075
+ "underwater",
3076
+ "coastal",
3077
+ "mountain",
3078
+ "grassland",
3079
+ "hill",
3080
+ "arctic",
3081
+ "urban",
3082
+ "forest",
3083
+ "swamp",
3084
+ "underdark",
3085
+ "desert"
3086
+ ]
3087
+ }
3088
+ },
3089
+ "soundClip": {
3090
+ "$ref": "../entry.json#/$defs/mediaHref"
3091
+ },
3092
+ "dragonCastingColor": {
3093
+ "type": "string",
3094
+ "examples": [
3095
+ "black",
3096
+ "blue",
3097
+ "green",
3098
+ "red",
3099
+ "white",
3100
+ "brass",
3101
+ "bronze",
3102
+ "copper",
3103
+ "gold",
3104
+ "silver",
3105
+ "deep"
3106
+ ]
3107
+ },
3108
+ "dragonAge": {
3109
+ "type": "string",
3110
+ "examples": [
3111
+ "young",
3112
+ "adult",
3113
+ "wyrmling",
3114
+ "greatwyrm",
3115
+ "ancient",
3116
+ "aspect"
3117
+ ]
3118
+ },
3119
+ "traitTags": {
3120
+ "type": "array",
3121
+ "items": {
3122
+ "type": "string",
3123
+ "enum": [
3124
+ "Aggressive",
3125
+ "Ambusher",
3126
+ "Amorphous",
3127
+ "Amphibious",
3128
+ "Antimagic Susceptibility",
3129
+ "Brute",
3130
+ "Charge",
3131
+ "Damage Absorption",
3132
+ "Death Burst",
3133
+ "Devil's Sight",
3134
+ "False Appearance",
3135
+ "Fey Ancestry",
3136
+ "Flyby",
3137
+ "Hold Breath",
3138
+ "Illumination",
3139
+ "Immutable Form",
3140
+ "Incorporeal Movement",
3141
+ "Keen Senses",
3142
+ "Legendary Resistances",
3143
+ "Light Sensitivity",
3144
+ "Magic Resistance",
3145
+ "Magic Weapons",
3146
+ "Pack Tactics",
3147
+ "Pounce",
3148
+ "Rampage",
3149
+ "Reckless",
3150
+ "Regeneration",
3151
+ "Rejuvenation",
3152
+ "Shapechanger",
3153
+ "Siege Monster",
3154
+ "Sneak Attack",
3155
+ "Spell Immunity",
3156
+ "Spider Climb",
3157
+ "Sunlight Sensitivity",
3158
+ "Tree Stride",
3159
+ "Turn Immunity",
3160
+ "Turn Resistance",
3161
+ "Undead Fortitude",
3162
+ "Unusual Nature",
3163
+ "Water Breathing",
3164
+ "Web Sense",
3165
+ "Web Walker"
3166
+ ]
3167
+ }
3168
+ },
3169
+ "actionTags": {
3170
+ "type": "array",
3171
+ "items": {
3172
+ "type": "string",
3173
+ "enum": [
3174
+ "Breath Weapon",
3175
+ "Frightful Presence",
3176
+ "Multiattack",
3177
+ "Parry",
3178
+ "Shapechanger",
3179
+ "Swallow",
3180
+ "Teleport",
3181
+ "Tentacles"
3182
+ ]
3183
+ }
3184
+ },
3185
+ "languageTags": {
3186
+ "type": "array",
3187
+ "items": {
3188
+ "type": "string",
3189
+ "description": "X: Any (Choose)\n XX: All\n CS: Can't Speak Known Languages\n LF: Languages Known in Life\n TP: Telepathy\n OTH: Other\n -\n AB: Abyssal\n AQ: Aquan\n AU: Auran\n C: Common\n CE: Celestial\n D: Dwarvish\n DR: Draconic\n DS: Deep Speech\n DU: Druidic\n E: Elvish\n G: Gnomish\n GI: Giant\n GO: Goblin\n GTH: Gith\n H: Halfling\n I: Infernal\n IG: Ignan\n O: Orc\n P: Primordial\n S: Sylvan\n T: Terran\n TC: Thieves' cant\n U: Undercommon\n ",
3190
+ "enum": [
3191
+ "AB",
3192
+ "AQ",
3193
+ "AU",
3194
+ "C",
3195
+ "CE",
3196
+ "CS",
3197
+ "D",
3198
+ "DR",
3199
+ "DS",
3200
+ "DU",
3201
+ "E",
3202
+ "G",
3203
+ "GI",
3204
+ "GO",
3205
+ "GTH",
3206
+ "H",
3207
+ "I",
3208
+ "IG",
3209
+ "LF",
3210
+ "O",
3211
+ "OTH",
3212
+ "P",
3213
+ "S",
3214
+ "T",
3215
+ "TC",
3216
+ "TP",
3217
+ "U",
3218
+ "X",
3219
+ "XX"
3220
+ ]
3221
+ }
3222
+ },
3223
+ "senseTags": {
3224
+ "type": "array",
3225
+ "items": {
3226
+ "type": "string",
3227
+ "description": "B: Blindsight\n D: Darkvision\n SD: Superior Darkvision\n T: Tremorsense\n U: Truesight",
3228
+ "enum": [
3229
+ "B",
3230
+ "D",
3231
+ "SD",
3232
+ "T",
3233
+ "U"
3234
+ ]
3235
+ }
3236
+ },
3237
+ "spellcastingTags": {
3238
+ "type": "array",
3239
+ "items": {
3240
+ "type": "string",
3241
+ "description": "P: Psionics\n I: Innate\n F: Form Only\n S: Shared\n O: Other\n CA: Class, Artificer\n CB: Class, Bard\n CC: Class, Cleric\n CD: Class, Druid\n CP: Class, Paladin\n CR: Class, Ranger\n CS: Class, Sorcerer\n CL: Class, Warlock\n CW: Class, Wizard",
3242
+ "enum": [
3243
+ "P",
3244
+ "I",
3245
+ "F",
3246
+ "S",
3247
+ "O",
3248
+ "CA",
3249
+ "CB",
3250
+ "CC",
3251
+ "CD",
3252
+ "CP",
3253
+ "CR",
3254
+ "CS",
3255
+ "CL",
3256
+ "CW"
3257
+ ]
3258
+ }
3259
+ },
3260
+ "damageTags": {
3261
+ "type": "array",
3262
+ "items": {
3263
+ "$ref": "../util.json#/$defs/dataDamageTags"
3264
+ }
3265
+ },
3266
+ "damageTagsSpell": {
3267
+ "type": "array",
3268
+ "items": {
3269
+ "$ref": "../util.json#/$defs/dataDamageTags"
3270
+ }
3271
+ },
3272
+ "damageTagsLegendary": {
3273
+ "type": "array",
3274
+ "items": {
3275
+ "$ref": "../util.json#/$defs/dataDamageTags"
3276
+ }
3277
+ },
3278
+ "miscTags": {
3279
+ "type": "array",
3280
+ "items": {
3281
+ "description": "AOE: Has Areas of Effect\n HPR: Has HP Reduction\n MW: Has Weapon Attacks, Melee\n RW: Has Weapon Attacks, Ranged\n RCH: Has Reach Attacks\n RNG: Has Ranged Weapons\n THW: Has Thrown Weapons",
3282
+ "enum": [
3283
+ "AOE",
3284
+ "HPR",
3285
+ "MW",
3286
+ "RW",
3287
+ "RCH",
3288
+ "RNG",
3289
+ "THW"
3290
+ ]
3291
+ }
3292
+ },
3293
+ "conditionInflict": {
3294
+ "$ref": "../util.json#/$defs/tagsConditions"
3295
+ },
3296
+ "conditionInflictLegendary": {
3297
+ "$ref": "../util.json#/$defs/tagsConditions"
3298
+ },
3299
+ "conditionInflictSpell": {
3300
+ "$ref": "../util.json#/$defs/tagsConditions"
3301
+ },
3302
+ "footer": {
3303
+ "description": "Intended for homebrew use only.",
3304
+ "type": "array",
3305
+ "items": {
3306
+ "$ref": "../entry.json"
3307
+ }
3308
+ },
3309
+ "srd": {
3310
+ "$ref": "../util.json#/$defs/srd"
3311
+ },
3312
+ "basicRules": {
3313
+ "$ref": "../util.json#/$defs/basicRules"
3314
+ },
3315
+ "summonedBySpell": {
3316
+ "description": "The spell used to summon this creature; specifically for TCE-esque summon spells.",
3317
+ "type": "string"
3318
+ },
3319
+ "summonedBySpellLevel": {
3320
+ "description": "The level of the spell used to summon this creature; specifically for TCE-esque summon spells.",
3321
+ "type": "integer"
3322
+ },
3323
+ "summonedByClass": {
3324
+ "description": "The class which can summon this creature; e.g. for those granted by some TCE class features.",
3325
+ "type": "string"
3326
+ },
3327
+ "_isCopy": {
3328
+ "description": "An internal flag indicating this creature is a copy of another, and is a temporary/placeholder entry which will be factored out using the \"_copy\" format at a later date.",
3329
+ "type": "boolean"
3330
+ },
3331
+ "_versions": {
3332
+ "type": "array",
3333
+ "items": {
3334
+ "$ref": "#/$defs/creatureVersion"
3335
+ }
3336
+ },
3337
+ "hasFluff": {
3338
+ "type": "boolean"
3339
+ },
3340
+ "hasFluffImages": {
3341
+ "type": "boolean"
3342
+ },
3343
+ "externalSources": {
3344
+ "description": "For homebrew use only.",
3345
+ "type": "array",
3346
+ "items": {
3347
+ "type": "object",
3348
+ "properties": {
3349
+ "entry": {
3350
+ "$ref": "../entry.json"
3351
+ }
3352
+ },
3353
+ "required": [
3354
+ "entry"
3355
+ ],
3356
+ "additionalProperties": false
3357
+ }
3358
+ },
3359
+ "fluff": {
3360
+ "description": "This is intended to be used for Homebrew only - site data should include a fluff file per source",
3361
+ "anyOf": [
3362
+ {
3363
+ "$ref": "../util.json#/$defs/fluffObject"
3364
+ },
3365
+ {
3366
+ "description": "Reference \"monsterFluff\" array items",
3367
+ "type": "object",
3368
+ "properties": {
3369
+ "_monsterFluff": {
3370
+ "type": "object",
3371
+ "properties": {
3372
+ "name": {
3373
+ "type": "string"
3374
+ },
3375
+ "source": {
3376
+ "type": "string"
3377
+ }
3378
+ }
3379
+ },
3380
+ "_appendMonsterFluff": {
3381
+ "type": "object",
3382
+ "properties": {
3383
+ "name": {
3384
+ "type": "string"
3385
+ },
3386
+ "source": {
3387
+ "type": "string"
3388
+ }
3389
+ }
3390
+ }
3391
+ }
3392
+ }
3393
+ ]
3394
+ },
3395
+ "foundryImg": {
3396
+ "$ref": "../util.json#/$defs/foundryImg"
3397
+ },
3398
+ "_copy": {
3399
+ "type": "object",
3400
+ "properties": {
3401
+ "name": {
3402
+ "type": "string"
3403
+ },
3404
+ "source": {
3405
+ "type": "string"
3406
+ },
3407
+ "pantheon": {
3408
+ "description": "Used in deity data",
3409
+ "type": "string"
3410
+ },
3411
+ "shortName": {
3412
+ "description": "Used in subclass data",
3413
+ "type": "string"
3414
+ },
3415
+ "className": {
3416
+ "description": "Used in subclass data",
3417
+ "type": "string"
3418
+ },
3419
+ "classSource": {
3420
+ "description": "Used in subclass data",
3421
+ "type": "string"
3422
+ },
3423
+ "_mod": {
3424
+ "$ref": "../util.json#/$defs/_modObject"
3425
+ },
3426
+ "_trait": {
3427
+ "type": "object",
3428
+ "properties": {
3429
+ "name": {
3430
+ "type": "string"
3431
+ },
3432
+ "source": {
3433
+ "type": "string"
3434
+ }
3435
+ },
3436
+ "required": [
3437
+ "name",
3438
+ "source"
3439
+ ]
3440
+ },
3441
+ "_preserve": {
3442
+ "type": "object",
3443
+ "patternProperties": {
3444
+ ".*": {
3445
+ "const": true
3446
+ }
3447
+ }
3448
+ }
3449
+ },
3450
+ "required": [
3451
+ "name",
3452
+ "source"
3453
+ ],
3454
+ "additionalProperties": false
3455
+ }
3456
+ },
3457
+ "additionalProperties": false,
3458
+ "required": [
3459
+ "_copy"
3460
+ ]
3461
+ }
3462
+ ]
3463
+ },
3464
+ "variantVersion": {
3465
+ "type": "object",
3466
+ "properties": {
3467
+ "_version": {
3468
+ "oneOf": [
3469
+ {
3470
+ "type": "object",
3471
+ "properties": {
3472
+ "name": {
3473
+ "type": "string"
3474
+ },
3475
+ "source": {
3476
+ "type": "string"
3477
+ },
3478
+ "addAs": {
3479
+ "type": "string"
3480
+ }
3481
+ },
3482
+ "required": [
3483
+ "addAs"
3484
+ ],
3485
+ "additionalProperties": false
3486
+ },
3487
+ {
3488
+ "type": "object",
3489
+ "properties": {
3490
+ "name": {
3491
+ "type": "string"
3492
+ },
3493
+ "source": {
3494
+ "type": "string"
3495
+ },
3496
+ "addHeadersAs": {
3497
+ "type": "string"
3498
+ }
3499
+ },
3500
+ "required": [
3501
+ "addHeadersAs"
3502
+ ],
3503
+ "additionalProperties": false
3504
+ }
3505
+ ]
3506
+ }
3507
+ }
3508
+ },
3509
+ "variantToken": {
3510
+ "type": "object",
3511
+ "properties": {
3512
+ "token": {
3513
+ "type": "object",
3514
+ "properties": {
3515
+ "name": {
3516
+ "type": "string"
3517
+ },
3518
+ "source": {
3519
+ "type": "string"
3520
+ },
3521
+ "page": {
3522
+ "$ref": "../util.json#/$defs/page"
3523
+ }
3524
+ },
3525
+ "required": [
3526
+ "name",
3527
+ "source"
3528
+ ]
3529
+ }
3530
+ }
3531
+ },
3532
+ "entryVariantBestiary": {
3533
+ "anyOf": [
3534
+ {
3535
+ "type": "object",
3536
+ "properties": {
3537
+ "name": {
3538
+ "type": "string"
3539
+ },
3540
+ "type": {
3541
+ "type": "string",
3542
+ "const": "variant"
3543
+ },
3544
+ "source": {
3545
+ "type": "string"
3546
+ },
3547
+ "page": {
3548
+ "$ref": "../util.json#/$defs/page"
3549
+ },
3550
+ "srd": {
3551
+ "$ref": "../util.json#/$defs/srd"
3552
+ },
3553
+ "basicRules": {
3554
+ "$ref": "../util.json#/$defs/basicRules"
3555
+ },
3556
+ "data": {
3557
+ "description": "A generic object for storing special data for external use-cases. Keys prefixed with \"rd-\" should be added as \"data-\" HTML attributes when rendering to HTML.",
3558
+ "type": "object"
3559
+ },
3560
+ "id": {
3561
+ "type": "string"
3562
+ },
3563
+ "entries": {
3564
+ "type": "array",
3565
+ "items": {
3566
+ "$ref": "../entry.json"
3567
+ }
3568
+ },
3569
+ "token": {
3570
+ "type": "object",
3571
+ "properties": {
3572
+ "name": {
3573
+ "type": "string"
3574
+ },
3575
+ "source": {
3576
+ "type": "string"
3577
+ },
3578
+ "page": {
3579
+ "$ref": "../util.json#/$defs/page"
3580
+ }
3581
+ },
3582
+ "required": [
3583
+ "name",
3584
+ "source"
3585
+ ]
3586
+ },
3587
+ "_version": {
3588
+ "oneOf": [
3589
+ {
3590
+ "type": "object",
3591
+ "properties": {
3592
+ "name": {
3593
+ "type": "string"
3594
+ },
3595
+ "source": {
3596
+ "type": "string"
3597
+ },
3598
+ "addAs": {
3599
+ "type": "string"
3600
+ }
3601
+ },
3602
+ "required": [
3603
+ "addAs"
3604
+ ],
3605
+ "additionalProperties": false
3606
+ },
3607
+ {
3608
+ "type": "object",
3609
+ "properties": {
3610
+ "name": {
3611
+ "type": "string"
3612
+ },
3613
+ "source": {
3614
+ "type": "string"
3615
+ },
3616
+ "addHeadersAs": {
3617
+ "type": "string"
3618
+ }
3619
+ },
3620
+ "required": [
3621
+ "addHeadersAs"
3622
+ ],
3623
+ "additionalProperties": false
3624
+ }
3625
+ ]
3626
+ }
3627
+ },
3628
+ "required": [
3629
+ "type",
3630
+ "name",
3631
+ "entries"
3632
+ ],
3633
+ "additionalProperties": false
3634
+ },
3635
+ {
3636
+ "type": "object",
3637
+ "properties": {
3638
+ "name": {
3639
+ "type": "string"
3640
+ },
3641
+ "type": {
3642
+ "type": "string",
3643
+ "const": "inset"
3644
+ },
3645
+ "source": {
3646
+ "type": "string"
3647
+ },
3648
+ "page": {
3649
+ "$ref": "../util.json#/$defs/page"
3650
+ },
3651
+ "srd": {
3652
+ "$ref": "../util.json#/$defs/srd"
3653
+ },
3654
+ "basicRules": {
3655
+ "$ref": "../util.json#/$defs/basicRules"
3656
+ },
3657
+ "data": {
3658
+ "description": "A generic object for storing special data for external use-cases. Keys prefixed with \"rd-\" should be added as \"data-\" HTML attributes when rendering to HTML.",
3659
+ "type": "object"
3660
+ },
3661
+ "id": {
3662
+ "type": "string"
3663
+ },
3664
+ "entries": {
3665
+ "type": "array",
3666
+ "items": {
3667
+ "$ref": "../entry.json"
3668
+ }
3669
+ },
3670
+ "style": {
3671
+ "type": "string"
3672
+ },
3673
+ "token": {
3674
+ "type": "object",
3675
+ "properties": {
3676
+ "name": {
3677
+ "type": "string"
3678
+ },
3679
+ "source": {
3680
+ "type": "string"
3681
+ },
3682
+ "page": {
3683
+ "$ref": "../util.json#/$defs/page"
3684
+ }
3685
+ },
3686
+ "required": [
3687
+ "name",
3688
+ "source"
3689
+ ]
3690
+ },
3691
+ "_version": {
3692
+ "oneOf": [
3693
+ {
3694
+ "type": "object",
3695
+ "properties": {
3696
+ "name": {
3697
+ "type": "string"
3698
+ },
3699
+ "source": {
3700
+ "type": "string"
3701
+ },
3702
+ "addAs": {
3703
+ "type": "string"
3704
+ }
3705
+ },
3706
+ "required": [
3707
+ "addAs"
3708
+ ],
3709
+ "additionalProperties": false
3710
+ },
3711
+ {
3712
+ "type": "object",
3713
+ "properties": {
3714
+ "name": {
3715
+ "type": "string"
3716
+ },
3717
+ "source": {
3718
+ "type": "string"
3719
+ },
3720
+ "addHeadersAs": {
3721
+ "type": "string"
3722
+ }
3723
+ },
3724
+ "required": [
3725
+ "addHeadersAs"
3726
+ ],
3727
+ "additionalProperties": false
3728
+ }
3729
+ ]
3730
+ }
3731
+ },
3732
+ "required": [
3733
+ "type",
3734
+ "entries"
3735
+ ],
3736
+ "additionalProperties": false
3737
+ }
3738
+ ]
3739
+ },
3740
+ "creatureVersion": {
3741
+ "anyOf": [
3742
+ {
3743
+ "$ref": "../util.json#/$defs/version"
3744
+ },
3745
+ {
3746
+ "$ref": "#/$defs/creatureData"
3747
+ }
3748
+ ]
3749
+ }
3750
+ },
3751
+ "properties": {
3752
+ "monster": {
3753
+ "type": "array",
3754
+ "items": {
3755
+ "$ref": "#/$defs/creature"
3756
+ },
3757
+ "$comment": "This is necessary as some site bestiary files assert only otherSources and do not contain any true data.",
3758
+ "uniqueItems": true,
3759
+ "minItems": 1
3760
+ },
3761
+ "_meta": {
3762
+ "$ref": "../util.json#/$defs/metaBlock"
3763
+ }
3764
+ },
3765
+ "additionalProperties": false
3766
+ }