@archivist-gg/dnd5e 0.3.0 → 0.3.4

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 (260) hide show
  1. package/LICENSES/SRD.md +25 -6
  2. package/dist/armor/armor.codec.js +4 -3
  3. package/dist/armor/armor.parser.js +3 -2
  4. package/dist/armor/armor.schema.d.ts +4 -0
  5. package/dist/armor/armor.schema.js +2 -1
  6. package/dist/armor/armor.types.d.ts +8 -0
  7. package/dist/background/background.codec.js +7 -6
  8. package/dist/background/background.parser.js +6 -5
  9. package/dist/background/background.schema.d.ts +34 -0
  10. package/dist/background/background.schema.js +9 -6
  11. package/dist/background/background.types.d.ts +22 -0
  12. package/dist/{chunk-4TIJKN6O.js → chunk-23LZLBJK.js} +1 -1
  13. package/dist/{chunk-AFKTJXRA.js → chunk-2DFENQIJ.js} +18 -0
  14. package/dist/chunk-2FRUSVZS.js +489 -0
  15. package/dist/chunk-4FWNK4FD.js +159 -0
  16. package/dist/chunk-4U55VNC7.js +22 -0
  17. package/dist/{chunk-4JHOHWBI.js → chunk-4XTNPNQB.js} +1 -1
  18. package/dist/{chunk-HCP3GMHS.js → chunk-5N2GW72F.js} +15 -2
  19. package/dist/{chunk-42Y5IJKT.js → chunk-5U5FFFA3.js} +5 -1
  20. package/dist/{chunk-4F6AIZ36.js → chunk-5XMQPTHD.js} +1 -1
  21. package/dist/{chunk-GJOI2GHP.js → chunk-6GNXYAYP.js} +1 -1
  22. package/dist/chunk-6PKV5V2H.js +178 -0
  23. package/dist/{chunk-66XXW2Z2.js → chunk-6PXTNCBP.js} +2 -2
  24. package/dist/chunk-6X2NV665.js +33 -0
  25. package/dist/{chunk-LV4SNWZQ.js → chunk-6X4KUDMU.js} +8 -1
  26. package/dist/{chunk-ZMR77DDL.js → chunk-AW3EHF3L.js} +1 -1
  27. package/dist/chunk-CJYCVNW2.js +7 -0
  28. package/dist/chunk-COEOOQX2.js +133 -0
  29. package/dist/{chunk-XTIQWSFM.js → chunk-D5U7GMPX.js} +1 -1
  30. package/dist/{chunk-RAWJTA45.js → chunk-DEEHHLAP.js} +1 -1
  31. package/dist/chunk-DPUJDOKV.js +365 -0
  32. package/dist/{chunk-73HOFQQ5.js → chunk-ESS46GR4.js} +1 -1
  33. package/dist/chunk-EVMUJYUD.js +195 -0
  34. package/dist/{chunk-2BWAID3Y.js → chunk-FDBWYMZK.js} +29 -3
  35. package/dist/{chunk-K6Q5OUGK.js → chunk-GFZ7PITJ.js} +86 -10
  36. package/dist/chunk-H7KBLR4X.js +81 -0
  37. package/dist/{chunk-L7E2UT5A.js → chunk-HB7XZXDK.js} +5 -1
  38. package/dist/{chunk-VTYUBINW.js → chunk-HJ5EEZ47.js} +1 -1
  39. package/dist/{chunk-6NK2MUD3.js → chunk-HZA7OE7N.js} +9 -2
  40. package/dist/{chunk-A4WENOUQ.js → chunk-I2NDWFDD.js} +52 -8
  41. package/dist/{chunk-RSDRMH54.js → chunk-IMZFOOVL.js} +1 -1
  42. package/dist/{chunk-3DZ74AKK.js → chunk-IN4M4X7P.js} +8 -2
  43. package/dist/chunk-IUAAXXNO.js +58 -0
  44. package/dist/{chunk-XJNECUPT.js → chunk-JC5UNIVM.js} +19 -0
  45. package/dist/chunk-JJ46T5XX.js +297 -0
  46. package/dist/{chunk-TUIFSVLI.js → chunk-JRDPUDT5.js} +30 -3
  47. package/dist/{chunk-24GFQU7T.js → chunk-JSZ4H6AQ.js} +1 -1
  48. package/dist/chunk-KU3YLF6D.js +106 -0
  49. package/dist/{chunk-5INR4NSL.js → chunk-LDDCNPHD.js} +1 -1
  50. package/dist/{chunk-DZXSWSBP.js → chunk-LMBAEIP6.js} +1 -1
  51. package/dist/chunk-LVQLWRCU.js +15 -0
  52. package/dist/chunk-MI7P3NX3.js +161 -0
  53. package/dist/chunk-O4SRD3J5.js +165 -0
  54. package/dist/{chunk-EMOORSQ7.js → chunk-OSQFPGLM.js} +45 -6
  55. package/dist/chunk-OZP6JFGT.js +162 -0
  56. package/dist/{chunk-NAEPSZAM.js → chunk-PDJSUH24.js} +24 -2
  57. package/dist/chunk-PP2UHLBA.js +50 -0
  58. package/dist/chunk-PVCEA4HZ.js +6 -0
  59. package/dist/{chunk-XLSVNUTK.js → chunk-R3VAKWKW.js} +1 -1
  60. package/dist/chunk-RIXI5D3R.js +89 -0
  61. package/dist/chunk-RLGQ5PZZ.js +16 -0
  62. package/dist/chunk-S7REMWW4.js +21 -0
  63. package/dist/{chunk-7VJ6BOA5.js → chunk-SMLXZUBH.js} +9 -1
  64. package/dist/{chunk-NXSWH3AE.js → chunk-T26ZVCL5.js} +1 -1
  65. package/dist/chunk-TOM66P2P.js +38 -0
  66. package/dist/chunk-UA5KS2PL.js +26 -0
  67. package/dist/{chunk-N6N74K6X.js → chunk-UBBKSYBY.js} +1 -1
  68. package/dist/{chunk-353WXS6S.js → chunk-UIRMA5KM.js} +1 -1
  69. package/dist/{chunk-GE4TLPWM.js → chunk-US5IKYCW.js} +1 -1
  70. package/dist/chunk-UXPGW4TI.js +101 -0
  71. package/dist/chunk-VQAXTIBW.js +100 -0
  72. package/dist/{chunk-WP2CX2JO.js → chunk-WELIKLZF.js} +22 -1
  73. package/dist/chunk-WPWOHGPI.js +172 -0
  74. package/dist/{chunk-GZ46OVGZ.js → chunk-WSVMLNTO.js} +1 -1
  75. package/dist/{chunk-4LZJXJJS.js → chunk-WXWPK3LI.js} +6 -2
  76. package/dist/{chunk-ZZGEVJKX.js → chunk-XBQMCEI2.js} +1 -1
  77. package/dist/{chunk-PHQRGDRQ.js → chunk-XGOFP7AQ.js} +5 -1
  78. package/dist/chunk-XJ2F2WO6.js +8 -0
  79. package/dist/chunk-XQCSGNXE.js +1580 -0
  80. package/dist/chunk-YBLDE5CG.js +42 -0
  81. package/dist/{chunk-JEYQU3JT.js → chunk-YHYTW5QA.js} +2 -18
  82. package/dist/{chunk-TLYDBT5F.js → chunk-YJJTISBN.js} +64 -7
  83. package/dist/{chunk-PZOWBI3B.js → chunk-YLL2QXY2.js} +7 -2
  84. package/dist/{chunk-MDEJHMKK.js → chunk-ZONJ66NE.js} +26 -5
  85. package/dist/class/class.codec.js +12 -9
  86. package/dist/class/class.parser.js +11 -8
  87. package/dist/class/class.schema.d.ts +55 -3
  88. package/dist/class/class.schema.js +9 -7
  89. package/dist/class/class.types.d.ts +48 -3
  90. package/dist/condition/condition.codec.d.ts +9 -0
  91. package/dist/condition/condition.entity-type.d.ts +2 -0
  92. package/dist/condition/condition.parser.d.ts +13 -0
  93. package/dist/condition/condition.parser.js +7 -0
  94. package/dist/condition/condition.schema.d.ts +29 -0
  95. package/dist/condition/condition.types.d.ts +15 -0
  96. package/dist/condition/condition.types.js +0 -0
  97. package/dist/dnd/constants.d.ts +22 -0
  98. package/dist/dnd/constants.js +9 -3
  99. package/dist/dnd/formula-tags.js +2 -2
  100. package/dist/dnd/math.d.ts +26 -0
  101. package/dist/dnd/math.js +12 -2
  102. package/dist/dnd/prose-tags.js +1 -1
  103. package/dist/dnd/resource-formula.d.ts +36 -10
  104. package/dist/dnd/resource-formula.js +10 -155
  105. package/dist/dnd/srd-tag-converter.js +3 -3
  106. package/dist/dnd/tag-grammar.js +1 -1
  107. package/dist/dnd/warn-once.d.ts +2 -0
  108. package/dist/dnd/warn-once.js +8 -0
  109. package/dist/entities/base-item-resolver.js +2 -2
  110. package/dist/entities/slug.d.ts +13 -0
  111. package/dist/entities/slug.js +5 -3
  112. package/dist/entities/wikilink-display.d.ts +3 -0
  113. package/dist/entities/wikilink-display.js +10 -0
  114. package/dist/feat/feat.category-codes.d.ts +32 -0
  115. package/dist/feat/feat.category-codes.js +14 -0
  116. package/dist/feat/feat.codec.js +7 -5
  117. package/dist/feat/feat.parser.js +6 -4
  118. package/dist/feat/feat.schema.d.ts +230 -0
  119. package/dist/feat/feat.schema.js +5 -3
  120. package/dist/feat/feat.types.d.ts +37 -1
  121. package/dist/index.js +2120 -6923
  122. package/dist/item/item.ai-schema.d.ts +1 -1
  123. package/dist/item/item.codec.js +4 -3
  124. package/dist/item/item.enrichment.js +4 -4
  125. package/dist/item/item.parser.js +3 -2
  126. package/dist/item/item.schema.d.ts +69 -3
  127. package/dist/item/item.schema.js +2 -1
  128. package/dist/item/item.types.d.ts +69 -3
  129. package/dist/monster/monster.codec.d.ts +7 -6
  130. package/dist/monster/monster.enrichment.js +4 -4
  131. package/dist/monster/monster.format.d.ts +135 -0
  132. package/dist/monster/monster.format.js +78 -0
  133. package/dist/monster/monster.parser.d.ts +6 -1
  134. package/dist/monster/monster.parser.js +10 -1
  135. package/dist/monster/monster.schema.d.ts +369 -0
  136. package/dist/monster/monster.schema.js +34 -0
  137. package/dist/monster/monster.types.d.ts +200 -14
  138. package/dist/optional-feature/optional-feature.codec.js +6 -5
  139. package/dist/optional-feature/optional-feature.parser.js +5 -4
  140. package/dist/optional-feature/optional-feature.schema.d.ts +176 -0
  141. package/dist/optional-feature/optional-feature.schema.js +4 -3
  142. package/dist/pack.d.ts +1 -1
  143. package/dist/pc/conditions.constants.d.ts +0 -1
  144. package/dist/pc/conditions.constants.js +1 -3
  145. package/dist/pc/decision-recognizer.js +1 -1
  146. package/dist/pc/pc.additional-spells.d.ts +47 -0
  147. package/dist/pc/pc.additional-spells.js +23 -0
  148. package/dist/pc/pc.asi-flatten.d.ts +18 -0
  149. package/dist/pc/pc.decision-engine.d.ts +106 -5
  150. package/dist/pc/pc.decision-engine.js +28 -10
  151. package/dist/pc/pc.defense-normalize.d.ts +11 -0
  152. package/dist/pc/pc.defense-normalize.js +6 -0
  153. package/dist/pc/pc.equipment.d.ts +30 -1
  154. package/dist/pc/pc.equipment.js +12 -7
  155. package/dist/pc/pc.feature-effects.d.ts +225 -11
  156. package/dist/pc/pc.feature-effects.js +21 -5
  157. package/dist/pc/pc.parser.js +2 -2
  158. package/dist/pc/pc.pools.d.ts +11 -3
  159. package/dist/pc/pc.pools.js +9 -13
  160. package/dist/pc/pc.proficiencies.d.ts +60 -4
  161. package/dist/pc/pc.proficiencies.js +89 -37
  162. package/dist/pc/pc.proficiency-grants.d.ts +58 -0
  163. package/dist/pc/pc.proficiency-normalize.d.ts +29 -0
  164. package/dist/pc/pc.proficiency-normalize.js +12 -0
  165. package/dist/pc/pc.proficiency-query.d.ts +13 -0
  166. package/dist/pc/pc.proficiency-query.js +5 -1
  167. package/dist/pc/pc.recalc.d.ts +69 -14
  168. package/dist/pc/pc.recalc.js +291 -142
  169. package/dist/pc/pc.resolver.d.ts +34 -8
  170. package/dist/pc/pc.resolver.js +27 -12
  171. package/dist/pc/pc.resource-seed.d.ts +3 -2
  172. package/dist/pc/pc.resource-seed.js +19 -17
  173. package/dist/pc/pc.resources.d.ts +87 -0
  174. package/dist/pc/pc.resources.js +21 -0
  175. package/dist/pc/pc.rest.d.ts +10 -1
  176. package/dist/pc/pc.rest.js +66 -12
  177. package/dist/pc/pc.schema.d.ts +147 -7
  178. package/dist/pc/pc.schema.js +4 -2
  179. package/dist/pc/pc.slotting.js +3 -3
  180. package/dist/pc/pc.spellcasting.d.ts +80 -7
  181. package/dist/pc/pc.spellcasting.js +18 -6
  182. package/dist/pc/pc.table-column.d.ts +23 -0
  183. package/dist/pc/pc.table-column.js +13 -3
  184. package/dist/pc/pc.types.d.ts +253 -16
  185. package/dist/pc/pool-layout.d.ts +47 -0
  186. package/dist/pc/pool-layout.js +16 -0
  187. package/dist/pc/roll-scope.d.ts +2 -0
  188. package/dist/pc/roll-scope.js +8 -0
  189. package/dist/pc/roll-tag-labels.d.ts +40 -0
  190. package/dist/pc/roll-tag-labels.js +17 -0
  191. package/dist/pc/spell-source.d.ts +21 -0
  192. package/dist/pc/spell-source.js +13 -0
  193. package/dist/race/race.codec.js +9 -7
  194. package/dist/race/race.parser.js +8 -6
  195. package/dist/race/race.schema.d.ts +51 -1
  196. package/dist/race/race.schema.js +8 -5
  197. package/dist/race/race.structural.d.ts +7 -0
  198. package/dist/race/race.structural.js +6 -0
  199. package/dist/race/race.types.d.ts +20 -0
  200. package/dist/schemas/attack-schema.d.ts +5 -0
  201. package/dist/schemas/caster-type-schema.d.ts +14 -0
  202. package/dist/schemas/caster-type-schema.js +6 -0
  203. package/dist/schemas/choice-schema.js +2 -2
  204. package/dist/schemas/entity-extras-schema.d.ts +53 -0
  205. package/dist/schemas/entity-extras-schema.js +10 -0
  206. package/dist/schemas/equipment-grant-schema.d.ts +2 -0
  207. package/dist/schemas/equipment-grant-schema.js +1 -1
  208. package/dist/schemas/feature-alias.d.ts +34 -0
  209. package/dist/schemas/feature-effect-schema.d.ts +124 -0
  210. package/dist/schemas/feature-effect-schema.js +1 -1
  211. package/dist/schemas/feature-schema.d.ts +8 -0
  212. package/dist/schemas/feature-schema.js +6 -4
  213. package/dist/schemas/resource-schema.d.ts +43 -0
  214. package/dist/schemas/resource-schema.js +1 -1
  215. package/dist/schemas/selection-pool-schema.d.ts +2 -0
  216. package/dist/schemas/selection-pool-schema.js +1 -1
  217. package/dist/spell/spell.access.js +23 -3
  218. package/dist/spell/spell.codec.js +4 -3
  219. package/dist/spell/spell.enrichment.js +4 -4
  220. package/dist/spell/spell.parser.d.ts +30 -0
  221. package/dist/spell/spell.parser.js +9 -2
  222. package/dist/spell/spell.scaling.d.ts +27 -6
  223. package/dist/spell/spell.scaling.js +25 -6
  224. package/dist/spell/spell.schema.d.ts +44 -2
  225. package/dist/spell/spell.schema.js +2 -1
  226. package/dist/spell/spell.types.d.ts +14 -0
  227. package/dist/subclass/subclass.codec.d.ts +1 -1
  228. package/dist/subclass/subclass.codec.js +11 -8
  229. package/dist/subclass/subclass.parser.js +10 -7
  230. package/dist/subclass/subclass.schema.d.ts +54 -7
  231. package/dist/subclass/subclass.schema.js +8 -6
  232. package/dist/subclass/subclass.types.d.ts +20 -2
  233. package/dist/types/choice.d.ts +56 -0
  234. package/dist/types/choice.js +21 -3
  235. package/dist/types/equipment-grant.d.ts +8 -1
  236. package/dist/types/feature-effect.d.ts +78 -23
  237. package/dist/types/feature.d.ts +70 -1
  238. package/dist/types/optional-feature.types.d.ts +28 -0
  239. package/dist/types/resource.d.ts +21 -1
  240. package/dist/types/selection-pool.d.ts +17 -2
  241. package/dist/weapon/weapon.classify.js +2 -2
  242. package/dist/weapon/weapon.codec.js +4 -3
  243. package/dist/weapon/weapon.parser.js +3 -2
  244. package/dist/weapon/weapon.schema.d.ts +4 -0
  245. package/dist/weapon/weapon.schema.js +2 -1
  246. package/dist/weapon/weapon.types.d.ts +8 -0
  247. package/package.json +2 -2
  248. package/dist/chunk-5MZSB6OM.js +0 -1089
  249. package/dist/chunk-5XUXXAQJ.js +0 -30
  250. package/dist/chunk-7P65Q426.js +0 -158
  251. package/dist/chunk-AIRFC5NQ.js +0 -143
  252. package/dist/chunk-BH6AMZVY.js +0 -25
  253. package/dist/chunk-CZPMTQOY.js +0 -68
  254. package/dist/chunk-M2EMFD6S.js +0 -269
  255. package/dist/chunk-N2JE7BWL.js +0 -81
  256. package/dist/chunk-NXR3BD2V.js +0 -90
  257. package/dist/chunk-Q5K6LWBZ.js +0 -45
  258. package/dist/chunk-TZK36BU7.js +0 -38
  259. package/dist/chunk-W7HWMMBF.js +0 -46
  260. package/dist/chunk-Y4I74YEG.js +0 -33
@@ -0,0 +1,369 @@
1
+ /**
2
+ * R4-G6 §3 · the monster schema. Every key the converter and the SRD bundle emit is DECLARED (79 converter keys +
3
+ * `name`, `subtype`, `columns`, `slug` / `edition` / `source`, `image` / `thumbnail`, `raw`). An undeclared TOP-LEVEL key
4
+ * relocates to `raw` (the parser's extras copy); an undeclared NESTED key is stripped and the converter census reports
5
+ * it (plain `z.object` on every nested container: Gate 0 Q1). No `.default()`; no `.min(1)` on `rendering_hint`
6
+ * (always `""`); one nullable spelling. `satisfies` (never an annotation) keeps `.shape`, which `MONSTER_KNOWN_KEYS`
7
+ * and the parity test read.
8
+ */
9
+ import { z } from "zod";
10
+ import type { DamageQualifier } from "./monster.types.js";
11
+ export declare const damageQualifierSchema: z.ZodType<DamageQualifier>;
12
+ export declare const monsterSpeedSchema: z.ZodObject<{
13
+ walk: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
14
+ number: z.ZodNumber;
15
+ condition: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>]>>;
17
+ fly: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
18
+ number: z.ZodNumber;
19
+ condition: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>]>>;
21
+ swim: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
22
+ number: z.ZodNumber;
23
+ condition: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>]>>;
25
+ climb: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
26
+ number: z.ZodNumber;
27
+ condition: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>]>>;
29
+ burrow: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
30
+ number: z.ZodNumber;
31
+ condition: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>]>>;
33
+ hover: z.ZodOptional<z.ZodBoolean>;
34
+ can_hover: z.ZodOptional<z.ZodBoolean>;
35
+ alternate: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
36
+ number: z.ZodNumber;
37
+ condition: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>>>>;
39
+ choose: z.ZodOptional<z.ZodObject<{
40
+ from: z.ZodArray<z.ZodString>;
41
+ amount: z.ZodNumber;
42
+ note: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$strip>>;
44
+ }, z.core.$strip>;
45
+ export declare const monsterTypeSchema: z.ZodObject<{
46
+ type: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
47
+ choose: z.ZodArray<z.ZodString>;
48
+ }, z.core.$strip>]>;
49
+ tags: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
50
+ tag: z.ZodString;
51
+ prefix: z.ZodString;
52
+ prefix_hidden: z.ZodOptional<z.ZodBoolean>;
53
+ }, z.core.$strip>]>>>;
54
+ sidekick_type: z.ZodOptional<z.ZodString>;
55
+ sidekick_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
+ swarm_size: z.ZodOptional<z.ZodString>;
57
+ sidekick_hidden: z.ZodOptional<z.ZodBoolean>;
58
+ }, z.core.$strip>;
59
+ export declare const monsterCRSchema: z.ZodObject<{
60
+ cr: z.ZodString;
61
+ lair: z.ZodOptional<z.ZodString>;
62
+ coven: z.ZodOptional<z.ZodString>;
63
+ xp: z.ZodOptional<z.ZodNumber>;
64
+ xp_lair: z.ZodOptional<z.ZodNumber>;
65
+ }, z.core.$strip>;
66
+ export declare const monsterACSchema: z.ZodObject<{
67
+ ac: z.ZodOptional<z.ZodNumber>;
68
+ from: z.ZodOptional<z.ZodArray<z.ZodString>>;
69
+ condition: z.ZodOptional<z.ZodString>;
70
+ braces: z.ZodOptional<z.ZodBoolean>;
71
+ special: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strip>;
73
+ export declare const monsterHPSchema: z.ZodObject<{
74
+ average: z.ZodOptional<z.ZodNumber>;
75
+ formula: z.ZodOptional<z.ZodString>;
76
+ special: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>;
78
+ export declare const alignmentEntrySchema: z.ZodObject<{
79
+ alignment: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ chance: z.ZodOptional<z.ZodNumber>;
81
+ note: z.ZodOptional<z.ZodString>;
82
+ special: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strip>;
84
+ export declare const monsterSpellcastingSchema: z.ZodObject<{
85
+ name: z.ZodOptional<z.ZodString>;
86
+ type: z.ZodOptional<z.ZodString>;
87
+ headerEntries: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
+ footerEntries: z.ZodOptional<z.ZodArray<z.ZodString>>;
89
+ ability: z.ZodOptional<z.ZodString>;
90
+ displayAs: z.ZodOptional<z.ZodString>;
91
+ hidden: z.ZodOptional<z.ZodArray<z.ZodString>>;
92
+ spells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
93
+ slots: z.ZodOptional<z.ZodNumber>;
94
+ lower: z.ZodOptional<z.ZodNumber>;
95
+ spells: z.ZodArray<z.ZodString>;
96
+ }, z.core.$strip>>>;
97
+ will: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
98
+ entry: z.ZodString;
99
+ hidden: z.ZodOptional<z.ZodBoolean>;
100
+ }, z.core.$strip>]>>>;
101
+ ritual: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
102
+ entry: z.ZodString;
103
+ hidden: z.ZodOptional<z.ZodBoolean>;
104
+ }, z.core.$strip>]>>>;
105
+ daily: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
106
+ entry: z.ZodString;
107
+ hidden: z.ZodOptional<z.ZodBoolean>;
108
+ }, z.core.$strip>]>>>>;
109
+ rest: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
110
+ entry: z.ZodString;
111
+ hidden: z.ZodOptional<z.ZodBoolean>;
112
+ }, z.core.$strip>]>>>>;
113
+ restLong: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
114
+ entry: z.ZodString;
115
+ hidden: z.ZodOptional<z.ZodBoolean>;
116
+ }, z.core.$strip>]>>>>;
117
+ recharge: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
118
+ entry: z.ZodString;
119
+ hidden: z.ZodOptional<z.ZodBoolean>;
120
+ }, z.core.$strip>]>>>>;
121
+ legendary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
122
+ entry: z.ZodString;
123
+ hidden: z.ZodOptional<z.ZodBoolean>;
124
+ }, z.core.$strip>]>>>>;
125
+ charges: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
126
+ entry: z.ZodString;
127
+ hidden: z.ZodOptional<z.ZodBoolean>;
128
+ }, z.core.$strip>]>>>>;
129
+ chargesItem: z.ZodOptional<z.ZodString>;
130
+ }, z.core.$strip>;
131
+ export declare const initiativeSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
132
+ proficiency: z.ZodOptional<z.ZodNumber>;
133
+ advantage_mode: z.ZodOptional<z.ZodString>;
134
+ }, z.core.$strip>]>;
135
+ export declare const gearEntrySchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
136
+ item: z.ZodString;
137
+ quantity: z.ZodOptional<z.ZodNumber>;
138
+ displayName: z.ZodOptional<z.ZodString>;
139
+ }, z.core.$strip>]>;
140
+ export declare const monsterSchema: z.ZodObject<{
141
+ name: z.ZodString;
142
+ size: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
143
+ size_note: z.ZodOptional<z.ZodString>;
144
+ type: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
145
+ type: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
146
+ choose: z.ZodArray<z.ZodString>;
147
+ }, z.core.$strip>]>;
148
+ tags: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
149
+ tag: z.ZodString;
150
+ prefix: z.ZodString;
151
+ prefix_hidden: z.ZodOptional<z.ZodBoolean>;
152
+ }, z.core.$strip>]>>>;
153
+ sidekick_type: z.ZodOptional<z.ZodString>;
154
+ sidekick_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
155
+ swarm_size: z.ZodOptional<z.ZodString>;
156
+ sidekick_hidden: z.ZodOptional<z.ZodBoolean>;
157
+ }, z.core.$strip>]>>;
158
+ subtype: z.ZodOptional<z.ZodString>;
159
+ alignment: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
160
+ alignment: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
+ chance: z.ZodOptional<z.ZodNumber>;
162
+ note: z.ZodOptional<z.ZodString>;
163
+ special: z.ZodOptional<z.ZodString>;
164
+ }, z.core.$strip>]>>]>>;
165
+ alignment_prefix: z.ZodOptional<z.ZodString>;
166
+ cr: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
167
+ cr: z.ZodString;
168
+ lair: z.ZodOptional<z.ZodString>;
169
+ coven: z.ZodOptional<z.ZodString>;
170
+ xp: z.ZodOptional<z.ZodNumber>;
171
+ xp_lair: z.ZodOptional<z.ZodNumber>;
172
+ }, z.core.$strip>]>>;
173
+ pb_note: z.ZodOptional<z.ZodString>;
174
+ ac: z.ZodOptional<z.ZodArray<z.ZodObject<{
175
+ ac: z.ZodOptional<z.ZodNumber>;
176
+ from: z.ZodOptional<z.ZodArray<z.ZodString>>;
177
+ condition: z.ZodOptional<z.ZodString>;
178
+ braces: z.ZodOptional<z.ZodBoolean>;
179
+ special: z.ZodOptional<z.ZodString>;
180
+ }, z.core.$strip>>>;
181
+ hp: z.ZodOptional<z.ZodObject<{
182
+ average: z.ZodOptional<z.ZodNumber>;
183
+ formula: z.ZodOptional<z.ZodString>;
184
+ special: z.ZodOptional<z.ZodString>;
185
+ }, z.core.$strip>>;
186
+ speed: z.ZodOptional<z.ZodObject<{
187
+ walk: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
188
+ number: z.ZodNumber;
189
+ condition: z.ZodOptional<z.ZodString>;
190
+ }, z.core.$strip>]>>;
191
+ fly: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
192
+ number: z.ZodNumber;
193
+ condition: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$strip>]>>;
195
+ swim: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
196
+ number: z.ZodNumber;
197
+ condition: z.ZodOptional<z.ZodString>;
198
+ }, z.core.$strip>]>>;
199
+ climb: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
200
+ number: z.ZodNumber;
201
+ condition: z.ZodOptional<z.ZodString>;
202
+ }, z.core.$strip>]>>;
203
+ burrow: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
204
+ number: z.ZodNumber;
205
+ condition: z.ZodOptional<z.ZodString>;
206
+ }, z.core.$strip>]>>;
207
+ hover: z.ZodOptional<z.ZodBoolean>;
208
+ can_hover: z.ZodOptional<z.ZodBoolean>;
209
+ alternate: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
210
+ number: z.ZodNumber;
211
+ condition: z.ZodOptional<z.ZodString>;
212
+ }, z.core.$strip>>>>;
213
+ choose: z.ZodOptional<z.ZodObject<{
214
+ from: z.ZodArray<z.ZodString>;
215
+ amount: z.ZodNumber;
216
+ note: z.ZodOptional<z.ZodString>;
217
+ }, z.core.$strip>>;
218
+ }, z.core.$strip>>;
219
+ abilities: z.ZodOptional<z.ZodObject<{
220
+ str: z.ZodNumber;
221
+ dex: z.ZodNumber;
222
+ con: z.ZodNumber;
223
+ int: z.ZodNumber;
224
+ wis: z.ZodNumber;
225
+ cha: z.ZodNumber;
226
+ }, z.core.$strip>>;
227
+ saves: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
228
+ skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
229
+ skills_other: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
230
+ senses: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
231
+ passive_perception: z.ZodOptional<z.ZodNumber>;
232
+ languages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
233
+ damage_vulnerabilities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodType<DamageQualifier, unknown, z.core.$ZodTypeInternals<DamageQualifier, unknown>>]>>>;
234
+ damage_resistances: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodType<DamageQualifier, unknown, z.core.$ZodTypeInternals<DamageQualifier, unknown>>]>>>;
235
+ damage_immunities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodType<DamageQualifier, unknown, z.core.$ZodTypeInternals<DamageQualifier, unknown>>]>>>;
236
+ condition_immunities: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodType<DamageQualifier, unknown, z.core.$ZodTypeInternals<DamageQualifier, unknown>>]>>>;
237
+ traits: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
238
+ actions: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
239
+ bonus_actions: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
240
+ reactions: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
241
+ legendary_actions: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
242
+ mythic: z.ZodOptional<z.ZodArray<z.ZodType<import("../index.js").Feature, unknown, z.core.$ZodTypeInternals<import("../index.js").Feature, unknown>>>>;
243
+ mythic_header: z.ZodOptional<z.ZodArray<z.ZodString>>;
244
+ legendary_action_uses: z.ZodOptional<z.ZodNumber>;
245
+ legendary_resistance: z.ZodOptional<z.ZodNumber>;
246
+ legendary_actions_lair_count: z.ZodOptional<z.ZodNumber>;
247
+ section_headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
248
+ section: z.ZodString;
249
+ header: z.ZodArray<z.ZodString>;
250
+ }, z.core.$strip>>>;
251
+ action_note: z.ZodOptional<z.ZodString>;
252
+ reaction_note: z.ZodOptional<z.ZodString>;
253
+ spellcasting: z.ZodOptional<z.ZodArray<z.ZodObject<{
254
+ name: z.ZodOptional<z.ZodString>;
255
+ type: z.ZodOptional<z.ZodString>;
256
+ headerEntries: z.ZodOptional<z.ZodArray<z.ZodString>>;
257
+ footerEntries: z.ZodOptional<z.ZodArray<z.ZodString>>;
258
+ ability: z.ZodOptional<z.ZodString>;
259
+ displayAs: z.ZodOptional<z.ZodString>;
260
+ hidden: z.ZodOptional<z.ZodArray<z.ZodString>>;
261
+ spells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
262
+ slots: z.ZodOptional<z.ZodNumber>;
263
+ lower: z.ZodOptional<z.ZodNumber>;
264
+ spells: z.ZodArray<z.ZodString>;
265
+ }, z.core.$strip>>>;
266
+ will: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
267
+ entry: z.ZodString;
268
+ hidden: z.ZodOptional<z.ZodBoolean>;
269
+ }, z.core.$strip>]>>>;
270
+ ritual: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
271
+ entry: z.ZodString;
272
+ hidden: z.ZodOptional<z.ZodBoolean>;
273
+ }, z.core.$strip>]>>>;
274
+ daily: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
275
+ entry: z.ZodString;
276
+ hidden: z.ZodOptional<z.ZodBoolean>;
277
+ }, z.core.$strip>]>>>>;
278
+ rest: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
279
+ entry: z.ZodString;
280
+ hidden: z.ZodOptional<z.ZodBoolean>;
281
+ }, z.core.$strip>]>>>>;
282
+ restLong: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
283
+ entry: z.ZodString;
284
+ hidden: z.ZodOptional<z.ZodBoolean>;
285
+ }, z.core.$strip>]>>>>;
286
+ recharge: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
287
+ entry: z.ZodString;
288
+ hidden: z.ZodOptional<z.ZodBoolean>;
289
+ }, z.core.$strip>]>>>>;
290
+ legendary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
291
+ entry: z.ZodString;
292
+ hidden: z.ZodOptional<z.ZodBoolean>;
293
+ }, z.core.$strip>]>>>>;
294
+ charges: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
295
+ entry: z.ZodString;
296
+ hidden: z.ZodOptional<z.ZodBoolean>;
297
+ }, z.core.$strip>]>>>>;
298
+ chargesItem: z.ZodOptional<z.ZodString>;
299
+ }, z.core.$strip>>>;
300
+ legendary_group: z.ZodOptional<z.ZodObject<{
301
+ name: z.ZodString;
302
+ source: z.ZodString;
303
+ }, z.core.$strip>>;
304
+ lair_actions: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
305
+ regional_actions: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
306
+ variant: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
307
+ initiative: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
308
+ proficiency: z.ZodOptional<z.ZodNumber>;
309
+ advantage_mode: z.ZodOptional<z.ZodString>;
310
+ }, z.core.$strip>]>>;
311
+ gear: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
312
+ item: z.ZodString;
313
+ quantity: z.ZodOptional<z.ZodNumber>;
314
+ displayName: z.ZodOptional<z.ZodString>;
315
+ }, z.core.$strip>]>>>;
316
+ is_named_creature: z.ZodOptional<z.ZodBoolean>;
317
+ is_npc: z.ZodOptional<z.ZodBoolean>;
318
+ familiar: z.ZodOptional<z.ZodBoolean>;
319
+ short_name: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
320
+ level: z.ZodOptional<z.ZodNumber>;
321
+ dragon_age: z.ZodOptional<z.ZodString>;
322
+ dragon_casting_color: z.ZodOptional<z.ZodString>;
323
+ environment: z.ZodOptional<z.ZodArray<z.ZodString>>;
324
+ treasure: z.ZodOptional<z.ZodArray<z.ZodString>>;
325
+ attached_items: z.ZodOptional<z.ZodArray<z.ZodString>>;
326
+ group: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
327
+ summoned_by_spell: z.ZodOptional<z.ZodString>;
328
+ summoned_by_spell_level: z.ZodOptional<z.ZodNumber>;
329
+ summoned_by_class: z.ZodOptional<z.ZodString>;
330
+ trait_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
331
+ action_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
332
+ sense_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
333
+ language_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
334
+ spellcasting_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
335
+ misc_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
336
+ damage_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
337
+ damage_tags_spell: z.ZodOptional<z.ZodArray<z.ZodString>>;
338
+ damage_tags_legendary: z.ZodOptional<z.ZodArray<z.ZodString>>;
339
+ condition_inflict: z.ZodOptional<z.ZodArray<z.ZodString>>;
340
+ condition_inflict_spell: z.ZodOptional<z.ZodArray<z.ZodString>>;
341
+ condition_inflict_legendary: z.ZodOptional<z.ZodArray<z.ZodString>>;
342
+ saving_throw_forced: z.ZodOptional<z.ZodArray<z.ZodString>>;
343
+ saving_throw_forced_spell: z.ZodOptional<z.ZodArray<z.ZodString>>;
344
+ saving_throw_forced_legendary: z.ZodOptional<z.ZodArray<z.ZodString>>;
345
+ has_fluff: z.ZodOptional<z.ZodBoolean>;
346
+ has_fluff_images: z.ZodOptional<z.ZodBoolean>;
347
+ has_token: z.ZodOptional<z.ZodBoolean>;
348
+ token_credit: z.ZodOptional<z.ZodString>;
349
+ token_custom: z.ZodOptional<z.ZodBoolean>;
350
+ foundry_token_scale: z.ZodOptional<z.ZodNumber>;
351
+ sound_clip: z.ZodOptional<z.ZodObject<{
352
+ type: z.ZodString;
353
+ path: z.ZodString;
354
+ }, z.core.$strip>>;
355
+ alt_art: z.ZodOptional<z.ZodArray<z.ZodObject<{
356
+ name: z.ZodString;
357
+ source: z.ZodOptional<z.ZodString>;
358
+ page: z.ZodOptional<z.ZodNumber>;
359
+ }, z.core.$strip>>>;
360
+ image: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
361
+ thumbnail: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
362
+ rendering_hint: z.ZodOptional<z.ZodString>;
363
+ columns: z.ZodOptional<z.ZodNumber>;
364
+ slug: z.ZodOptional<z.ZodString>;
365
+ edition: z.ZodOptional<z.ZodString>;
366
+ source: z.ZodOptional<z.ZodString>;
367
+ raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
368
+ }, z.core.$strip>;
369
+ export declare const MONSTER_KNOWN_KEYS: ReadonlySet<string>;
@@ -0,0 +1,34 @@
1
+ import {
2
+ MONSTER_KNOWN_KEYS,
3
+ alignmentEntrySchema,
4
+ damageQualifierSchema,
5
+ gearEntrySchema,
6
+ initiativeSchema,
7
+ monsterACSchema,
8
+ monsterCRSchema,
9
+ monsterHPSchema,
10
+ monsterSchema,
11
+ monsterSpeedSchema,
12
+ monsterSpellcastingSchema,
13
+ monsterTypeSchema
14
+ } from "../chunk-6PKV5V2H.js";
15
+ import "../chunk-4FWNK4FD.js";
16
+ import "../chunk-WYGD2UGN.js";
17
+ import "../chunk-YLL2QXY2.js";
18
+ import "../chunk-T26ZVCL5.js";
19
+ import "../chunk-WPWOHGPI.js";
20
+ import "../chunk-UA5KS2PL.js";
21
+ export {
22
+ MONSTER_KNOWN_KEYS,
23
+ alignmentEntrySchema,
24
+ damageQualifierSchema,
25
+ gearEntrySchema,
26
+ initiativeSchema,
27
+ monsterACSchema,
28
+ monsterCRSchema,
29
+ monsterHPSchema,
30
+ monsterSchema,
31
+ monsterSpeedSchema,
32
+ monsterSpellcastingSchema,
33
+ monsterTypeSchema
34
+ };
@@ -1,29 +1,215 @@
1
- import type { Abilities, AC, HP, Speed, Feature } from "../types/index.js";
1
+ import type { Abilities, Feature } from "../types/index.js";
2
2
  export interface Monster {
3
3
  name: string;
4
- size?: string;
5
- type?: string;
4
+ size?: string | string[];
5
+ size_note?: string;
6
+ type?: string | MonsterTypeStructured;
6
7
  subtype?: string;
7
- alignment?: string;
8
- cr?: string;
9
- ac?: AC[];
10
- hp?: HP;
11
- speed?: Speed;
8
+ alignment?: string | (string | AlignmentEntry)[];
9
+ alignment_prefix?: string;
10
+ cr?: string | MonsterCRStructured;
11
+ pb_note?: string;
12
+ ac?: MonsterAC[];
13
+ hp?: MonsterHP;
14
+ speed?: MonsterSpeed;
12
15
  abilities?: Abilities;
13
16
  saves?: Partial<Record<string, number>>;
14
17
  skills?: Record<string, number>;
15
- senses?: string[];
18
+ skills_other?: unknown[];
19
+ senses?: string[] | null;
16
20
  passive_perception?: number;
17
- languages?: string[];
18
- damage_vulnerabilities?: string[];
19
- damage_resistances?: string[];
20
- damage_immunities?: string[];
21
- condition_immunities?: string[];
21
+ languages?: string[] | null;
22
+ damage_vulnerabilities?: (string | DamageQualifier)[];
23
+ damage_resistances?: (string | DamageQualifier)[];
24
+ damage_immunities?: (string | DamageQualifier)[];
25
+ condition_immunities?: (string | DamageQualifier)[];
22
26
  traits?: Feature[];
23
27
  actions?: Feature[];
28
+ bonus_actions?: Feature[];
24
29
  reactions?: Feature[];
25
30
  legendary_actions?: Feature[];
31
+ mythic?: Feature[];
32
+ mythic_header?: string[];
26
33
  legendary_action_uses?: number;
27
34
  legendary_resistance?: number;
35
+ legendary_actions_lair_count?: number;
36
+ section_headers?: MonsterSectionHeader[];
37
+ action_note?: string;
38
+ reaction_note?: string;
39
+ spellcasting?: MonsterSpellcasting[];
40
+ legendary_group?: MonsterLegendaryGroup;
41
+ lair_actions?: unknown[];
42
+ regional_actions?: unknown[];
43
+ variant?: unknown[];
44
+ initiative?: number | MonsterInitiative;
45
+ gear?: (string | MonsterGearEntry)[];
46
+ is_named_creature?: boolean;
47
+ is_npc?: boolean;
48
+ familiar?: boolean;
49
+ short_name?: string | boolean;
50
+ level?: number;
51
+ dragon_age?: string;
52
+ dragon_casting_color?: string;
53
+ environment?: string[];
54
+ treasure?: string[];
55
+ attached_items?: string[];
56
+ group?: string[] | null;
57
+ summoned_by_spell?: string;
58
+ summoned_by_spell_level?: number;
59
+ summoned_by_class?: string;
60
+ trait_tags?: string[];
61
+ action_tags?: string[];
62
+ sense_tags?: string[];
63
+ language_tags?: string[];
64
+ spellcasting_tags?: string[];
65
+ misc_tags?: string[];
66
+ damage_tags?: string[];
67
+ damage_tags_spell?: string[];
68
+ damage_tags_legendary?: string[];
69
+ condition_inflict?: string[];
70
+ condition_inflict_spell?: string[];
71
+ condition_inflict_legendary?: string[];
72
+ saving_throw_forced?: string[];
73
+ saving_throw_forced_spell?: string[];
74
+ saving_throw_forced_legendary?: string[];
75
+ has_fluff?: boolean;
76
+ has_fluff_images?: boolean;
77
+ has_token?: boolean;
78
+ token_credit?: string;
79
+ token_custom?: boolean;
80
+ foundry_token_scale?: number;
81
+ sound_clip?: MonsterSoundClip;
82
+ alt_art?: MonsterAltArt[];
83
+ image?: string | string[];
84
+ thumbnail?: string | string[];
85
+ rendering_hint?: string;
28
86
  columns?: number;
87
+ slug?: string;
88
+ edition?: string;
89
+ source?: string;
90
+ raw?: Record<string, unknown>;
91
+ }
92
+ export interface MonsterAC {
93
+ ac?: number;
94
+ from?: string[];
95
+ condition?: string;
96
+ braces?: boolean;
97
+ special?: string;
98
+ }
99
+ export interface MonsterHP {
100
+ average?: number;
101
+ formula?: string;
102
+ special?: string;
103
+ }
104
+ export type MonsterSpeedValue = number | {
105
+ number: number;
106
+ condition?: string;
107
+ };
108
+ export interface MonsterSpeed {
109
+ walk?: MonsterSpeedValue;
110
+ fly?: MonsterSpeedValue;
111
+ swim?: MonsterSpeedValue;
112
+ climb?: MonsterSpeedValue;
113
+ burrow?: MonsterSpeedValue;
114
+ hover?: boolean;
115
+ can_hover?: boolean;
116
+ alternate?: Record<string, {
117
+ number: number;
118
+ condition?: string;
119
+ }[]>;
120
+ choose?: {
121
+ from: string[];
122
+ amount: number;
123
+ note?: string;
124
+ };
125
+ }
126
+ export interface MonsterTypeStructured {
127
+ type: string | {
128
+ choose: string[];
129
+ };
130
+ tags?: (string | {
131
+ tag: string;
132
+ prefix: string;
133
+ prefix_hidden?: boolean;
134
+ })[];
135
+ sidekick_type?: string;
136
+ sidekick_tags?: string[];
137
+ swarm_size?: string;
138
+ sidekick_hidden?: boolean;
139
+ }
140
+ export interface MonsterCRStructured {
141
+ cr: string;
142
+ lair?: string;
143
+ coven?: string;
144
+ xp?: number;
145
+ xp_lair?: number;
146
+ }
147
+ export interface AlignmentEntry {
148
+ alignment?: string[];
149
+ chance?: number;
150
+ note?: string;
151
+ special?: string;
152
+ }
153
+ export interface DamageQualifier {
154
+ types?: (string | DamageQualifier)[];
155
+ note?: string;
156
+ pre_note?: string;
157
+ cond?: boolean;
158
+ special?: string;
159
+ }
160
+ export type MonsterSpellEntry = string | {
161
+ entry: string;
162
+ hidden?: boolean;
163
+ };
164
+ export interface MonsterSpellSlotLevel {
165
+ slots?: number;
166
+ lower?: number;
167
+ spells: string[];
168
+ }
169
+ export interface MonsterSpellcasting {
170
+ name?: string;
171
+ type?: string;
172
+ headerEntries?: string[];
173
+ footerEntries?: string[];
174
+ ability?: string;
175
+ displayAs?: string;
176
+ hidden?: string[];
177
+ spells?: Record<string, MonsterSpellSlotLevel>;
178
+ will?: MonsterSpellEntry[];
179
+ ritual?: MonsterSpellEntry[];
180
+ daily?: Record<string, MonsterSpellEntry[]>;
181
+ rest?: Record<string, MonsterSpellEntry[]>;
182
+ restLong?: Record<string, MonsterSpellEntry[]>;
183
+ recharge?: Record<string, MonsterSpellEntry[]>;
184
+ legendary?: Record<string, MonsterSpellEntry[]>;
185
+ charges?: Record<string, MonsterSpellEntry[]>;
186
+ chargesItem?: string;
187
+ }
188
+ /** `advantage_mode` is a STRING, decoded by `INITIATIVE_MODES` in monster.format.ts (never a closed enum: a hand-typed
189
+ * 5etools `adv` must not refuse the document). */
190
+ export interface MonsterInitiative {
191
+ proficiency?: number;
192
+ advantage_mode?: string;
193
+ }
194
+ export interface MonsterGearEntry {
195
+ item: string;
196
+ quantity?: number;
197
+ displayName?: string;
198
+ }
199
+ export interface MonsterSectionHeader {
200
+ section: string;
201
+ header: string[];
202
+ }
203
+ export interface MonsterLegendaryGroup {
204
+ name: string;
205
+ source: string;
206
+ }
207
+ export interface MonsterSoundClip {
208
+ type: string;
209
+ path: string;
210
+ }
211
+ export interface MonsterAltArt {
212
+ name: string;
213
+ source?: string;
214
+ page?: number;
29
215
  }
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  optionalFeatureCodec
3
- } from "../chunk-RSDRMH54.js";
4
- import "../chunk-4F6AIZ36.js";
5
- import "../chunk-MDEJHMKK.js";
3
+ } from "../chunk-IMZFOOVL.js";
4
+ import "../chunk-5XMQPTHD.js";
5
+ import "../chunk-ZONJ66NE.js";
6
6
  import "../chunk-WYGD2UGN.js";
7
- import "../chunk-PZOWBI3B.js";
8
- import "../chunk-NXR3BD2V.js";
7
+ import "../chunk-YLL2QXY2.js";
8
+ import "../chunk-WPWOHGPI.js";
9
+ import "../chunk-UA5KS2PL.js";
9
10
  export {
10
11
  optionalFeatureCodec
11
12
  };
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  parseOptionalFeature
3
- } from "../chunk-4F6AIZ36.js";
4
- import "../chunk-MDEJHMKK.js";
3
+ } from "../chunk-5XMQPTHD.js";
4
+ import "../chunk-ZONJ66NE.js";
5
5
  import "../chunk-WYGD2UGN.js";
6
- import "../chunk-PZOWBI3B.js";
7
- import "../chunk-NXR3BD2V.js";
6
+ import "../chunk-YLL2QXY2.js";
7
+ import "../chunk-WPWOHGPI.js";
8
+ import "../chunk-UA5KS2PL.js";
8
9
  export {
9
10
  parseOptionalFeature
10
11
  };