ttrpg-engine-dnd 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/CONTRIBUTING.md +98 -0
  3. package/DEVELOPMENT.md +70 -0
  4. package/LICENSE +21 -0
  5. package/README.md +247 -0
  6. package/VERSIONING.md +151 -0
  7. package/dist/content/index.d.ts +3 -0
  8. package/dist/content/index.d.ts.map +1 -0
  9. package/dist/content/pack.d.ts +1657 -0
  10. package/dist/content/pack.d.ts.map +1 -0
  11. package/dist/content/packs/starter.d.ts +4 -0
  12. package/dist/content/packs/starter.d.ts.map +1 -0
  13. package/dist/content/validate.d.ts +8 -0
  14. package/dist/content/validate.d.ts.map +1 -0
  15. package/dist/derive/ability-check.d.ts +26 -0
  16. package/dist/derive/ability-check.d.ts.map +1 -0
  17. package/dist/derive/ability.d.ts +9 -0
  18. package/dist/derive/ability.d.ts.map +1 -0
  19. package/dist/derive/ac.d.ts +19 -0
  20. package/dist/derive/ac.d.ts.map +1 -0
  21. package/dist/derive/action-economy.d.ts +17 -0
  22. package/dist/derive/action-economy.d.ts.map +1 -0
  23. package/dist/derive/attack.d.ts +20 -0
  24. package/dist/derive/attack.d.ts.map +1 -0
  25. package/dist/derive/character-view.d.ts +29 -0
  26. package/dist/derive/character-view.d.ts.map +1 -0
  27. package/dist/derive/damage-mitigation.d.ts +18 -0
  28. package/dist/derive/damage-mitigation.d.ts.map +1 -0
  29. package/dist/derive/effect-stack.d.ts +15 -0
  30. package/dist/derive/effect-stack.d.ts.map +1 -0
  31. package/dist/derive/encumbrance.d.ts +17 -0
  32. package/dist/derive/encumbrance.d.ts.map +1 -0
  33. package/dist/derive/index.d.ts +12 -0
  34. package/dist/derive/index.d.ts.map +1 -0
  35. package/dist/derive/save.d.ts +23 -0
  36. package/dist/derive/save.d.ts.map +1 -0
  37. package/dist/derive/spell-dc.d.ts +21 -0
  38. package/dist/derive/spell-dc.d.ts.map +1 -0
  39. package/dist/derive/spell-slots.d.ts +21 -0
  40. package/dist/derive/spell-slots.d.ts.map +1 -0
  41. package/dist/derive/terrain.d.ts +10 -0
  42. package/dist/derive/terrain.d.ts.map +1 -0
  43. package/dist/effects/builder.d.ts +66 -0
  44. package/dist/effects/builder.d.ts.map +1 -0
  45. package/dist/effects/formula.d.ts +12 -0
  46. package/dist/effects/formula.d.ts.map +1 -0
  47. package/dist/effects/index.d.ts +4 -0
  48. package/dist/effects/index.d.ts.map +1 -0
  49. package/dist/effects/predicate.d.ts +12 -0
  50. package/dist/effects/predicate.d.ts.map +1 -0
  51. package/dist/engine/apply.d.ts +5 -0
  52. package/dist/engine/apply.d.ts.map +1 -0
  53. package/dist/engine/commit.d.ts +12 -0
  54. package/dist/engine/commit.d.ts.map +1 -0
  55. package/dist/engine/conveniences.d.ts +7124 -0
  56. package/dist/engine/conveniences.d.ts.map +1 -0
  57. package/dist/engine/ids-utils.d.ts +2 -0
  58. package/dist/engine/ids-utils.d.ts.map +1 -0
  59. package/dist/engine/index.d.ts +107 -0
  60. package/dist/engine/index.d.ts.map +1 -0
  61. package/dist/engine/plan/action-surge.d.ts +10 -0
  62. package/dist/engine/plan/action-surge.d.ts.map +1 -0
  63. package/dist/engine/plan/attack.d.ts +30 -0
  64. package/dist/engine/plan/attack.d.ts.map +1 -0
  65. package/dist/engine/plan/cast-spell.d.ts +18 -0
  66. package/dist/engine/plan/cast-spell.d.ts.map +1 -0
  67. package/dist/engine/plan/checks.d.ts +26 -0
  68. package/dist/engine/plan/checks.d.ts.map +1 -0
  69. package/dist/engine/plan/concentration.d.ts +12 -0
  70. package/dist/engine/plan/concentration.d.ts.map +1 -0
  71. package/dist/engine/plan/contested.d.ts +28 -0
  72. package/dist/engine/plan/contested.d.ts.map +1 -0
  73. package/dist/engine/plan/encounter.d.ts +47 -0
  74. package/dist/engine/plan/encounter.d.ts.map +1 -0
  75. package/dist/engine/plan/falling.d.ts +11 -0
  76. package/dist/engine/plan/falling.d.ts.map +1 -0
  77. package/dist/engine/plan/index.d.ts +20 -0
  78. package/dist/engine/plan/index.d.ts.map +1 -0
  79. package/dist/engine/plan/level-up.d.ts +22 -0
  80. package/dist/engine/plan/level-up.d.ts.map +1 -0
  81. package/dist/engine/plan/movement.d.ts +25 -0
  82. package/dist/engine/plan/movement.d.ts.map +1 -0
  83. package/dist/engine/plan/multiattack.d.ts +12 -0
  84. package/dist/engine/plan/multiattack.d.ts.map +1 -0
  85. package/dist/engine/plan/npc.d.ts +21 -0
  86. package/dist/engine/plan/npc.d.ts.map +1 -0
  87. package/dist/engine/plan/offhand-attack.d.ts +13 -0
  88. package/dist/engine/plan/offhand-attack.d.ts.map +1 -0
  89. package/dist/engine/plan/opportunity-attack.d.ts +14 -0
  90. package/dist/engine/plan/opportunity-attack.d.ts.map +1 -0
  91. package/dist/engine/plan/reactive-spells.d.ts +34 -0
  92. package/dist/engine/plan/reactive-spells.d.ts.map +1 -0
  93. package/dist/engine/plan/rest.d.ts +16 -0
  94. package/dist/engine/plan/rest.d.ts.map +1 -0
  95. package/dist/engine/plan/travel.d.ts +21 -0
  96. package/dist/engine/plan/travel.d.ts.map +1 -0
  97. package/dist/engine/plan/weapon-mastery.d.ts +15 -0
  98. package/dist/engine/plan/weapon-mastery.d.ts.map +1 -0
  99. package/dist/engine/reducers/action-economy.d.ts +12 -0
  100. package/dist/engine/reducers/action-economy.d.ts.map +1 -0
  101. package/dist/engine/reducers/attack.d.ts +6 -0
  102. package/dist/engine/reducers/attack.d.ts.map +1 -0
  103. package/dist/engine/reducers/bastion.d.ts +10 -0
  104. package/dist/engine/reducers/bastion.d.ts.map +1 -0
  105. package/dist/engine/reducers/charges.d.ts +7 -0
  106. package/dist/engine/reducers/charges.d.ts.map +1 -0
  107. package/dist/engine/reducers/checks.d.ts +6 -0
  108. package/dist/engine/reducers/checks.d.ts.map +1 -0
  109. package/dist/engine/reducers/combat.d.ts +12 -0
  110. package/dist/engine/reducers/combat.d.ts.map +1 -0
  111. package/dist/engine/reducers/concentration.d.ts +6 -0
  112. package/dist/engine/reducers/concentration.d.ts.map +1 -0
  113. package/dist/engine/reducers/downtime.d.ts +5 -0
  114. package/dist/engine/reducers/downtime.d.ts.map +1 -0
  115. package/dist/engine/reducers/encounter.d.ts +11 -0
  116. package/dist/engine/reducers/encounter.d.ts.map +1 -0
  117. package/dist/engine/reducers/inventory.d.ts +9 -0
  118. package/dist/engine/reducers/inventory.d.ts.map +1 -0
  119. package/dist/engine/reducers/level-up.d.ts +7 -0
  120. package/dist/engine/reducers/level-up.d.ts.map +1 -0
  121. package/dist/engine/reducers/locations.d.ts +8 -0
  122. package/dist/engine/reducers/locations.d.ts.map +1 -0
  123. package/dist/engine/reducers/mounts-vehicles.d.ts +11 -0
  124. package/dist/engine/reducers/mounts-vehicles.d.ts.map +1 -0
  125. package/dist/engine/reducers/movement.d.ts +7 -0
  126. package/dist/engine/reducers/movement.d.ts.map +1 -0
  127. package/dist/engine/reducers/npc.d.ts +7 -0
  128. package/dist/engine/reducers/npc.d.ts.map +1 -0
  129. package/dist/engine/reducers/party.d.ts +10 -0
  130. package/dist/engine/reducers/party.d.ts.map +1 -0
  131. package/dist/engine/reducers/progression.d.ts +5 -0
  132. package/dist/engine/reducers/progression.d.ts.map +1 -0
  133. package/dist/engine/reducers/quests.d.ts +14 -0
  134. package/dist/engine/reducers/quests.d.ts.map +1 -0
  135. package/dist/engine/reducers/reactive-spells.d.ts +7 -0
  136. package/dist/engine/reducers/reactive-spells.d.ts.map +1 -0
  137. package/dist/engine/reducers/resources.d.ts +7 -0
  138. package/dist/engine/reducers/resources.d.ts.map +1 -0
  139. package/dist/engine/reducers/rest.d.ts +8 -0
  140. package/dist/engine/reducers/rest.d.ts.map +1 -0
  141. package/dist/engine/reducers/resurrection.d.ts +5 -0
  142. package/dist/engine/reducers/resurrection.d.ts.map +1 -0
  143. package/dist/engine/reducers/session.d.ts +8 -0
  144. package/dist/engine/reducers/session.d.ts.map +1 -0
  145. package/dist/engine/reducers/settings.d.ts +5 -0
  146. package/dist/engine/reducers/settings.d.ts.map +1 -0
  147. package/dist/engine/reducers/spellcasting.d.ts +7 -0
  148. package/dist/engine/reducers/spellcasting.d.ts.map +1 -0
  149. package/dist/engine/reducers/transformations.d.ts +8 -0
  150. package/dist/engine/reducers/transformations.d.ts.map +1 -0
  151. package/dist/engine/reducers/travel.d.ts +7 -0
  152. package/dist/engine/reducers/travel.d.ts.map +1 -0
  153. package/dist/engine/reducers/triggers.d.ts +9 -0
  154. package/dist/engine/reducers/triggers.d.ts.map +1 -0
  155. package/dist/engine/reducers/weapon-mastery.d.ts +5 -0
  156. package/dist/engine/reducers/weapon-mastery.d.ts.map +1 -0
  157. package/dist/engine/replay.d.ts +4 -0
  158. package/dist/engine/replay.d.ts.map +1 -0
  159. package/dist/engine/triggers/dispatch.d.ts +13 -0
  160. package/dist/engine/triggers/dispatch.d.ts.map +1 -0
  161. package/dist/engine/undo-redo.d.ts +4 -0
  162. package/dist/engine/undo-redo.d.ts.map +1 -0
  163. package/dist/handlers/context.d.ts +7 -0
  164. package/dist/handlers/context.d.ts.map +1 -0
  165. package/dist/handlers/index.d.ts +12 -0
  166. package/dist/handlers/index.d.ts.map +1 -0
  167. package/dist/ids.d.ts +64 -0
  168. package/dist/ids.d.ts.map +1 -0
  169. package/dist/index.d.ts +72 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/internal/clock.d.ts +2 -0
  172. package/dist/internal/clock.d.ts.map +1 -0
  173. package/dist/internal/constants.d.ts +6 -0
  174. package/dist/internal/constants.d.ts.map +1 -0
  175. package/dist/internal/immer.d.ts +4 -0
  176. package/dist/internal/immer.d.ts.map +1 -0
  177. package/dist/internal/invariants.d.ts +5 -0
  178. package/dist/internal/invariants.d.ts.map +1 -0
  179. package/dist/migrations/index.d.ts +5 -0
  180. package/dist/migrations/index.d.ts.map +1 -0
  181. package/dist/rng/default.d.ts +6 -0
  182. package/dist/rng/default.d.ts.map +1 -0
  183. package/dist/rng/dice.d.ts +20 -0
  184. package/dist/rng/dice.d.ts.map +1 -0
  185. package/dist/rng/index.d.ts +10 -0
  186. package/dist/rng/index.d.ts.map +1 -0
  187. package/dist/rng/seeded.d.ts +9 -0
  188. package/dist/rng/seeded.d.ts.map +1 -0
  189. package/dist/rng/throw.d.ts +9 -0
  190. package/dist/rng/throw.d.ts.map +1 -0
  191. package/dist/schemas/content/background.d.ts +46 -0
  192. package/dist/schemas/content/background.d.ts.map +1 -0
  193. package/dist/schemas/content/class.d.ts +264 -0
  194. package/dist/schemas/content/class.d.ts.map +1 -0
  195. package/dist/schemas/content/condition.d.ts +90 -0
  196. package/dist/schemas/content/condition.d.ts.map +1 -0
  197. package/dist/schemas/content/feat.d.ts +25 -0
  198. package/dist/schemas/content/feat.d.ts.map +1 -0
  199. package/dist/schemas/content/index.d.ts +9 -0
  200. package/dist/schemas/content/index.d.ts.map +1 -0
  201. package/dist/schemas/content/item.d.ts +602 -0
  202. package/dist/schemas/content/item.d.ts.map +1 -0
  203. package/dist/schemas/content/monster.d.ts +203 -0
  204. package/dist/schemas/content/monster.d.ts.map +1 -0
  205. package/dist/schemas/content/species.d.ts +63 -0
  206. package/dist/schemas/content/species.d.ts.map +1 -0
  207. package/dist/schemas/content/spell.d.ts +253 -0
  208. package/dist/schemas/content/spell.d.ts.map +1 -0
  209. package/dist/schemas/effects.d.ts +175 -0
  210. package/dist/schemas/effects.d.ts.map +1 -0
  211. package/dist/schemas/events/action-economy.d.ts +38 -0
  212. package/dist/schemas/events/action-economy.d.ts.map +1 -0
  213. package/dist/schemas/events/attack.d.ts +139 -0
  214. package/dist/schemas/events/attack.d.ts.map +1 -0
  215. package/dist/schemas/events/bastion.d.ts +227 -0
  216. package/dist/schemas/events/bastion.d.ts.map +1 -0
  217. package/dist/schemas/events/charges.d.ts +110 -0
  218. package/dist/schemas/events/charges.d.ts.map +1 -0
  219. package/dist/schemas/events/checks.d.ts +103 -0
  220. package/dist/schemas/events/checks.d.ts.map +1 -0
  221. package/dist/schemas/events/combat.d.ts +308 -0
  222. package/dist/schemas/events/combat.d.ts.map +1 -0
  223. package/dist/schemas/events/concentration.d.ts +99 -0
  224. package/dist/schemas/events/concentration.d.ts.map +1 -0
  225. package/dist/schemas/events/downtime.d.ts +53 -0
  226. package/dist/schemas/events/downtime.d.ts.map +1 -0
  227. package/dist/schemas/events/encounter.d.ts +260 -0
  228. package/dist/schemas/events/encounter.d.ts.map +1 -0
  229. package/dist/schemas/events/envelope.d.ts +22 -0
  230. package/dist/schemas/events/envelope.d.ts.map +1 -0
  231. package/dist/schemas/events/index.d.ts +4594 -0
  232. package/dist/schemas/events/index.d.ts.map +1 -0
  233. package/dist/schemas/events/inventory.d.ts +253 -0
  234. package/dist/schemas/events/inventory.d.ts.map +1 -0
  235. package/dist/schemas/events/level-up.d.ts +141 -0
  236. package/dist/schemas/events/level-up.d.ts.map +1 -0
  237. package/dist/schemas/events/locations.d.ts +183 -0
  238. package/dist/schemas/events/locations.d.ts.map +1 -0
  239. package/dist/schemas/events/mounts-vehicles.d.ts +233 -0
  240. package/dist/schemas/events/mounts-vehicles.d.ts.map +1 -0
  241. package/dist/schemas/events/movement.d.ts +131 -0
  242. package/dist/schemas/events/movement.d.ts.map +1 -0
  243. package/dist/schemas/events/npc.d.ts +113 -0
  244. package/dist/schemas/events/npc.d.ts.map +1 -0
  245. package/dist/schemas/events/party.d.ts +260 -0
  246. package/dist/schemas/events/party.d.ts.map +1 -0
  247. package/dist/schemas/events/progression.d.ts +698 -0
  248. package/dist/schemas/events/progression.d.ts.map +1 -0
  249. package/dist/schemas/events/quests.d.ts +426 -0
  250. package/dist/schemas/events/quests.d.ts.map +1 -0
  251. package/dist/schemas/events/reactive-spells.d.ts +98 -0
  252. package/dist/schemas/events/reactive-spells.d.ts.map +1 -0
  253. package/dist/schemas/events/resources.d.ts +107 -0
  254. package/dist/schemas/events/resources.d.ts.map +1 -0
  255. package/dist/schemas/events/rest.d.ts +104 -0
  256. package/dist/schemas/events/rest.d.ts.map +1 -0
  257. package/dist/schemas/events/resurrection.d.ts +44 -0
  258. package/dist/schemas/events/resurrection.d.ts.map +1 -0
  259. package/dist/schemas/events/session.d.ts +144 -0
  260. package/dist/schemas/events/session.d.ts.map +1 -0
  261. package/dist/schemas/events/settings.d.ts +47 -0
  262. package/dist/schemas/events/settings.d.ts.map +1 -0
  263. package/dist/schemas/events/spellcasting.d.ts +103 -0
  264. package/dist/schemas/events/spellcasting.d.ts.map +1 -0
  265. package/dist/schemas/events/transformations.d.ts +279 -0
  266. package/dist/schemas/events/transformations.d.ts.map +1 -0
  267. package/dist/schemas/events/travel.d.ts +143 -0
  268. package/dist/schemas/events/travel.d.ts.map +1 -0
  269. package/dist/schemas/events/triggers.d.ts +60 -0
  270. package/dist/schemas/events/triggers.d.ts.map +1 -0
  271. package/dist/schemas/events/weapon-mastery.d.ts +38 -0
  272. package/dist/schemas/events/weapon-mastery.d.ts.map +1 -0
  273. package/dist/schemas/formula.d.ts +103 -0
  274. package/dist/schemas/formula.d.ts.map +1 -0
  275. package/dist/schemas/index.d.ts +8 -0
  276. package/dist/schemas/index.d.ts.map +1 -0
  277. package/dist/schemas/predicate.d.ts +72 -0
  278. package/dist/schemas/predicate.d.ts.map +1 -0
  279. package/dist/schemas/primitives.d.ts +156 -0
  280. package/dist/schemas/primitives.d.ts.map +1 -0
  281. package/dist/schemas/runtime/bastion.d.ts +130 -0
  282. package/dist/schemas/runtime/bastion.d.ts.map +1 -0
  283. package/dist/schemas/runtime/campaign.d.ts +2122 -0
  284. package/dist/schemas/runtime/campaign.d.ts.map +1 -0
  285. package/dist/schemas/runtime/character.d.ts +580 -0
  286. package/dist/schemas/runtime/character.d.ts.map +1 -0
  287. package/dist/schemas/runtime/currency.d.ts +9 -0
  288. package/dist/schemas/runtime/currency.d.ts.map +1 -0
  289. package/dist/schemas/runtime/downtime.d.ts +31 -0
  290. package/dist/schemas/runtime/downtime.d.ts.map +1 -0
  291. package/dist/schemas/runtime/effect-instance.d.ts +65 -0
  292. package/dist/schemas/runtime/effect-instance.d.ts.map +1 -0
  293. package/dist/schemas/runtime/encounter.d.ts +264 -0
  294. package/dist/schemas/runtime/encounter.d.ts.map +1 -0
  295. package/dist/schemas/runtime/in-game-time.d.ts +18 -0
  296. package/dist/schemas/runtime/in-game-time.d.ts.map +1 -0
  297. package/dist/schemas/runtime/index.d.ts +15 -0
  298. package/dist/schemas/runtime/index.d.ts.map +1 -0
  299. package/dist/schemas/runtime/item-instance.d.ts +66 -0
  300. package/dist/schemas/runtime/item-instance.d.ts.map +1 -0
  301. package/dist/schemas/runtime/location.d.ts +111 -0
  302. package/dist/schemas/runtime/location.d.ts.map +1 -0
  303. package/dist/schemas/runtime/party.d.ts +52 -0
  304. package/dist/schemas/runtime/party.d.ts.map +1 -0
  305. package/dist/schemas/runtime/pending-choice.d.ts +77 -0
  306. package/dist/schemas/runtime/pending-choice.d.ts.map +1 -0
  307. package/dist/schemas/runtime/quest.d.ts +207 -0
  308. package/dist/schemas/runtime/quest.d.ts.map +1 -0
  309. package/dist/schemas/runtime/session.d.ts +102 -0
  310. package/dist/schemas/runtime/session.d.ts.map +1 -0
  311. package/dist/schemas/runtime/settings.d.ts +26 -0
  312. package/dist/schemas/runtime/settings.d.ts.map +1 -0
  313. package/dist/schemas/runtime/travel.d.ts +34 -0
  314. package/dist/schemas/runtime/travel.d.ts.map +1 -0
  315. package/dist/schemas/runtime/vehicle.d.ts +49 -0
  316. package/dist/schemas/runtime/vehicle.d.ts.map +1 -0
  317. package/dist/ttrpg-engine-dnd.cjs +6 -0
  318. package/dist/ttrpg-engine-dnd.cjs.map +1 -0
  319. package/dist/ttrpg-engine-dnd.js +10464 -0
  320. package/dist/ttrpg-engine-dnd.js.map +1 -0
  321. package/dist/types/index.d.ts +8 -0
  322. package/dist/types/index.d.ts.map +1 -0
  323. package/dist/version.d.ts +3 -0
  324. package/dist/version.d.ts.map +1 -0
  325. package/docs/api-overview.md +111 -0
  326. package/docs/concepts.md +154 -0
  327. package/docs/getting-started.md +142 -0
  328. package/docs/recipes.md +302 -0
  329. package/package.json +83 -0
@@ -0,0 +1,2122 @@
1
+ import { z } from 'zod';
2
+ export declare const CampaignStateSchema: z.ZodObject<{
3
+ characters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
4
+ id: z.ZodString;
5
+ kind: z.ZodDefault<z.ZodEnum<["pc", "npc", "creature"]>>;
6
+ statblockId: z.ZodOptional<z.ZodString>;
7
+ multiattack: z.ZodOptional<z.ZodObject<{
8
+ name: z.ZodString;
9
+ attacks: z.ZodArray<z.ZodObject<{
10
+ weaponInstanceId: z.ZodString;
11
+ count: z.ZodNumber;
12
+ }, "strip", z.ZodTypeAny, {
13
+ count: number;
14
+ weaponInstanceId: string;
15
+ }, {
16
+ count: number;
17
+ weaponInstanceId: string;
18
+ }>, "many">;
19
+ }, "strip", z.ZodTypeAny, {
20
+ name: string;
21
+ attacks: {
22
+ count: number;
23
+ weaponInstanceId: string;
24
+ }[];
25
+ }, {
26
+ name: string;
27
+ attacks: {
28
+ count: number;
29
+ weaponInstanceId: string;
30
+ }[];
31
+ }>>;
32
+ name: z.ZodString;
33
+ playerId: z.ZodOptional<z.ZodString>;
34
+ speciesId: z.ZodString;
35
+ backgroundId: z.ZodString;
36
+ classes: z.ZodArray<z.ZodObject<{
37
+ classId: z.ZodString;
38
+ subclassId: z.ZodOptional<z.ZodString>;
39
+ level: z.ZodNumber;
40
+ hitDiceRemaining: z.ZodNumber;
41
+ }, "strip", z.ZodTypeAny, {
42
+ level: number;
43
+ classId: string;
44
+ hitDiceRemaining: number;
45
+ subclassId?: string | undefined;
46
+ }, {
47
+ level: number;
48
+ classId: string;
49
+ hitDiceRemaining: number;
50
+ subclassId?: string | undefined;
51
+ }>, "many">;
52
+ abilityScores: z.ZodObject<{
53
+ STR: z.ZodNumber;
54
+ DEX: z.ZodNumber;
55
+ CON: z.ZodNumber;
56
+ INT: z.ZodNumber;
57
+ WIS: z.ZodNumber;
58
+ CHA: z.ZodNumber;
59
+ }, "strip", z.ZodTypeAny, {
60
+ STR: number;
61
+ DEX: number;
62
+ CON: number;
63
+ INT: number;
64
+ WIS: number;
65
+ CHA: number;
66
+ }, {
67
+ STR: number;
68
+ DEX: number;
69
+ CON: number;
70
+ INT: number;
71
+ WIS: number;
72
+ CHA: number;
73
+ }>;
74
+ hp: z.ZodObject<{
75
+ current: z.ZodNumber;
76
+ max: z.ZodNumber;
77
+ temp: z.ZodDefault<z.ZodNumber>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ max: number;
80
+ current: number;
81
+ temp: number;
82
+ }, {
83
+ max: number;
84
+ current: number;
85
+ temp?: number | undefined;
86
+ }>;
87
+ deathSaves: z.ZodDefault<z.ZodObject<{
88
+ successes: z.ZodDefault<z.ZodNumber>;
89
+ failures: z.ZodDefault<z.ZodNumber>;
90
+ stable: z.ZodDefault<z.ZodBoolean>;
91
+ }, "strip", z.ZodTypeAny, {
92
+ successes: number;
93
+ failures: number;
94
+ stable: boolean;
95
+ }, {
96
+ successes?: number | undefined;
97
+ failures?: number | undefined;
98
+ stable?: boolean | undefined;
99
+ }>>;
100
+ exhaustion: z.ZodDefault<z.ZodNumber>;
101
+ speedFeet: z.ZodDefault<z.ZodNumber>;
102
+ inventory: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
103
+ equipped: z.ZodDefault<z.ZodObject<{
104
+ mainHand: z.ZodOptional<z.ZodString>;
105
+ offHand: z.ZodOptional<z.ZodString>;
106
+ armor: z.ZodOptional<z.ZodString>;
107
+ shield: z.ZodOptional<z.ZodString>;
108
+ attuned: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ attuned: string[];
111
+ armor?: string | undefined;
112
+ shield?: string | undefined;
113
+ mainHand?: string | undefined;
114
+ offHand?: string | undefined;
115
+ }, {
116
+ armor?: string | undefined;
117
+ shield?: string | undefined;
118
+ mainHand?: string | undefined;
119
+ offHand?: string | undefined;
120
+ attuned?: string[] | undefined;
121
+ }>>;
122
+ resources: z.ZodDefault<z.ZodArray<z.ZodObject<{
123
+ resourceId: z.ZodString;
124
+ current: z.ZodNumber;
125
+ max: z.ZodNumber;
126
+ }, "strip", z.ZodTypeAny, {
127
+ max: number;
128
+ resourceId: string;
129
+ current: number;
130
+ }, {
131
+ max: number;
132
+ resourceId: string;
133
+ current: number;
134
+ }>, "many">>;
135
+ appliedConditions: z.ZodDefault<z.ZodArray<z.ZodObject<{
136
+ id: z.ZodString;
137
+ conditionId: z.ZodString;
138
+ sourceEventId: z.ZodOptional<z.ZodString>;
139
+ level: z.ZodOptional<z.ZodNumber>;
140
+ expiresOnRound: z.ZodOptional<z.ZodNumber>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ conditionId: string;
143
+ id: string;
144
+ level?: number | undefined;
145
+ sourceEventId?: string | undefined;
146
+ expiresOnRound?: number | undefined;
147
+ }, {
148
+ conditionId: string;
149
+ id: string;
150
+ level?: number | undefined;
151
+ sourceEventId?: string | undefined;
152
+ expiresOnRound?: number | undefined;
153
+ }>, "many">>;
154
+ knownSpells: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
155
+ preparedSpells: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
156
+ spellSlotsUsed: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
157
+ pactSlotsUsed: z.ZodDefault<z.ZodNumber>;
158
+ concentrationEffectId: z.ZodOptional<z.ZodString>;
159
+ triggerCounters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
160
+ firedThisTurn: z.ZodOptional<z.ZodBoolean>;
161
+ firedThisRound: z.ZodOptional<z.ZodBoolean>;
162
+ firedThisShortRest: z.ZodOptional<z.ZodBoolean>;
163
+ firedThisLongRest: z.ZodOptional<z.ZodBoolean>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ firedThisTurn?: boolean | undefined;
166
+ firedThisRound?: boolean | undefined;
167
+ firedThisShortRest?: boolean | undefined;
168
+ firedThisLongRest?: boolean | undefined;
169
+ }, {
170
+ firedThisTurn?: boolean | undefined;
171
+ firedThisRound?: boolean | undefined;
172
+ firedThisShortRest?: boolean | undefined;
173
+ firedThisLongRest?: boolean | undefined;
174
+ }>>>;
175
+ featsTaken: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
176
+ pendingChoiceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
177
+ xp: z.ZodDefault<z.ZodNumber>;
178
+ mountedOnId: z.ZodOptional<z.ZodString>;
179
+ attitude: z.ZodOptional<z.ZodEnum<["hostile", "unfriendly", "indifferent", "friendly", "helpful"]>>;
180
+ morale: z.ZodOptional<z.ZodObject<{
181
+ current: z.ZodNumber;
182
+ max: z.ZodNumber;
183
+ }, "strip", z.ZodTypeAny, {
184
+ max: number;
185
+ current: number;
186
+ }, {
187
+ max: number;
188
+ current: number;
189
+ }>>;
190
+ moraleBroken: z.ZodDefault<z.ZodBoolean>;
191
+ polymorphedSnapshot: z.ZodOptional<z.ZodObject<{
192
+ hp: z.ZodObject<{
193
+ current: z.ZodNumber;
194
+ max: z.ZodNumber;
195
+ temp: z.ZodDefault<z.ZodNumber>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ max: number;
198
+ current: number;
199
+ temp: number;
200
+ }, {
201
+ max: number;
202
+ current: number;
203
+ temp?: number | undefined;
204
+ }>;
205
+ abilityScores: z.ZodObject<{
206
+ STR: z.ZodNumber;
207
+ DEX: z.ZodNumber;
208
+ CON: z.ZodNumber;
209
+ INT: z.ZodNumber;
210
+ WIS: z.ZodNumber;
211
+ CHA: z.ZodNumber;
212
+ }, "strip", z.ZodTypeAny, {
213
+ STR: number;
214
+ DEX: number;
215
+ CON: number;
216
+ INT: number;
217
+ WIS: number;
218
+ CHA: number;
219
+ }, {
220
+ STR: number;
221
+ DEX: number;
222
+ CON: number;
223
+ INT: number;
224
+ WIS: number;
225
+ CHA: number;
226
+ }>;
227
+ speedFeet: z.ZodNumber;
228
+ speciesId: z.ZodString;
229
+ kind: z.ZodEnum<["polymorph", "wild-shape", "true-polymorph"]>;
230
+ formName: z.ZodString;
231
+ }, "strip", z.ZodTypeAny, {
232
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
233
+ hp: {
234
+ max: number;
235
+ current: number;
236
+ temp: number;
237
+ };
238
+ abilityScores: {
239
+ STR: number;
240
+ DEX: number;
241
+ CON: number;
242
+ INT: number;
243
+ WIS: number;
244
+ CHA: number;
245
+ };
246
+ speciesId: string;
247
+ speedFeet: number;
248
+ formName: string;
249
+ }, {
250
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
251
+ hp: {
252
+ max: number;
253
+ current: number;
254
+ temp?: number | undefined;
255
+ };
256
+ abilityScores: {
257
+ STR: number;
258
+ DEX: number;
259
+ CON: number;
260
+ INT: number;
261
+ WIS: number;
262
+ CHA: number;
263
+ };
264
+ speciesId: string;
265
+ speedFeet: number;
266
+ formName: string;
267
+ }>>;
268
+ }, "strip", z.ZodTypeAny, {
269
+ kind: "pc" | "npc" | "creature";
270
+ id: string;
271
+ name: string;
272
+ classes: {
273
+ level: number;
274
+ classId: string;
275
+ hitDiceRemaining: number;
276
+ subclassId?: string | undefined;
277
+ }[];
278
+ hp: {
279
+ max: number;
280
+ current: number;
281
+ temp: number;
282
+ };
283
+ abilityScores: {
284
+ STR: number;
285
+ DEX: number;
286
+ CON: number;
287
+ INT: number;
288
+ WIS: number;
289
+ CHA: number;
290
+ };
291
+ xp: number;
292
+ speciesId: string;
293
+ backgroundId: string;
294
+ deathSaves: {
295
+ successes: number;
296
+ failures: number;
297
+ stable: boolean;
298
+ };
299
+ exhaustion: number;
300
+ speedFeet: number;
301
+ inventory: string[];
302
+ equipped: {
303
+ attuned: string[];
304
+ armor?: string | undefined;
305
+ shield?: string | undefined;
306
+ mainHand?: string | undefined;
307
+ offHand?: string | undefined;
308
+ };
309
+ resources: {
310
+ max: number;
311
+ resourceId: string;
312
+ current: number;
313
+ }[];
314
+ appliedConditions: {
315
+ conditionId: string;
316
+ id: string;
317
+ level?: number | undefined;
318
+ sourceEventId?: string | undefined;
319
+ expiresOnRound?: number | undefined;
320
+ }[];
321
+ knownSpells: string[];
322
+ preparedSpells: string[];
323
+ spellSlotsUsed: Record<string, number>;
324
+ pactSlotsUsed: number;
325
+ triggerCounters: Record<string, {
326
+ firedThisTurn?: boolean | undefined;
327
+ firedThisRound?: boolean | undefined;
328
+ firedThisShortRest?: boolean | undefined;
329
+ firedThisLongRest?: boolean | undefined;
330
+ }>;
331
+ featsTaken: string[];
332
+ pendingChoiceIds: string[];
333
+ moraleBroken: boolean;
334
+ statblockId?: string | undefined;
335
+ multiattack?: {
336
+ name: string;
337
+ attacks: {
338
+ count: number;
339
+ weaponInstanceId: string;
340
+ }[];
341
+ } | undefined;
342
+ playerId?: string | undefined;
343
+ concentrationEffectId?: string | undefined;
344
+ mountedOnId?: string | undefined;
345
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
346
+ morale?: {
347
+ max: number;
348
+ current: number;
349
+ } | undefined;
350
+ polymorphedSnapshot?: {
351
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
352
+ hp: {
353
+ max: number;
354
+ current: number;
355
+ temp: number;
356
+ };
357
+ abilityScores: {
358
+ STR: number;
359
+ DEX: number;
360
+ CON: number;
361
+ INT: number;
362
+ WIS: number;
363
+ CHA: number;
364
+ };
365
+ speciesId: string;
366
+ speedFeet: number;
367
+ formName: string;
368
+ } | undefined;
369
+ }, {
370
+ id: string;
371
+ name: string;
372
+ classes: {
373
+ level: number;
374
+ classId: string;
375
+ hitDiceRemaining: number;
376
+ subclassId?: string | undefined;
377
+ }[];
378
+ hp: {
379
+ max: number;
380
+ current: number;
381
+ temp?: number | undefined;
382
+ };
383
+ abilityScores: {
384
+ STR: number;
385
+ DEX: number;
386
+ CON: number;
387
+ INT: number;
388
+ WIS: number;
389
+ CHA: number;
390
+ };
391
+ speciesId: string;
392
+ backgroundId: string;
393
+ kind?: "pc" | "npc" | "creature" | undefined;
394
+ xp?: number | undefined;
395
+ statblockId?: string | undefined;
396
+ multiattack?: {
397
+ name: string;
398
+ attacks: {
399
+ count: number;
400
+ weaponInstanceId: string;
401
+ }[];
402
+ } | undefined;
403
+ playerId?: string | undefined;
404
+ deathSaves?: {
405
+ successes?: number | undefined;
406
+ failures?: number | undefined;
407
+ stable?: boolean | undefined;
408
+ } | undefined;
409
+ exhaustion?: number | undefined;
410
+ speedFeet?: number | undefined;
411
+ inventory?: string[] | undefined;
412
+ equipped?: {
413
+ armor?: string | undefined;
414
+ shield?: string | undefined;
415
+ mainHand?: string | undefined;
416
+ offHand?: string | undefined;
417
+ attuned?: string[] | undefined;
418
+ } | undefined;
419
+ resources?: {
420
+ max: number;
421
+ resourceId: string;
422
+ current: number;
423
+ }[] | undefined;
424
+ appliedConditions?: {
425
+ conditionId: string;
426
+ id: string;
427
+ level?: number | undefined;
428
+ sourceEventId?: string | undefined;
429
+ expiresOnRound?: number | undefined;
430
+ }[] | undefined;
431
+ knownSpells?: string[] | undefined;
432
+ preparedSpells?: string[] | undefined;
433
+ spellSlotsUsed?: Record<string, number> | undefined;
434
+ pactSlotsUsed?: number | undefined;
435
+ concentrationEffectId?: string | undefined;
436
+ triggerCounters?: Record<string, {
437
+ firedThisTurn?: boolean | undefined;
438
+ firedThisRound?: boolean | undefined;
439
+ firedThisShortRest?: boolean | undefined;
440
+ firedThisLongRest?: boolean | undefined;
441
+ }> | undefined;
442
+ featsTaken?: string[] | undefined;
443
+ pendingChoiceIds?: string[] | undefined;
444
+ mountedOnId?: string | undefined;
445
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
446
+ morale?: {
447
+ max: number;
448
+ current: number;
449
+ } | undefined;
450
+ moraleBroken?: boolean | undefined;
451
+ polymorphedSnapshot?: {
452
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
453
+ hp: {
454
+ max: number;
455
+ current: number;
456
+ temp?: number | undefined;
457
+ };
458
+ abilityScores: {
459
+ STR: number;
460
+ DEX: number;
461
+ CON: number;
462
+ INT: number;
463
+ WIS: number;
464
+ CHA: number;
465
+ };
466
+ speciesId: string;
467
+ speedFeet: number;
468
+ formName: string;
469
+ } | undefined;
470
+ }>>>;
471
+ itemInstances: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
472
+ id: z.ZodString;
473
+ definitionId: z.ZodString;
474
+ customName: z.ZodOptional<z.ZodString>;
475
+ quantity: z.ZodDefault<z.ZodNumber>;
476
+ chargesRemaining: z.ZodOptional<z.ZodNumber>;
477
+ attuned: z.ZodDefault<z.ZodBoolean>;
478
+ attunedTo: z.ZodOptional<z.ZodString>;
479
+ equippedBy: z.ZodOptional<z.ZodString>;
480
+ containerId: z.ZodOptional<z.ZodString>;
481
+ acquiredAtEventId: z.ZodOptional<z.ZodString>;
482
+ identifiedByCharacterIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
483
+ maxCharges: z.ZodOptional<z.ZodNumber>;
484
+ sentient: z.ZodOptional<z.ZodObject<{
485
+ ego: z.ZodNumber;
486
+ alignment: z.ZodString;
487
+ personality: z.ZodOptional<z.ZodString>;
488
+ }, "strip", z.ZodTypeAny, {
489
+ alignment: string;
490
+ ego: number;
491
+ personality?: string | undefined;
492
+ }, {
493
+ alignment: string;
494
+ ego: number;
495
+ personality?: string | undefined;
496
+ }>>;
497
+ }, "strip", z.ZodTypeAny, {
498
+ id: string;
499
+ attuned: boolean;
500
+ definitionId: string;
501
+ quantity: number;
502
+ identifiedByCharacterIds: string[];
503
+ customName?: string | undefined;
504
+ chargesRemaining?: number | undefined;
505
+ attunedTo?: string | undefined;
506
+ equippedBy?: string | undefined;
507
+ containerId?: string | undefined;
508
+ acquiredAtEventId?: string | undefined;
509
+ maxCharges?: number | undefined;
510
+ sentient?: {
511
+ alignment: string;
512
+ ego: number;
513
+ personality?: string | undefined;
514
+ } | undefined;
515
+ }, {
516
+ id: string;
517
+ definitionId: string;
518
+ attuned?: boolean | undefined;
519
+ customName?: string | undefined;
520
+ quantity?: number | undefined;
521
+ chargesRemaining?: number | undefined;
522
+ attunedTo?: string | undefined;
523
+ equippedBy?: string | undefined;
524
+ containerId?: string | undefined;
525
+ acquiredAtEventId?: string | undefined;
526
+ identifiedByCharacterIds?: string[] | undefined;
527
+ maxCharges?: number | undefined;
528
+ sentient?: {
529
+ alignment: string;
530
+ ego: number;
531
+ personality?: string | undefined;
532
+ } | undefined;
533
+ }>>>;
534
+ pendingChoices: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
535
+ id: z.ZodString;
536
+ prompt: z.ZodString;
537
+ options: z.ZodArray<z.ZodObject<{
538
+ id: z.ZodString;
539
+ label: z.ZodString;
540
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../effects.js").Effect, z.ZodTypeDef, import("../effects.js").Effect>, "many">>;
541
+ }, "strip", z.ZodTypeAny, {
542
+ id: string;
543
+ label: string;
544
+ effects: import("../effects.js").Effect[];
545
+ }, {
546
+ id: string;
547
+ label: string;
548
+ effects?: import("../effects.js").Effect[] | undefined;
549
+ }>, "many">;
550
+ oneOf: z.ZodDefault<z.ZodNumber>;
551
+ forCharacterId: z.ZodString;
552
+ triggerEventId: z.ZodString;
553
+ resolution: z.ZodOptional<z.ZodObject<{
554
+ selectedOptionIds: z.ZodArray<z.ZodString, "many">;
555
+ atEventId: z.ZodString;
556
+ }, "strip", z.ZodTypeAny, {
557
+ selectedOptionIds: string[];
558
+ atEventId: string;
559
+ }, {
560
+ selectedOptionIds: string[];
561
+ atEventId: string;
562
+ }>>;
563
+ }, "strip", z.ZodTypeAny, {
564
+ options: {
565
+ id: string;
566
+ label: string;
567
+ effects: import("../effects.js").Effect[];
568
+ }[];
569
+ id: string;
570
+ prompt: string;
571
+ oneOf: number;
572
+ forCharacterId: string;
573
+ triggerEventId: string;
574
+ resolution?: {
575
+ selectedOptionIds: string[];
576
+ atEventId: string;
577
+ } | undefined;
578
+ }, {
579
+ options: {
580
+ id: string;
581
+ label: string;
582
+ effects?: import("../effects.js").Effect[] | undefined;
583
+ }[];
584
+ id: string;
585
+ prompt: string;
586
+ forCharacterId: string;
587
+ triggerEventId: string;
588
+ oneOf?: number | undefined;
589
+ resolution?: {
590
+ selectedOptionIds: string[];
591
+ atEventId: string;
592
+ } | undefined;
593
+ }>>>;
594
+ encounters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
595
+ id: z.ZodString;
596
+ name: z.ZodOptional<z.ZodString>;
597
+ status: z.ZodEnum<["planning", "active", "ended"]>;
598
+ combatants: z.ZodDefault<z.ZodArray<z.ZodObject<{
599
+ combatantId: z.ZodString;
600
+ initiative: z.ZodNumber;
601
+ initiativeOrder: z.ZodNumber;
602
+ hasActedThisRound: z.ZodDefault<z.ZodBoolean>;
603
+ turnUsage: z.ZodDefault<z.ZodObject<{
604
+ actionUsed: z.ZodDefault<z.ZodBoolean>;
605
+ bonusActionUsed: z.ZodDefault<z.ZodBoolean>;
606
+ attacksMadeThisTurn: z.ZodDefault<z.ZodNumber>;
607
+ reactionUsedThisRound: z.ZodDefault<z.ZodBoolean>;
608
+ feetMovedThisTurn: z.ZodDefault<z.ZodNumber>;
609
+ dashed: z.ZodDefault<z.ZodBoolean>;
610
+ disengaged: z.ZodDefault<z.ZodBoolean>;
611
+ }, "strip", z.ZodTypeAny, {
612
+ actionUsed: boolean;
613
+ bonusActionUsed: boolean;
614
+ attacksMadeThisTurn: number;
615
+ reactionUsedThisRound: boolean;
616
+ feetMovedThisTurn: number;
617
+ dashed: boolean;
618
+ disengaged: boolean;
619
+ }, {
620
+ actionUsed?: boolean | undefined;
621
+ bonusActionUsed?: boolean | undefined;
622
+ attacksMadeThisTurn?: number | undefined;
623
+ reactionUsedThisRound?: boolean | undefined;
624
+ feetMovedThisTurn?: number | undefined;
625
+ dashed?: boolean | undefined;
626
+ disengaged?: boolean | undefined;
627
+ }>>;
628
+ position: z.ZodOptional<z.ZodObject<{
629
+ x: z.ZodNumber;
630
+ y: z.ZodNumber;
631
+ }, "strip", z.ZodTypeAny, {
632
+ x: number;
633
+ y: number;
634
+ }, {
635
+ x: number;
636
+ y: number;
637
+ }>>;
638
+ }, "strip", z.ZodTypeAny, {
639
+ initiative: number;
640
+ combatantId: string;
641
+ initiativeOrder: number;
642
+ hasActedThisRound: boolean;
643
+ turnUsage: {
644
+ actionUsed: boolean;
645
+ bonusActionUsed: boolean;
646
+ attacksMadeThisTurn: number;
647
+ reactionUsedThisRound: boolean;
648
+ feetMovedThisTurn: number;
649
+ dashed: boolean;
650
+ disengaged: boolean;
651
+ };
652
+ position?: {
653
+ x: number;
654
+ y: number;
655
+ } | undefined;
656
+ }, {
657
+ initiative: number;
658
+ combatantId: string;
659
+ initiativeOrder: number;
660
+ hasActedThisRound?: boolean | undefined;
661
+ turnUsage?: {
662
+ actionUsed?: boolean | undefined;
663
+ bonusActionUsed?: boolean | undefined;
664
+ attacksMadeThisTurn?: number | undefined;
665
+ reactionUsedThisRound?: boolean | undefined;
666
+ feetMovedThisTurn?: number | undefined;
667
+ dashed?: boolean | undefined;
668
+ disengaged?: boolean | undefined;
669
+ } | undefined;
670
+ position?: {
671
+ x: number;
672
+ y: number;
673
+ } | undefined;
674
+ }>, "many">>;
675
+ round: z.ZodNumber;
676
+ activeIndex: z.ZodNumber;
677
+ startedAtEventId: z.ZodOptional<z.ZodString>;
678
+ endedAtEventId: z.ZodOptional<z.ZodString>;
679
+ outcome: z.ZodOptional<z.ZodEnum<["victory", "defeat", "fled", "parley"]>>;
680
+ }, "strip", z.ZodTypeAny, {
681
+ status: "planning" | "active" | "ended";
682
+ round: number;
683
+ id: string;
684
+ combatants: {
685
+ initiative: number;
686
+ combatantId: string;
687
+ initiativeOrder: number;
688
+ hasActedThisRound: boolean;
689
+ turnUsage: {
690
+ actionUsed: boolean;
691
+ bonusActionUsed: boolean;
692
+ attacksMadeThisTurn: number;
693
+ reactionUsedThisRound: boolean;
694
+ feetMovedThisTurn: number;
695
+ dashed: boolean;
696
+ disengaged: boolean;
697
+ };
698
+ position?: {
699
+ x: number;
700
+ y: number;
701
+ } | undefined;
702
+ }[];
703
+ activeIndex: number;
704
+ name?: string | undefined;
705
+ startedAtEventId?: string | undefined;
706
+ endedAtEventId?: string | undefined;
707
+ outcome?: "victory" | "defeat" | "fled" | "parley" | undefined;
708
+ }, {
709
+ status: "planning" | "active" | "ended";
710
+ round: number;
711
+ id: string;
712
+ activeIndex: number;
713
+ name?: string | undefined;
714
+ startedAtEventId?: string | undefined;
715
+ combatants?: {
716
+ initiative: number;
717
+ combatantId: string;
718
+ initiativeOrder: number;
719
+ hasActedThisRound?: boolean | undefined;
720
+ turnUsage?: {
721
+ actionUsed?: boolean | undefined;
722
+ bonusActionUsed?: boolean | undefined;
723
+ attacksMadeThisTurn?: number | undefined;
724
+ reactionUsedThisRound?: boolean | undefined;
725
+ feetMovedThisTurn?: number | undefined;
726
+ dashed?: boolean | undefined;
727
+ disengaged?: boolean | undefined;
728
+ } | undefined;
729
+ position?: {
730
+ x: number;
731
+ y: number;
732
+ } | undefined;
733
+ }[] | undefined;
734
+ endedAtEventId?: string | undefined;
735
+ outcome?: "victory" | "defeat" | "fled" | "parley" | undefined;
736
+ }>>>;
737
+ effectInstances: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
738
+ id: z.ZodString;
739
+ spellId: z.ZodString;
740
+ casterId: z.ZodString;
741
+ targetIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
742
+ conditionsApplied: z.ZodDefault<z.ZodArray<z.ZodObject<{
743
+ targetId: z.ZodString;
744
+ conditionId: z.ZodString;
745
+ appliedConditionId: z.ZodString;
746
+ }, "strip", z.ZodTypeAny, {
747
+ conditionId: string;
748
+ targetId: string;
749
+ appliedConditionId: string;
750
+ }, {
751
+ conditionId: string;
752
+ targetId: string;
753
+ appliedConditionId: string;
754
+ }>, "many">>;
755
+ requiresConcentration: z.ZodBoolean;
756
+ durationRounds: z.ZodOptional<z.ZodNumber>;
757
+ startedAtEventId: z.ZodString;
758
+ }, "strip", z.ZodTypeAny, {
759
+ id: string;
760
+ spellId: string;
761
+ casterId: string;
762
+ targetIds: string[];
763
+ conditionsApplied: {
764
+ conditionId: string;
765
+ targetId: string;
766
+ appliedConditionId: string;
767
+ }[];
768
+ requiresConcentration: boolean;
769
+ startedAtEventId: string;
770
+ durationRounds?: number | undefined;
771
+ }, {
772
+ id: string;
773
+ spellId: string;
774
+ casterId: string;
775
+ requiresConcentration: boolean;
776
+ startedAtEventId: string;
777
+ durationRounds?: number | undefined;
778
+ targetIds?: string[] | undefined;
779
+ conditionsApplied?: {
780
+ conditionId: string;
781
+ targetId: string;
782
+ appliedConditionId: string;
783
+ }[] | undefined;
784
+ }>>>;
785
+ parties: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
786
+ id: z.ZodString;
787
+ name: z.ZodString;
788
+ memberIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
789
+ sharedInventory: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
790
+ purse: z.ZodDefault<z.ZodObject<{
791
+ cp: z.ZodDefault<z.ZodNumber>;
792
+ sp: z.ZodDefault<z.ZodNumber>;
793
+ ep: z.ZodDefault<z.ZodNumber>;
794
+ gp: z.ZodDefault<z.ZodNumber>;
795
+ pp: z.ZodDefault<z.ZodNumber>;
796
+ }, "strip", z.ZodTypeAny, {
797
+ cp: number;
798
+ sp: number;
799
+ ep: number;
800
+ gp: number;
801
+ pp: number;
802
+ }, {
803
+ cp?: number | undefined;
804
+ sp?: number | undefined;
805
+ ep?: number | undefined;
806
+ gp?: number | undefined;
807
+ pp?: number | undefined;
808
+ }>>;
809
+ }, "strip", z.ZodTypeAny, {
810
+ id: string;
811
+ name: string;
812
+ memberIds: string[];
813
+ sharedInventory: string[];
814
+ purse: {
815
+ cp: number;
816
+ sp: number;
817
+ ep: number;
818
+ gp: number;
819
+ pp: number;
820
+ };
821
+ }, {
822
+ id: string;
823
+ name: string;
824
+ memberIds?: string[] | undefined;
825
+ sharedInventory?: string[] | undefined;
826
+ purse?: {
827
+ cp?: number | undefined;
828
+ sp?: number | undefined;
829
+ ep?: number | undefined;
830
+ gp?: number | undefined;
831
+ pp?: number | undefined;
832
+ } | undefined;
833
+ }>>>;
834
+ sessions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
835
+ id: z.ZodString;
836
+ name: z.ZodString;
837
+ startedAtIso: z.ZodString;
838
+ endedAtIso: z.ZodOptional<z.ZodString>;
839
+ inGameStart: z.ZodObject<{
840
+ totalMinutes: z.ZodDefault<z.ZodNumber>;
841
+ }, "strip", z.ZodTypeAny, {
842
+ totalMinutes: number;
843
+ }, {
844
+ totalMinutes?: number | undefined;
845
+ }>;
846
+ inGameEnd: z.ZodOptional<z.ZodObject<{
847
+ totalMinutes: z.ZodDefault<z.ZodNumber>;
848
+ }, "strip", z.ZodTypeAny, {
849
+ totalMinutes: number;
850
+ }, {
851
+ totalMinutes?: number | undefined;
852
+ }>>;
853
+ summary: z.ZodOptional<z.ZodString>;
854
+ journalEntryIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
855
+ }, "strip", z.ZodTypeAny, {
856
+ id: string;
857
+ name: string;
858
+ startedAtIso: string;
859
+ inGameStart: {
860
+ totalMinutes: number;
861
+ };
862
+ journalEntryIds: string[];
863
+ endedAtIso?: string | undefined;
864
+ inGameEnd?: {
865
+ totalMinutes: number;
866
+ } | undefined;
867
+ summary?: string | undefined;
868
+ }, {
869
+ id: string;
870
+ name: string;
871
+ startedAtIso: string;
872
+ inGameStart: {
873
+ totalMinutes?: number | undefined;
874
+ };
875
+ endedAtIso?: string | undefined;
876
+ inGameEnd?: {
877
+ totalMinutes?: number | undefined;
878
+ } | undefined;
879
+ summary?: string | undefined;
880
+ journalEntryIds?: string[] | undefined;
881
+ }>>>;
882
+ journalEntries: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
883
+ id: z.ZodString;
884
+ sessionId: z.ZodOptional<z.ZodString>;
885
+ authorKind: z.ZodEnum<["player", "dm"]>;
886
+ authorCharacterId: z.ZodOptional<z.ZodString>;
887
+ visibility: z.ZodEnum<["party", "dm-only", "character"]>;
888
+ visibleToCharacterIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
889
+ title: z.ZodString;
890
+ body: z.ZodString;
891
+ createdAtIso: z.ZodString;
892
+ inGameAt: z.ZodObject<{
893
+ totalMinutes: z.ZodDefault<z.ZodNumber>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ totalMinutes: number;
896
+ }, {
897
+ totalMinutes?: number | undefined;
898
+ }>;
899
+ }, "strip", z.ZodTypeAny, {
900
+ id: string;
901
+ authorKind: "player" | "dm";
902
+ visibility: "party" | "dm-only" | "character";
903
+ visibleToCharacterIds: string[];
904
+ title: string;
905
+ body: string;
906
+ createdAtIso: string;
907
+ inGameAt: {
908
+ totalMinutes: number;
909
+ };
910
+ sessionId?: string | undefined;
911
+ authorCharacterId?: string | undefined;
912
+ }, {
913
+ id: string;
914
+ authorKind: "player" | "dm";
915
+ visibility: "party" | "dm-only" | "character";
916
+ title: string;
917
+ body: string;
918
+ createdAtIso: string;
919
+ inGameAt: {
920
+ totalMinutes?: number | undefined;
921
+ };
922
+ sessionId?: string | undefined;
923
+ authorCharacterId?: string | undefined;
924
+ visibleToCharacterIds?: string[] | undefined;
925
+ }>>>;
926
+ locations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
927
+ id: z.ZodString;
928
+ name: z.ZodString;
929
+ description: z.ZodOptional<z.ZodString>;
930
+ parentLocationId: z.ZodOptional<z.ZodString>;
931
+ map: z.ZodOptional<z.ZodObject<{
932
+ widthCells: z.ZodNumber;
933
+ heightCells: z.ZodNumber;
934
+ cellSizeFeet: z.ZodDefault<z.ZodNumber>;
935
+ terrain: z.ZodArray<z.ZodArray<z.ZodEnum<["normal", "difficult", "impassable", "water"]>, "many">, "many">;
936
+ }, "strip", z.ZodTypeAny, {
937
+ widthCells: number;
938
+ heightCells: number;
939
+ cellSizeFeet: number;
940
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
941
+ }, {
942
+ widthCells: number;
943
+ heightCells: number;
944
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
945
+ cellSizeFeet?: number | undefined;
946
+ }>>;
947
+ doorIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
948
+ }, "strip", z.ZodTypeAny, {
949
+ id: string;
950
+ name: string;
951
+ doorIds: string[];
952
+ map?: {
953
+ widthCells: number;
954
+ heightCells: number;
955
+ cellSizeFeet: number;
956
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
957
+ } | undefined;
958
+ description?: string | undefined;
959
+ parentLocationId?: string | undefined;
960
+ }, {
961
+ id: string;
962
+ name: string;
963
+ map?: {
964
+ widthCells: number;
965
+ heightCells: number;
966
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
967
+ cellSizeFeet?: number | undefined;
968
+ } | undefined;
969
+ description?: string | undefined;
970
+ parentLocationId?: string | undefined;
971
+ doorIds?: string[] | undefined;
972
+ }>>>;
973
+ doors: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
974
+ id: z.ZodString;
975
+ locationId: z.ZodString;
976
+ name: z.ZodOptional<z.ZodString>;
977
+ position: z.ZodObject<{
978
+ x: z.ZodNumber;
979
+ y: z.ZodNumber;
980
+ }, "strip", z.ZodTypeAny, {
981
+ x: number;
982
+ y: number;
983
+ }, {
984
+ x: number;
985
+ y: number;
986
+ }>;
987
+ state: z.ZodEnum<["open", "closed", "locked"]>;
988
+ }, "strip", z.ZodTypeAny, {
989
+ id: string;
990
+ position: {
991
+ x: number;
992
+ y: number;
993
+ };
994
+ locationId: string;
995
+ state: "open" | "closed" | "locked";
996
+ name?: string | undefined;
997
+ }, {
998
+ id: string;
999
+ position: {
1000
+ x: number;
1001
+ y: number;
1002
+ };
1003
+ locationId: string;
1004
+ state: "open" | "closed" | "locked";
1005
+ name?: string | undefined;
1006
+ }>>>;
1007
+ characterLocations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1008
+ quests: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
1009
+ id: z.ZodString;
1010
+ title: z.ZodString;
1011
+ description: z.ZodOptional<z.ZodString>;
1012
+ status: z.ZodDefault<z.ZodEnum<["active", "completed", "failed", "abandoned"]>>;
1013
+ partyId: z.ZodOptional<z.ZodString>;
1014
+ objectives: z.ZodDefault<z.ZodArray<z.ZodObject<{
1015
+ id: z.ZodString;
1016
+ description: z.ZodString;
1017
+ status: z.ZodDefault<z.ZodEnum<["pending", "completed", "failed"]>>;
1018
+ optional: z.ZodDefault<z.ZodBoolean>;
1019
+ progress: z.ZodDefault<z.ZodNumber>;
1020
+ required: z.ZodOptional<z.ZodNumber>;
1021
+ }, "strip", z.ZodTypeAny, {
1022
+ status: "completed" | "failed" | "pending";
1023
+ id: string;
1024
+ description: string;
1025
+ optional: boolean;
1026
+ progress: number;
1027
+ required?: number | undefined;
1028
+ }, {
1029
+ id: string;
1030
+ description: string;
1031
+ status?: "completed" | "failed" | "pending" | undefined;
1032
+ required?: number | undefined;
1033
+ optional?: boolean | undefined;
1034
+ progress?: number | undefined;
1035
+ }>, "many">>;
1036
+ reward: z.ZodDefault<z.ZodObject<{
1037
+ xpPerCharacter: z.ZodDefault<z.ZodNumber>;
1038
+ currency: z.ZodDefault<z.ZodObject<{
1039
+ cp: z.ZodDefault<z.ZodNumber>;
1040
+ sp: z.ZodDefault<z.ZodNumber>;
1041
+ ep: z.ZodDefault<z.ZodNumber>;
1042
+ gp: z.ZodDefault<z.ZodNumber>;
1043
+ pp: z.ZodDefault<z.ZodNumber>;
1044
+ }, "strip", z.ZodTypeAny, {
1045
+ cp: number;
1046
+ sp: number;
1047
+ ep: number;
1048
+ gp: number;
1049
+ pp: number;
1050
+ }, {
1051
+ cp?: number | undefined;
1052
+ sp?: number | undefined;
1053
+ ep?: number | undefined;
1054
+ gp?: number | undefined;
1055
+ pp?: number | undefined;
1056
+ }>>;
1057
+ itemDefinitionIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1058
+ }, "strip", z.ZodTypeAny, {
1059
+ currency: {
1060
+ cp: number;
1061
+ sp: number;
1062
+ ep: number;
1063
+ gp: number;
1064
+ pp: number;
1065
+ };
1066
+ xpPerCharacter: number;
1067
+ itemDefinitionIds: string[];
1068
+ }, {
1069
+ currency?: {
1070
+ cp?: number | undefined;
1071
+ sp?: number | undefined;
1072
+ ep?: number | undefined;
1073
+ gp?: number | undefined;
1074
+ pp?: number | undefined;
1075
+ } | undefined;
1076
+ xpPerCharacter?: number | undefined;
1077
+ itemDefinitionIds?: string[] | undefined;
1078
+ }>>;
1079
+ rewardClaimed: z.ZodDefault<z.ZodBoolean>;
1080
+ startedAtIso: z.ZodOptional<z.ZodString>;
1081
+ endedAtIso: z.ZodOptional<z.ZodString>;
1082
+ }, "strip", z.ZodTypeAny, {
1083
+ status: "active" | "completed" | "failed" | "abandoned";
1084
+ id: string;
1085
+ title: string;
1086
+ objectives: {
1087
+ status: "completed" | "failed" | "pending";
1088
+ id: string;
1089
+ description: string;
1090
+ optional: boolean;
1091
+ progress: number;
1092
+ required?: number | undefined;
1093
+ }[];
1094
+ reward: {
1095
+ currency: {
1096
+ cp: number;
1097
+ sp: number;
1098
+ ep: number;
1099
+ gp: number;
1100
+ pp: number;
1101
+ };
1102
+ xpPerCharacter: number;
1103
+ itemDefinitionIds: string[];
1104
+ };
1105
+ rewardClaimed: boolean;
1106
+ description?: string | undefined;
1107
+ startedAtIso?: string | undefined;
1108
+ endedAtIso?: string | undefined;
1109
+ partyId?: string | undefined;
1110
+ }, {
1111
+ id: string;
1112
+ title: string;
1113
+ status?: "active" | "completed" | "failed" | "abandoned" | undefined;
1114
+ description?: string | undefined;
1115
+ startedAtIso?: string | undefined;
1116
+ endedAtIso?: string | undefined;
1117
+ partyId?: string | undefined;
1118
+ objectives?: {
1119
+ id: string;
1120
+ description: string;
1121
+ status?: "completed" | "failed" | "pending" | undefined;
1122
+ required?: number | undefined;
1123
+ optional?: boolean | undefined;
1124
+ progress?: number | undefined;
1125
+ }[] | undefined;
1126
+ reward?: {
1127
+ currency?: {
1128
+ cp?: number | undefined;
1129
+ sp?: number | undefined;
1130
+ ep?: number | undefined;
1131
+ gp?: number | undefined;
1132
+ pp?: number | undefined;
1133
+ } | undefined;
1134
+ xpPerCharacter?: number | undefined;
1135
+ itemDefinitionIds?: string[] | undefined;
1136
+ } | undefined;
1137
+ rewardClaimed?: boolean | undefined;
1138
+ }>>>;
1139
+ vehicles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
1140
+ id: z.ZodString;
1141
+ name: z.ZodString;
1142
+ kind: z.ZodEnum<["land", "water", "air"]>;
1143
+ speedFeet: z.ZodNumber;
1144
+ ac: z.ZodNumber;
1145
+ hp: z.ZodObject<{
1146
+ current: z.ZodNumber;
1147
+ max: z.ZodNumber;
1148
+ }, "strip", z.ZodTypeAny, {
1149
+ max: number;
1150
+ current: number;
1151
+ }, {
1152
+ max: number;
1153
+ current: number;
1154
+ }>;
1155
+ capacity: z.ZodNumber;
1156
+ occupantIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1157
+ }, "strip", z.ZodTypeAny, {
1158
+ kind: "water" | "land" | "air";
1159
+ ac: number;
1160
+ id: string;
1161
+ name: string;
1162
+ hp: {
1163
+ max: number;
1164
+ current: number;
1165
+ };
1166
+ speedFeet: number;
1167
+ capacity: number;
1168
+ occupantIds: string[];
1169
+ }, {
1170
+ kind: "water" | "land" | "air";
1171
+ ac: number;
1172
+ id: string;
1173
+ name: string;
1174
+ hp: {
1175
+ max: number;
1176
+ current: number;
1177
+ };
1178
+ speedFeet: number;
1179
+ capacity: number;
1180
+ occupantIds?: string[] | undefined;
1181
+ }>>>;
1182
+ travelLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
1183
+ partyId: z.ZodString;
1184
+ pace: z.ZodEnum<["slow", "normal", "fast"]>;
1185
+ hours: z.ZodNumber;
1186
+ miles: z.ZodNumber;
1187
+ fromLocationId: z.ZodOptional<z.ZodString>;
1188
+ toLocationId: z.ZodOptional<z.ZodString>;
1189
+ notes: z.ZodOptional<z.ZodString>;
1190
+ atIso: z.ZodString;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ hours: number;
1193
+ partyId: string;
1194
+ pace: "normal" | "slow" | "fast";
1195
+ miles: number;
1196
+ atIso: string;
1197
+ fromLocationId?: string | undefined;
1198
+ toLocationId?: string | undefined;
1199
+ notes?: string | undefined;
1200
+ }, {
1201
+ hours: number;
1202
+ partyId: string;
1203
+ pace: "normal" | "slow" | "fast";
1204
+ miles: number;
1205
+ atIso: string;
1206
+ fromLocationId?: string | undefined;
1207
+ toLocationId?: string | undefined;
1208
+ notes?: string | undefined;
1209
+ }>, "many">>;
1210
+ downtimeLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
1211
+ characterId: z.ZodString;
1212
+ kind: z.ZodEnum<["crafting", "training", "recuperating", "research", "work", "other"]>;
1213
+ days: z.ZodNumber;
1214
+ outcome: z.ZodEnum<["success", "partial", "failure"]>;
1215
+ summary: z.ZodString;
1216
+ atIso: z.ZodString;
1217
+ producedItemDefinitionId: z.ZodOptional<z.ZodString>;
1218
+ toolProficiencyGained: z.ZodOptional<z.ZodString>;
1219
+ }, "strip", z.ZodTypeAny, {
1220
+ kind: "other" | "crafting" | "training" | "recuperating" | "research" | "work";
1221
+ outcome: "partial" | "success" | "failure";
1222
+ days: number;
1223
+ summary: string;
1224
+ characterId: string;
1225
+ atIso: string;
1226
+ producedItemDefinitionId?: string | undefined;
1227
+ toolProficiencyGained?: string | undefined;
1228
+ }, {
1229
+ kind: "other" | "crafting" | "training" | "recuperating" | "research" | "work";
1230
+ outcome: "partial" | "success" | "failure";
1231
+ days: number;
1232
+ summary: string;
1233
+ characterId: string;
1234
+ atIso: string;
1235
+ producedItemDefinitionId?: string | undefined;
1236
+ toolProficiencyGained?: string | undefined;
1237
+ }>, "many">>;
1238
+ toolProficienciesByCharacter: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
1239
+ bastions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
1240
+ id: z.ZodString;
1241
+ name: z.ZodString;
1242
+ ownerCharacterId: z.ZodString;
1243
+ locationId: z.ZodOptional<z.ZodString>;
1244
+ level: z.ZodNumber;
1245
+ facilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
1246
+ id: z.ZodString;
1247
+ name: z.ZodString;
1248
+ kind: z.ZodEnum<["basic", "special"]>;
1249
+ space: z.ZodEnum<["cramped", "roomy", "vast"]>;
1250
+ description: z.ZodOptional<z.ZodString>;
1251
+ }, "strip", z.ZodTypeAny, {
1252
+ kind: "special" | "basic";
1253
+ id: string;
1254
+ name: string;
1255
+ space: "cramped" | "roomy" | "vast";
1256
+ description?: string | undefined;
1257
+ }, {
1258
+ kind: "special" | "basic";
1259
+ id: string;
1260
+ name: string;
1261
+ space: "cramped" | "roomy" | "vast";
1262
+ description?: string | undefined;
1263
+ }>, "many">>;
1264
+ hirelings: z.ZodDefault<z.ZodArray<z.ZodObject<{
1265
+ id: z.ZodString;
1266
+ name: z.ZodString;
1267
+ role: z.ZodString;
1268
+ }, "strip", z.ZodTypeAny, {
1269
+ id: string;
1270
+ name: string;
1271
+ role: string;
1272
+ }, {
1273
+ id: string;
1274
+ name: string;
1275
+ role: string;
1276
+ }>, "many">>;
1277
+ defenders: z.ZodDefault<z.ZodNumber>;
1278
+ treasuryGp: z.ZodDefault<z.ZodNumber>;
1279
+ hpCurrent: z.ZodNumber;
1280
+ hpMax: z.ZodNumber;
1281
+ }, "strip", z.ZodTypeAny, {
1282
+ level: number;
1283
+ hpMax: number;
1284
+ id: string;
1285
+ name: string;
1286
+ ownerCharacterId: string;
1287
+ facilities: {
1288
+ kind: "special" | "basic";
1289
+ id: string;
1290
+ name: string;
1291
+ space: "cramped" | "roomy" | "vast";
1292
+ description?: string | undefined;
1293
+ }[];
1294
+ hirelings: {
1295
+ id: string;
1296
+ name: string;
1297
+ role: string;
1298
+ }[];
1299
+ defenders: number;
1300
+ treasuryGp: number;
1301
+ hpCurrent: number;
1302
+ locationId?: string | undefined;
1303
+ }, {
1304
+ level: number;
1305
+ hpMax: number;
1306
+ id: string;
1307
+ name: string;
1308
+ ownerCharacterId: string;
1309
+ hpCurrent: number;
1310
+ locationId?: string | undefined;
1311
+ facilities?: {
1312
+ kind: "special" | "basic";
1313
+ id: string;
1314
+ name: string;
1315
+ space: "cramped" | "roomy" | "vast";
1316
+ description?: string | undefined;
1317
+ }[] | undefined;
1318
+ hirelings?: {
1319
+ id: string;
1320
+ name: string;
1321
+ role: string;
1322
+ }[] | undefined;
1323
+ defenders?: number | undefined;
1324
+ treasuryGp?: number | undefined;
1325
+ }>>>;
1326
+ settings: z.ZodDefault<z.ZodObject<{
1327
+ grittyRest: z.ZodDefault<z.ZodBoolean>;
1328
+ heroPoints: z.ZodDefault<z.ZodBoolean>;
1329
+ sanity: z.ZodDefault<z.ZodBoolean>;
1330
+ massCombat: z.ZodDefault<z.ZodBoolean>;
1331
+ feaCharacterFlaws: z.ZodDefault<z.ZodBoolean>;
1332
+ customHouserules: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1333
+ }, "strip", z.ZodTypeAny, {
1334
+ grittyRest: boolean;
1335
+ heroPoints: boolean;
1336
+ sanity: boolean;
1337
+ massCombat: boolean;
1338
+ feaCharacterFlaws: boolean;
1339
+ customHouserules: string[];
1340
+ }, {
1341
+ grittyRest?: boolean | undefined;
1342
+ heroPoints?: boolean | undefined;
1343
+ sanity?: boolean | undefined;
1344
+ massCombat?: boolean | undefined;
1345
+ feaCharacterFlaws?: boolean | undefined;
1346
+ customHouserules?: string[] | undefined;
1347
+ }>>;
1348
+ milestones: z.ZodDefault<z.ZodArray<z.ZodObject<{
1349
+ kind: z.ZodEnum<["minor", "major", "campaign"]>;
1350
+ title: z.ZodString;
1351
+ atIso: z.ZodString;
1352
+ partyId: z.ZodOptional<z.ZodString>;
1353
+ questId: z.ZodOptional<z.ZodString>;
1354
+ }, "strip", z.ZodTypeAny, {
1355
+ kind: "minor" | "major" | "campaign";
1356
+ title: string;
1357
+ atIso: string;
1358
+ partyId?: string | undefined;
1359
+ questId?: string | undefined;
1360
+ }, {
1361
+ kind: "minor" | "major" | "campaign";
1362
+ title: string;
1363
+ atIso: string;
1364
+ partyId?: string | undefined;
1365
+ questId?: string | undefined;
1366
+ }>, "many">>;
1367
+ inGameTime: z.ZodDefault<z.ZodObject<{
1368
+ totalMinutes: z.ZodDefault<z.ZodNumber>;
1369
+ }, "strip", z.ZodTypeAny, {
1370
+ totalMinutes: number;
1371
+ }, {
1372
+ totalMinutes?: number | undefined;
1373
+ }>>;
1374
+ activeSessionId: z.ZodOptional<z.ZodString>;
1375
+ activeShortRest: z.ZodOptional<z.ZodObject<{
1376
+ startedAtEventId: z.ZodString;
1377
+ participantIds: z.ZodArray<z.ZodString, "many">;
1378
+ }, "strip", z.ZodTypeAny, {
1379
+ startedAtEventId: string;
1380
+ participantIds: string[];
1381
+ }, {
1382
+ startedAtEventId: string;
1383
+ participantIds: string[];
1384
+ }>>;
1385
+ activeLongRest: z.ZodOptional<z.ZodObject<{
1386
+ startedAtEventId: z.ZodString;
1387
+ participantIds: z.ZodArray<z.ZodString, "many">;
1388
+ }, "strip", z.ZodTypeAny, {
1389
+ startedAtEventId: string;
1390
+ participantIds: string[];
1391
+ }, {
1392
+ startedAtEventId: string;
1393
+ participantIds: string[];
1394
+ }>>;
1395
+ activeEncounterId: z.ZodOptional<z.ZodString>;
1396
+ version: z.ZodDefault<z.ZodNumber>;
1397
+ }, "strip", z.ZodTypeAny, {
1398
+ characters: Record<string, {
1399
+ kind: "pc" | "npc" | "creature";
1400
+ id: string;
1401
+ name: string;
1402
+ classes: {
1403
+ level: number;
1404
+ classId: string;
1405
+ hitDiceRemaining: number;
1406
+ subclassId?: string | undefined;
1407
+ }[];
1408
+ hp: {
1409
+ max: number;
1410
+ current: number;
1411
+ temp: number;
1412
+ };
1413
+ abilityScores: {
1414
+ STR: number;
1415
+ DEX: number;
1416
+ CON: number;
1417
+ INT: number;
1418
+ WIS: number;
1419
+ CHA: number;
1420
+ };
1421
+ xp: number;
1422
+ speciesId: string;
1423
+ backgroundId: string;
1424
+ deathSaves: {
1425
+ successes: number;
1426
+ failures: number;
1427
+ stable: boolean;
1428
+ };
1429
+ exhaustion: number;
1430
+ speedFeet: number;
1431
+ inventory: string[];
1432
+ equipped: {
1433
+ attuned: string[];
1434
+ armor?: string | undefined;
1435
+ shield?: string | undefined;
1436
+ mainHand?: string | undefined;
1437
+ offHand?: string | undefined;
1438
+ };
1439
+ resources: {
1440
+ max: number;
1441
+ resourceId: string;
1442
+ current: number;
1443
+ }[];
1444
+ appliedConditions: {
1445
+ conditionId: string;
1446
+ id: string;
1447
+ level?: number | undefined;
1448
+ sourceEventId?: string | undefined;
1449
+ expiresOnRound?: number | undefined;
1450
+ }[];
1451
+ knownSpells: string[];
1452
+ preparedSpells: string[];
1453
+ spellSlotsUsed: Record<string, number>;
1454
+ pactSlotsUsed: number;
1455
+ triggerCounters: Record<string, {
1456
+ firedThisTurn?: boolean | undefined;
1457
+ firedThisRound?: boolean | undefined;
1458
+ firedThisShortRest?: boolean | undefined;
1459
+ firedThisLongRest?: boolean | undefined;
1460
+ }>;
1461
+ featsTaken: string[];
1462
+ pendingChoiceIds: string[];
1463
+ moraleBroken: boolean;
1464
+ statblockId?: string | undefined;
1465
+ multiattack?: {
1466
+ name: string;
1467
+ attacks: {
1468
+ count: number;
1469
+ weaponInstanceId: string;
1470
+ }[];
1471
+ } | undefined;
1472
+ playerId?: string | undefined;
1473
+ concentrationEffectId?: string | undefined;
1474
+ mountedOnId?: string | undefined;
1475
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
1476
+ morale?: {
1477
+ max: number;
1478
+ current: number;
1479
+ } | undefined;
1480
+ polymorphedSnapshot?: {
1481
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
1482
+ hp: {
1483
+ max: number;
1484
+ current: number;
1485
+ temp: number;
1486
+ };
1487
+ abilityScores: {
1488
+ STR: number;
1489
+ DEX: number;
1490
+ CON: number;
1491
+ INT: number;
1492
+ WIS: number;
1493
+ CHA: number;
1494
+ };
1495
+ speciesId: string;
1496
+ speedFeet: number;
1497
+ formName: string;
1498
+ } | undefined;
1499
+ }>;
1500
+ itemInstances: Record<string, {
1501
+ id: string;
1502
+ attuned: boolean;
1503
+ definitionId: string;
1504
+ quantity: number;
1505
+ identifiedByCharacterIds: string[];
1506
+ customName?: string | undefined;
1507
+ chargesRemaining?: number | undefined;
1508
+ attunedTo?: string | undefined;
1509
+ equippedBy?: string | undefined;
1510
+ containerId?: string | undefined;
1511
+ acquiredAtEventId?: string | undefined;
1512
+ maxCharges?: number | undefined;
1513
+ sentient?: {
1514
+ alignment: string;
1515
+ ego: number;
1516
+ personality?: string | undefined;
1517
+ } | undefined;
1518
+ }>;
1519
+ pendingChoices: Record<string, {
1520
+ options: {
1521
+ id: string;
1522
+ label: string;
1523
+ effects: import("../effects.js").Effect[];
1524
+ }[];
1525
+ id: string;
1526
+ prompt: string;
1527
+ oneOf: number;
1528
+ forCharacterId: string;
1529
+ triggerEventId: string;
1530
+ resolution?: {
1531
+ selectedOptionIds: string[];
1532
+ atEventId: string;
1533
+ } | undefined;
1534
+ }>;
1535
+ encounters: Record<string, {
1536
+ status: "planning" | "active" | "ended";
1537
+ round: number;
1538
+ id: string;
1539
+ combatants: {
1540
+ initiative: number;
1541
+ combatantId: string;
1542
+ initiativeOrder: number;
1543
+ hasActedThisRound: boolean;
1544
+ turnUsage: {
1545
+ actionUsed: boolean;
1546
+ bonusActionUsed: boolean;
1547
+ attacksMadeThisTurn: number;
1548
+ reactionUsedThisRound: boolean;
1549
+ feetMovedThisTurn: number;
1550
+ dashed: boolean;
1551
+ disengaged: boolean;
1552
+ };
1553
+ position?: {
1554
+ x: number;
1555
+ y: number;
1556
+ } | undefined;
1557
+ }[];
1558
+ activeIndex: number;
1559
+ name?: string | undefined;
1560
+ startedAtEventId?: string | undefined;
1561
+ endedAtEventId?: string | undefined;
1562
+ outcome?: "victory" | "defeat" | "fled" | "parley" | undefined;
1563
+ }>;
1564
+ effectInstances: Record<string, {
1565
+ id: string;
1566
+ spellId: string;
1567
+ casterId: string;
1568
+ targetIds: string[];
1569
+ conditionsApplied: {
1570
+ conditionId: string;
1571
+ targetId: string;
1572
+ appliedConditionId: string;
1573
+ }[];
1574
+ requiresConcentration: boolean;
1575
+ startedAtEventId: string;
1576
+ durationRounds?: number | undefined;
1577
+ }>;
1578
+ parties: Record<string, {
1579
+ id: string;
1580
+ name: string;
1581
+ memberIds: string[];
1582
+ sharedInventory: string[];
1583
+ purse: {
1584
+ cp: number;
1585
+ sp: number;
1586
+ ep: number;
1587
+ gp: number;
1588
+ pp: number;
1589
+ };
1590
+ }>;
1591
+ sessions: Record<string, {
1592
+ id: string;
1593
+ name: string;
1594
+ startedAtIso: string;
1595
+ inGameStart: {
1596
+ totalMinutes: number;
1597
+ };
1598
+ journalEntryIds: string[];
1599
+ endedAtIso?: string | undefined;
1600
+ inGameEnd?: {
1601
+ totalMinutes: number;
1602
+ } | undefined;
1603
+ summary?: string | undefined;
1604
+ }>;
1605
+ journalEntries: Record<string, {
1606
+ id: string;
1607
+ authorKind: "player" | "dm";
1608
+ visibility: "party" | "dm-only" | "character";
1609
+ visibleToCharacterIds: string[];
1610
+ title: string;
1611
+ body: string;
1612
+ createdAtIso: string;
1613
+ inGameAt: {
1614
+ totalMinutes: number;
1615
+ };
1616
+ sessionId?: string | undefined;
1617
+ authorCharacterId?: string | undefined;
1618
+ }>;
1619
+ locations: Record<string, {
1620
+ id: string;
1621
+ name: string;
1622
+ doorIds: string[];
1623
+ map?: {
1624
+ widthCells: number;
1625
+ heightCells: number;
1626
+ cellSizeFeet: number;
1627
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
1628
+ } | undefined;
1629
+ description?: string | undefined;
1630
+ parentLocationId?: string | undefined;
1631
+ }>;
1632
+ doors: Record<string, {
1633
+ id: string;
1634
+ position: {
1635
+ x: number;
1636
+ y: number;
1637
+ };
1638
+ locationId: string;
1639
+ state: "open" | "closed" | "locked";
1640
+ name?: string | undefined;
1641
+ }>;
1642
+ characterLocations: Record<string, string>;
1643
+ quests: Record<string, {
1644
+ status: "active" | "completed" | "failed" | "abandoned";
1645
+ id: string;
1646
+ title: string;
1647
+ objectives: {
1648
+ status: "completed" | "failed" | "pending";
1649
+ id: string;
1650
+ description: string;
1651
+ optional: boolean;
1652
+ progress: number;
1653
+ required?: number | undefined;
1654
+ }[];
1655
+ reward: {
1656
+ currency: {
1657
+ cp: number;
1658
+ sp: number;
1659
+ ep: number;
1660
+ gp: number;
1661
+ pp: number;
1662
+ };
1663
+ xpPerCharacter: number;
1664
+ itemDefinitionIds: string[];
1665
+ };
1666
+ rewardClaimed: boolean;
1667
+ description?: string | undefined;
1668
+ startedAtIso?: string | undefined;
1669
+ endedAtIso?: string | undefined;
1670
+ partyId?: string | undefined;
1671
+ }>;
1672
+ vehicles: Record<string, {
1673
+ kind: "water" | "land" | "air";
1674
+ ac: number;
1675
+ id: string;
1676
+ name: string;
1677
+ hp: {
1678
+ max: number;
1679
+ current: number;
1680
+ };
1681
+ speedFeet: number;
1682
+ capacity: number;
1683
+ occupantIds: string[];
1684
+ }>;
1685
+ travelLog: {
1686
+ hours: number;
1687
+ partyId: string;
1688
+ pace: "normal" | "slow" | "fast";
1689
+ miles: number;
1690
+ atIso: string;
1691
+ fromLocationId?: string | undefined;
1692
+ toLocationId?: string | undefined;
1693
+ notes?: string | undefined;
1694
+ }[];
1695
+ downtimeLog: {
1696
+ kind: "other" | "crafting" | "training" | "recuperating" | "research" | "work";
1697
+ outcome: "partial" | "success" | "failure";
1698
+ days: number;
1699
+ summary: string;
1700
+ characterId: string;
1701
+ atIso: string;
1702
+ producedItemDefinitionId?: string | undefined;
1703
+ toolProficiencyGained?: string | undefined;
1704
+ }[];
1705
+ toolProficienciesByCharacter: Record<string, string[]>;
1706
+ bastions: Record<string, {
1707
+ level: number;
1708
+ hpMax: number;
1709
+ id: string;
1710
+ name: string;
1711
+ ownerCharacterId: string;
1712
+ facilities: {
1713
+ kind: "special" | "basic";
1714
+ id: string;
1715
+ name: string;
1716
+ space: "cramped" | "roomy" | "vast";
1717
+ description?: string | undefined;
1718
+ }[];
1719
+ hirelings: {
1720
+ id: string;
1721
+ name: string;
1722
+ role: string;
1723
+ }[];
1724
+ defenders: number;
1725
+ treasuryGp: number;
1726
+ hpCurrent: number;
1727
+ locationId?: string | undefined;
1728
+ }>;
1729
+ settings: {
1730
+ grittyRest: boolean;
1731
+ heroPoints: boolean;
1732
+ sanity: boolean;
1733
+ massCombat: boolean;
1734
+ feaCharacterFlaws: boolean;
1735
+ customHouserules: string[];
1736
+ };
1737
+ milestones: {
1738
+ kind: "minor" | "major" | "campaign";
1739
+ title: string;
1740
+ atIso: string;
1741
+ partyId?: string | undefined;
1742
+ questId?: string | undefined;
1743
+ }[];
1744
+ inGameTime: {
1745
+ totalMinutes: number;
1746
+ };
1747
+ version: number;
1748
+ activeSessionId?: string | undefined;
1749
+ activeShortRest?: {
1750
+ startedAtEventId: string;
1751
+ participantIds: string[];
1752
+ } | undefined;
1753
+ activeLongRest?: {
1754
+ startedAtEventId: string;
1755
+ participantIds: string[];
1756
+ } | undefined;
1757
+ activeEncounterId?: string | undefined;
1758
+ }, {
1759
+ characters?: Record<string, {
1760
+ id: string;
1761
+ name: string;
1762
+ classes: {
1763
+ level: number;
1764
+ classId: string;
1765
+ hitDiceRemaining: number;
1766
+ subclassId?: string | undefined;
1767
+ }[];
1768
+ hp: {
1769
+ max: number;
1770
+ current: number;
1771
+ temp?: number | undefined;
1772
+ };
1773
+ abilityScores: {
1774
+ STR: number;
1775
+ DEX: number;
1776
+ CON: number;
1777
+ INT: number;
1778
+ WIS: number;
1779
+ CHA: number;
1780
+ };
1781
+ speciesId: string;
1782
+ backgroundId: string;
1783
+ kind?: "pc" | "npc" | "creature" | undefined;
1784
+ xp?: number | undefined;
1785
+ statblockId?: string | undefined;
1786
+ multiattack?: {
1787
+ name: string;
1788
+ attacks: {
1789
+ count: number;
1790
+ weaponInstanceId: string;
1791
+ }[];
1792
+ } | undefined;
1793
+ playerId?: string | undefined;
1794
+ deathSaves?: {
1795
+ successes?: number | undefined;
1796
+ failures?: number | undefined;
1797
+ stable?: boolean | undefined;
1798
+ } | undefined;
1799
+ exhaustion?: number | undefined;
1800
+ speedFeet?: number | undefined;
1801
+ inventory?: string[] | undefined;
1802
+ equipped?: {
1803
+ armor?: string | undefined;
1804
+ shield?: string | undefined;
1805
+ mainHand?: string | undefined;
1806
+ offHand?: string | undefined;
1807
+ attuned?: string[] | undefined;
1808
+ } | undefined;
1809
+ resources?: {
1810
+ max: number;
1811
+ resourceId: string;
1812
+ current: number;
1813
+ }[] | undefined;
1814
+ appliedConditions?: {
1815
+ conditionId: string;
1816
+ id: string;
1817
+ level?: number | undefined;
1818
+ sourceEventId?: string | undefined;
1819
+ expiresOnRound?: number | undefined;
1820
+ }[] | undefined;
1821
+ knownSpells?: string[] | undefined;
1822
+ preparedSpells?: string[] | undefined;
1823
+ spellSlotsUsed?: Record<string, number> | undefined;
1824
+ pactSlotsUsed?: number | undefined;
1825
+ concentrationEffectId?: string | undefined;
1826
+ triggerCounters?: Record<string, {
1827
+ firedThisTurn?: boolean | undefined;
1828
+ firedThisRound?: boolean | undefined;
1829
+ firedThisShortRest?: boolean | undefined;
1830
+ firedThisLongRest?: boolean | undefined;
1831
+ }> | undefined;
1832
+ featsTaken?: string[] | undefined;
1833
+ pendingChoiceIds?: string[] | undefined;
1834
+ mountedOnId?: string | undefined;
1835
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
1836
+ morale?: {
1837
+ max: number;
1838
+ current: number;
1839
+ } | undefined;
1840
+ moraleBroken?: boolean | undefined;
1841
+ polymorphedSnapshot?: {
1842
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
1843
+ hp: {
1844
+ max: number;
1845
+ current: number;
1846
+ temp?: number | undefined;
1847
+ };
1848
+ abilityScores: {
1849
+ STR: number;
1850
+ DEX: number;
1851
+ CON: number;
1852
+ INT: number;
1853
+ WIS: number;
1854
+ CHA: number;
1855
+ };
1856
+ speciesId: string;
1857
+ speedFeet: number;
1858
+ formName: string;
1859
+ } | undefined;
1860
+ }> | undefined;
1861
+ itemInstances?: Record<string, {
1862
+ id: string;
1863
+ definitionId: string;
1864
+ attuned?: boolean | undefined;
1865
+ customName?: string | undefined;
1866
+ quantity?: number | undefined;
1867
+ chargesRemaining?: number | undefined;
1868
+ attunedTo?: string | undefined;
1869
+ equippedBy?: string | undefined;
1870
+ containerId?: string | undefined;
1871
+ acquiredAtEventId?: string | undefined;
1872
+ identifiedByCharacterIds?: string[] | undefined;
1873
+ maxCharges?: number | undefined;
1874
+ sentient?: {
1875
+ alignment: string;
1876
+ ego: number;
1877
+ personality?: string | undefined;
1878
+ } | undefined;
1879
+ }> | undefined;
1880
+ pendingChoices?: Record<string, {
1881
+ options: {
1882
+ id: string;
1883
+ label: string;
1884
+ effects?: import("../effects.js").Effect[] | undefined;
1885
+ }[];
1886
+ id: string;
1887
+ prompt: string;
1888
+ forCharacterId: string;
1889
+ triggerEventId: string;
1890
+ oneOf?: number | undefined;
1891
+ resolution?: {
1892
+ selectedOptionIds: string[];
1893
+ atEventId: string;
1894
+ } | undefined;
1895
+ }> | undefined;
1896
+ encounters?: Record<string, {
1897
+ status: "planning" | "active" | "ended";
1898
+ round: number;
1899
+ id: string;
1900
+ activeIndex: number;
1901
+ name?: string | undefined;
1902
+ startedAtEventId?: string | undefined;
1903
+ combatants?: {
1904
+ initiative: number;
1905
+ combatantId: string;
1906
+ initiativeOrder: number;
1907
+ hasActedThisRound?: boolean | undefined;
1908
+ turnUsage?: {
1909
+ actionUsed?: boolean | undefined;
1910
+ bonusActionUsed?: boolean | undefined;
1911
+ attacksMadeThisTurn?: number | undefined;
1912
+ reactionUsedThisRound?: boolean | undefined;
1913
+ feetMovedThisTurn?: number | undefined;
1914
+ dashed?: boolean | undefined;
1915
+ disengaged?: boolean | undefined;
1916
+ } | undefined;
1917
+ position?: {
1918
+ x: number;
1919
+ y: number;
1920
+ } | undefined;
1921
+ }[] | undefined;
1922
+ endedAtEventId?: string | undefined;
1923
+ outcome?: "victory" | "defeat" | "fled" | "parley" | undefined;
1924
+ }> | undefined;
1925
+ effectInstances?: Record<string, {
1926
+ id: string;
1927
+ spellId: string;
1928
+ casterId: string;
1929
+ requiresConcentration: boolean;
1930
+ startedAtEventId: string;
1931
+ durationRounds?: number | undefined;
1932
+ targetIds?: string[] | undefined;
1933
+ conditionsApplied?: {
1934
+ conditionId: string;
1935
+ targetId: string;
1936
+ appliedConditionId: string;
1937
+ }[] | undefined;
1938
+ }> | undefined;
1939
+ parties?: Record<string, {
1940
+ id: string;
1941
+ name: string;
1942
+ memberIds?: string[] | undefined;
1943
+ sharedInventory?: string[] | undefined;
1944
+ purse?: {
1945
+ cp?: number | undefined;
1946
+ sp?: number | undefined;
1947
+ ep?: number | undefined;
1948
+ gp?: number | undefined;
1949
+ pp?: number | undefined;
1950
+ } | undefined;
1951
+ }> | undefined;
1952
+ sessions?: Record<string, {
1953
+ id: string;
1954
+ name: string;
1955
+ startedAtIso: string;
1956
+ inGameStart: {
1957
+ totalMinutes?: number | undefined;
1958
+ };
1959
+ endedAtIso?: string | undefined;
1960
+ inGameEnd?: {
1961
+ totalMinutes?: number | undefined;
1962
+ } | undefined;
1963
+ summary?: string | undefined;
1964
+ journalEntryIds?: string[] | undefined;
1965
+ }> | undefined;
1966
+ journalEntries?: Record<string, {
1967
+ id: string;
1968
+ authorKind: "player" | "dm";
1969
+ visibility: "party" | "dm-only" | "character";
1970
+ title: string;
1971
+ body: string;
1972
+ createdAtIso: string;
1973
+ inGameAt: {
1974
+ totalMinutes?: number | undefined;
1975
+ };
1976
+ sessionId?: string | undefined;
1977
+ authorCharacterId?: string | undefined;
1978
+ visibleToCharacterIds?: string[] | undefined;
1979
+ }> | undefined;
1980
+ locations?: Record<string, {
1981
+ id: string;
1982
+ name: string;
1983
+ map?: {
1984
+ widthCells: number;
1985
+ heightCells: number;
1986
+ terrain: ("normal" | "difficult" | "impassable" | "water")[][];
1987
+ cellSizeFeet?: number | undefined;
1988
+ } | undefined;
1989
+ description?: string | undefined;
1990
+ parentLocationId?: string | undefined;
1991
+ doorIds?: string[] | undefined;
1992
+ }> | undefined;
1993
+ doors?: Record<string, {
1994
+ id: string;
1995
+ position: {
1996
+ x: number;
1997
+ y: number;
1998
+ };
1999
+ locationId: string;
2000
+ state: "open" | "closed" | "locked";
2001
+ name?: string | undefined;
2002
+ }> | undefined;
2003
+ characterLocations?: Record<string, string> | undefined;
2004
+ quests?: Record<string, {
2005
+ id: string;
2006
+ title: string;
2007
+ status?: "active" | "completed" | "failed" | "abandoned" | undefined;
2008
+ description?: string | undefined;
2009
+ startedAtIso?: string | undefined;
2010
+ endedAtIso?: string | undefined;
2011
+ partyId?: string | undefined;
2012
+ objectives?: {
2013
+ id: string;
2014
+ description: string;
2015
+ status?: "completed" | "failed" | "pending" | undefined;
2016
+ required?: number | undefined;
2017
+ optional?: boolean | undefined;
2018
+ progress?: number | undefined;
2019
+ }[] | undefined;
2020
+ reward?: {
2021
+ currency?: {
2022
+ cp?: number | undefined;
2023
+ sp?: number | undefined;
2024
+ ep?: number | undefined;
2025
+ gp?: number | undefined;
2026
+ pp?: number | undefined;
2027
+ } | undefined;
2028
+ xpPerCharacter?: number | undefined;
2029
+ itemDefinitionIds?: string[] | undefined;
2030
+ } | undefined;
2031
+ rewardClaimed?: boolean | undefined;
2032
+ }> | undefined;
2033
+ vehicles?: Record<string, {
2034
+ kind: "water" | "land" | "air";
2035
+ ac: number;
2036
+ id: string;
2037
+ name: string;
2038
+ hp: {
2039
+ max: number;
2040
+ current: number;
2041
+ };
2042
+ speedFeet: number;
2043
+ capacity: number;
2044
+ occupantIds?: string[] | undefined;
2045
+ }> | undefined;
2046
+ travelLog?: {
2047
+ hours: number;
2048
+ partyId: string;
2049
+ pace: "normal" | "slow" | "fast";
2050
+ miles: number;
2051
+ atIso: string;
2052
+ fromLocationId?: string | undefined;
2053
+ toLocationId?: string | undefined;
2054
+ notes?: string | undefined;
2055
+ }[] | undefined;
2056
+ downtimeLog?: {
2057
+ kind: "other" | "crafting" | "training" | "recuperating" | "research" | "work";
2058
+ outcome: "partial" | "success" | "failure";
2059
+ days: number;
2060
+ summary: string;
2061
+ characterId: string;
2062
+ atIso: string;
2063
+ producedItemDefinitionId?: string | undefined;
2064
+ toolProficiencyGained?: string | undefined;
2065
+ }[] | undefined;
2066
+ toolProficienciesByCharacter?: Record<string, string[]> | undefined;
2067
+ bastions?: Record<string, {
2068
+ level: number;
2069
+ hpMax: number;
2070
+ id: string;
2071
+ name: string;
2072
+ ownerCharacterId: string;
2073
+ hpCurrent: number;
2074
+ locationId?: string | undefined;
2075
+ facilities?: {
2076
+ kind: "special" | "basic";
2077
+ id: string;
2078
+ name: string;
2079
+ space: "cramped" | "roomy" | "vast";
2080
+ description?: string | undefined;
2081
+ }[] | undefined;
2082
+ hirelings?: {
2083
+ id: string;
2084
+ name: string;
2085
+ role: string;
2086
+ }[] | undefined;
2087
+ defenders?: number | undefined;
2088
+ treasuryGp?: number | undefined;
2089
+ }> | undefined;
2090
+ settings?: {
2091
+ grittyRest?: boolean | undefined;
2092
+ heroPoints?: boolean | undefined;
2093
+ sanity?: boolean | undefined;
2094
+ massCombat?: boolean | undefined;
2095
+ feaCharacterFlaws?: boolean | undefined;
2096
+ customHouserules?: string[] | undefined;
2097
+ } | undefined;
2098
+ milestones?: {
2099
+ kind: "minor" | "major" | "campaign";
2100
+ title: string;
2101
+ atIso: string;
2102
+ partyId?: string | undefined;
2103
+ questId?: string | undefined;
2104
+ }[] | undefined;
2105
+ inGameTime?: {
2106
+ totalMinutes?: number | undefined;
2107
+ } | undefined;
2108
+ activeSessionId?: string | undefined;
2109
+ activeShortRest?: {
2110
+ startedAtEventId: string;
2111
+ participantIds: string[];
2112
+ } | undefined;
2113
+ activeLongRest?: {
2114
+ startedAtEventId: string;
2115
+ participantIds: string[];
2116
+ } | undefined;
2117
+ activeEncounterId?: string | undefined;
2118
+ version?: number | undefined;
2119
+ }>;
2120
+ export type CampaignState = z.infer<typeof CampaignStateSchema>;
2121
+ export declare const emptyCampaignState: () => CampaignState;
2122
+ //# sourceMappingURL=campaign.d.ts.map