@archivist-gg/dnd5e 0.3.6 → 0.3.8

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 (70) hide show
  1. package/dist/background/background.codec.js +5 -5
  2. package/dist/background/background.parser.js +4 -4
  3. package/dist/background/background.schema.js +3 -3
  4. package/dist/{chunk-3PZHBLFG.js → chunk-2Q374PZ3.js} +1 -1
  5. package/dist/{chunk-BJFL4KYG.js → chunk-47SCRXGM.js} +3 -3
  6. package/dist/{chunk-MYW7AOUE.js → chunk-5QM7YNGV.js} +1 -1
  7. package/dist/{chunk-ABQ6ZWAF.js → chunk-5SMMRAO2.js} +1 -1
  8. package/dist/{chunk-7MRW4RTH.js → chunk-5VTDYZIW.js} +1 -1
  9. package/dist/{chunk-BS355LND.js → chunk-DIAYWWHG.js} +1 -1
  10. package/dist/{chunk-H4VEMVOO.js → chunk-EISRDJUV.js} +1 -1
  11. package/dist/{chunk-7WNQJAZW.js → chunk-FYM3ROGA.js} +2 -2
  12. package/dist/{chunk-MT4RWROQ.js → chunk-GD2CFJ3T.js} +2 -2
  13. package/dist/{chunk-CQAL67R3.js → chunk-HRG4URUK.js} +1 -1
  14. package/dist/{chunk-A6YL53NC.js → chunk-IVLA24R3.js} +1 -1
  15. package/dist/{chunk-KPEJMNRD.js → chunk-IXMS2HHP.js} +22 -7
  16. package/dist/{chunk-IWRVOCT5.js → chunk-LEHDXPY6.js} +1 -1
  17. package/dist/{chunk-JOVMV2X5.js → chunk-N4JJNGLZ.js} +3 -3
  18. package/dist/{chunk-63XQXPZL.js → chunk-O5WXS3G5.js} +1 -1
  19. package/dist/{chunk-E4KG7HXO.js → chunk-PZCE7DJM.js} +9 -0
  20. package/dist/{chunk-DTCR4DBF.js → chunk-Q6L2RASW.js} +3 -3
  21. package/dist/{chunk-2BI5NAXK.js → chunk-QCKOVD3K.js} +2 -2
  22. package/dist/{chunk-NNAQ4KQF.js → chunk-RW42SHFM.js} +1 -1
  23. package/dist/{chunk-EYZCCWG2.js → chunk-TEKRIRNZ.js} +1 -1
  24. package/dist/{chunk-B4TQTJVC.js → chunk-U3DNWCEI.js} +1 -1
  25. package/dist/{chunk-RWZTGMSN.js → chunk-UYBCC473.js} +1 -1
  26. package/dist/{chunk-ULCQ73LA.js → chunk-VMIFD2RB.js} +1 -1
  27. package/dist/{chunk-X3D6LXUU.js → chunk-VTKJOAJD.js} +1 -0
  28. package/dist/{chunk-3BMVVNCS.js → chunk-WNQ2O2IS.js} +1 -1
  29. package/dist/{chunk-JKLRBILX.js → chunk-YRTI2FLD.js} +1 -1
  30. package/dist/{chunk-UA3I2YSO.js → chunk-ZJXSXVFP.js} +1 -1
  31. package/dist/class/class.codec.js +7 -7
  32. package/dist/class/class.parser.js +6 -6
  33. package/dist/class/class.schema.js +5 -5
  34. package/dist/feat/feat.codec.js +6 -6
  35. package/dist/feat/feat.parser.js +5 -5
  36. package/dist/feat/feat.schema.d.ts +14 -0
  37. package/dist/feat/feat.schema.js +4 -4
  38. package/dist/index.js +24 -24
  39. package/dist/monster/monster.parser.js +6 -6
  40. package/dist/monster/monster.schema.js +5 -5
  41. package/dist/optional-feature/optional-feature.codec.js +5 -5
  42. package/dist/optional-feature/optional-feature.parser.js +4 -4
  43. package/dist/optional-feature/optional-feature.schema.d.ts +15 -0
  44. package/dist/optional-feature/optional-feature.schema.js +3 -3
  45. package/dist/pc/pc.decision-engine.js +2 -2
  46. package/dist/pc/pc.feature-effects.d.ts +15 -0
  47. package/dist/pc/pc.feature-effects.js +1 -1
  48. package/dist/pc/pc.parser.js +1 -1
  49. package/dist/pc/pc.proficiencies.js +2 -2
  50. package/dist/pc/pc.recalc.js +45 -15
  51. package/dist/pc/pc.resolver.js +2 -2
  52. package/dist/pc/pc.rest.js +17 -11
  53. package/dist/pc/pc.schema.d.ts +1 -0
  54. package/dist/pc/pc.schema.js +1 -1
  55. package/dist/pc/pc.types.d.ts +22 -0
  56. package/dist/race/race.codec.js +7 -7
  57. package/dist/race/race.parser.js +6 -6
  58. package/dist/race/race.schema.js +5 -5
  59. package/dist/schemas/choice-schema.js +2 -2
  60. package/dist/schemas/feature-effect-schema.d.ts +14 -0
  61. package/dist/schemas/feature-effect-schema.js +1 -1
  62. package/dist/schemas/feature-schema.js +4 -4
  63. package/dist/schemas/resource-schema.d.ts +1 -0
  64. package/dist/schemas/resource-schema.js +1 -1
  65. package/dist/subclass/subclass.codec.js +7 -7
  66. package/dist/subclass/subclass.parser.js +6 -6
  67. package/dist/subclass/subclass.schema.js +5 -5
  68. package/dist/types/feature-effect.d.ts +5 -0
  69. package/dist/types/resource.d.ts +1 -1
  70. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  backgroundCodec
3
- } from "../chunk-ULCQ73LA.js";
4
- import "../chunk-3PZHBLFG.js";
5
- import "../chunk-63XQXPZL.js";
3
+ } from "../chunk-VMIFD2RB.js";
4
+ import "../chunk-2Q374PZ3.js";
5
+ import "../chunk-O5WXS3G5.js";
6
6
  import "../chunk-IN4M4X7P.js";
7
- import "../chunk-IWRVOCT5.js";
8
- import "../chunk-X3D6LXUU.js";
7
+ import "../chunk-LEHDXPY6.js";
8
+ import "../chunk-VTKJOAJD.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  backgroundCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseBackground
3
- } from "../chunk-3PZHBLFG.js";
4
- import "../chunk-63XQXPZL.js";
3
+ } from "../chunk-2Q374PZ3.js";
4
+ import "../chunk-O5WXS3G5.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
6
+ import "../chunk-LEHDXPY6.js";
7
+ import "../chunk-VTKJOAJD.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseBackground
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  backgroundEntitySchema,
3
3
  langProfSchema
4
- } from "../chunk-63XQXPZL.js";
4
+ } from "../chunk-O5WXS3G5.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
6
+ import "../chunk-LEHDXPY6.js";
7
+ import "../chunk-VTKJOAJD.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  backgroundEntitySchema,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  backgroundEntitySchema
3
- } from "./chunk-63XQXPZL.js";
3
+ } from "./chunk-O5WXS3G5.js";
4
4
 
5
5
  // src/background/background.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  actionCostEnum,
3
3
  resourceSchema
4
- } from "./chunk-UA3I2YSO.js";
4
+ } from "./chunk-ZJXSXVFP.js";
5
5
  import {
6
6
  choiceSchema
7
- } from "./chunk-IWRVOCT5.js";
7
+ } from "./chunk-LEHDXPY6.js";
8
8
  import {
9
9
  featureEffectSchema
10
- } from "./chunk-X3D6LXUU.js";
10
+ } from "./chunk-VTKJOAJD.js";
11
11
  import {
12
12
  additionalSpellsEntrySchema,
13
13
  imageField,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseOptionalFeature
3
- } from "./chunk-NNAQ4KQF.js";
3
+ } from "./chunk-RW42SHFM.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  subclassEntitySchema
3
- } from "./chunk-MT4RWROQ.js";
3
+ } from "./chunk-GD2CFJ3T.js";
4
4
  import {
5
5
  aliasFeaturesByLevelActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raceEntitySchema
3
- } from "./chunk-2BI5NAXK.js";
3
+ } from "./chunk-QCKOVD3K.js";
4
4
  import {
5
5
  aliasFeatureListActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseClass
3
- } from "./chunk-H4VEMVOO.js";
3
+ } from "./chunk-EISRDJUV.js";
4
4
 
5
5
  // src/class/class.codec.ts
6
6
  import yaml from "js-yaml";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4U55VNC7.js";
4
4
  import {
5
5
  classEntitySchema
6
- } from "./chunk-DTCR4DBF.js";
6
+ } from "./chunk-Q6L2RASW.js";
7
7
 
8
8
  // src/class/class.parser.ts
9
9
  import { parseYaml } from "@archivist-gg/core";
@@ -5,10 +5,10 @@ import {
5
5
  actionCostEnum,
6
6
  resetTriggerEnum,
7
7
  resourceConsumptionSchema
8
- } from "./chunk-UA3I2YSO.js";
8
+ } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  featureEffectSchema
11
- } from "./chunk-X3D6LXUU.js";
11
+ } from "./chunk-VTKJOAJD.js";
12
12
  import {
13
13
  additionalSpellsEntrySchema,
14
14
  imageField,
@@ -8,10 +8,10 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-JOVMV2X5.js";
11
+ } from "./chunk-N4JJNGLZ.js";
12
12
  import {
13
13
  resourceSchema
14
- } from "./chunk-UA3I2YSO.js";
14
+ } from "./chunk-ZJXSXVFP.js";
15
15
  import {
16
16
  additionalSpellsEntrySchema,
17
17
  imageField,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseRace
3
- } from "./chunk-7MRW4RTH.js";
3
+ } from "./chunk-5VTDYZIW.js";
4
4
 
5
5
  // src/race/race.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureObjectSchema
3
- } from "./chunk-JOVMV2X5.js";
3
+ } from "./chunk-N4JJNGLZ.js";
4
4
  import {
5
5
  imageField
6
6
  } from "./chunk-UA5KS2PL.js";
@@ -18,9 +18,12 @@ import {
18
18
  function emptyFeatureEffectTotals() {
19
19
  return {
20
20
  initiative_bonus: 0,
21
+ initiative_terms: [],
22
+ skill_bonus_terms: [],
21
23
  hp_per_level_bonus: 0,
22
24
  hp_per_level_terms: [],
23
25
  speed_walk_bonus: 0,
26
+ speed_walk_terms: [],
24
27
  speed_walk_set: 0,
25
28
  attunement_set: 0,
26
29
  ability_bonus: {},
@@ -179,10 +182,19 @@ function scaled(base, key, scalesAt, level) {
179
182
  return best;
180
183
  }
181
184
  function applyEffect(out, eff, label, level) {
182
- var _a, _b, _c, _d, _e;
185
+ var _a, _b, _c, _d, _e, _f;
183
186
  switch (eff.kind) {
184
187
  case "initiative-bonus":
185
188
  out.initiative_bonus += eff.value;
189
+ out.initiative_terms.push({ label, value: eff.value });
190
+ break;
191
+ case "skill-bonus":
192
+ out.skill_bonus_terms.push({
193
+ skills: eff.skills.map(toProfSlug),
194
+ ability: eff.ability,
195
+ minimum: (_a = eff.minimum) != null ? _a : 0,
196
+ label
197
+ });
186
198
  break;
187
199
  case "hp-per-level-bonus":
188
200
  out.hp_per_level_bonus += eff.value;
@@ -192,7 +204,10 @@ function applyEffect(out, eff, label, level) {
192
204
  const value = scaled(eff.value, "value", eff.scales_at, level);
193
205
  if (eff.mode === "walk") {
194
206
  if (eff.set) out.speed_walk_set = Math.max(out.speed_walk_set, value);
195
- else out.speed_walk_bonus += value;
207
+ else {
208
+ out.speed_walk_bonus += value;
209
+ out.speed_walk_terms.push({ label, value });
210
+ }
196
211
  }
197
212
  break;
198
213
  }
@@ -244,7 +259,7 @@ function applyEffect(out, eff, label, level) {
244
259
  }
245
260
  case "roll-modifier": {
246
261
  const rolls = eff.roll === "any" ? ["ability-check", "saving-throw", "attack"] : [eff.roll];
247
- const scopes = (_a = normalizeRollScope(eff.scope, rolls[0])) != null ? _a : [eff.scope];
262
+ const scopes = (_b = normalizeRollScope(eff.scope, rolls[0])) != null ? _b : [eff.scope];
248
263
  for (const roll of rolls) for (const scope of scopes)
249
264
  out.rollModifiers.push({ mode: eff.mode, roll, scope, condition: eff.condition, label });
250
265
  break;
@@ -254,13 +269,13 @@ function applyEffect(out, eff, label, level) {
254
269
  ability: eff.ability === "any" ? void 0 : eff.ability,
255
270
  on_success: eff.on_success,
256
271
  on_failure: eff.on_failure,
257
- appliesTo: (_b = eff.applies_to) != null ? _b : void 0,
272
+ appliesTo: (_c = eff.applies_to) != null ? _c : void 0,
258
273
  condition: eff.condition,
259
274
  label
260
275
  });
261
276
  break;
262
277
  case "crit-range":
263
- if (((_c = eff.applies_to) != null ? _c : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
278
+ if (((_d = eff.applies_to) != null ? _d : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
264
279
  break;
265
280
  case "extra-attack":
266
281
  out.extraAttack = Math.max(out.extraAttack, scaled(eff.count, "count", eff.scales_at, level));
@@ -272,7 +287,7 @@ function applyEffect(out, eff, label, level) {
272
287
  if (eff.flag === "no-ranged-in-melee-disadvantage") out.attackNotes.push("No disadvantage firing in melee");
273
288
  break;
274
289
  case "damage-bonus":
275
- if (((_d = eff.applies_to) != null ? _d : "weapon") !== "spell") {
290
+ if (((_e = eff.applies_to) != null ? _e : "weapon") !== "spell") {
276
291
  out.damageBonuses.push({
277
292
  amount: eff.amount,
278
293
  damage_type: eff.damage_type,
@@ -283,7 +298,7 @@ function applyEffect(out, eff, label, level) {
283
298
  break;
284
299
  case "ability-score-increase":
285
300
  if (eff.abilities === "chosen") break;
286
- for (const ab of eff.abilities) out.ability_bonus[ab] = ((_e = out.ability_bonus[ab]) != null ? _e : 0) + eff.amount;
301
+ for (const ab of eff.abilities) out.ability_bonus[ab] = ((_f = out.ability_bonus[ab]) != null ? _f : 0) + eff.amount;
287
302
  break;
288
303
  default:
289
304
  break;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureEffectSchema
3
- } from "./chunk-X3D6LXUU.js";
3
+ } from "./chunk-VTKJOAJD.js";
4
4
 
5
5
  // src/schemas/choice-schema.ts
6
6
  import { z } from "zod";
@@ -5,13 +5,13 @@ import {
5
5
  actionCostEnum,
6
6
  resourceConsumptionSchema,
7
7
  resourceSchema
8
- } from "./chunk-UA3I2YSO.js";
8
+ } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  choiceSchema
11
- } from "./chunk-IWRVOCT5.js";
11
+ } from "./chunk-LEHDXPY6.js";
12
12
  import {
13
13
  featureEffectSchema
14
- } from "./chunk-X3D6LXUU.js";
14
+ } from "./chunk-VTKJOAJD.js";
15
15
 
16
16
  // src/schemas/feature-schema.ts
17
17
  import { z as z2 } from "zod";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IN4M4X7P.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-IWRVOCT5.js";
6
+ } from "./chunk-LEHDXPY6.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -193,6 +193,15 @@ var characterStateSchema = z.object({
193
193
  used: z.number().int().nonnegative(),
194
194
  max: z.number().int().nonnegative()
195
195
  })).default({}),
196
+ // R4-G5 G8 (research D §3.3, the booked design): banked PREROLLED dice, keyed by the SAME id as
197
+ // feature_uses (the resource id, e.g. "wizard-2024:foretelling-roll" for Portent). SIGN IS STATE
198
+ // (the G8 shuffle fix): a value is stored NEGATIVE while spent, positive while live, so positions
199
+ // are STABLE and "spend the right-hand roll" never reorders the bank (the earlier spent-prefix
200
+ // shape moved a spent value into a prefix and visibly shuffled its neighbours). The count axis
201
+ // stays on feature_uses (the tracker remains the single source of how many are left); the
202
+ // writers on the plugin edit state keep the sign set and `used` in step. Without this line a
203
+ // non-strict parse STRIPS the key and the rolls never survive a load.
204
+ feature_rolls: z.record(z.string(), z.array(z.number().int().refine((n) => n !== 0 && Math.abs(n) <= 999, "banked rolls are nonzero, |value| 1..999"))).default({}),
196
205
  // Phase 3 activatable buffs: ids/slugs of activatable features/boons that are
197
206
  // currently toggled on. Their effects fold into recalc only while listed here.
198
207
  active_buffs: z.array(z.string()).optional(),
@@ -8,17 +8,17 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-JOVMV2X5.js";
11
+ } from "./chunk-N4JJNGLZ.js";
12
12
  import {
13
13
  resourceSchema
14
- } from "./chunk-UA3I2YSO.js";
14
+ } from "./chunk-ZJXSXVFP.js";
15
15
  import {
16
16
  startingEquipmentEntrySchema,
17
17
  startingGoldSchema
18
18
  } from "./chunk-IN4M4X7P.js";
19
19
  import {
20
20
  choiceSchema
21
- } from "./chunk-IWRVOCT5.js";
21
+ } from "./chunk-LEHDXPY6.js";
22
22
  import {
23
23
  additionalSpellsEntrySchema,
24
24
  imageField,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featureSchema
3
- } from "./chunk-JOVMV2X5.js";
3
+ } from "./chunk-N4JJNGLZ.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-IWRVOCT5.js";
6
+ } from "./chunk-LEHDXPY6.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  optionalFeatureEntitySchema
3
- } from "./chunk-7WNQJAZW.js";
3
+ } from "./chunk-FYM3ROGA.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  assembleEffectFeatures,
31
31
  collectProficiencyEffectGrants
32
- } from "./chunk-KPEJMNRD.js";
32
+ } from "./chunk-IXMS2HHP.js";
33
33
  import {
34
34
  ALL_LANGUAGES,
35
35
  ALL_SKILL_SLUGS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSubclass
3
- } from "./chunk-ABQ6ZWAF.js";
3
+ } from "./chunk-5SMMRAO2.js";
4
4
 
5
5
  // src/subclass/subclass.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "./chunk-BJFL4KYG.js";
3
+ } from "./chunk-47SCRXGM.js";
4
4
 
5
5
  // src/feat/feat.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseBackground
3
- } from "./chunk-3PZHBLFG.js";
3
+ } from "./chunk-2Q374PZ3.js";
4
4
 
5
5
  // src/background/background.codec.ts
6
6
  import yaml from "js-yaml";
@@ -5,6 +5,7 @@ var subjectField = z.string().min(1).optional();
5
5
  var conditionField = z.string().optional();
6
6
  var featureEffectSchema = z.discriminatedUnion("kind", [
7
7
  z.object({ kind: z.literal("initiative-bonus"), value: z.number().int(), condition: conditionField, subject: subjectField }),
8
+ z.object({ kind: z.literal("skill-bonus"), skills: z.array(z.string().min(1)).nonempty(), ability: abilityEnum, minimum: z.number().int().optional(), condition: conditionField, subject: subjectField }),
8
9
  // `condition` here is the condition NAME (frightened, poisoned); the qualifier is `while`.
9
10
  z.object({ kind: z.literal("immune-condition"), condition: z.string().min(1), while: z.string().optional(), subject: subjectField }),
10
11
  z.object({ kind: z.literal("resistance"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MONSTER_KNOWN_KEYS,
3
3
  monsterSchema
4
- } from "./chunk-A6YL53NC.js";
4
+ } from "./chunk-IVLA24R3.js";
5
5
 
6
6
  // src/monster/monster.parser.ts
7
7
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFeat
3
- } from "./chunk-RWZTGMSN.js";
3
+ } from "./chunk-UYBCC473.js";
4
4
 
5
5
  // src/feat/feat.codec.ts
6
6
  import yaml from "js-yaml";
@@ -34,7 +34,7 @@ var resourceSchema = z.object({
34
34
  })).optional()
35
35
  });
36
36
  var resourceConsumptionSchema = z.object({
37
- source: z.enum(["resource", "class-column", "attack-dice"]).optional(),
37
+ source: z.enum(["resource", "class-column", "attack-dice", "spell-slots"]).optional(),
38
38
  resource: z.string().optional(),
39
39
  column: z.string().optional(),
40
40
  amount: z.number().int().positive(),
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  classCodec
3
- } from "../chunk-BS355LND.js";
4
- import "../chunk-H4VEMVOO.js";
3
+ } from "../chunk-DIAYWWHG.js";
4
+ import "../chunk-EISRDJUV.js";
5
5
  import "../chunk-4U55VNC7.js";
6
- import "../chunk-DTCR4DBF.js";
6
+ import "../chunk-Q6L2RASW.js";
7
7
  import "../chunk-23LZLBJK.js";
8
8
  import "../chunk-CJYCVNW2.js";
9
- import "../chunk-JOVMV2X5.js";
9
+ import "../chunk-N4JJNGLZ.js";
10
10
  import "../chunk-WYGD2UGN.js";
11
- import "../chunk-UA3I2YSO.js";
11
+ import "../chunk-ZJXSXVFP.js";
12
12
  import "../chunk-IN4M4X7P.js";
13
- import "../chunk-IWRVOCT5.js";
14
- import "../chunk-X3D6LXUU.js";
13
+ import "../chunk-LEHDXPY6.js";
14
+ import "../chunk-VTKJOAJD.js";
15
15
  import "../chunk-UA5KS2PL.js";
16
16
  export {
17
17
  classCodec
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  parseClass
3
- } from "../chunk-H4VEMVOO.js";
3
+ } from "../chunk-EISRDJUV.js";
4
4
  import "../chunk-4U55VNC7.js";
5
- import "../chunk-DTCR4DBF.js";
5
+ import "../chunk-Q6L2RASW.js";
6
6
  import "../chunk-23LZLBJK.js";
7
7
  import "../chunk-CJYCVNW2.js";
8
- import "../chunk-JOVMV2X5.js";
8
+ import "../chunk-N4JJNGLZ.js";
9
9
  import "../chunk-WYGD2UGN.js";
10
- import "../chunk-UA3I2YSO.js";
10
+ import "../chunk-ZJXSXVFP.js";
11
11
  import "../chunk-IN4M4X7P.js";
12
- import "../chunk-IWRVOCT5.js";
13
- import "../chunk-X3D6LXUU.js";
12
+ import "../chunk-LEHDXPY6.js";
13
+ import "../chunk-VTKJOAJD.js";
14
14
  import "../chunk-UA5KS2PL.js";
15
15
  export {
16
16
  parseClass
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  classEntitySchema
3
- } from "../chunk-DTCR4DBF.js";
3
+ } from "../chunk-Q6L2RASW.js";
4
4
  import "../chunk-23LZLBJK.js";
5
5
  import "../chunk-CJYCVNW2.js";
6
- import "../chunk-JOVMV2X5.js";
6
+ import "../chunk-N4JJNGLZ.js";
7
7
  import "../chunk-WYGD2UGN.js";
8
- import "../chunk-UA3I2YSO.js";
8
+ import "../chunk-ZJXSXVFP.js";
9
9
  import "../chunk-IN4M4X7P.js";
10
- import "../chunk-IWRVOCT5.js";
11
- import "../chunk-X3D6LXUU.js";
10
+ import "../chunk-LEHDXPY6.js";
11
+ import "../chunk-VTKJOAJD.js";
12
12
  import "../chunk-UA5KS2PL.js";
13
13
  export {
14
14
  classEntitySchema
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  featCodec
3
- } from "../chunk-JKLRBILX.js";
4
- import "../chunk-RWZTGMSN.js";
5
- import "../chunk-BJFL4KYG.js";
6
- import "../chunk-UA3I2YSO.js";
7
- import "../chunk-IWRVOCT5.js";
8
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-YRTI2FLD.js";
4
+ import "../chunk-UYBCC473.js";
5
+ import "../chunk-47SCRXGM.js";
6
+ import "../chunk-ZJXSXVFP.js";
7
+ import "../chunk-LEHDXPY6.js";
8
+ import "../chunk-VTKJOAJD.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  featCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseFeat
3
- } from "../chunk-RWZTGMSN.js";
4
- import "../chunk-BJFL4KYG.js";
5
- import "../chunk-UA3I2YSO.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-UYBCC473.js";
4
+ import "../chunk-47SCRXGM.js";
5
+ import "../chunk-ZJXSXVFP.js";
6
+ import "../chunk-LEHDXPY6.js";
7
+ import "../chunk-VTKJOAJD.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseFeat
@@ -74,6 +74,20 @@ export declare const featEntitySchema: z.ZodObject<{
74
74
  value: z.ZodNumber;
75
75
  condition: z.ZodOptional<z.ZodString>;
76
76
  subject: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ kind: z.ZodLiteral<"skill-bonus">;
79
+ skills: z.ZodArray<z.ZodString>;
80
+ ability: z.ZodEnum<{
81
+ str: "str";
82
+ dex: "dex";
83
+ con: "con";
84
+ int: "int";
85
+ wis: "wis";
86
+ cha: "cha";
87
+ }>;
88
+ minimum: z.ZodOptional<z.ZodNumber>;
89
+ condition: z.ZodOptional<z.ZodString>;
90
+ subject: z.ZodOptional<z.ZodString>;
77
91
  }, z.core.$strip>, z.ZodObject<{
78
92
  kind: z.ZodLiteral<"immune-condition">;
79
93
  condition: z.ZodString;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "../chunk-BJFL4KYG.js";
4
- import "../chunk-UA3I2YSO.js";
5
- import "../chunk-IWRVOCT5.js";
6
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-47SCRXGM.js";
4
+ import "../chunk-ZJXSXVFP.js";
5
+ import "../chunk-LEHDXPY6.js";
6
+ import "../chunk-VTKJOAJD.js";
7
7
  import "../chunk-UA5KS2PL.js";
8
8
  export {
9
9
  featEntitySchema