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,698 @@
1
+ import { z } from 'zod';
2
+ export declare const CharacterCreatedEventSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ at: z.ZodString;
5
+ sessionId: z.ZodOptional<z.ZodString>;
6
+ causedByEventId: z.ZodOptional<z.ZodString>;
7
+ actorId: z.ZodOptional<z.ZodString>;
8
+ } & {
9
+ type: z.ZodLiteral<"CharacterCreated">;
10
+ snapshot: z.ZodObject<{
11
+ id: z.ZodString;
12
+ kind: z.ZodDefault<z.ZodEnum<["pc", "npc", "creature"]>>;
13
+ statblockId: z.ZodOptional<z.ZodString>;
14
+ multiattack: z.ZodOptional<z.ZodObject<{
15
+ name: z.ZodString;
16
+ attacks: z.ZodArray<z.ZodObject<{
17
+ weaponInstanceId: z.ZodString;
18
+ count: z.ZodNumber;
19
+ }, "strip", z.ZodTypeAny, {
20
+ count: number;
21
+ weaponInstanceId: string;
22
+ }, {
23
+ count: number;
24
+ weaponInstanceId: string;
25
+ }>, "many">;
26
+ }, "strip", z.ZodTypeAny, {
27
+ name: string;
28
+ attacks: {
29
+ count: number;
30
+ weaponInstanceId: string;
31
+ }[];
32
+ }, {
33
+ name: string;
34
+ attacks: {
35
+ count: number;
36
+ weaponInstanceId: string;
37
+ }[];
38
+ }>>;
39
+ name: z.ZodString;
40
+ playerId: z.ZodOptional<z.ZodString>;
41
+ speciesId: z.ZodString;
42
+ backgroundId: z.ZodString;
43
+ classes: z.ZodArray<z.ZodObject<{
44
+ classId: z.ZodString;
45
+ subclassId: z.ZodOptional<z.ZodString>;
46
+ level: z.ZodNumber;
47
+ hitDiceRemaining: z.ZodNumber;
48
+ }, "strip", z.ZodTypeAny, {
49
+ level: number;
50
+ classId: string;
51
+ hitDiceRemaining: number;
52
+ subclassId?: string | undefined;
53
+ }, {
54
+ level: number;
55
+ classId: string;
56
+ hitDiceRemaining: number;
57
+ subclassId?: string | undefined;
58
+ }>, "many">;
59
+ abilityScores: z.ZodObject<{
60
+ STR: z.ZodNumber;
61
+ DEX: z.ZodNumber;
62
+ CON: z.ZodNumber;
63
+ INT: z.ZodNumber;
64
+ WIS: z.ZodNumber;
65
+ CHA: z.ZodNumber;
66
+ }, "strip", z.ZodTypeAny, {
67
+ STR: number;
68
+ DEX: number;
69
+ CON: number;
70
+ INT: number;
71
+ WIS: number;
72
+ CHA: number;
73
+ }, {
74
+ STR: number;
75
+ DEX: number;
76
+ CON: number;
77
+ INT: number;
78
+ WIS: number;
79
+ CHA: number;
80
+ }>;
81
+ hp: z.ZodObject<{
82
+ current: z.ZodNumber;
83
+ max: z.ZodNumber;
84
+ temp: z.ZodDefault<z.ZodNumber>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ max: number;
87
+ current: number;
88
+ temp: number;
89
+ }, {
90
+ max: number;
91
+ current: number;
92
+ temp?: number | undefined;
93
+ }>;
94
+ deathSaves: z.ZodDefault<z.ZodObject<{
95
+ successes: z.ZodDefault<z.ZodNumber>;
96
+ failures: z.ZodDefault<z.ZodNumber>;
97
+ stable: z.ZodDefault<z.ZodBoolean>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ successes: number;
100
+ failures: number;
101
+ stable: boolean;
102
+ }, {
103
+ successes?: number | undefined;
104
+ failures?: number | undefined;
105
+ stable?: boolean | undefined;
106
+ }>>;
107
+ exhaustion: z.ZodDefault<z.ZodNumber>;
108
+ speedFeet: z.ZodDefault<z.ZodNumber>;
109
+ inventory: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
110
+ equipped: z.ZodDefault<z.ZodObject<{
111
+ mainHand: z.ZodOptional<z.ZodString>;
112
+ offHand: z.ZodOptional<z.ZodString>;
113
+ armor: z.ZodOptional<z.ZodString>;
114
+ shield: z.ZodOptional<z.ZodString>;
115
+ attuned: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ attuned: string[];
118
+ armor?: string | undefined;
119
+ shield?: string | undefined;
120
+ mainHand?: string | undefined;
121
+ offHand?: string | undefined;
122
+ }, {
123
+ armor?: string | undefined;
124
+ shield?: string | undefined;
125
+ mainHand?: string | undefined;
126
+ offHand?: string | undefined;
127
+ attuned?: string[] | undefined;
128
+ }>>;
129
+ resources: z.ZodDefault<z.ZodArray<z.ZodObject<{
130
+ resourceId: z.ZodString;
131
+ current: z.ZodNumber;
132
+ max: z.ZodNumber;
133
+ }, "strip", z.ZodTypeAny, {
134
+ max: number;
135
+ resourceId: string;
136
+ current: number;
137
+ }, {
138
+ max: number;
139
+ resourceId: string;
140
+ current: number;
141
+ }>, "many">>;
142
+ appliedConditions: z.ZodDefault<z.ZodArray<z.ZodObject<{
143
+ id: z.ZodString;
144
+ conditionId: z.ZodString;
145
+ sourceEventId: z.ZodOptional<z.ZodString>;
146
+ level: z.ZodOptional<z.ZodNumber>;
147
+ expiresOnRound: z.ZodOptional<z.ZodNumber>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ conditionId: string;
150
+ id: string;
151
+ level?: number | undefined;
152
+ sourceEventId?: string | undefined;
153
+ expiresOnRound?: number | undefined;
154
+ }, {
155
+ conditionId: string;
156
+ id: string;
157
+ level?: number | undefined;
158
+ sourceEventId?: string | undefined;
159
+ expiresOnRound?: number | undefined;
160
+ }>, "many">>;
161
+ knownSpells: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
162
+ preparedSpells: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
163
+ spellSlotsUsed: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
164
+ pactSlotsUsed: z.ZodDefault<z.ZodNumber>;
165
+ concentrationEffectId: z.ZodOptional<z.ZodString>;
166
+ triggerCounters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
167
+ firedThisTurn: z.ZodOptional<z.ZodBoolean>;
168
+ firedThisRound: z.ZodOptional<z.ZodBoolean>;
169
+ firedThisShortRest: z.ZodOptional<z.ZodBoolean>;
170
+ firedThisLongRest: z.ZodOptional<z.ZodBoolean>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ firedThisTurn?: boolean | undefined;
173
+ firedThisRound?: boolean | undefined;
174
+ firedThisShortRest?: boolean | undefined;
175
+ firedThisLongRest?: boolean | undefined;
176
+ }, {
177
+ firedThisTurn?: boolean | undefined;
178
+ firedThisRound?: boolean | undefined;
179
+ firedThisShortRest?: boolean | undefined;
180
+ firedThisLongRest?: boolean | undefined;
181
+ }>>>;
182
+ featsTaken: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
183
+ pendingChoiceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
184
+ xp: z.ZodDefault<z.ZodNumber>;
185
+ mountedOnId: z.ZodOptional<z.ZodString>;
186
+ attitude: z.ZodOptional<z.ZodEnum<["hostile", "unfriendly", "indifferent", "friendly", "helpful"]>>;
187
+ morale: z.ZodOptional<z.ZodObject<{
188
+ current: z.ZodNumber;
189
+ max: z.ZodNumber;
190
+ }, "strip", z.ZodTypeAny, {
191
+ max: number;
192
+ current: number;
193
+ }, {
194
+ max: number;
195
+ current: number;
196
+ }>>;
197
+ moraleBroken: z.ZodDefault<z.ZodBoolean>;
198
+ polymorphedSnapshot: z.ZodOptional<z.ZodObject<{
199
+ hp: z.ZodObject<{
200
+ current: z.ZodNumber;
201
+ max: z.ZodNumber;
202
+ temp: z.ZodDefault<z.ZodNumber>;
203
+ }, "strip", z.ZodTypeAny, {
204
+ max: number;
205
+ current: number;
206
+ temp: number;
207
+ }, {
208
+ max: number;
209
+ current: number;
210
+ temp?: number | undefined;
211
+ }>;
212
+ abilityScores: z.ZodObject<{
213
+ STR: z.ZodNumber;
214
+ DEX: z.ZodNumber;
215
+ CON: z.ZodNumber;
216
+ INT: z.ZodNumber;
217
+ WIS: z.ZodNumber;
218
+ CHA: z.ZodNumber;
219
+ }, "strip", z.ZodTypeAny, {
220
+ STR: number;
221
+ DEX: number;
222
+ CON: number;
223
+ INT: number;
224
+ WIS: number;
225
+ CHA: number;
226
+ }, {
227
+ STR: number;
228
+ DEX: number;
229
+ CON: number;
230
+ INT: number;
231
+ WIS: number;
232
+ CHA: number;
233
+ }>;
234
+ speedFeet: z.ZodNumber;
235
+ speciesId: z.ZodString;
236
+ kind: z.ZodEnum<["polymorph", "wild-shape", "true-polymorph"]>;
237
+ formName: z.ZodString;
238
+ }, "strip", z.ZodTypeAny, {
239
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
240
+ hp: {
241
+ max: number;
242
+ current: number;
243
+ temp: number;
244
+ };
245
+ abilityScores: {
246
+ STR: number;
247
+ DEX: number;
248
+ CON: number;
249
+ INT: number;
250
+ WIS: number;
251
+ CHA: number;
252
+ };
253
+ speciesId: string;
254
+ speedFeet: number;
255
+ formName: string;
256
+ }, {
257
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
258
+ hp: {
259
+ max: number;
260
+ current: number;
261
+ temp?: number | undefined;
262
+ };
263
+ abilityScores: {
264
+ STR: number;
265
+ DEX: number;
266
+ CON: number;
267
+ INT: number;
268
+ WIS: number;
269
+ CHA: number;
270
+ };
271
+ speciesId: string;
272
+ speedFeet: number;
273
+ formName: string;
274
+ }>>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ kind: "pc" | "npc" | "creature";
277
+ id: string;
278
+ name: string;
279
+ classes: {
280
+ level: number;
281
+ classId: string;
282
+ hitDiceRemaining: number;
283
+ subclassId?: string | undefined;
284
+ }[];
285
+ hp: {
286
+ max: number;
287
+ current: number;
288
+ temp: number;
289
+ };
290
+ abilityScores: {
291
+ STR: number;
292
+ DEX: number;
293
+ CON: number;
294
+ INT: number;
295
+ WIS: number;
296
+ CHA: number;
297
+ };
298
+ xp: number;
299
+ speciesId: string;
300
+ backgroundId: string;
301
+ deathSaves: {
302
+ successes: number;
303
+ failures: number;
304
+ stable: boolean;
305
+ };
306
+ exhaustion: number;
307
+ speedFeet: number;
308
+ inventory: string[];
309
+ equipped: {
310
+ attuned: string[];
311
+ armor?: string | undefined;
312
+ shield?: string | undefined;
313
+ mainHand?: string | undefined;
314
+ offHand?: string | undefined;
315
+ };
316
+ resources: {
317
+ max: number;
318
+ resourceId: string;
319
+ current: number;
320
+ }[];
321
+ appliedConditions: {
322
+ conditionId: string;
323
+ id: string;
324
+ level?: number | undefined;
325
+ sourceEventId?: string | undefined;
326
+ expiresOnRound?: number | undefined;
327
+ }[];
328
+ knownSpells: string[];
329
+ preparedSpells: string[];
330
+ spellSlotsUsed: Record<string, number>;
331
+ pactSlotsUsed: number;
332
+ triggerCounters: Record<string, {
333
+ firedThisTurn?: boolean | undefined;
334
+ firedThisRound?: boolean | undefined;
335
+ firedThisShortRest?: boolean | undefined;
336
+ firedThisLongRest?: boolean | undefined;
337
+ }>;
338
+ featsTaken: string[];
339
+ pendingChoiceIds: string[];
340
+ moraleBroken: boolean;
341
+ statblockId?: string | undefined;
342
+ multiattack?: {
343
+ name: string;
344
+ attacks: {
345
+ count: number;
346
+ weaponInstanceId: string;
347
+ }[];
348
+ } | undefined;
349
+ playerId?: string | undefined;
350
+ concentrationEffectId?: string | undefined;
351
+ mountedOnId?: string | undefined;
352
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
353
+ morale?: {
354
+ max: number;
355
+ current: number;
356
+ } | undefined;
357
+ polymorphedSnapshot?: {
358
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
359
+ hp: {
360
+ max: number;
361
+ current: number;
362
+ temp: number;
363
+ };
364
+ abilityScores: {
365
+ STR: number;
366
+ DEX: number;
367
+ CON: number;
368
+ INT: number;
369
+ WIS: number;
370
+ CHA: number;
371
+ };
372
+ speciesId: string;
373
+ speedFeet: number;
374
+ formName: string;
375
+ } | undefined;
376
+ }, {
377
+ id: string;
378
+ name: string;
379
+ classes: {
380
+ level: number;
381
+ classId: string;
382
+ hitDiceRemaining: number;
383
+ subclassId?: string | undefined;
384
+ }[];
385
+ hp: {
386
+ max: number;
387
+ current: number;
388
+ temp?: number | undefined;
389
+ };
390
+ abilityScores: {
391
+ STR: number;
392
+ DEX: number;
393
+ CON: number;
394
+ INT: number;
395
+ WIS: number;
396
+ CHA: number;
397
+ };
398
+ speciesId: string;
399
+ backgroundId: string;
400
+ kind?: "pc" | "npc" | "creature" | undefined;
401
+ xp?: number | undefined;
402
+ statblockId?: string | undefined;
403
+ multiattack?: {
404
+ name: string;
405
+ attacks: {
406
+ count: number;
407
+ weaponInstanceId: string;
408
+ }[];
409
+ } | undefined;
410
+ playerId?: string | undefined;
411
+ deathSaves?: {
412
+ successes?: number | undefined;
413
+ failures?: number | undefined;
414
+ stable?: boolean | undefined;
415
+ } | undefined;
416
+ exhaustion?: number | undefined;
417
+ speedFeet?: number | undefined;
418
+ inventory?: string[] | undefined;
419
+ equipped?: {
420
+ armor?: string | undefined;
421
+ shield?: string | undefined;
422
+ mainHand?: string | undefined;
423
+ offHand?: string | undefined;
424
+ attuned?: string[] | undefined;
425
+ } | undefined;
426
+ resources?: {
427
+ max: number;
428
+ resourceId: string;
429
+ current: number;
430
+ }[] | undefined;
431
+ appliedConditions?: {
432
+ conditionId: string;
433
+ id: string;
434
+ level?: number | undefined;
435
+ sourceEventId?: string | undefined;
436
+ expiresOnRound?: number | undefined;
437
+ }[] | undefined;
438
+ knownSpells?: string[] | undefined;
439
+ preparedSpells?: string[] | undefined;
440
+ spellSlotsUsed?: Record<string, number> | undefined;
441
+ pactSlotsUsed?: number | undefined;
442
+ concentrationEffectId?: string | undefined;
443
+ triggerCounters?: Record<string, {
444
+ firedThisTurn?: boolean | undefined;
445
+ firedThisRound?: boolean | undefined;
446
+ firedThisShortRest?: boolean | undefined;
447
+ firedThisLongRest?: boolean | undefined;
448
+ }> | undefined;
449
+ featsTaken?: string[] | undefined;
450
+ pendingChoiceIds?: string[] | undefined;
451
+ mountedOnId?: string | undefined;
452
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
453
+ morale?: {
454
+ max: number;
455
+ current: number;
456
+ } | undefined;
457
+ moraleBroken?: boolean | undefined;
458
+ polymorphedSnapshot?: {
459
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
460
+ hp: {
461
+ max: number;
462
+ current: number;
463
+ temp?: number | undefined;
464
+ };
465
+ abilityScores: {
466
+ STR: number;
467
+ DEX: number;
468
+ CON: number;
469
+ INT: number;
470
+ WIS: number;
471
+ CHA: number;
472
+ };
473
+ speciesId: string;
474
+ speedFeet: number;
475
+ formName: string;
476
+ } | undefined;
477
+ }>;
478
+ }, "strip", z.ZodTypeAny, {
479
+ at: string;
480
+ type: "CharacterCreated";
481
+ id: string;
482
+ snapshot: {
483
+ kind: "pc" | "npc" | "creature";
484
+ id: string;
485
+ name: string;
486
+ classes: {
487
+ level: number;
488
+ classId: string;
489
+ hitDiceRemaining: number;
490
+ subclassId?: string | undefined;
491
+ }[];
492
+ hp: {
493
+ max: number;
494
+ current: number;
495
+ temp: number;
496
+ };
497
+ abilityScores: {
498
+ STR: number;
499
+ DEX: number;
500
+ CON: number;
501
+ INT: number;
502
+ WIS: number;
503
+ CHA: number;
504
+ };
505
+ xp: number;
506
+ speciesId: string;
507
+ backgroundId: string;
508
+ deathSaves: {
509
+ successes: number;
510
+ failures: number;
511
+ stable: boolean;
512
+ };
513
+ exhaustion: number;
514
+ speedFeet: number;
515
+ inventory: string[];
516
+ equipped: {
517
+ attuned: string[];
518
+ armor?: string | undefined;
519
+ shield?: string | undefined;
520
+ mainHand?: string | undefined;
521
+ offHand?: string | undefined;
522
+ };
523
+ resources: {
524
+ max: number;
525
+ resourceId: string;
526
+ current: number;
527
+ }[];
528
+ appliedConditions: {
529
+ conditionId: string;
530
+ id: string;
531
+ level?: number | undefined;
532
+ sourceEventId?: string | undefined;
533
+ expiresOnRound?: number | undefined;
534
+ }[];
535
+ knownSpells: string[];
536
+ preparedSpells: string[];
537
+ spellSlotsUsed: Record<string, number>;
538
+ pactSlotsUsed: number;
539
+ triggerCounters: Record<string, {
540
+ firedThisTurn?: boolean | undefined;
541
+ firedThisRound?: boolean | undefined;
542
+ firedThisShortRest?: boolean | undefined;
543
+ firedThisLongRest?: boolean | undefined;
544
+ }>;
545
+ featsTaken: string[];
546
+ pendingChoiceIds: string[];
547
+ moraleBroken: boolean;
548
+ statblockId?: string | undefined;
549
+ multiattack?: {
550
+ name: string;
551
+ attacks: {
552
+ count: number;
553
+ weaponInstanceId: string;
554
+ }[];
555
+ } | undefined;
556
+ playerId?: string | undefined;
557
+ concentrationEffectId?: string | undefined;
558
+ mountedOnId?: string | undefined;
559
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
560
+ morale?: {
561
+ max: number;
562
+ current: number;
563
+ } | undefined;
564
+ polymorphedSnapshot?: {
565
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
566
+ hp: {
567
+ max: number;
568
+ current: number;
569
+ temp: number;
570
+ };
571
+ abilityScores: {
572
+ STR: number;
573
+ DEX: number;
574
+ CON: number;
575
+ INT: number;
576
+ WIS: number;
577
+ CHA: number;
578
+ };
579
+ speciesId: string;
580
+ speedFeet: number;
581
+ formName: string;
582
+ } | undefined;
583
+ };
584
+ sessionId?: string | undefined;
585
+ causedByEventId?: string | undefined;
586
+ actorId?: string | undefined;
587
+ }, {
588
+ at: string;
589
+ type: "CharacterCreated";
590
+ id: string;
591
+ snapshot: {
592
+ id: string;
593
+ name: string;
594
+ classes: {
595
+ level: number;
596
+ classId: string;
597
+ hitDiceRemaining: number;
598
+ subclassId?: string | undefined;
599
+ }[];
600
+ hp: {
601
+ max: number;
602
+ current: number;
603
+ temp?: number | undefined;
604
+ };
605
+ abilityScores: {
606
+ STR: number;
607
+ DEX: number;
608
+ CON: number;
609
+ INT: number;
610
+ WIS: number;
611
+ CHA: number;
612
+ };
613
+ speciesId: string;
614
+ backgroundId: string;
615
+ kind?: "pc" | "npc" | "creature" | undefined;
616
+ xp?: number | undefined;
617
+ statblockId?: string | undefined;
618
+ multiattack?: {
619
+ name: string;
620
+ attacks: {
621
+ count: number;
622
+ weaponInstanceId: string;
623
+ }[];
624
+ } | undefined;
625
+ playerId?: string | undefined;
626
+ deathSaves?: {
627
+ successes?: number | undefined;
628
+ failures?: number | undefined;
629
+ stable?: boolean | undefined;
630
+ } | undefined;
631
+ exhaustion?: number | undefined;
632
+ speedFeet?: number | undefined;
633
+ inventory?: string[] | undefined;
634
+ equipped?: {
635
+ armor?: string | undefined;
636
+ shield?: string | undefined;
637
+ mainHand?: string | undefined;
638
+ offHand?: string | undefined;
639
+ attuned?: string[] | undefined;
640
+ } | undefined;
641
+ resources?: {
642
+ max: number;
643
+ resourceId: string;
644
+ current: number;
645
+ }[] | undefined;
646
+ appliedConditions?: {
647
+ conditionId: string;
648
+ id: string;
649
+ level?: number | undefined;
650
+ sourceEventId?: string | undefined;
651
+ expiresOnRound?: number | undefined;
652
+ }[] | undefined;
653
+ knownSpells?: string[] | undefined;
654
+ preparedSpells?: string[] | undefined;
655
+ spellSlotsUsed?: Record<string, number> | undefined;
656
+ pactSlotsUsed?: number | undefined;
657
+ concentrationEffectId?: string | undefined;
658
+ triggerCounters?: Record<string, {
659
+ firedThisTurn?: boolean | undefined;
660
+ firedThisRound?: boolean | undefined;
661
+ firedThisShortRest?: boolean | undefined;
662
+ firedThisLongRest?: boolean | undefined;
663
+ }> | undefined;
664
+ featsTaken?: string[] | undefined;
665
+ pendingChoiceIds?: string[] | undefined;
666
+ mountedOnId?: string | undefined;
667
+ attitude?: "hostile" | "unfriendly" | "indifferent" | "friendly" | "helpful" | undefined;
668
+ morale?: {
669
+ max: number;
670
+ current: number;
671
+ } | undefined;
672
+ moraleBroken?: boolean | undefined;
673
+ polymorphedSnapshot?: {
674
+ kind: "polymorph" | "wild-shape" | "true-polymorph";
675
+ hp: {
676
+ max: number;
677
+ current: number;
678
+ temp?: number | undefined;
679
+ };
680
+ abilityScores: {
681
+ STR: number;
682
+ DEX: number;
683
+ CON: number;
684
+ INT: number;
685
+ WIS: number;
686
+ CHA: number;
687
+ };
688
+ speciesId: string;
689
+ speedFeet: number;
690
+ formName: string;
691
+ } | undefined;
692
+ };
693
+ sessionId?: string | undefined;
694
+ causedByEventId?: string | undefined;
695
+ actorId?: string | undefined;
696
+ }>;
697
+ export type CharacterCreatedEvent = z.infer<typeof CharacterCreatedEventSchema>;
698
+ //# sourceMappingURL=progression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progression.d.ts","sourceRoot":"","sources":["../../../src/schemas/events/progression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}