@archivist-gg/dnd5e 0.3.19 → 0.3.26

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 (441) hide show
  1. package/LICENSE +48 -21
  2. package/README.md +26 -48
  3. package/dist/armor/armor.codec.d.ts +0 -7
  4. package/dist/armor/armor.codec.js +1 -9
  5. package/dist/armor/armor.parser.js +1 -8
  6. package/dist/armor/armor.schema.js +1 -7
  7. package/dist/armor/armor.types.d.ts +0 -3
  8. package/dist/background/background.codec.d.ts +0 -6
  9. package/dist/background/background.codec.js +1 -12
  10. package/dist/background/background.parser.js +1 -11
  11. package/dist/background/background.schema.js +1 -12
  12. package/dist/background/background.types.d.ts +0 -5
  13. package/dist/chunk-2EOGK6R6.js +1 -0
  14. package/dist/chunk-2HRRH3WL.js +1 -0
  15. package/dist/chunk-2NUDWOFG.js +1 -0
  16. package/dist/chunk-3LWOVRLA.js +1 -0
  17. package/dist/chunk-3QQOATV3.js +1 -0
  18. package/dist/chunk-4E2GIWJE.js +1 -0
  19. package/dist/chunk-4GN3GYMP.js +1 -0
  20. package/dist/chunk-4IAMSRHD.js +1 -0
  21. package/dist/chunk-4JEF3CET.js +1 -0
  22. package/dist/chunk-4KVVAENP.js +1 -0
  23. package/dist/chunk-4SYAKWY4.js +1 -0
  24. package/dist/chunk-56JK6VCL.js +1 -0
  25. package/dist/chunk-5XDCM6YK.js +1 -0
  26. package/dist/chunk-63YJPWTM.js +1 -0
  27. package/dist/chunk-6R46KYGU.js +1 -0
  28. package/dist/chunk-6W253VHH.js +1 -0
  29. package/dist/chunk-72PRMZRD.js +1 -0
  30. package/dist/chunk-757KM22B.js +1 -0
  31. package/dist/chunk-7EL3GWWJ.js +1 -0
  32. package/dist/chunk-7FPQJDFD.js +1 -0
  33. package/dist/chunk-AINRPPLH.js +1 -0
  34. package/dist/chunk-BC52J4LA.js +1 -0
  35. package/dist/chunk-BCXGB4HP.js +1 -0
  36. package/dist/chunk-BREHZNTL.js +1 -0
  37. package/dist/chunk-BZ6BGGZS.js +1 -0
  38. package/dist/chunk-CAPYNIGK.js +1 -0
  39. package/dist/chunk-CCAVZANF.js +1 -0
  40. package/dist/chunk-CCFIINBA.js +1 -0
  41. package/dist/chunk-CEHL7PPC.js +1 -0
  42. package/dist/chunk-CMIEZQL4.js +1 -0
  43. package/dist/chunk-CNMHADNV.js +1 -0
  44. package/dist/chunk-CSTAQQGX.js +1 -0
  45. package/dist/chunk-DTB7YBMZ.js +1 -0
  46. package/dist/chunk-DVUXUIPV.js +1 -0
  47. package/dist/chunk-DZITM5AG.js +1 -0
  48. package/dist/chunk-E3MS4M3N.js +1 -0
  49. package/dist/chunk-E7KFJLDR.js +1 -0
  50. package/dist/chunk-EAARMPCW.js +1 -0
  51. package/dist/chunk-EPA24PVZ.js +1 -0
  52. package/dist/chunk-ETDMOGFO.js +1 -0
  53. package/dist/chunk-EVT7MGAC.js +1 -0
  54. package/dist/chunk-FOLHTMSC.js +1 -0
  55. package/dist/chunk-GCYUCIDN.js +1 -0
  56. package/dist/chunk-GD7WRCNH.js +1 -0
  57. package/dist/chunk-GGQDQSIF.js +1 -0
  58. package/dist/chunk-GIQLIBC7.js +1 -0
  59. package/dist/chunk-HX7WBOKR.js +1 -0
  60. package/dist/chunk-I26FHSI6.js +1 -0
  61. package/dist/chunk-IHPLT2ZT.js +1 -0
  62. package/dist/chunk-J3RP5C7L.js +1 -0
  63. package/dist/chunk-J5GL6FLP.js +1 -0
  64. package/dist/chunk-JXDX2DKF.js +1 -0
  65. package/dist/chunk-KEXSF3CH.js +1 -0
  66. package/dist/chunk-KM75CC6Q.js +1 -0
  67. package/dist/chunk-L2DXF7YS.js +1 -0
  68. package/dist/chunk-LHH5XSEA.js +1 -0
  69. package/dist/chunk-LJNT3PJP.js +1 -0
  70. package/dist/chunk-LR6UMA5V.js +1 -0
  71. package/dist/chunk-M6RPOLKS.js +1 -0
  72. package/dist/chunk-MGGKZGLG.js +1 -0
  73. package/dist/chunk-NEMX7QGG.js +1 -0
  74. package/dist/chunk-NIWLD33X.js +1 -0
  75. package/dist/chunk-NU2Z7MTS.js +1 -0
  76. package/dist/chunk-NYPH7RQN.js +1 -0
  77. package/dist/chunk-NYTR6NJS.js +1 -0
  78. package/dist/chunk-O2QZ73GA.js +1 -0
  79. package/dist/chunk-O776WL7O.js +1 -0
  80. package/dist/chunk-ONCXJMJM.js +1 -0
  81. package/dist/chunk-OTRH62HY.js +1 -0
  82. package/dist/chunk-PFQPP77Q.js +1 -0
  83. package/dist/chunk-PKIMOVQG.js +1 -0
  84. package/dist/chunk-PZ3ZZ5H5.js +1 -0
  85. package/dist/chunk-PZ4L2EEG.js +1 -0
  86. package/dist/chunk-QMEKQTUT.js +1 -0
  87. package/dist/chunk-QVWT67WA.js +1 -0
  88. package/dist/chunk-RE5Z5RNK.js +1 -0
  89. package/dist/chunk-RHIEOYDX.js +1 -0
  90. package/dist/chunk-RQZCGXUZ.js +1 -0
  91. package/dist/chunk-S5UCI27C.js +1 -0
  92. package/dist/chunk-SEOASDO4.js +1 -0
  93. package/dist/chunk-SFK57JAA.js +1 -0
  94. package/dist/chunk-SU4MEZ5P.js +1 -0
  95. package/dist/chunk-T55DELVL.js +1 -0
  96. package/dist/chunk-TKIEPC6F.js +1 -0
  97. package/dist/chunk-UBUKCRZ3.js +1 -0
  98. package/dist/chunk-VA3ZWV7C.js +1 -0
  99. package/dist/chunk-VIP3FH2O.js +1 -0
  100. package/dist/chunk-VTQ4RWEG.js +1 -0
  101. package/dist/chunk-VVJXZZ4Z.js +1 -0
  102. package/dist/chunk-WAUNLUFQ.js +1 -0
  103. package/dist/chunk-X22SISGM.js +1 -0
  104. package/dist/chunk-XKJXT2PN.js +1 -0
  105. package/dist/chunk-XPF53K54.js +1 -0
  106. package/dist/chunk-YGH7S5ZF.js +1 -0
  107. package/dist/chunk-ZE46ADXS.js +1 -0
  108. package/dist/chunk-ZI3FEUX3.js +1 -0
  109. package/dist/chunk-ZS5BMNXC.js +1 -0
  110. package/dist/chunk-ZVL5FXXO.js +1 -0
  111. package/dist/class/class.codec.d.ts +0 -7
  112. package/dist/class/class.codec.js +1 -18
  113. package/dist/class/class.parser.js +1 -17
  114. package/dist/class/class.schema.d.ts +4 -3
  115. package/dist/class/class.schema.js +1 -15
  116. package/dist/class/class.slug.d.ts +0 -11
  117. package/dist/class/class.slug.js +1 -8
  118. package/dist/class/class.standard-array.d.ts +0 -7
  119. package/dist/class/class.standard-array.js +1 -20
  120. package/dist/class/class.types.d.ts +0 -20
  121. package/dist/condition/condition.codec.d.ts +0 -6
  122. package/dist/condition/condition.parser.d.ts +0 -10
  123. package/dist/condition/condition.parser.js +1 -7
  124. package/dist/condition/condition.schema.d.ts +0 -16
  125. package/dist/condition/condition.types.d.ts +0 -3
  126. package/dist/data-srd/index.generated.js +1 -146
  127. package/dist/dnd/amount-text.d.ts +3 -30
  128. package/dist/dnd/amount-text.js +1 -15
  129. package/dist/dnd/constants.d.ts +0 -18
  130. package/dist/dnd/constants.js +1 -42
  131. package/dist/dnd/formula-tags.d.ts +0 -2
  132. package/dist/dnd/formula-tags.js +1 -119
  133. package/dist/dnd/math.d.ts +0 -26
  134. package/dist/dnd/math.js +1 -45
  135. package/dist/dnd/prose-tags.d.ts +1 -15
  136. package/dist/dnd/prose-tags.js +1 -18
  137. package/dist/dnd/resource-die.d.ts +0 -4
  138. package/dist/dnd/resource-die.js +1 -17
  139. package/dist/dnd/resource-formula.d.ts +0 -43
  140. package/dist/dnd/resource-formula.js +1 -14
  141. package/dist/dnd/resource-words.d.ts +0 -2
  142. package/dist/dnd/resource-words.js +1 -30
  143. package/dist/dnd/srd-tag-converter.d.ts +0 -21
  144. package/dist/dnd/srd-tag-converter.js +1 -12
  145. package/dist/dnd/tag-grammar.js +1 -12
  146. package/dist/dnd/warn-once.js +1 -8
  147. package/dist/encounter/encounter.ai-schema.js +1 -8
  148. package/dist/entities/base-item-resolver.d.ts +0 -26
  149. package/dist/entities/base-item-resolver.js +1 -11
  150. package/dist/entities/registry-revision.d.ts +0 -15
  151. package/dist/entities/registry-revision.js +1 -10
  152. package/dist/entities/slug.d.ts +1 -31
  153. package/dist/entities/slug.js +1 -12
  154. package/dist/entities/wikilink-display.d.ts +0 -2
  155. package/dist/entities/wikilink-display.js +1 -10
  156. package/dist/feat/feat.category-codes.d.ts +1 -26
  157. package/dist/feat/feat.category-codes.js +1 -14
  158. package/dist/feat/feat.codec.d.ts +0 -6
  159. package/dist/feat/feat.codec.js +1 -12
  160. package/dist/feat/feat.parser.js +1 -11
  161. package/dist/feat/feat.schema.d.ts +46 -4
  162. package/dist/feat/feat.schema.js +1 -10
  163. package/dist/feat/feat.types.d.ts +0 -6
  164. package/dist/index.js +45 -141495
  165. package/dist/inline-tag-parser.js +1 -6
  166. package/dist/item/item.actions-map.d.ts +4 -63
  167. package/dist/item/item.actions-map.js +1 -10
  168. package/dist/item/item.ai-schema.js +1 -6
  169. package/dist/item/item.attunement.d.ts +0 -14
  170. package/dist/item/item.attunement.js +1 -6
  171. package/dist/item/item.bonuses.js +1 -10
  172. package/dist/item/item.codec.js +1 -9
  173. package/dist/item/item.conditions.d.ts +0 -7
  174. package/dist/item/item.conditions.js +1 -11
  175. package/dist/item/item.conditions.types.d.ts +0 -2
  176. package/dist/item/item.cost.js +1 -29
  177. package/dist/item/item.enrichment.js +1 -9
  178. package/dist/item/item.icon.d.ts +0 -8
  179. package/dist/item/item.icon.js +1 -211
  180. package/dist/item/item.parser.js +1 -8
  181. package/dist/item/item.schema.d.ts +5 -0
  182. package/dist/item/item.schema.js +1 -11
  183. package/dist/item/item.types.d.ts +5 -28
  184. package/dist/monster/monster.ai-schema.js +1 -6
  185. package/dist/monster/monster.codec.d.ts +0 -10
  186. package/dist/monster/monster.enrichment.js +1 -19
  187. package/dist/monster/monster.format.d.ts +0 -69
  188. package/dist/monster/monster.format.js +1 -78
  189. package/dist/monster/monster.parser.d.ts +0 -4
  190. package/dist/monster/monster.parser.js +1 -15
  191. package/dist/monster/monster.resolve.d.ts +0 -4
  192. package/dist/monster/monster.schema.d.ts +0 -9
  193. package/dist/monster/monster.schema.js +1 -34
  194. package/dist/monster/monster.types.d.ts +0 -3
  195. package/dist/monster/monster.types.js +1 -1
  196. package/dist/optional-feature/optional-feature.codec.d.ts +0 -11
  197. package/dist/optional-feature/optional-feature.codec.js +1 -13
  198. package/dist/optional-feature/optional-feature.parser.js +1 -12
  199. package/dist/optional-feature/optional-feature.schema.d.ts +44 -3
  200. package/dist/optional-feature/optional-feature.schema.js +1 -15
  201. package/dist/pack.d.ts +0 -9
  202. package/dist/pc/conditions.constants.js +1 -6
  203. package/dist/pc/decision-recognizer.js +1 -8
  204. package/dist/pc/pc.additional-spells.d.ts +0 -24
  205. package/dist/pc/pc.additional-spells.js +1 -26
  206. package/dist/pc/pc.amount-bindings.d.ts +3 -28
  207. package/dist/pc/pc.amount-bindings.js +1 -28
  208. package/dist/pc/pc.asi-flatten.d.ts +0 -59
  209. package/dist/pc/pc.asi-flatten.js +1 -16
  210. package/dist/pc/pc.conditions.d.ts +1 -0
  211. package/dist/pc/pc.conditions.js +1 -6
  212. package/dist/pc/pc.containment.d.ts +0 -5
  213. package/dist/pc/pc.containment.js +1 -24
  214. package/dist/pc/pc.decision-engine.d.ts +6 -145
  215. package/dist/pc/pc.decision-engine.js +1 -55
  216. package/dist/pc/pc.defense-normalize.d.ts +0 -10
  217. package/dist/pc/pc.defense-normalize.js +1 -6
  218. package/dist/pc/pc.entry-overrides.d.ts +19 -58
  219. package/dist/pc/pc.entry-overrides.js +1 -41
  220. package/dist/pc/pc.equipment.d.ts +2 -22
  221. package/dist/pc/pc.equipment.js +1 -34
  222. package/dist/pc/pc.feature-effects.d.ts +27 -281
  223. package/dist/pc/pc.feature-effects.js +1 -39
  224. package/dist/pc/pc.formula-context.js +1 -11
  225. package/dist/pc/pc.infusions.d.ts +0 -65
  226. package/dist/pc/pc.infusions.js +1 -65
  227. package/dist/pc/pc.item-effects.d.ts +19 -0
  228. package/dist/pc/pc.item-effects.js +1 -0
  229. package/dist/pc/pc.member-choices.d.ts +3 -66
  230. package/dist/pc/pc.member-choices.js +1 -39
  231. package/dist/pc/pc.parser.js +1 -58
  232. package/dist/pc/pc.pools.d.ts +7 -10
  233. package/dist/pc/pc.pools.js +1 -27
  234. package/dist/pc/pc.proficiencies.d.ts +0 -40
  235. package/dist/pc/pc.proficiencies.js +1 -156
  236. package/dist/pc/pc.proficiency-grants.d.ts +3 -27
  237. package/dist/pc/pc.proficiency-normalize.d.ts +0 -35
  238. package/dist/pc/pc.proficiency-normalize.js +1 -18
  239. package/dist/pc/pc.proficiency-query.d.ts +0 -13
  240. package/dist/pc/pc.proficiency-query.js +1 -27
  241. package/dist/pc/pc.recalc.d.ts +8 -131
  242. package/dist/pc/pc.recalc.js +1 -1042
  243. package/dist/pc/pc.resolver.d.ts +9 -107
  244. package/dist/pc/pc.resolver.js +1 -60
  245. package/dist/pc/pc.resource-seed.d.ts +0 -8
  246. package/dist/pc/pc.resource-seed.js +1 -42
  247. package/dist/pc/pc.resources.d.ts +1 -59
  248. package/dist/pc/pc.resources.js +1 -23
  249. package/dist/pc/pc.rest.d.ts +1 -20
  250. package/dist/pc/pc.rest.js +1 -231
  251. package/dist/pc/pc.schema.d.ts +20 -2
  252. package/dist/pc/pc.schema.js +1 -9
  253. package/dist/pc/pc.slotting.d.ts +0 -29
  254. package/dist/pc/pc.slotting.js +1 -28
  255. package/dist/pc/pc.speeds.d.ts +36 -0
  256. package/dist/pc/pc.spell-scope.d.ts +0 -16
  257. package/dist/pc/pc.spellcasting.d.ts +0 -70
  258. package/dist/pc/pc.spellcasting.js +1 -28
  259. package/dist/pc/pc.table-column.d.ts +3 -22
  260. package/dist/pc/pc.table-column.js +1 -18
  261. package/dist/pc/pc.tool-picks.d.ts +0 -27
  262. package/dist/pc/pc.tool-picks.js +1 -18
  263. package/dist/pc/pc.types.d.ts +59 -374
  264. package/dist/pc/pc.weapon-grant.d.ts +0 -6
  265. package/dist/pc/pool-layout.d.ts +0 -39
  266. package/dist/pc/pool-layout.js +1 -18
  267. package/dist/pc/resource-equivalents.d.ts +2 -40
  268. package/dist/pc/roll-scope.js +1 -8
  269. package/dist/pc/roll-tag-labels.d.ts +0 -32
  270. package/dist/pc/roll-tag-labels.js +1 -17
  271. package/dist/pc/spell-source.d.ts +0 -11
  272. package/dist/pc/spell-source.js +1 -8
  273. package/dist/race/race.codec.d.ts +0 -6
  274. package/dist/race/race.codec.js +1 -15
  275. package/dist/race/race.parser.js +1 -14
  276. package/dist/race/race.schema.d.ts +0 -8
  277. package/dist/race/race.schema.js +1 -14
  278. package/dist/race/race.structural.d.ts +0 -6
  279. package/dist/race/race.structural.js +1 -6
  280. package/dist/race/race.types.d.ts +0 -8
  281. package/dist/schemas/attack-schema.d.ts +5 -0
  282. package/dist/schemas/caster-type-schema.d.ts +1 -6
  283. package/dist/schemas/caster-type-schema.js +1 -6
  284. package/dist/schemas/choice-schema.js +1 -7
  285. package/dist/schemas/duration-schema.d.ts +0 -2
  286. package/dist/schemas/duration-schema.js +1 -6
  287. package/dist/schemas/entity-extras-schema.d.ts +0 -30
  288. package/dist/schemas/entity-extras-schema.js +1 -10
  289. package/dist/schemas/equipment-grant-schema.d.ts +0 -2
  290. package/dist/schemas/equipment-grant-schema.js +1 -12
  291. package/dist/schemas/feature-alias.d.ts +0 -27
  292. package/dist/schemas/feature-effect-schema.d.ts +44 -3
  293. package/dist/schemas/feature-effect-schema.js +1 -6
  294. package/dist/schemas/feature-schema.d.ts +0 -6
  295. package/dist/schemas/feature-schema.js +1 -12
  296. package/dist/schemas/resource-schema.d.ts +1 -34
  297. package/dist/schemas/resource-schema.js +1 -12
  298. package/dist/schemas/selection-pool-schema.js +1 -10
  299. package/dist/spell/casting-time.d.ts +0 -15
  300. package/dist/spell/casting-time.js +1 -6
  301. package/dist/spell/spell.access.d.ts +0 -6
  302. package/dist/spell/spell.access.js +1 -45
  303. package/dist/spell/spell.ai-schema.js +1 -6
  304. package/dist/spell/spell.codec.js +1 -9
  305. package/dist/spell/spell.enrichment.js +1 -9
  306. package/dist/spell/spell.filter.d.ts +0 -5
  307. package/dist/spell/spell.filter.js +1 -75
  308. package/dist/spell/spell.parser.d.ts +0 -31
  309. package/dist/spell/spell.parser.js +1 -16
  310. package/dist/spell/spell.scaling.d.ts +0 -46
  311. package/dist/spell/spell.scaling.js +1 -79
  312. package/dist/spell/spell.schema.js +1 -7
  313. package/dist/spell/spell.types.d.ts +0 -7
  314. package/dist/srd/retired-items.d.ts +0 -4
  315. package/dist/srd/retired-items.js +1 -11
  316. package/dist/srd-store.d.ts +0 -33
  317. package/dist/subclass/subclass.codec.d.ts +0 -8
  318. package/dist/subclass/subclass.codec.js +1 -17
  319. package/dist/subclass/subclass.parser.js +1 -16
  320. package/dist/subclass/subclass.schema.d.ts +2 -1
  321. package/dist/subclass/subclass.schema.js +1 -14
  322. package/dist/subclass/subclass.types.d.ts +0 -3
  323. package/dist/types/attack.d.ts +2 -0
  324. package/dist/types/casting-option.d.ts +0 -4
  325. package/dist/types/choice.d.ts +1 -72
  326. package/dist/types/choice.js +1 -24
  327. package/dist/types/edition.d.ts +0 -3
  328. package/dist/types/equipment-grant.d.ts +1 -27
  329. package/dist/types/equipment-grant.js +1 -12
  330. package/dist/types/feature-effect.d.ts +11 -23
  331. package/dist/types/feature.d.ts +0 -22
  332. package/dist/types/optional-feature.types.d.ts +1 -31
  333. package/dist/types/resource.d.ts +1 -21
  334. package/dist/types/selection-pool.d.ts +0 -24
  335. package/dist/weapon/weapon-mastery.d.ts +0 -1
  336. package/dist/weapon/weapon.classify.d.ts +0 -11
  337. package/dist/weapon/weapon.classify.js +1 -7
  338. package/dist/weapon/weapon.codec.d.ts +0 -9
  339. package/dist/weapon/weapon.codec.js +1 -9
  340. package/dist/weapon/weapon.parser.js +1 -8
  341. package/dist/weapon/weapon.schema.js +1 -7
  342. package/dist/weapon/weapon.types.d.ts +0 -3
  343. package/package.json +3 -3
  344. package/src/data-srd/ATTRIBUTION.md +1 -1
  345. package/dist/chunk-2FRUSVZS.js +0 -489
  346. package/dist/chunk-2LULMQTF.js +0 -14
  347. package/dist/chunk-3LWMFYKS.js +0 -57
  348. package/dist/chunk-3SFGWFVQ.js +0 -19
  349. package/dist/chunk-3SIUAFDQ.js +0 -18
  350. package/dist/chunk-3TM34RSJ.js +0 -23
  351. package/dist/chunk-4J6DS3EJ.js +0 -30
  352. package/dist/chunk-4U55VNC7.js +0 -22
  353. package/dist/chunk-5GKJAUMX.js +0 -59
  354. package/dist/chunk-5JXFJ5AU.js +0 -26
  355. package/dist/chunk-64VNLMSG.js +0 -375
  356. package/dist/chunk-656QCX4U.js +0 -22
  357. package/dist/chunk-6GNXYAYP.js +0 -25
  358. package/dist/chunk-6PXTNCBP.js +0 -133
  359. package/dist/chunk-6X2NV665.js +0 -33
  360. package/dist/chunk-7Q2VPKCD.js +0 -181
  361. package/dist/chunk-7XJHI5H5.js +0 -709
  362. package/dist/chunk-A54HHCWW.js +0 -67
  363. package/dist/chunk-B2QHP6UF.js +0 -159
  364. package/dist/chunk-B3DP42OM.js +0 -55
  365. package/dist/chunk-BJGOSM76.js +0 -18
  366. package/dist/chunk-BJWSOQUC.js +0 -133
  367. package/dist/chunk-CJYCVNW2.js +0 -7
  368. package/dist/chunk-CM5CWO4K.js +0 -735
  369. package/dist/chunk-DEEHHLAP.js +0 -271
  370. package/dist/chunk-DPUJDOKV.js +0 -365
  371. package/dist/chunk-EJD47JHL.js +0 -1838
  372. package/dist/chunk-EJP263OP.js +0 -186
  373. package/dist/chunk-EVMUJYUD.js +0 -195
  374. package/dist/chunk-EYX4JMAU.js +0 -101
  375. package/dist/chunk-FC4IGH5Y.js +0 -18
  376. package/dist/chunk-FJYBLXV7.js +0 -89
  377. package/dist/chunk-FMUD3LDV.js +0 -19
  378. package/dist/chunk-FMYWORTP.js +0 -93
  379. package/dist/chunk-FVXLP7P3.js +0 -18
  380. package/dist/chunk-G6MHJDVT.js +0 -41
  381. package/dist/chunk-GVWEFECG.js +0 -18
  382. package/dist/chunk-HHBD4SQ6.js +0 -24
  383. package/dist/chunk-HS6FIOLP.js +0 -52
  384. package/dist/chunk-HY2SRSVM.js +0 -23
  385. package/dist/chunk-IHE6KVC3.js +0 -13
  386. package/dist/chunk-IN4M4X7P.js +0 -34
  387. package/dist/chunk-IUAAXXNO.js +0 -58
  388. package/dist/chunk-JXWNXIIZ.js +0 -219
  389. package/dist/chunk-K5NJBTE2.js +0 -18
  390. package/dist/chunk-KR6JF3BF.js +0 -14
  391. package/dist/chunk-KSTV7J2U.js +0 -112
  392. package/dist/chunk-KU3YLF6D.js +0 -106
  393. package/dist/chunk-LBEXLN6I.js +0 -91
  394. package/dist/chunk-LHZXYFBU.js +0 -94
  395. package/dist/chunk-LICYHPI3.js +0 -237
  396. package/dist/chunk-LNT64X7C.js +0 -81
  397. package/dist/chunk-LSLSG67V.js +0 -31
  398. package/dist/chunk-LVQLWRCU.js +0 -15
  399. package/dist/chunk-MYY2C5MB.js +0 -233
  400. package/dist/chunk-NKZMQV2C.js +0 -19
  401. package/dist/chunk-NTU2DXNG.js +0 -355
  402. package/dist/chunk-NXUY5XQN.js +0 -1062
  403. package/dist/chunk-NZO7M5GV.js +0 -18
  404. package/dist/chunk-OOL4KMG2.js +0 -71
  405. package/dist/chunk-OOSRUJBI.js +0 -19
  406. package/dist/chunk-PDJSUH24.js +0 -110
  407. package/dist/chunk-PTXBIDG7.js +0 -63
  408. package/dist/chunk-PVCEA4HZ.js +0 -6
  409. package/dist/chunk-QA3YCOML.js +0 -101
  410. package/dist/chunk-QFWQKS3M.js +0 -110
  411. package/dist/chunk-QS5L5YTJ.js +0 -24
  412. package/dist/chunk-QYZV2MQA.js +0 -97
  413. package/dist/chunk-RD2MID3M.js +0 -292
  414. package/dist/chunk-S3YUXDSC.js +0 -278
  415. package/dist/chunk-S7REMWW4.js +0 -21
  416. package/dist/chunk-TOM66P2P.js +0 -38
  417. package/dist/chunk-TRBGC4ZG.js +0 -112
  418. package/dist/chunk-UA5KS2PL.js +0 -26
  419. package/dist/chunk-UJCK5IW4.js +0 -187
  420. package/dist/chunk-UNYR5GLI.js +0 -23
  421. package/dist/chunk-UZXG6QSY.js +0 -58
  422. package/dist/chunk-VN5DLURA.js +0 -158
  423. package/dist/chunk-VP5TIXDK.js +0 -178
  424. package/dist/chunk-VPYBK2MG.js +0 -18
  425. package/dist/chunk-VTTA2ALZ.js +0 -16
  426. package/dist/chunk-W6GC6OKK.js +0 -16
  427. package/dist/chunk-WELIKLZF.js +0 -256
  428. package/dist/chunk-WOHX7YTH.js +0 -165
  429. package/dist/chunk-WSVMLNTO.js +0 -31
  430. package/dist/chunk-WYGD2UGN.js +0 -14
  431. package/dist/chunk-XCFC7LGF.js +0 -122
  432. package/dist/chunk-XJ2F2WO6.js +0 -8
  433. package/dist/chunk-XTEFPUSN.js +0 -23
  434. package/dist/chunk-YBLDE5CG.js +0 -42
  435. package/dist/chunk-YDGMBMYI.js +0 -25
  436. package/dist/chunk-YHYTW5QA.js +0 -20
  437. package/dist/chunk-ZCTUYGNV.js +0 -26
  438. package/dist/chunk-ZDAEGJH4.js +0 -102
  439. package/dist/chunk-ZJXSXVFP.js +0 -58
  440. package/dist/chunk-ZOWKWMD2.js +0 -18
  441. package/dist/chunk-ZUQW5VBZ.js +0 -89
@@ -12,10 +12,6 @@ export interface Spell {
12
12
  casting_time?: string;
13
13
  range?: string;
14
14
  components?: string;
15
- /** D2b-B: the converter's structured material component (`components.m` as an object), kept beside the `components` string,
16
- * which cannot carry its numbers: `cost` in copper pieces as authored (5etools), `consume` true or a word ("optional").
17
- * Absent for a string `components`, a bare `m: true` or a string `m`. A PARSE output only, never a YAML key: the codec
18
- * drops it on serialize. */
19
15
  material?: SpellMaterial;
20
16
  duration?: string;
21
17
  concentration?: boolean;
@@ -26,9 +22,6 @@ export interface Spell {
26
22
  damage?: {
27
23
  types: string[];
28
24
  };
29
- /** The BASE roll: the roll at the spell's own level, or a cantrip's tier-1 roll (before its first
30
- * `player_level_<N>` option). Like `casting_options[].damage_roll` it also carries healing rolls
31
- * (Cure Wounds `2d8`). Mirrors Open5e v2's top-level `damage_roll`. */
32
25
  damage_roll?: string;
33
26
  saving_throw?: {
34
27
  ability: string;
@@ -1,14 +1,10 @@
1
1
  export interface RetiredItem {
2
2
  retired_slug: string;
3
3
  retired_name: string;
4
- /** The bundle-relative note path the retired record shipped at (dnd5e 0.3.12). */
5
4
  retired_path: string;
6
5
  kept_slug: string;
7
6
  kept_name: string;
8
7
  }
9
8
  export declare const RETIRED_ITEMS: readonly RetiredItem[];
10
- /** The kept slug for a retired item slug, or undefined. */
11
9
  export declare function keptSlugFor(slug: string): string | undefined;
12
- /** The kept slug for an UNWRAPPED link target: a slug, or a compendium path (`SRD 5e/Magic Items/Hand Crossbow +2`), read
13
- * the way `resolveBaseItem` reads one. A vault-root path (`Compendium/SRD 5e/...`) never resolved and is left alone. */
14
10
  export declare function keptSlugForLink(target: string): string | undefined;
@@ -1,11 +1 @@
1
- import {
2
- RETIRED_ITEMS,
3
- keptSlugFor,
4
- keptSlugForLink
5
- } from "../chunk-CM5CWO4K.js";
6
- import "../chunk-ZCTUYGNV.js";
7
- export {
8
- RETIRED_ITEMS,
9
- keptSlugFor,
10
- keptSlugForLink
11
- };
1
+ import{RETIRED_ITEMS,keptSlugFor,keptSlugForLink}from"../chunk-PZ4L2EEG.js";import"../chunk-63YJPWTM.js";export{RETIRED_ITEMS,keptSlugFor,keptSlugForLink};
@@ -7,47 +7,14 @@ export interface SrdEntity {
7
7
  export type SrdEntityType = "monster" | "spell" | "item" | "armor" | "weapon" | "feat" | "condition" | "class" | "subclass" | "background" | "race" | "optional-feature";
8
8
  export type SrdDataSources = Record<string, Record<string, unknown>[]>;
9
9
  export declare class SrdStore {
10
- /** slug -> SrdEntity for O(1) lookup */
11
10
  private bySlug;
12
- /** entityType -> SrdEntity[] for type-scoped operations */
13
11
  private byType;
14
- /**
15
- * Load entities from a map of source-key -> raw JSON arrays.
16
- * Source keys are resolved through TYPE_MAP (e.g. "monster" -> "monster",
17
- * "magicitems" -> "item"). If a key is not in TYPE_MAP it is used as-is.
18
- */
19
12
  loadFromData(sources: SrdDataSources): void;
20
- /**
21
- * Load all bundled SRD JSON files from the canonical pipeline runtime.
22
- * Both 2014 and 2024 editions are merged into a single store; entities are
23
- * disambiguated by their edition-prefixed slugs (e.g. "srd-5e_aboleth" vs
24
- * "srd-2024_aboleth").
25
- */
26
13
  loadFromBundledJson(): void;
27
- /**
28
- * O(1) lookup by slug.
29
- */
30
14
  getBySlug(slug: string): SrdEntity | undefined;
31
- /**
32
- * Ranked search: exact match > starts-with > contains.
33
- * Case-insensitive. Optionally filtered by entityType.
34
- */
35
15
  search(query: string, entityType?: string, limit?: number): SrdEntity[];
36
- /**
37
- * Return all entities of a given type.
38
- */
39
16
  getAllOfType(entityType: string): SrdEntity[];
40
- /**
41
- * Return all registered entity type strings.
42
- */
43
17
  getTypes(): string[];
44
- /**
45
- * Total number of entities across all types.
46
- */
47
18
  count(): number;
48
- /**
49
- * @deprecated Use getBySlug() instead. Kept for backward compatibility.
50
- * Exact name match (case-insensitive). Searches all types or a specific type.
51
- */
52
19
  getByName(name: string, entityType?: string): SrdEntity | null;
53
20
  }
@@ -1,11 +1,3 @@
1
1
  import type { DocCodec } from "@archivist-gg/core";
2
2
  import type { SubclassEntity } from "./subclass.types.js";
3
- /**
4
- * Normalizing codec (0c.1a). `parse` delegates to `parseSubclass`, which validates
5
- * against `subclassEntitySchema`. `subclass.types` is this entity's dnd5e home for
6
- * `SubclassEntity` (consumed by the PC resolver/types); its `Edition`/`SubclassSpellcastingConfig`
7
- * imports resolve dnd5e-internally from `class.types`. `serialize` stays `yaml.dump`
8
- * (the edit-save path uses obsidian's separate serializer; gate (d) verifies `yaml.dump`
9
- * round-trips through `parseSubclass`).
10
- */
11
3
  export declare const subclassCodec: DocCodec<SubclassEntity>;
@@ -1,17 +1 @@
1
- import {
2
- subclassCodec
3
- } from "../chunk-NZO7M5GV.js";
4
- import "../chunk-UNYR5GLI.js";
5
- import "../chunk-LNT64X7C.js";
6
- import "../chunk-4U55VNC7.js";
7
- import "../chunk-G6MHJDVT.js";
8
- import "../chunk-CJYCVNW2.js";
9
- import "../chunk-B2QHP6UF.js";
10
- import "../chunk-WYGD2UGN.js";
11
- import "../chunk-ZJXSXVFP.js";
12
- import "../chunk-OOL4KMG2.js";
13
- import "../chunk-JXWNXIIZ.js";
14
- import "../chunk-UA5KS2PL.js";
15
- export {
16
- subclassCodec
17
- };
1
+ import{subclassCodec}from"../chunk-RHIEOYDX.js";import"../chunk-ETDMOGFO.js";import"../chunk-ONCXJMJM.js";import"../chunk-S5UCI27C.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{subclassCodec};
@@ -1,16 +1 @@
1
- import {
2
- parseSubclass
3
- } from "../chunk-UNYR5GLI.js";
4
- import "../chunk-LNT64X7C.js";
5
- import "../chunk-4U55VNC7.js";
6
- import "../chunk-G6MHJDVT.js";
7
- import "../chunk-CJYCVNW2.js";
8
- import "../chunk-B2QHP6UF.js";
9
- import "../chunk-WYGD2UGN.js";
10
- import "../chunk-ZJXSXVFP.js";
11
- import "../chunk-OOL4KMG2.js";
12
- import "../chunk-JXWNXIIZ.js";
13
- import "../chunk-UA5KS2PL.js";
14
- export {
15
- parseSubclass
16
- };
1
+ import{parseSubclass}from"../chunk-ETDMOGFO.js";import"../chunk-ONCXJMJM.js";import"../chunk-S5UCI27C.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{parseSubclass};
@@ -15,7 +15,7 @@ export declare const subclassEntitySchema: z.ZodObject<{
15
15
  full: "full";
16
16
  pact: "pact";
17
17
  third: "third";
18
- artificer: "artificer";
18
+ "half-up": "half-up";
19
19
  }>>;
20
20
  ability: z.ZodEnum<{
21
21
  str: "str";
@@ -66,6 +66,7 @@ export declare const subclassEntitySchema: z.ZodObject<{
66
66
  band: "band";
67
67
  tab: "tab";
68
68
  }>>;
69
+ equivalent_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
69
70
  recovery: z.ZodOptional<z.ZodArray<z.ZodObject<{
70
71
  id: z.ZodString;
71
72
  name: z.ZodString;
@@ -1,14 +1 @@
1
- import {
2
- subclassEntitySchema
3
- } from "../chunk-LNT64X7C.js";
4
- import "../chunk-G6MHJDVT.js";
5
- import "../chunk-CJYCVNW2.js";
6
- import "../chunk-B2QHP6UF.js";
7
- import "../chunk-WYGD2UGN.js";
8
- import "../chunk-ZJXSXVFP.js";
9
- import "../chunk-OOL4KMG2.js";
10
- import "../chunk-JXWNXIIZ.js";
11
- import "../chunk-UA5KS2PL.js";
12
- export {
13
- subclassEntitySchema
14
- };
1
+ import{subclassEntitySchema}from"../chunk-ONCXJMJM.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{subclassEntitySchema};
@@ -18,12 +18,10 @@ export interface SubclassEntity {
18
18
  selection_pools?: SelectionPool[];
19
19
  pool_grants?: PoolGrant[];
20
20
  tabs?: TabDecl[];
21
- /** Converter/bundle extras declared by subclass.schema.ts §2.7; all optional, none read today. */
22
21
  rendering_hint?: string;
23
22
  short_name?: string;
24
23
  has_fluff?: boolean;
25
24
  has_fluff_images?: boolean;
26
- /** RAW 5etools passthrough (single measured key-set `{_subclassFluff:{…}}`): mirrors `z.unknown()`. */
27
25
  fluff?: unknown;
28
26
  table_col_labels?: string[];
29
27
  cantrip_progression?: number[];
@@ -33,6 +31,5 @@ export interface SubclassEntity {
33
31
  feat_progression?: ProgressionEntry[];
34
32
  optionalfeature_progression?: ProgressionEntry[];
35
33
  additional_spells?: AdditionalSpellsEntry[];
36
- /** One wikilink, or an array of them for the multi-fluff-image emit. */
37
34
  image?: string | string[];
38
35
  }
@@ -19,4 +19,6 @@ export interface Attack {
19
19
  properties?: string[];
20
20
  range?: AttackRange;
21
21
  condition?: string;
22
+ weapon_category?: "simple" | "martial";
23
+ mastery?: string;
22
24
  }
@@ -1,7 +1,3 @@
1
- /** A single alternate casting mode for a spell (e.g. a different shape, range,
2
- * or scaling). Lives in dnd5e so the build-time SRD spell merger can consume
3
- * it without a tools→obsidian reverse edge; obsidian `spell.types` re-exports
4
- * it for the renderer/parser. */
5
1
  export interface CastingOption {
6
2
  type: string;
7
3
  damage_roll?: string;
@@ -3,107 +3,38 @@ import type { FeatureEffect } from "./feature-effect.js";
3
3
  export type Ability = keyof Abilities;
4
4
  export type SkillSlug = "acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival";
5
5
  export declare const ALL_SKILL_SLUGS: SkillSlug[];
6
- /** The language vocabulary the engine matches every language grant and pick
7
- * against: 8 standard + 8 exotic + 2 SECRET. It is NOT "the SRD language set" —
8
- * the two secret languages are class-taught and appear on no SRD language list.
9
- * Slugs are edition-agnostic, apostrophe-retaining and canonical under
10
- * `toProfSlug`, exactly as ALL_TOOLS is.
11
- *
12
- * A cross-repo CONTRACT with three kinds of consumer, so widening this list is a
13
- * data change at all three · named by symbol, because line cites rot:
14
- * · the SRD GENERATOR: `race-merge.ts` builds `KNOWN_LANGUAGES = new Set(ALL_LANGUAGES)`
15
- * and `extractLanguagesFromTraits` gates species prose tokens through it, so
16
- * this constant is INPUT DATA to canonical species output. That name belongs
17
- * to the generator and to nothing else. Guarded by
18
- * `tests/srd-canonical/merger-rules/srd-race-languages.test.ts`.
19
- * · the ENGINE: `enumerateOptions` uses it as the from-less `domain:"language"`
20
- * picker pool, and `computeEffectiveProficiencies` canonicalizes grants, picks
21
- * and manual adds against it through `pc.decision-engine.ts`'s one canonical
22
- * comparison, `matchPool` — a module-level helper it shares with its other call
23
- * sites, not one of its own. `computeEffectiveProficiencies` reads ALL_LANGUAGES
24
- * from HERE, directly — it does not go through the generator's KNOWN_LANGUAGES.
25
- * · the PLUGIN: `proficiency-picker.ts` (D4 A) lists STANDARD, EXOTIC ("Rare") and
26
- * SECRET_LANGUAGES as its Languages rows, plus any held or removed value they miss.
27
- * Membership is also what makes two spellings of one language FOLD onto a single
28
- * row: a vocabulary MISS keys on the raw string and splits the row in two. */
29
6
  export declare const STANDARD_LANGUAGES: string[];
30
7
  export declare const EXOTIC_LANGUAGES: string[];
31
- /** Secret languages: granted by a class feature (Druid, Rogue), never carried by a
32
- * race or background language list. `thieves'-cant` RETAINS the ASCII apostrophe —
33
- * the file's stated convention, and the slug `toProfSlug` already produces from
34
- * both live spellings (the converter's `Thieves' Cant` and the 2014 SRD prose's
35
- * U+2019 form). */
36
8
  export declare const SECRET_LANGUAGES: string[];
37
9
  export declare const ALL_LANGUAGES: string[];
38
- /** The SRD tool set: 17 artisan's tools + 10 musical instruments + 2 gaming sets
39
- * + 6 other tools = 35. Like ALL_LANGUAGES this is a SINGLE edition-agnostic
40
- * list covering 2014 and 2024, and where the two editions name the same tool
41
- * differently the 2024 name wins. Across all 35 entries there is exactly one
42
- * such delta: `Playing Card Set` (2014) vs `Playing Cards` (2024), resolved
43
- * here to "playing-cards".
44
- *
45
- * Apostrophes are RETAINED ("thieves'-tools", "calligrapher's-supplies").
46
- * These are the slugs the product already emits · see
47
- * `tools/srd-canonical/merger-rules/background-merge.ts`, whose output is live
48
- * in `background.2024.json` · and humanizeProficiency is apostrophe-safe.
49
- * Stripping the apostrophes would diverge from that live data and CREATE the
50
- * collision it would claim to avoid.
51
- *
52
- * Every entry is already canonical under toProfSlug (identity) and the set is
53
- * collision-free under it. Ordering is alphabetical within each subset, and
54
- * ALL_TOOLS composes the four subsets in that order, mirroring
55
- * ALL_LANGUAGES = STANDARD + EXOTIC + SECRET. The list is a cross-repo contract: a
56
- * one-entry divergence is silent and permanent, so it is pinned verbatim. */
57
10
  export declare const ARTISANS_TOOLS: string[];
58
11
  export declare const MUSICAL_INSTRUMENTS: string[];
59
12
  export declare const GAMING_SETS: string[];
60
13
  export declare const OTHER_TOOLS: string[];
61
14
  export declare const ALL_TOOLS: string[];
62
15
  export type FeatCategory = "origin" | "general" | "fighting-style" | "epic-boon";
63
- /** Closed, enumerated registry filter — YAML can never express a query the
64
- * engine would apply unsafely. `"self"` resolves against the owning
65
- * class/subclass at ledger-build time. */
66
16
  export interface EntityFilter {
67
17
  feature_type?: string;
68
18
  category?: string;
69
19
  parent_class?: "self";
70
20
  available_to?: "self";
71
- /** Weapon proficiency class. Matched against a weapon entity's compound
72
- * `category` (e.g. "martial-melee") by prefix, so "martial" covers both
73
- * martial-melee and martial-ranged. */
74
21
  weapon_category?: "simple" | "martial";
75
- /** Armor proficiency class. Matched against an armor entity's `category`
76
- * field exactly; "shield" selects shields. */
77
22
  armor_category?: "light" | "medium" | "heavy" | "shield";
78
- /** Item axis: an item entity's `type` ("instrument", "artisan's tools", "gaming set"); ANY listed type matches.
79
- * Compared case-insensitively with apostrophes, separators and a plural "s" folded (`categoryWords` in
80
- * pc.tool-picks.ts), so "artisans tools" matches "artisan's tools". A starting-equipment tool category
81
- * (`musical-instrument`, `artisan's-tools`, `gaming-set`, or an `X-or-Y` union of them) sets it. */
82
23
  item_type?: string[];
83
- /** Item axis: true keeps only MUNDANE items, dropping one whose `rarity` names a magic tier. Starting gear sets
84
- * it, because magic instruments (Instrument of Scribing, +3 Rhythm-Maker's Drum) also carry `type: instrument`. */
85
24
  mundane?: boolean;
86
- /** Spell axis: filter spells by class list, level, and edition. Set together on a
87
- * select-entity{entity_type:"spell"} choice (e.g. Magic Initiate). */
88
25
  list?: string;
89
26
  level?: number;
90
27
  edition?: string;
91
- /** D2b-A: true keeps only spells a note marks `ritual` (Pact of the Tome's rituals). */
92
28
  ritual?: boolean;
29
+ inventory?: boolean;
93
30
  }
94
31
  export interface InlineOption {
95
32
  value: string;
96
33
  label: string;
97
34
  description?: string;
98
- /** Applied via a synthesized resolved feature when the option is selected. */
99
35
  effects?: FeatureEffect[];
100
- /** Nested decisions revealed when this option is selected (recursive). */
101
36
  choices?: Choice[];
102
37
  }
103
- /** The four game-agnostic decision primitives. All game knowledge (which
104
- * options, which counts) lives in data — authored in the SRD overlay or
105
- * inline in homebrew entity notes. `id` is the persistence key under
106
- * `ClassEntry.choices[level]` / `Character.origin_choices`. */
107
38
  export type Choice = {
108
39
  kind: "select-inline";
109
40
  id: string;
@@ -118,8 +49,6 @@ export type Choice = {
118
49
  entity_type: string;
119
50
  from?: string[];
120
51
  where?: EntityFilter;
121
- /** D2b-A: the pick names a TARGET (the cantrip a blast invocation's rider reaches), not a grant: nothing it picks
122
- * becomes the character's own (a spell, a feat, a feature). */
123
52
  target?: true;
124
53
  } | {
125
54
  kind: "select-proficiency";
@@ -1,24 +1 @@
1
- import {
2
- ALL_LANGUAGES,
3
- ALL_SKILL_SLUGS,
4
- ALL_TOOLS,
5
- ARTISANS_TOOLS,
6
- EXOTIC_LANGUAGES,
7
- GAMING_SETS,
8
- MUSICAL_INSTRUMENTS,
9
- OTHER_TOOLS,
10
- SECRET_LANGUAGES,
11
- STANDARD_LANGUAGES
12
- } from "../chunk-KU3YLF6D.js";
13
- export {
14
- ALL_LANGUAGES,
15
- ALL_SKILL_SLUGS,
16
- ALL_TOOLS,
17
- ARTISANS_TOOLS,
18
- EXOTIC_LANGUAGES,
19
- GAMING_SETS,
20
- MUSICAL_INSTRUMENTS,
21
- OTHER_TOOLS,
22
- SECRET_LANGUAGES,
23
- STANDARD_LANGUAGES
24
- };
1
+ import{ALL_LANGUAGES,ALL_SKILL_SLUGS,ALL_TOOLS,ARTISANS_TOOLS,EXOTIC_LANGUAGES,GAMING_SETS,MUSICAL_INSTRUMENTS,OTHER_TOOLS,SECRET_LANGUAGES,STANDARD_LANGUAGES}from"../chunk-4JEF3CET.js";export{ALL_LANGUAGES,ALL_SKILL_SLUGS,ALL_TOOLS,ARTISANS_TOOLS,EXOTIC_LANGUAGES,GAMING_SETS,MUSICAL_INSTRUMENTS,OTHER_TOOLS,SECRET_LANGUAGES,STANDARD_LANGUAGES};
@@ -1,4 +1 @@
1
- /** The two D&D 5e rules editions Archivist canonicalizes content for.
2
- * Single source of truth — obsidian `class.types` and the dnd5e entity
3
- * types both import it from here. */
4
1
  export type Edition = "2014" | "2024";
@@ -1,14 +1,4 @@
1
- /** One thing a starting-equipment option grants. `item` is a BARE compendium
2
- * slug (e.g. "chain-mail"); the seeder resolves it to the full edition slug.
3
- * `category` is a player-picked class of item ("martial-weapon",
4
- * "simple-weapon", "martial-melee-weapon", "any-armor", "shield",
5
- * "musical-instrument", "artisan's-tools", "gaming-set", a tool `X-or-Y` union;
6
- * the vocabulary is `categoryToEntitySelect`'s in pc.decision-engine.ts) resolved
7
- * by a nested select-entity. `gold` is gp folded into the bundle. */
8
- export type EquipmentGrant =
9
- /** `contains_value` (COPPER; `1500` = 15 gp) is seeded as gold by the plugin's starting-equipment seeder
10
- * (R4-G3b §9); `worth_value` is never seeded; `display_name` is read by grantLabel. */
11
- {
1
+ export type EquipmentGrant = {
12
2
  item: string;
13
3
  qty?: number;
14
4
  contains_value?: number;
@@ -21,30 +11,16 @@ export type EquipmentGrant =
21
11
  } | {
22
12
  gold: number;
23
13
  };
24
- /** THE rule for which grant is a player-picked CATEGORY: an object whose `category` is a non-empty string. Shared by
25
- * the engine's nested-pick synthesis and the plugin's seeder, so the nth category grant of an option always
26
- * consumes the nth pick key and the two can never count a malformed grant differently. */
27
14
  export declare function isCategoryGrant(g: unknown): g is Extract<EquipmentGrant, {
28
15
  category: string;
29
16
  }>;
30
- /** The persistence key of the nested pick for grant `k` of option `j` of starting-equipment entry `i`: the one
31
- * spelling the engine emits and the plugin reads. `k` indexes the option's WHOLE grant list, not its category
32
- * grants alone. */
33
17
  export declare const equipmentCategoryKey: (i: number, j: number, k: number) => string;
34
- /** The ORDERED pick keys of one option's category grants, the order `resolveGrants` consumes them in. */
35
18
  export declare const equipmentCategoryKeys: (grants: readonly unknown[], i: number, j: number) => string[];
36
- /** True for a starting-equipment decision key (`equipment-<i>` and its nested picks). The Equipment step owns
37
- * these; every other step's decision strip leaves them out. */
38
19
  export declare const isStartingEquipmentKey: (key: string) => boolean;
39
- /** One selectable option of a `kind:"choice"` starting-equipment entry. `label`
40
- * is the human display string (the `.pc-cb-eqopt` text); `grants` is what seeds. */
41
20
  export interface EquipmentOption {
42
21
  label: string;
43
22
  grants: EquipmentGrant[];
44
23
  }
45
- /** Structured starting equipment. Shared by class + background. A `fixed` entry
46
- * may carry a `label` for the un-parsed (prose fallback) case where `grants`
47
- * is empty — it then displays but seeds nothing (graceful degradation). */
48
24
  export type StartingEquipmentEntry = {
49
25
  kind: "choice";
50
26
  options: EquipmentOption[];
@@ -56,8 +32,6 @@ export type StartingEquipmentEntry = {
56
32
  kind: "gold";
57
33
  amount: number;
58
34
  };
59
- /** Buy-with-Gold budget. `fixed` gp (2024) or a `dice`×`multiplier` roll (2014
60
- * "XdY × 10"); average is derived by the consumer. */
61
35
  export interface StartingGold {
62
36
  fixed?: number;
63
37
  dice?: string;
@@ -1,12 +1 @@
1
- import {
2
- equipmentCategoryKey,
3
- equipmentCategoryKeys,
4
- isCategoryGrant,
5
- isStartingEquipmentKey
6
- } from "../chunk-2LULMQTF.js";
7
- export {
8
- equipmentCategoryKey,
9
- equipmentCategoryKeys,
10
- isCategoryGrant,
11
- isStartingEquipmentKey
12
- };
1
+ import{equipmentCategoryKey,equipmentCategoryKeys,isCategoryGrant,isStartingEquipmentKey}from"../chunk-2EOGK6R6.js";export{equipmentCategoryKey,equipmentCategoryKeys,isCategoryGrant,isStartingEquipmentKey};
@@ -1,18 +1,7 @@
1
1
  import type { Ability } from "./choice.js";
2
2
  export type SenseType = "darkvision" | "blindsight" | "tremorsense" | "truesight";
3
- /** A damage rider's weapon scope, the `damage-bonus` arm's structured `applies_to` words (ART-c1 Task 9b, controller
4
- * ruling 8): `melee` and `ranged` are the weapon's CATEGORY (a thrown melee weapon stays melee), `unarmed` the engine's
5
- * Unarmed Strike row, `finesse` and `thrown` the row's properties, and `weapon` every attack row (today's reach, the
6
- * Unarmed Strike row included). A list reaches a row when ANY word matches it. */
7
- export type WeaponScope = "weapon" | "melee" | "ranged" | "unarmed" | "finesse" | "thrown";
8
- /** A spell damage rider's spell scope, the `damage-bonus` arm's `spell_scope` (found 2026-09-29: Potent Spellcasting,
9
- * Empowered Evocation, Elemental Affinity and Radiant Soul said which spells they reach only in prose, so they reached
10
- * none). The rider reaches a character's spell that DEALS DAMAGE when every word it carries matches: `list` the spell is
11
- * on that class's list, `level` its exact level (0 = cantrip), `school` its school, `damage_types` it deals ANY of them,
12
- * `damage_type_pick` it deals the damage type the character chose at that `select-inline` (its option value or a type
13
- * named in its label, "Red (Fire)"), `spells` it is one of these (a name or a slug). `once`: the rider adds to ONE damage
14
- * roll of the casting, however many rolls or targets the spell has ("one damage roll of that spell"). Read with
15
- * `applies_to: spell` or `all`; `all` with no scope reaches every damaging spell. */
3
+ export type WeaponScope = "weapon" | "melee" | "ranged" | "unarmed" | "finesse" | "thrown" | "heavy" | "pact-weapon";
4
+ export type SpeedGateWord = "heavy-armor" | "armor" | "shield";
16
5
  export interface SpellScope {
17
6
  list?: string;
18
7
  level?: number;
@@ -22,23 +11,16 @@ export interface SpellScope {
22
11
  spells?: string[];
23
12
  once?: boolean;
24
13
  }
25
- /** Present on every arm: whose numbers the effect changes. Absent === "self". The engine's fold readers skip
26
- * every effect whose subject is present and not "self" (`foldsOnSelf` in pc.feature-effects.ts). */
27
14
  type Subject = {
28
15
  subject?: string;
29
16
  };
30
- /** A prose qualifier, carried for display; on `apply-condition` and `immune-condition` the `condition` key is the
31
- * condition NAME instead, so those two arms do not carry this qualifier. */
32
17
  type Qualified = {
33
18
  condition?: string;
34
19
  } & Subject;
35
- /**
36
- * Hand-written MIRROR of `featureEffectSchema` (schemas/feature-effect-schema.ts). The two are cross-checked at the
37
- * four parser returns and by `_kindPin` in the schema file; edit both in the same commit.
38
- */
39
20
  export type FeatureEffect = ({
40
21
  kind: "initiative-bonus";
41
- value: number;
22
+ value?: number;
23
+ amount?: string;
42
24
  } & Qualified) | ({
43
25
  kind: "skill-bonus";
44
26
  skills: string[];
@@ -67,12 +49,17 @@ export type FeatureEffect = ({
67
49
  } & Qualified) | ({
68
50
  kind: "speed-bonus";
69
51
  mode: "walk" | "fly" | "swim" | "climb" | "burrow";
70
- value: number;
52
+ value?: number;
53
+ equal_to?: "walk";
71
54
  set?: boolean;
72
55
  scales_at?: {
73
56
  level: number;
74
57
  value: number;
75
58
  }[];
59
+ inactive_while?: SpeedGateWord | SpeedGateWord[];
60
+ } & Qualified) | ({
61
+ kind: "speed-rule";
62
+ flag: "ignore-armor-strength";
76
63
  } & Qualified) | ({
77
64
  kind: "attunement-limit";
78
65
  value: number;
@@ -139,6 +126,7 @@ export type FeatureEffect = ({
139
126
  level: number;
140
127
  count: number;
141
128
  }[];
129
+ applies_to?: WeaponScope | WeaponScope[];
142
130
  } & Qualified) | ({
143
131
  kind: "reroll-damage";
144
132
  max_reroll: number;
@@ -3,24 +3,10 @@ import type { Resource, ResourceConsumption, ActionCost } from "./resource.js";
3
3
  import type { Attack } from "./attack.js";
4
4
  import type { FeatureEffect } from "./feature-effect.js";
5
5
  import type { Duration } from "../schemas/duration-schema.js";
6
- /**
7
- * Recharge / per-day usage limits on a Feature (e.g. monster action).
8
- *
9
- * - `recharge_on_roll`: at the start of each turn, recharges on a d6 roll
10
- * ≥ `param`. Renders as "Recharge {param}-6" (or "Recharge 6" when param=6).
11
- * - `per_day`: usable `param` times per day. Renders as "{param}/Day".
12
- * - `per_short_rest` / `per_long_rest`: usable `param` times per rest.
13
- */
14
6
  export interface FeatureRecharge {
15
7
  type: "recharge_on_roll" | "per_day" | "per_short_rest" | "per_long_rest";
16
8
  param: number;
17
9
  }
18
- /** The converter's 14-key companion binding (R4-G5 §7, ruling G5-UR2 "declare now, card after the G7 re-emit").
19
- * DECLARED, not read: the converter withholds the key today (`P9_NOT_EMITTED_FIELDS`), 0 converted and 0 bundle
20
- * notes carry it, and the Passive-tab card is a G8 booking. Every closed-vocabulary leaf is a plain `string` and
21
- * every position the converter can emit as null is `| null`, for the reason the schema mirror states: a class,
22
- * subclass or race parser refuses a WHOLE document on one nested leaf failure, so a mirror stricter than the
23
- * emitter is a total-loss risk on the day the re-emit lands. */
24
10
  export interface FeatureCompanion {
25
11
  statblock?: string;
26
12
  statblock_wikilink?: string | null;
@@ -81,15 +67,10 @@ export interface Feature {
81
67
  sub_features?: Feature[];
82
68
  resources?: Resource[];
83
69
  recharge?: FeatureRecharge;
84
- /** Phase 3 activatable buffs: when true, the feature's effects fold only while
85
- * its `id` is present in `Character.state.active_buffs` (toggled in the UI). */
86
70
  activatable?: boolean;
87
- /** Always-on marker; renders a "Passive" tag. */
88
71
  passive?: boolean;
89
- /** How long the buff lasts; rendered as a static label (no live countdown). */
90
72
  duration?: Duration;
91
73
  class_source?: string;
92
- /** Always "" on every measured carrier — never constrain it non-empty. */
93
74
  rendering_hint?: string;
94
75
  subclass_short_name?: string;
95
76
  subclass_source?: string;
@@ -97,14 +78,11 @@ export interface Feature {
97
78
  is_class_feature_variant?: boolean;
98
79
  gain_subclass_feature?: boolean;
99
80
  gain_subclass_feature_has_content?: boolean;
100
- /** 5etools entry type; values {"inset","item"}. */
101
81
  type?: string;
102
82
  action_cost?: ActionCost;
103
83
  save?: {
104
84
  ability: string;
105
85
  dc_formula: string;
106
86
  };
107
- /** The companion this feature binds (R4-G5 §7). Declared so the class / subclass / race parsers stop stripping
108
- * it on the day the G7 re-emit lands; nothing reads it in G5. */
109
87
  companion?: FeatureCompanion;
110
88
  }