@archivist-gg/dnd5e 0.3.19 → 0.3.24

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 (440) 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-2LCGKNVM.js +1 -0
  16. package/dist/chunk-2NUDWOFG.js +1 -0
  17. package/dist/chunk-334WLI7V.js +1 -0
  18. package/dist/chunk-3LWOVRLA.js +1 -0
  19. package/dist/chunk-3QQOATV3.js +1 -0
  20. package/dist/chunk-4E2GIWJE.js +1 -0
  21. package/dist/chunk-4GN3GYMP.js +1 -0
  22. package/dist/chunk-4IAMSRHD.js +1 -0
  23. package/dist/chunk-4JEF3CET.js +1 -0
  24. package/dist/chunk-4KVVAENP.js +1 -0
  25. package/dist/chunk-56JK6VCL.js +1 -0
  26. package/dist/chunk-5FEXHY4U.js +1 -0
  27. package/dist/chunk-63YJPWTM.js +1 -0
  28. package/dist/chunk-6ASJ3MVB.js +1 -0
  29. package/dist/chunk-6IC53O3Q.js +1 -0
  30. package/dist/chunk-6LCNV26D.js +1 -0
  31. package/dist/chunk-6W253VHH.js +1 -0
  32. package/dist/chunk-7AKJBRBD.js +1 -0
  33. package/dist/chunk-7EL3GWWJ.js +1 -0
  34. package/dist/chunk-7FPQJDFD.js +1 -0
  35. package/dist/chunk-7J5BNH2D.js +1 -0
  36. package/dist/chunk-7LPKI27J.js +1 -0
  37. package/dist/chunk-7UPYRKMF.js +1 -0
  38. package/dist/chunk-A7H6LX47.js +1 -0
  39. package/dist/chunk-AINRPPLH.js +1 -0
  40. package/dist/chunk-BC52J4LA.js +1 -0
  41. package/dist/chunk-BCXGB4HP.js +1 -0
  42. package/dist/chunk-BGX36NPE.js +1 -0
  43. package/dist/chunk-BPKG6RZ7.js +1 -0
  44. package/dist/chunk-BREHZNTL.js +1 -0
  45. package/dist/chunk-BZ6BGGZS.js +1 -0
  46. package/dist/chunk-CAPYNIGK.js +1 -0
  47. package/dist/chunk-CCFIINBA.js +1 -0
  48. package/dist/chunk-CMIEZQL4.js +1 -0
  49. package/dist/chunk-DVUXUIPV.js +1 -0
  50. package/dist/chunk-DY6FVAGA.js +1 -0
  51. package/dist/chunk-DZITM5AG.js +1 -0
  52. package/dist/chunk-DZKSXSJF.js +1 -0
  53. package/dist/chunk-EAARMPCW.js +1 -0
  54. package/dist/chunk-EVT7MGAC.js +1 -0
  55. package/dist/chunk-FOLHTMSC.js +1 -0
  56. package/dist/chunk-GCYUCIDN.js +1 -0
  57. package/dist/chunk-GIOV6JW7.js +1 -0
  58. package/dist/chunk-HCK6IUB3.js +1 -0
  59. package/dist/chunk-HR5MKCP2.js +1 -0
  60. package/dist/chunk-I26FHSI6.js +1 -0
  61. package/dist/chunk-I4O2FIDT.js +1 -0
  62. package/dist/chunk-IGVRLGLM.js +1 -0
  63. package/dist/chunk-IHPLT2ZT.js +1 -0
  64. package/dist/chunk-IOCJIWCV.js +1 -0
  65. package/dist/chunk-JXDX2DKF.js +1 -0
  66. package/dist/chunk-KBFSJ5WE.js +1 -0
  67. package/dist/chunk-KM75CC6Q.js +1 -0
  68. package/dist/chunk-KZDDFG4O.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-MC6PLWRZ.js +1 -0
  73. package/dist/chunk-MGGKZGLG.js +1 -0
  74. package/dist/chunk-N3RYJ7RE.js +1 -0
  75. package/dist/chunk-NEMX7QGG.js +1 -0
  76. package/dist/chunk-NI364WV7.js +1 -0
  77. package/dist/chunk-O2QZ73GA.js +1 -0
  78. package/dist/chunk-O776WL7O.js +1 -0
  79. package/dist/chunk-OTFNINUY.js +1 -0
  80. package/dist/chunk-PQAVMK3T.js +1 -0
  81. package/dist/chunk-PZ3ZZ5H5.js +1 -0
  82. package/dist/chunk-PZ4L2EEG.js +1 -0
  83. package/dist/chunk-PZUPZBTN.js +1 -0
  84. package/dist/chunk-QBA757AU.js +1 -0
  85. package/dist/chunk-QFIGPOFW.js +1 -0
  86. package/dist/chunk-QMEKQTUT.js +1 -0
  87. package/dist/chunk-QVWT67WA.js +1 -0
  88. package/dist/chunk-RDXQAZBA.js +1 -0
  89. package/dist/chunk-RE5Z5RNK.js +1 -0
  90. package/dist/chunk-RL4VY2AL.js +1 -0
  91. package/dist/chunk-RQGTBHJW.js +1 -0
  92. package/dist/chunk-RQZCGXUZ.js +1 -0
  93. package/dist/chunk-S5UCI27C.js +1 -0
  94. package/dist/chunk-SEOASDO4.js +1 -0
  95. package/dist/chunk-SU4MEZ5P.js +1 -0
  96. package/dist/chunk-T55DELVL.js +1 -0
  97. package/dist/chunk-TKIEPC6F.js +1 -0
  98. package/dist/chunk-TLXFGGWH.js +1 -0
  99. package/dist/chunk-UBUKCRZ3.js +1 -0
  100. package/dist/chunk-V6NQ547U.js +1 -0
  101. package/dist/chunk-VA3ZWV7C.js +1 -0
  102. package/dist/chunk-VIP3FH2O.js +1 -0
  103. package/dist/chunk-VTQ4RWEG.js +1 -0
  104. package/dist/chunk-WUHTSLG4.js +1 -0
  105. package/dist/chunk-X22SISGM.js +1 -0
  106. package/dist/chunk-XKJXT2PN.js +1 -0
  107. package/dist/chunk-XQMKH4R4.js +1 -0
  108. package/dist/chunk-YGH7S5ZF.js +1 -0
  109. package/dist/chunk-ZE46ADXS.js +1 -0
  110. package/dist/chunk-ZI3FEUX3.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 +2 -1
  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 +22 -1
  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 +2 -0
  182. package/dist/item/item.schema.js +1 -11
  183. package/dist/item/item.types.d.ts +2 -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 +21 -1
  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 +0 -25
  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 +0 -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 +0 -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 +22 -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 +18 -0
  228. package/dist/pc/pc.member-choices.d.ts +3 -66
  229. package/dist/pc/pc.member-choices.js +1 -39
  230. package/dist/pc/pc.parser.js +1 -58
  231. package/dist/pc/pc.pools.d.ts +7 -10
  232. package/dist/pc/pc.pools.js +1 -27
  233. package/dist/pc/pc.proficiencies.d.ts +0 -40
  234. package/dist/pc/pc.proficiencies.js +1 -156
  235. package/dist/pc/pc.proficiency-grants.d.ts +0 -26
  236. package/dist/pc/pc.proficiency-normalize.d.ts +0 -35
  237. package/dist/pc/pc.proficiency-normalize.js +1 -18
  238. package/dist/pc/pc.proficiency-query.d.ts +0 -13
  239. package/dist/pc/pc.proficiency-query.js +1 -27
  240. package/dist/pc/pc.recalc.d.ts +7 -131
  241. package/dist/pc/pc.recalc.js +1 -1042
  242. package/dist/pc/pc.resolver.d.ts +0 -107
  243. package/dist/pc/pc.resolver.js +1 -60
  244. package/dist/pc/pc.resource-seed.d.ts +0 -8
  245. package/dist/pc/pc.resource-seed.js +1 -42
  246. package/dist/pc/pc.resources.d.ts +1 -59
  247. package/dist/pc/pc.resources.js +1 -23
  248. package/dist/pc/pc.rest.d.ts +1 -20
  249. package/dist/pc/pc.rest.js +1 -231
  250. package/dist/pc/pc.schema.d.ts +0 -2
  251. package/dist/pc/pc.schema.js +1 -9
  252. package/dist/pc/pc.slotting.d.ts +0 -29
  253. package/dist/pc/pc.slotting.js +1 -28
  254. package/dist/pc/pc.speeds.d.ts +19 -0
  255. package/dist/pc/pc.spell-scope.d.ts +0 -16
  256. package/dist/pc/pc.spellcasting.d.ts +0 -70
  257. package/dist/pc/pc.spellcasting.js +1 -28
  258. package/dist/pc/pc.table-column.d.ts +0 -22
  259. package/dist/pc/pc.table-column.js +1 -18
  260. package/dist/pc/pc.tool-picks.d.ts +0 -27
  261. package/dist/pc/pc.tool-picks.js +1 -18
  262. package/dist/pc/pc.types.d.ts +54 -374
  263. package/dist/pc/pc.weapon-grant.d.ts +0 -6
  264. package/dist/pc/pool-layout.d.ts +0 -39
  265. package/dist/pc/pool-layout.js +1 -18
  266. package/dist/pc/resource-equivalents.d.ts +2 -40
  267. package/dist/pc/roll-scope.js +1 -8
  268. package/dist/pc/roll-tag-labels.d.ts +0 -32
  269. package/dist/pc/roll-tag-labels.js +1 -17
  270. package/dist/pc/spell-source.d.ts +0 -11
  271. package/dist/pc/spell-source.js +1 -8
  272. package/dist/race/race.codec.d.ts +0 -6
  273. package/dist/race/race.codec.js +1 -15
  274. package/dist/race/race.parser.js +1 -14
  275. package/dist/race/race.schema.d.ts +0 -8
  276. package/dist/race/race.schema.js +1 -14
  277. package/dist/race/race.structural.d.ts +0 -6
  278. package/dist/race/race.structural.js +1 -6
  279. package/dist/race/race.types.d.ts +0 -8
  280. package/dist/schemas/attack-schema.d.ts +5 -0
  281. package/dist/schemas/caster-type-schema.d.ts +1 -6
  282. package/dist/schemas/caster-type-schema.js +1 -6
  283. package/dist/schemas/choice-schema.js +1 -7
  284. package/dist/schemas/duration-schema.d.ts +0 -2
  285. package/dist/schemas/duration-schema.js +1 -6
  286. package/dist/schemas/entity-extras-schema.d.ts +0 -30
  287. package/dist/schemas/entity-extras-schema.js +1 -10
  288. package/dist/schemas/equipment-grant-schema.d.ts +0 -2
  289. package/dist/schemas/equipment-grant-schema.js +1 -12
  290. package/dist/schemas/feature-alias.d.ts +0 -27
  291. package/dist/schemas/feature-effect-schema.d.ts +21 -1
  292. package/dist/schemas/feature-effect-schema.js +1 -6
  293. package/dist/schemas/feature-schema.d.ts +0 -6
  294. package/dist/schemas/feature-schema.js +1 -12
  295. package/dist/schemas/resource-schema.d.ts +1 -34
  296. package/dist/schemas/resource-schema.js +1 -12
  297. package/dist/schemas/selection-pool-schema.js +1 -10
  298. package/dist/spell/casting-time.d.ts +0 -15
  299. package/dist/spell/casting-time.js +1 -6
  300. package/dist/spell/spell.access.d.ts +0 -6
  301. package/dist/spell/spell.access.js +1 -45
  302. package/dist/spell/spell.ai-schema.js +1 -6
  303. package/dist/spell/spell.codec.js +1 -9
  304. package/dist/spell/spell.enrichment.js +1 -9
  305. package/dist/spell/spell.filter.d.ts +0 -5
  306. package/dist/spell/spell.filter.js +1 -75
  307. package/dist/spell/spell.parser.d.ts +0 -31
  308. package/dist/spell/spell.parser.js +1 -16
  309. package/dist/spell/spell.scaling.d.ts +0 -46
  310. package/dist/spell/spell.scaling.js +1 -79
  311. package/dist/spell/spell.schema.js +1 -7
  312. package/dist/spell/spell.types.d.ts +0 -7
  313. package/dist/srd/retired-items.d.ts +0 -4
  314. package/dist/srd/retired-items.js +1 -11
  315. package/dist/srd-store.d.ts +0 -33
  316. package/dist/subclass/subclass.codec.d.ts +0 -8
  317. package/dist/subclass/subclass.codec.js +1 -17
  318. package/dist/subclass/subclass.parser.js +1 -16
  319. package/dist/subclass/subclass.schema.d.ts +2 -1
  320. package/dist/subclass/subclass.schema.js +1 -14
  321. package/dist/subclass/subclass.types.d.ts +0 -3
  322. package/dist/types/attack.d.ts +2 -0
  323. package/dist/types/casting-option.d.ts +0 -4
  324. package/dist/types/choice.d.ts +1 -72
  325. package/dist/types/choice.js +1 -24
  326. package/dist/types/edition.d.ts +0 -3
  327. package/dist/types/equipment-grant.d.ts +1 -27
  328. package/dist/types/equipment-grant.js +1 -12
  329. package/dist/types/feature-effect.d.ts +4 -22
  330. package/dist/types/feature.d.ts +0 -22
  331. package/dist/types/optional-feature.types.d.ts +1 -31
  332. package/dist/types/resource.d.ts +1 -21
  333. package/dist/types/selection-pool.d.ts +0 -24
  334. package/dist/weapon/weapon-mastery.d.ts +0 -1
  335. package/dist/weapon/weapon.classify.d.ts +0 -11
  336. package/dist/weapon/weapon.classify.js +1 -7
  337. package/dist/weapon/weapon.codec.d.ts +0 -9
  338. package/dist/weapon/weapon.codec.js +1 -9
  339. package/dist/weapon/weapon.parser.js +1 -8
  340. package/dist/weapon/weapon.schema.js +1 -7
  341. package/dist/weapon/weapon.types.d.ts +0 -3
  342. package/package.json +3 -3
  343. package/src/data-srd/ATTRIBUTION.md +1 -1
  344. package/dist/chunk-2FRUSVZS.js +0 -489
  345. package/dist/chunk-2LULMQTF.js +0 -14
  346. package/dist/chunk-3LWMFYKS.js +0 -57
  347. package/dist/chunk-3SFGWFVQ.js +0 -19
  348. package/dist/chunk-3SIUAFDQ.js +0 -18
  349. package/dist/chunk-3TM34RSJ.js +0 -23
  350. package/dist/chunk-4J6DS3EJ.js +0 -30
  351. package/dist/chunk-4U55VNC7.js +0 -22
  352. package/dist/chunk-5GKJAUMX.js +0 -59
  353. package/dist/chunk-5JXFJ5AU.js +0 -26
  354. package/dist/chunk-64VNLMSG.js +0 -375
  355. package/dist/chunk-656QCX4U.js +0 -22
  356. package/dist/chunk-6GNXYAYP.js +0 -25
  357. package/dist/chunk-6PXTNCBP.js +0 -133
  358. package/dist/chunk-6X2NV665.js +0 -33
  359. package/dist/chunk-7Q2VPKCD.js +0 -181
  360. package/dist/chunk-7XJHI5H5.js +0 -709
  361. package/dist/chunk-A54HHCWW.js +0 -67
  362. package/dist/chunk-B2QHP6UF.js +0 -159
  363. package/dist/chunk-B3DP42OM.js +0 -55
  364. package/dist/chunk-BJGOSM76.js +0 -18
  365. package/dist/chunk-BJWSOQUC.js +0 -133
  366. package/dist/chunk-CJYCVNW2.js +0 -7
  367. package/dist/chunk-CM5CWO4K.js +0 -735
  368. package/dist/chunk-DEEHHLAP.js +0 -271
  369. package/dist/chunk-DPUJDOKV.js +0 -365
  370. package/dist/chunk-EJD47JHL.js +0 -1838
  371. package/dist/chunk-EJP263OP.js +0 -186
  372. package/dist/chunk-EVMUJYUD.js +0 -195
  373. package/dist/chunk-EYX4JMAU.js +0 -101
  374. package/dist/chunk-FC4IGH5Y.js +0 -18
  375. package/dist/chunk-FJYBLXV7.js +0 -89
  376. package/dist/chunk-FMUD3LDV.js +0 -19
  377. package/dist/chunk-FMYWORTP.js +0 -93
  378. package/dist/chunk-FVXLP7P3.js +0 -18
  379. package/dist/chunk-G6MHJDVT.js +0 -41
  380. package/dist/chunk-GVWEFECG.js +0 -18
  381. package/dist/chunk-HHBD4SQ6.js +0 -24
  382. package/dist/chunk-HS6FIOLP.js +0 -52
  383. package/dist/chunk-HY2SRSVM.js +0 -23
  384. package/dist/chunk-IHE6KVC3.js +0 -13
  385. package/dist/chunk-IN4M4X7P.js +0 -34
  386. package/dist/chunk-IUAAXXNO.js +0 -58
  387. package/dist/chunk-JXWNXIIZ.js +0 -219
  388. package/dist/chunk-K5NJBTE2.js +0 -18
  389. package/dist/chunk-KR6JF3BF.js +0 -14
  390. package/dist/chunk-KSTV7J2U.js +0 -112
  391. package/dist/chunk-KU3YLF6D.js +0 -106
  392. package/dist/chunk-LBEXLN6I.js +0 -91
  393. package/dist/chunk-LHZXYFBU.js +0 -94
  394. package/dist/chunk-LICYHPI3.js +0 -237
  395. package/dist/chunk-LNT64X7C.js +0 -81
  396. package/dist/chunk-LSLSG67V.js +0 -31
  397. package/dist/chunk-LVQLWRCU.js +0 -15
  398. package/dist/chunk-MYY2C5MB.js +0 -233
  399. package/dist/chunk-NKZMQV2C.js +0 -19
  400. package/dist/chunk-NTU2DXNG.js +0 -355
  401. package/dist/chunk-NXUY5XQN.js +0 -1062
  402. package/dist/chunk-NZO7M5GV.js +0 -18
  403. package/dist/chunk-OOL4KMG2.js +0 -71
  404. package/dist/chunk-OOSRUJBI.js +0 -19
  405. package/dist/chunk-PDJSUH24.js +0 -110
  406. package/dist/chunk-PTXBIDG7.js +0 -63
  407. package/dist/chunk-PVCEA4HZ.js +0 -6
  408. package/dist/chunk-QA3YCOML.js +0 -101
  409. package/dist/chunk-QFWQKS3M.js +0 -110
  410. package/dist/chunk-QS5L5YTJ.js +0 -24
  411. package/dist/chunk-QYZV2MQA.js +0 -97
  412. package/dist/chunk-RD2MID3M.js +0 -292
  413. package/dist/chunk-S3YUXDSC.js +0 -278
  414. package/dist/chunk-S7REMWW4.js +0 -21
  415. package/dist/chunk-TOM66P2P.js +0 -38
  416. package/dist/chunk-TRBGC4ZG.js +0 -112
  417. package/dist/chunk-UA5KS2PL.js +0 -26
  418. package/dist/chunk-UJCK5IW4.js +0 -187
  419. package/dist/chunk-UNYR5GLI.js +0 -23
  420. package/dist/chunk-UZXG6QSY.js +0 -58
  421. package/dist/chunk-VN5DLURA.js +0 -158
  422. package/dist/chunk-VP5TIXDK.js +0 -178
  423. package/dist/chunk-VPYBK2MG.js +0 -18
  424. package/dist/chunk-VTTA2ALZ.js +0 -16
  425. package/dist/chunk-W6GC6OKK.js +0 -16
  426. package/dist/chunk-WELIKLZF.js +0 -256
  427. package/dist/chunk-WOHX7YTH.js +0 -165
  428. package/dist/chunk-WSVMLNTO.js +0 -31
  429. package/dist/chunk-WYGD2UGN.js +0 -14
  430. package/dist/chunk-XCFC7LGF.js +0 -122
  431. package/dist/chunk-XJ2F2WO6.js +0 -8
  432. package/dist/chunk-XTEFPUSN.js +0 -23
  433. package/dist/chunk-YBLDE5CG.js +0 -42
  434. package/dist/chunk-YDGMBMYI.js +0 -25
  435. package/dist/chunk-YHYTW5QA.js +0 -20
  436. package/dist/chunk-ZCTUYGNV.js +0 -26
  437. package/dist/chunk-ZDAEGJH4.js +0 -102
  438. package/dist/chunk-ZJXSXVFP.js +0 -58
  439. package/dist/chunk-ZOWKWMD2.js +0 -18
  440. package/dist/chunk-ZUQW5VBZ.js +0 -89
@@ -1,30 +1,4 @@
1
1
  import type { EntityRegistry, RegisteredEntity } from "@archivist-gg/core";
2
- /**
3
- * Convert a vault-path target (e.g. `SRD 5e/Weapons/Longsword`) to a
4
- * registry-compatible slug (`srd-5e_weapon_longsword`). The middle Type folder
5
- * (`segments[length-2]`) supplies the entity-type token so the slug matches
6
- * the now type-namespaced registry key. For a bare basename without any `/`,
7
- * returns the slugified basename - which lets legacy wikilinks like
8
- * `[[longsword]]` continue to resolve when registered under that bare slug.
9
- */
10
2
  export declare function vaultPathToSlug(target: string): string;
11
- /**
12
- * Public: take a `base_item` string (vault-path wikilink, alias-form
13
- * wikilink, bare-slug wikilink, or bare slug) and return the matching
14
- * `RegisteredEntity` or null.
15
- *
16
- * - Empty / null / non-string input -> null
17
- * - String that doesn't unwrap to a slug -> null
18
- * - Slug not present in the registry -> null
19
- *
20
- * The lookup is type-agnostic: callers that need to narrow to a specific
21
- * `entityType` (e.g. "weapon" only) should branch on the result's
22
- * `entityType`. A type-narrowed convenience wrapper is also exported for the
23
- * common weapon/armor cases.
24
- */
25
3
  export declare function resolveBaseItem(baseItem: string | null | undefined, registry: EntityRegistry): RegisteredEntity | null;
26
- /**
27
- * Convenience: resolve and require a specific entityType. Returns null if
28
- * the entry resolves but is the wrong type.
29
- */
30
4
  export declare function resolveBaseItemOfType(baseItem: string | null | undefined, entityType: string, registry: EntityRegistry): RegisteredEntity | null;
@@ -1,11 +1 @@
1
- import {
2
- resolveBaseItem,
3
- resolveBaseItemOfType,
4
- vaultPathToSlug
5
- } from "../chunk-CM5CWO4K.js";
6
- import "../chunk-ZCTUYGNV.js";
7
- export {
8
- resolveBaseItem,
9
- resolveBaseItemOfType,
10
- vaultPathToSlug
11
- };
1
+ import{resolveBaseItem,resolveBaseItemOfType,vaultPathToSlug}from"../chunk-PZ4L2EEG.js";import"../chunk-63YJPWTM.js";export{resolveBaseItem,resolveBaseItemOfType,vaultPathToSlug};
@@ -1,25 +1,10 @@
1
- /**
2
- * A registry's change generation (PERF, Edgar 2026-09-28): a number that moves on every register, unregister and clear.
3
- * Core's `EntityRegistry` carries none; the plugin's registry does (`RevisionedEntityRegistry`). Registry-derived data
4
- * that does not depend on the character (an item index, a sorted bucket) is memoised per (registry, revision), so a
5
- * write that changes only the character reads the registry zero times.
6
- *
7
- * The rule is strict: a registry WITHOUT a numeric `revision` is never cached, so a mock, a plain core registry or any
8
- * other host always computes afresh and can never read stale data. (The older `registry.count()` memos in
9
- * `pc.spellcasting.ts` and `spell.access.ts` carry a known gap, an in-place re-registration; this key has none.)
10
- */
11
1
  export declare function registryRevision(registry: unknown): number | undefined;
12
- /** `compute()` once per (registry, revision), kept in `cache`; every call when the registry has no revision. */
13
2
  export declare function memoByRevision<T>(cache: WeakMap<object, {
14
3
  revision: number;
15
4
  value: T;
16
5
  }>, registry: object, compute: () => T): T;
17
- /** The registry surface a bucket read needs (structurally core's `EntityRegistry` and every narrower registry type). */
18
6
  interface BucketSource<T> {
19
7
  search(query: string, entityType: string, limit: number): T[];
20
8
  }
21
- /** `registry.search("", type, Infinity)`, the whole bucket in the registry's own order, read ONCE per registry state
22
- * (every call when the registry has no revision). The array is SHARED by every caller until the revision moves: read
23
- * it, never sort or splice it in place. */
24
9
  export declare function bucketOf<T>(registry: BucketSource<T>, type: string): readonly T[];
25
10
  export {};
@@ -1,10 +1 @@
1
- import {
2
- bucketOf,
3
- memoByRevision,
4
- registryRevision
5
- } from "../chunk-4J6DS3EJ.js";
6
- export {
7
- bucketOf,
8
- memoByRevision,
9
- registryRevision
10
- };
1
+ import{bucketOf,memoByRevision,registryRevision}from"../chunk-QMEKQTUT.js";export{bucketOf,memoByRevision,registryRevision};
@@ -1,35 +1,5 @@
1
- /**
2
- * Converts a display name to a URL/file-safe kebab-case slug.
3
- * "Ancient Red Dragon" -> "ancient-red-dragon"
4
- */
5
1
  export declare function slugify(name: string): string;
6
- /** "srd-2024_fighter" → "fighter", "srd-2024_background_acolyte" → "acolyte".
7
- * Arity-robust: strips a `<prefix>_<type>_<name>` (3-part) or legacy `<prefix>_<name>`
8
- * (2-part) slug down to the bare NAME, and passes a bare slug through unchanged.
9
- * Name-slugs never contain `_`, so for a 3-part-or-longer slug the name is
10
- * `parts.slice(2).join("_")`. Tolerates a nullish slug (degrades to "") so a
11
- * malformed entity can't hard-crash the builder; the resolver backfills real slugs. */
12
2
  export declare function bareEntitySlug(slug: string | null | undefined): string;
13
- /** Whether a link tail is a stored registry slug (`me_feat_wish-magic`) rather than a human name
14
- * ("Wish Magic", "Magic Initiate (Cleric)"). The ONE slug-form rule: `wikilinkTailSlug` reads a tail by it,
15
- * and a registry-free display surface uses it to name a slug-form link instead of printing the raw slug. */
16
3
  export declare function isStoredSlug(tail: string): boolean;
17
- /** A link's BARE name slug, the key `bareEntitySlug` gives an owner: "[[SRD 2024/Classes/Fighter]]" and
18
- * "[[srd-2024_class_fighter]]" both give "fighter".
19
- *
20
- * A link names an entity one of two ways, and the tail is read by its shape:
21
- * - a human NAME tail (a path's file name, or a bare `[[fighter]]`) goes through the SAME `slugify` that mints
22
- * registry slugs, so an apostrophe is DELETED rather than hyphenated ("Mage's Bane" to "mages-bane", where
23
- * the old hand-rolled regex minted "mage-s-bane" and missed every time);
24
- * - a STORED slug tail (`[[me_class_bard-captain-lugen-compatibility]]`, the form every PC note and the Me
25
- * homebrew notes write) goes through `bareEntitySlug`. slugify DELETES the `_`, so it used to mint
26
- * "meclassbard-captain-lugen-compatibility", no owner's bare slug: a Me subclass linking its class that way
27
- * was never offered under it and the Builder's Class step called it an orphan (2026-09-25, Captain Lugen).
28
- * The answer is the BARE slug, never the full one, so a lookup that needs the exact entity must not route a
29
- * stored slug through here: `pc.decision-engine.ts`'s `resolveEntityRef` strips a `[[wikilink]]` WITHOUT this
30
- * helper and looks the full slug up directly.
31
- *
32
- * MOVED here from `pc.decision-engine.ts` in R4-G5 T1, beside `bareEntitySlug`, so `pc.pools.ts` can use it
33
- * without importing the decision engine: the engine imports `pc.pools` for `strandedPicks`, and the old
34
- * direction would be a cycle. The engine keeps a re-export for its plugin importer and its own test. */
35
4
  export declare function wikilinkTailSlug(link: string): string;
5
+ export declare function twinKey(slug: string | null | undefined): string;
@@ -1,12 +1 @@
1
- import {
2
- bareEntitySlug,
3
- isStoredSlug,
4
- slugify,
5
- wikilinkTailSlug
6
- } from "../chunk-ZCTUYGNV.js";
7
- export {
8
- bareEntitySlug,
9
- isStoredSlug,
10
- slugify,
11
- wikilinkTailSlug
12
- };
1
+ import{bareEntitySlug,isStoredSlug,slugify,twinKey,wikilinkTailSlug}from"../chunk-63YJPWTM.js";export{bareEntitySlug,isStoredSlug,slugify,twinKey,wikilinkTailSlug};
@@ -1,3 +1 @@
1
- /** The human name of a wikilink target: `[[Player's Handbook (2024)/OptionalFeatures/Pact of the Blade]]` →
2
- * "Pact of the Blade"; `[[path|Alias]]` → "Alias". The converter emits vault PATHS with no alias. */
3
1
  export declare function wikilinkDisplayName(link: string): string;
@@ -1,10 +1 @@
1
- // src/entities/wikilink-display.ts
2
- function wikilinkDisplayName(link) {
3
- const inner = link.trim().replace(/^\[\[/, "").replace(/\]\]$/, "");
4
- const afterAlias = inner.includes("|") ? inner.slice(inner.lastIndexOf("|") + 1) : inner;
5
- const afterSlash = afterAlias.includes("/") ? afterAlias.slice(afterAlias.lastIndexOf("/") + 1) : afterAlias;
6
- return afterSlash.trim();
7
- }
8
- export {
9
- wikilinkDisplayName
10
- };
1
+ function wikilinkDisplayName(link){const inner=link.trim().replace(/^\[\[/,"").replace(/\]\]$/,"");const afterAlias=inner.includes("|")?inner.slice(inner.lastIndexOf("|")+1):inner;const afterSlash=afterAlias.includes("/")?afterAlias.slice(afterAlias.lastIndexOf("/")+1):afterAlias;return afterSlash.trim()}export{wikilinkDisplayName};
@@ -1,32 +1,7 @@
1
1
  import type { FeatCategory } from "../types/choice.js";
2
- /** 5etools feat `category` codes, as DATA beside the schema (never a renderer switch). The converter emits the raw
3
- * code on `exclusive-feat-category` and `feat-category` prerequisites (today only "D", on 14 documents; the G7
4
- * handoff asks it for a name). `FS:P` and `FS:R` are the Paladin- and Ranger-scoped fighting-style categories.
5
- * Measured in data/feats.json: G 80, EB 29, O 25, D 13, FS 10, DG 9, FS:P 1, FS:R 1. Unknown codes fall back to
6
- * the code itself. */
7
2
  export declare const FEAT_CATEGORY_CODE_LABELS: Readonly<Record<string, string>>;
8
3
  export declare function featCategoryLabel(code: string): string;
9
- /** 5etools `feat_progression.category` codes to the ENGINE's `FeatCategory` vocabulary (R4-G5 §3.2.5,
10
- * invariant 3): the DATA table the class-side progression reader maps through, beside the label table above.
11
- * MEASURED over the converted corpus 2026-09-07: 18 `feat_progression` rows across 15 documents, codes
12
- * {EB 13, FS 4, FS:P 1, FS:R 1, O 1}. The FS four are Fighter 2024 (level 1), Paladin 2024 and Ranger 2024
13
- * (level 2, each carrying `["FS","FS:P"]` / `["FS","FS:R"]`) and the Champion 2024 SUBCLASS (level 7); the 13
14
- * EB rows are the 12 PHB 2024 classes plus the Eberron Artificer, all at level 19. The single `O` row sits on
15
- * an OPTIONAL FEATURE (Lessons of the First Ones) with a `"*"` progression key, outside the class walk, so `O`
16
- * and `G` have zero live class-side carriers and are declared for completeness. `D` (Dragonmark) and `DG`
17
- * (Dark Gift) map to NOTHING on purpose: they are not player-choosable feat categories in this vocabulary, and
18
- * a row carrying only those emits no decision and warns once at the reader. G7 handoff (spec §11): the
19
- * converter re-emits these codes in engine vocabulary and this table retires. */
20
4
  export declare const FEAT_PROGRESSION_CATEGORY: Readonly<Record<string, FeatCategory>>;
21
- /** The ONE `FeatCategory` to optional-feature `feature_type` pairing (R4-G5 §3.2.5). The shape-B suppression
22
- * reads it to decide that a class carrying a fighting-style `feat_progression` row must NOT also be offered the
23
- * recognizer's `fighting_style` optional-feature synthetic at that level. `Partial<Record<...>>` because three
24
- * of the four categories pair with nothing, which is also what makes the lookup return `string | undefined`
25
- * without an own-property guard. */
5
+ export declare function featCategoryOf(value: string): string;
26
6
  export declare const FEATURE_TYPE_FOR_CATEGORY: Readonly<Partial<Record<FeatCategory, string>>>;
27
- /** Reduce a `feat_progression` entry's `category` ARRAY to ONE engine category: the FIRST code that maps wins, so
28
- * the shipped `["FS","FS:P"]` (Paladin) and `["FS","FS:R"]` (Ranger) each yield exactly ONE decision instead of
29
- * two. OWN-property guarded (invariant 3): the codes come from converter data, so `constructor` would otherwise
30
- * index a FUNCTION through the prototype chain. Returns undefined when nothing maps (an all-`D` row); the
31
- * CALLER warns, because this stays pure. */
32
7
  export declare function featProgressionCategory(codes: readonly string[] | undefined): FeatCategory | undefined;
@@ -1,14 +1 @@
1
- import {
2
- FEATURE_TYPE_FOR_CATEGORY,
3
- FEAT_CATEGORY_CODE_LABELS,
4
- FEAT_PROGRESSION_CATEGORY,
5
- featCategoryLabel,
6
- featProgressionCategory
7
- } from "../chunk-YBLDE5CG.js";
8
- export {
9
- FEATURE_TYPE_FOR_CATEGORY,
10
- FEAT_CATEGORY_CODE_LABELS,
11
- FEAT_PROGRESSION_CATEGORY,
12
- featCategoryLabel,
13
- featProgressionCategory
14
- };
1
+ import{FEATURE_TYPE_FOR_CATEGORY,FEAT_CATEGORY_CODE_LABELS,FEAT_PROGRESSION_CATEGORY,featCategoryLabel,featCategoryOf,featProgressionCategory}from"../chunk-3QQOATV3.js";export{FEATURE_TYPE_FOR_CATEGORY,FEAT_CATEGORY_CODE_LABELS,FEAT_PROGRESSION_CATEGORY,featCategoryLabel,featCategoryOf,featProgressionCategory};
@@ -1,9 +1,3 @@
1
1
  import type { DocCodec } from "@archivist-gg/core";
2
2
  import type { FeatEntity } from "./feat.types.js";
3
- /**
4
- * Normalizing codec (0c.1a). `parse` delegates to `parseFeat`, which seeds the
5
- * `edition: "2014"` default and validates against `featEntitySchema`.
6
- * `serialize` stays `yaml.dump` (the edit-save path uses obsidian's separate
7
- * serializer; gate (d) verifies `yaml.dump` round-trips through `parseFeat`).
8
- */
9
3
  export declare const featCodec: DocCodec<FeatEntity>;
@@ -1,12 +1 @@
1
- import {
2
- featCodec
3
- } from "../chunk-ZOWKWMD2.js";
4
- import "../chunk-3SFGWFVQ.js";
5
- import "../chunk-FMYWORTP.js";
6
- import "../chunk-ZJXSXVFP.js";
7
- import "../chunk-OOL4KMG2.js";
8
- import "../chunk-JXWNXIIZ.js";
9
- import "../chunk-UA5KS2PL.js";
10
- export {
11
- featCodec
12
- };
1
+ import{featCodec}from"../chunk-2LCGKNVM.js";import"../chunk-IOCJIWCV.js";import"../chunk-334WLI7V.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{featCodec};
@@ -1,11 +1 @@
1
- import {
2
- parseFeat
3
- } from "../chunk-3SFGWFVQ.js";
4
- import "../chunk-FMYWORTP.js";
5
- import "../chunk-ZJXSXVFP.js";
6
- import "../chunk-OOL4KMG2.js";
7
- import "../chunk-JXWNXIIZ.js";
8
- import "../chunk-UA5KS2PL.js";
9
- export {
10
- parseFeat
11
- };
1
+ import{parseFeat}from"../chunk-IOCJIWCV.js";import"../chunk-334WLI7V.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{parseFeat};
@@ -71,7 +71,8 @@ export declare const featEntitySchema: z.ZodObject<{
71
71
  benefits: z.ZodArray<z.ZodString>;
72
72
  effects: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
73
73
  kind: z.ZodLiteral<"initiative-bonus">;
74
- value: z.ZodNumber;
74
+ value: z.ZodOptional<z.ZodNumber>;
75
+ amount: z.ZodOptional<z.ZodString>;
75
76
  condition: z.ZodOptional<z.ZodString>;
76
77
  subject: z.ZodOptional<z.ZodString>;
77
78
  }, z.core.$strip>, z.ZodObject<{
@@ -198,6 +199,7 @@ export declare const featEntitySchema: z.ZodObject<{
198
199
  unarmed: "unarmed";
199
200
  finesse: "finesse";
200
201
  thrown: "thrown";
202
+ "pact-weapon": "pact-weapon";
201
203
  }>, z.ZodArray<z.ZodEnum<{
202
204
  weapon: "weapon";
203
205
  melee: "melee";
@@ -205,6 +207,7 @@ export declare const featEntitySchema: z.ZodObject<{
205
207
  unarmed: "unarmed";
206
208
  finesse: "finesse";
207
209
  thrown: "thrown";
210
+ "pact-weapon": "pact-weapon";
208
211
  }>>]>>;
209
212
  spell_scope: z.ZodOptional<z.ZodObject<{
210
213
  list: z.ZodOptional<z.ZodString>;
@@ -303,6 +306,23 @@ export declare const featEntitySchema: z.ZodObject<{
303
306
  level: z.ZodNumber;
304
307
  count: z.ZodNumber;
305
308
  }, z.core.$strip>>>;
309
+ applies_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
310
+ weapon: "weapon";
311
+ melee: "melee";
312
+ ranged: "ranged";
313
+ unarmed: "unarmed";
314
+ finesse: "finesse";
315
+ thrown: "thrown";
316
+ "pact-weapon": "pact-weapon";
317
+ }>, z.ZodArray<z.ZodEnum<{
318
+ weapon: "weapon";
319
+ melee: "melee";
320
+ ranged: "ranged";
321
+ unarmed: "unarmed";
322
+ finesse: "finesse";
323
+ thrown: "thrown";
324
+ "pact-weapon": "pact-weapon";
325
+ }>>]>>;
306
326
  condition: z.ZodOptional<z.ZodString>;
307
327
  subject: z.ZodOptional<z.ZodString>;
308
328
  }, z.core.$strip>, z.ZodObject<{
@@ -469,6 +489,7 @@ export declare const featEntitySchema: z.ZodObject<{
469
489
  band: "band";
470
490
  tab: "tab";
471
491
  }>>;
492
+ equivalent_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
472
493
  recovery: z.ZodOptional<z.ZodArray<z.ZodObject<{
473
494
  id: z.ZodString;
474
495
  name: z.ZodString;
@@ -1,10 +1 @@
1
- import {
2
- featEntitySchema
3
- } from "../chunk-FMYWORTP.js";
4
- import "../chunk-ZJXSXVFP.js";
5
- import "../chunk-OOL4KMG2.js";
6
- import "../chunk-JXWNXIIZ.js";
7
- import "../chunk-UA5KS2PL.js";
8
- export {
9
- featEntitySchema
10
- };
1
+ import{featEntitySchema}from"../chunk-334WLI7V.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{featEntitySchema};
@@ -61,18 +61,12 @@ export interface FeatEntity {
61
61
  repeatable: boolean;
62
62
  choices: Choice[];
63
63
  resources?: Resource[];
64
- /** Converter/bundle extras declared by feat.schema.ts §2.4; all optional, none read today. */
65
64
  rendering_hint?: string;
66
65
  additional_spells?: AdditionalSpellsEntry[];
67
66
  has_fluff?: boolean;
68
67
  has_fluff_images?: boolean;
69
- /** RAW 5etools passthrough: `unknown` mirrors the schema's `z.unknown()`. */
70
68
  trait_tags?: unknown;
71
69
  optionalfeature_progression?: ProgressionEntry[];
72
- /** R-G1b-5: a TOP-LEVEL bundle key on `SRD 2024/Feats/Boon of the Night Spirit.md`.
73
- * MAPPED since R4-G3a §10.2.3: the resolver carries it onto the resolved feature's
74
- * `action`, so the feat note shows an Action line and the row files under that economy. */
75
70
  action_cost?: ActionCost;
76
- /** One wikilink, or an array of them for the multi-fluff-image emit. */
77
71
  image?: string | string[];
78
72
  }