@typeonce/ritmo 0.6.0 → 0.7.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 (125) hide show
  1. package/README.md +2 -0
  2. package/dist/Brand.d.ts +9 -4
  3. package/dist/Brand.d.ts.map +1 -1
  4. package/dist/Brand.js +9 -4
  5. package/dist/Brand.js.map +1 -1
  6. package/dist/Clock.d.ts +186 -0
  7. package/dist/Clock.d.ts.map +1 -0
  8. package/dist/Clock.js +111 -0
  9. package/dist/Clock.js.map +1 -0
  10. package/dist/Command.d.ts +157 -33
  11. package/dist/Command.d.ts.map +1 -1
  12. package/dist/Command.js +49 -15
  13. package/dist/Command.js.map +1 -1
  14. package/dist/Debug.d.ts +104 -12
  15. package/dist/Debug.d.ts.map +1 -1
  16. package/dist/Debug.js.map +1 -1
  17. package/dist/Decode.d.ts +1 -1
  18. package/dist/Decode.js +1 -1
  19. package/dist/Descriptor.d.ts +31 -21
  20. package/dist/Descriptor.d.ts.map +1 -1
  21. package/dist/Descriptor.js +21 -12
  22. package/dist/Descriptor.js.map +1 -1
  23. package/dist/Entity.d.ts +14 -5
  24. package/dist/Entity.d.ts.map +1 -1
  25. package/dist/Entity.js +2 -2
  26. package/dist/Entity.js.map +1 -1
  27. package/dist/EntityScope.d.ts +6 -0
  28. package/dist/EntityScope.d.ts.map +1 -1
  29. package/dist/EntityScope.js +6 -0
  30. package/dist/EntityScope.js.map +1 -1
  31. package/dist/HostClock.d.ts +49 -0
  32. package/dist/HostClock.d.ts.map +1 -0
  33. package/dist/HostClock.js +46 -0
  34. package/dist/HostClock.js.map +1 -0
  35. package/dist/Inspector.d.ts +7 -1
  36. package/dist/Inspector.d.ts.map +1 -1
  37. package/dist/Inspector.js.map +1 -1
  38. package/dist/Machine.d.ts +12 -3
  39. package/dist/Machine.d.ts.map +1 -1
  40. package/dist/Machine.js +4 -1
  41. package/dist/Machine.js.map +1 -1
  42. package/dist/Query.d.ts +28 -24
  43. package/dist/Query.d.ts.map +1 -1
  44. package/dist/Query.js +0 -24
  45. package/dist/Query.js.map +1 -1
  46. package/dist/Runtime.d.ts +36 -16
  47. package/dist/Runtime.d.ts.map +1 -1
  48. package/dist/Runtime.js +230 -67
  49. package/dist/Runtime.js.map +1 -1
  50. package/dist/Schedule.d.ts +217 -10
  51. package/dist/Schedule.d.ts.map +1 -1
  52. package/dist/Schedule.js +5 -0
  53. package/dist/Schedule.js.map +1 -1
  54. package/dist/Schema.d.ts +61 -25
  55. package/dist/Schema.d.ts.map +1 -1
  56. package/dist/Schema.js +0 -8
  57. package/dist/Schema.js.map +1 -1
  58. package/dist/System.d.ts +149 -52
  59. package/dist/System.d.ts.map +1 -1
  60. package/dist/System.js +52 -6
  61. package/dist/System.js.map +1 -1
  62. package/dist/index.d.ts +8 -7
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +8 -7
  65. package/dist/index.js.map +1 -1
  66. package/dist/internal/cells.d.ts +3 -3
  67. package/dist/internal/cells.d.ts.map +1 -1
  68. package/dist/internal/cells.js +9 -11
  69. package/dist/internal/cells.js.map +1 -1
  70. package/dist/internal/debug.d.ts +6 -0
  71. package/dist/internal/debug.d.ts.map +1 -1
  72. package/dist/internal/debug.js +95 -1
  73. package/dist/internal/debug.js.map +1 -1
  74. package/dist/internal/game.d.ts.map +1 -1
  75. package/dist/internal/game.js +9 -2
  76. package/dist/internal/game.js.map +1 -1
  77. package/dist/internal/order.d.ts +10 -0
  78. package/dist/internal/order.d.ts.map +1 -0
  79. package/dist/internal/order.js +120 -0
  80. package/dist/internal/order.js.map +1 -0
  81. package/dist/internal/queries.js +2 -2
  82. package/dist/internal/queries.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/Brand.ts +9 -4
  85. package/src/Clock.ts +311 -0
  86. package/src/Command.ts +271 -73
  87. package/src/Debug.ts +111 -10
  88. package/src/Decode.ts +1 -1
  89. package/src/Descriptor.ts +37 -27
  90. package/src/Entity.ts +15 -5
  91. package/src/EntityScope.ts +6 -0
  92. package/src/HostClock.ts +64 -0
  93. package/src/Inspector.ts +7 -2
  94. package/src/Machine.ts +13 -3
  95. package/src/Query.ts +41 -33
  96. package/src/Runtime.ts +273 -91
  97. package/src/Schedule.ts +380 -13
  98. package/src/Schema.ts +70 -41
  99. package/src/System.ts +174 -88
  100. package/src/index.ts +8 -7
  101. package/src/internal/cells.ts +10 -12
  102. package/src/internal/debug.ts +104 -4
  103. package/src/internal/game.ts +11 -3
  104. package/src/internal/order.ts +140 -0
  105. package/src/internal/queries.ts +3 -3
  106. package/dist/Definition.d.ts +0 -99
  107. package/dist/Definition.d.ts.map +0 -1
  108. package/dist/Definition.js +0 -68
  109. package/dist/Definition.js.map +0 -1
  110. package/dist/Feature.d.ts +0 -106
  111. package/dist/Feature.d.ts.map +0 -1
  112. package/dist/Feature.js +0 -87
  113. package/dist/Feature.js.map +0 -1
  114. package/dist/Fx.d.ts +0 -128
  115. package/dist/Fx.d.ts.map +0 -1
  116. package/dist/Fx.js +0 -112
  117. package/dist/Fx.js.map +0 -1
  118. package/dist/internal/definition.d.ts +0 -17
  119. package/dist/internal/definition.d.ts.map +0 -1
  120. package/dist/internal/definition.js +0 -25
  121. package/dist/internal/definition.js.map +0 -1
  122. package/src/Definition.ts +0 -106
  123. package/src/Feature.ts +0 -241
  124. package/src/Fx.ts +0 -176
  125. package/src/internal/definition.ts +0 -56
package/dist/System.d.ts CHANGED
@@ -57,7 +57,6 @@
57
57
  */
58
58
  import type { Descriptor } from "./Descriptor.ts";
59
59
  import type * as Entity from "./Entity.ts";
60
- import type { Fx } from "./Fx.ts";
61
60
  import * as Machine from "./Machine.ts";
62
61
  import type * as Relation from "./Relation.ts";
63
62
  import type { Query, QueryMatch } from "./Query.ts";
@@ -65,7 +64,7 @@ import type { ConstructedWriteCell, ReadCell, ReadonlyValue, WriteCell } from ".
65
64
  import * as Requirement from "./Requirement.ts";
66
65
  import type * as Result from "./Result.ts";
67
66
  import type { Schema } from "./Schema.ts";
68
- import type { CommandsApi } from "./Command.ts";
67
+ import type { CommandAccess, CommandsApi, NotDeclared } from "./Command.ts";
69
68
  /**
70
69
  * System declarations, typed execution context, and runtime requirements.
71
70
  *
@@ -216,7 +215,7 @@ export declare const readEvent: <D extends Descriptor<"event", string, any>>(des
216
215
  *
217
216
  * If the payload needs to name an entity for later work, emit a durable
218
217
  * `Game.Entity.handle(...)` (optionally with an intent component) and let the later
219
- * reader re-resolve it through `lookup.getHandle(...)`.
218
+ * reader re-resolve it through `queries.x.getHandle(...)` (through a declared query).
220
219
  *
221
220
  * @example
222
221
  * ```ts
@@ -230,6 +229,54 @@ export declare const readEvent: <D extends Descriptor<"event", string, any>>(des
230
229
  * ```
231
230
  */
232
231
  export declare const writeEvent: <D extends Descriptor<"event", string, any>>(descriptor: D) => EventWrite<D>;
232
+ /** The marker `thisTick(...)` adds to a read. */
233
+ export interface ThisTick {
234
+ readonly thisTick: true;
235
+ }
236
+ /**
237
+ * Requires that every system writing this event or resource runs earlier in
238
+ * the same `runtime.tick(...)` call than the reading system: the reader then
239
+ * sees this tick's data, never last tick's. The library never reorders
240
+ * anything; it only checks.
241
+ *
242
+ * `runtime.tick(...)` checks it at compile time over everything passed to that
243
+ * call, in order (gated groups count by position), and rejects a writer that
244
+ * runs after the reader and a call whose order is not statically known. A
245
+ * read with no writer in the call compiles (a reader reused in several
246
+ * ticks); the `event-never-written` lint reports data nobody writes.
247
+ * `tryTick` checks the same at runtime.
248
+ *
249
+ * Use it on reads whose correctness depends on running after their writers
250
+ * (damage applied the tick it is dealt). A plain read is right when last
251
+ * tick's data is acceptable.
252
+ *
253
+ * On a query (`queries: { enemies: Game.System.thisTick(Enemies) }`), the
254
+ * writers are systems whose declared commands can change what it matches:
255
+ * `spawns` covering every component it requires, or `inserts` / `removes` of
256
+ * any component it names (selection slots, optional ones included, `with`,
257
+ * `without`, filters). Each must run earlier with an `applyDeferred()` (or
258
+ * `applyStateTransitions(...)`) between it and the reader, since commands
259
+ * apply only there. `despawns` never count: a despawned entity stays visible
260
+ * to queries until the next `applyDeferred()`. Nested schedules are
261
+ * flattened, gated groups count by position, and a transition bundle counts
262
+ * at its `applyStateTransitions(...)` step (which applies queued commands
263
+ * first), as if every schedule in it runs, markers inside included.
264
+ *
265
+ * @example
266
+ * ```ts
267
+ * const ApplyDamage = Game.System("ApplyDamage", {
268
+ * events: { damage: Game.System.thisTick(Game.System.readEvent(Damage)) }
269
+ * }, ({ events }) => { ... })
270
+ *
271
+ * runtime.tick(Game.Schedule(DealDamage, ApplyDamage)) // compiles
272
+ * runtime.tick(Game.Schedule(ApplyDamage, DealDamage)) // "ApplyDamage needs Damage from this tick, but its writer DealDamage runs after it"
273
+ *
274
+ * const AimAtNewest = Game.System("AimAtNewest", { queries: { enemies: Game.System.thisTick(Enemies) } }, ...)
275
+ * runtime.tick(Game.Schedule(SpawnWave, Game.Schedule.applyDeferred(), AimAtNewest)) // compiles
276
+ * runtime.tick(Game.Schedule(SpawnWave, AimAtNewest)) // "AimAtNewest needs this tick's commands for queries.enemies, but SpawnWave queues them with no applyDeferred() in between"
277
+ * ```
278
+ */
279
+ export declare const thisTick: <Read extends EventRead<Descriptor<"event", string, any>> | ResourceRead<Descriptor<"resource", string, any>> | Query.Any<any>>(read: Read) => Read & ThisTick;
233
280
  /**
234
281
  * Declares read access to the current committed value of a finite-state machine.
235
282
  *
@@ -262,7 +309,7 @@ export declare const transition: <M extends Machine.StateMachine.Any>(stateMachi
262
309
  * normal events: each run sees those published since its previous run.
263
310
  *
264
311
  * This is one of the clearest signs that the modeled value should be a machine
265
- * rather than a plain state descriptor.
312
+ * rather than a resource or a `Descriptor.EntityState` component.
266
313
  */
267
314
  export declare const readTransitionEvent: <M extends Machine.StateMachine.Any>(stateMachine: M) => Machine.TransitionEventRead<M>;
268
315
  /**
@@ -368,8 +415,9 @@ export interface RelationFailureRead<R extends Relation.Relation.Any> {
368
415
  * ticked less often than the one that removes (rendering after several fixed
369
416
  * updates) still sees every removal. A system skipped by its run conditions
370
417
  * keeps its position, like `added`/`changed`, and sees the removals when it
371
- * runs again. Each log is capped at `Runtime.streamCapacity` entries; drops
372
- * show up as `missed` reads in the debug trace. Systems usually pair this
418
+ * runs again. Each log is capped at `Runtime.streamCapacity` entries; a
419
+ * reader that missed dropped ones sees `lagged() === true` (and a `missed`
420
+ * read in the debug trace). Systems usually pair this
373
421
  * with host cleanup such as removing renderer-owned nodes. {@link readDespawned}
374
422
  * complements this for whole-entity teardown.
375
423
  *
@@ -418,12 +466,28 @@ export declare const readDespawned: () => DespawnedRead;
418
466
  */
419
467
  export interface RemovedReadView<S extends Schema.Any, Root = unknown> {
420
468
  all(): ReadonlyArray<import("./Entity.ts").EntityId<S, Root>>;
469
+ /**
470
+ * Whether records published since this system's previous run were dropped
471
+ * before it read them. Records wait for every reading system, so this only
472
+ * happens when a reader has not run for so long that the log exceeded its
473
+ * capacity (see `Runtime.streamCapacity`). Check it where a missed record
474
+ * would leak host state (a renderer node never destroyed).
475
+ */
476
+ lagged(): boolean;
421
477
  }
422
478
  /**
423
479
  * A read-only lifecycle stream of despawned entity ids.
424
480
  */
425
481
  export interface DespawnedReadView<S extends Schema.Any, Root = unknown> {
426
482
  all(): ReadonlyArray<import("./Entity.ts").EntityId<S, Root>>;
483
+ /**
484
+ * Whether records published since this system's previous run were dropped
485
+ * before it read them. Records wait for every reading system, so this only
486
+ * happens when a reader has not run for so long that the log exceeded its
487
+ * capacity (see `Runtime.streamCapacity`). Check it where a missed record
488
+ * would leak host state (a renderer node never destroyed).
489
+ */
490
+ lagged(): boolean;
427
491
  }
428
492
  /**
429
493
  * A read-only stream of deferred relation-mutation failures.
@@ -449,8 +513,35 @@ export interface QueryHandle<S extends Schema.Any, Q extends Query.Any> {
449
513
  each(): ReadonlyArray<QueryMatch<S, Q>>;
450
514
  /**
451
515
  * Retrieves the match for one specific entity id when it satisfies the query.
516
+ *
517
+ * Every read and write of an entity goes through a query the system
518
+ * declares, so its access is visible in the spec: there is no lookup that
519
+ * takes a query at call time.
452
520
  */
453
521
  get(entityId: import("./Entity.ts").EntityId<S, Query.Root<Q>>): Result.Result<QueryMatch<S, Q>, Query.LookupError>;
522
+ /**
523
+ * Resolves a stored durable handle back into this query's access.
524
+ *
525
+ * Use this for handles carried in events, resources, or components. A handle
526
+ * is storage-safe, not proof of liveness, so stale or mismatched handles stay
527
+ * explicit typed failures. A handle with an intent component needs a query
528
+ * that proves it (selects or requires it).
529
+ */
530
+ getHandle<H extends Entity.Handle<Query.Root<Q>, any>>(handle: [Entity.Handle.Intent<H>] extends [undefined] ? H : Query.ProvesComponent<Q, Entity.Handle.Intent<H> & Descriptor<"component", string, any>> extends true ? H : "this query does not prove the handle's intent component: select it, or add it to with"): Result.Result<QueryMatch<S, Q>, Query.LookupError>;
531
+ /**
532
+ * The direct children of one hierarchy parent that match this query, in the
533
+ * stored child order. Children that do not match are skipped; a missing
534
+ * parent is a `MissingEntity` failure.
535
+ */
536
+ children<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Query.Root<Q>>, relation: R): Result.Result<ReadonlyArray<QueryMatch<S, Q>>, Relation.Relation.MissingEntityError>;
537
+ /**
538
+ * The hierarchy descendants of one entity that match this query, in
539
+ * `options.order` (depth-first by default). Descendants that do not match
540
+ * are skipped. `lookup.descendants` returns every descendant's id instead.
541
+ */
542
+ descendants<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Query.Root<Q>>, relation: R, options?: {
543
+ readonly order?: "breadth" | "depth";
544
+ }): Result.Result<ReadonlyArray<QueryMatch<S, Q>>, Relation.Relation.MissingEntityError>;
454
545
  /**
455
546
  * Returns a single match when exactly one entity satisfies the query.
456
547
  */
@@ -475,52 +566,26 @@ export interface QueryHandle<S extends Schema.Any, Q extends Query.Any> {
475
566
  singleOptional(): Result.Result<QueryMatch<S, Q> | undefined, Query.MultipleEntitiesError>;
476
567
  }
477
568
  /**
478
- * Typed entity lookup API exposed to systems.
569
+ * Relation lookups exposed to systems: entity ids along relation edges.
479
570
  *
480
- * Use this when you already have an entity id and want a validated, typed view
481
- * over a specific component access specification.
571
+ * Lookups return ids only. To read or write the entities they lead to, pass
572
+ * the ids to a declared query (`queries.x.get(id)`), or use the query
573
+ * handle's `children` / `descendants`, so every access stays in the spec.
482
574
  *
483
575
  * All lookup methods are total and explicit:
484
576
  *
485
577
  * - no hidden exceptions
486
- * - stale handles are treated as normal typed failures
578
+ * - missing entities are normal typed failures
487
579
  * - hierarchy traversal is available only for hierarchy relations
488
580
  */
489
581
  export interface LookupApi<S extends Schema.Any, Root = unknown> {
490
- get<Q extends Query.Any<Root>>(entityId: Entity.EntityId<S, Root>, query: Q): Result.Result<QueryMatch<S, Q>, Query.LookupError>;
491
- /**
492
- * Resolves a stored durable handle back into current-world query access.
493
- *
494
- * Use this for handles carried in events, resources, or components. A handle is
495
- * storage-safe, not proof of liveness, so stale or mismatched handles remain
496
- * explicit typed failures.
497
- */
498
- getHandle<H extends Entity.Handle<Root, any>, Q extends Query.Any<Root>>(handle: [Entity.Handle.Intent<H>] extends [undefined] ? H : Query.ProvesComponent<Q, Entity.Handle.Intent<H> & Descriptor<"component", string, any>> extends true ? H : never, query: Q): Result.Result<QueryMatch<S, Q>, Query.LookupError>;
499
582
  related<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Any>>(entityId: Entity.EntityId<S, Root>, relation: R): Result.Result<Entity.EntityId<S, Root>, Relation.Relation.LookupError>;
500
583
  relatedSources<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Any>>(entityId: Entity.EntityId<S, Root>, relation: R): Result.Result<ReadonlyArray<Entity.EntityId<S, Root>>, Relation.Relation.MissingEntityError>;
501
- /**
502
- * Reads the direct children of one hierarchy parent as typed query matches.
503
- *
504
- * This preserves the stored child order for that hierarchy relation and skips
505
- * entities that do not satisfy the query. Missing parents remain explicit
506
- * `MissingEntity` failures.
507
- */
508
- childMatches<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>, Q extends Query.Any<Root>>(entityId: Entity.EntityId<S, Root>, relation: R, query: Q): Result.Result<ReadonlyArray<QueryMatch<S, Q>>, Relation.Relation.MissingEntityError>;
509
584
  parent<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Root>, relation: R): Result.Result<Entity.EntityId<S, Root>, Relation.Relation.LookupError>;
510
585
  ancestors<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Root>, relation: R): Result.Result<ReadonlyArray<Entity.EntityId<S, Root>>, Relation.Relation.MissingEntityError>;
511
586
  descendants<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Root>, relation: R, options?: {
512
587
  readonly order?: "breadth" | "depth";
513
588
  }): Result.Result<ReadonlyArray<Entity.EntityId<S, Root>>, Relation.Relation.MissingEntityError>;
514
- /**
515
- * Traverses hierarchy descendants and resolves only the entities that match
516
- * the given query.
517
- *
518
- * Traversal order stays explicit through `options.order`, and non-matching
519
- * descendants are skipped without turning traversal into a failure.
520
- */
521
- descendantMatches<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>, Q extends Query.Any<Root>>(entityId: Entity.EntityId<S, Root>, relation: R, query: Q, options?: {
522
- readonly order?: "breadth" | "depth";
523
- }): Result.Result<ReadonlyArray<QueryMatch<S, Q>>, Relation.Relation.MissingEntityError>;
524
589
  root<R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entityId: Entity.EntityId<S, Root>, relation: R): Result.Result<Entity.EntityId<S, Root>, Relation.Relation.MissingEntityError>;
525
590
  }
526
591
  /**
@@ -554,6 +619,25 @@ export interface SystemAccessInput {
554
619
  readonly removed?: Record<string, RemovedRead<Descriptor<"component", string, any>>>;
555
620
  readonly despawned?: Record<string, DespawnedRead>;
556
621
  readonly relationFailures?: Record<string, RelationFailureRead<Relation.Relation.Any>>;
622
+ /**
623
+ * The commands the system may queue: `Game.System.commands(...)` with
624
+ * `spawns`, `inserts`, `removes`, `despawns`, `despawnsScope`, and
625
+ * `relates` permissions. Without it the system has no `commands`.
626
+ */
627
+ readonly commands?: CommandAccess.Any;
628
+ /**
629
+ * Run conditions that skip the system: while one fails, the system does not
630
+ * run and the events, transition events, and relation failures published
631
+ * meanwhile are dropped for it. Use it for a mode change after which those
632
+ * messages are stale (menu, game over); use `pauseWhen` instead for a freeze
633
+ * whose messages stay valid. `Schedule.when(...)` adds conditions to a whole
634
+ * group.
635
+ *
636
+ * Four gating forms, one rule: `when` drops the events published while
637
+ * gated (the system resumes on fresh messages), `pauseWhen` keeps them (the
638
+ * system resumes and reads the backlog). Put them on one system's spec, or
639
+ * on a group with `Schedule.when(...)` / `Schedule.pauseWhen(...)`.
640
+ */
557
641
  readonly when?: ReadonlyArray<Machine.Condition>;
558
642
  /**
559
643
  * Run conditions that pause the system instead of skipping it: while one
@@ -614,6 +698,7 @@ export type SystemSpec<S extends Schema.Any, Access extends SystemAccessInput =
614
698
  readonly pauseWhen: AccessField<Access, "pauseWhen", readonly []>;
615
699
  readonly transitions: AccessField<Access, "transitions", {}>;
616
700
  readonly local: LocalFactory<Access>;
701
+ readonly commands: "commands" extends keyof Access ? NonNullable<Access["commands"]> : undefined;
617
702
  readonly schema: S;
618
703
  readonly __schemaRoot: Root;
619
704
  };
@@ -678,6 +763,7 @@ type QueryContext<Spec extends AnySystemSpec> = {
678
763
  /** The value of the system's `local` factory, or `undefined` when it declares none. */
679
764
  type LocalValue<Factory> = Factory extends () => infer Local ? Local : undefined;
680
765
  type LocalContext<Spec extends AnySystemSpec> = LocalValue<Spec["local"]>;
766
+ type CommandsContext<Spec extends AnySystemSpec> = Spec["commands"] extends CommandAccess<infer Spawns, infer Inserts, infer Removes, infer Despawns, infer Scopes, infer Relates> ? CommandsApi<Spec["schema"], Spec["__schemaRoot"], Spawns, Inserts, Removes, Despawns, Scopes, Relates> : NotDeclared;
681
767
  /**
682
768
  * The implementation context derived from a system spec.
683
769
  *
@@ -697,14 +783,11 @@ export interface SystemContext<Spec extends AnySystemSpec> {
697
783
  readonly relationFailures: RelationFailureContext<Spec>;
698
784
  readonly transitions: TransitionContext<Spec>;
699
785
  readonly services: ServiceContext<Spec>;
700
- readonly commands: CommandsApi<Spec["schema"], Spec["__schemaRoot"]>;
786
+ /** The commands the spec declares (`commands: Game.System.commands(...)`). */
787
+ readonly commands: CommandsContext<Spec>;
701
788
  /** The system's own scratch state (see `local` in the spec); `undefined` when it declares none. */
702
789
  readonly local: LocalContext<Spec>;
703
790
  }
704
- /**
705
- * The service environment required by a system.
706
- */
707
- export type SystemDependencies<Spec extends AnySystemSpec> = ServiceContext<Spec>;
708
791
  type DescriptorFromAccess<Access> = Access extends {
709
792
  readonly descriptor: infer D extends Requirement.Requirement;
710
793
  } ? D : never;
@@ -726,11 +809,11 @@ export interface SystemFailure<out Name extends string = string, out Error = unk
726
809
  readonly error: Error;
727
810
  }
728
811
  /** Extracts the normalized failure carried by one system definition. */
729
- export type FailureOf<Value> = Value extends SystemDefinition<any, any, infer Error, any, infer Name, any> ? [Error] extends [never] ? never : SystemFailure<Name, Error> : never;
812
+ export type FailureOf<Value> = Value extends SystemDefinition<any, infer Error, any, infer Name, any> ? [Error] extends [never] ? never : SystemFailure<Name, Error> : never;
730
813
  /**
731
814
  * A fully defined system value ready to be placed into a schedule.
732
815
  */
733
- export interface SystemDefinition<Spec extends AnySystemSpec, out A = void, out E = never, out Root = unknown, out Name extends string = string, out Needs extends Requirement.Requirement = Requirement.Requirement> {
816
+ export interface SystemDefinition<Spec extends AnySystemSpec, out E = never, out Root = unknown, out Name extends string = string, out Needs extends Requirement.Requirement = Requirement.Requirement> {
734
817
  /**
735
818
  * Human-readable declaration name used to derive the internal typed label.
736
819
  */
@@ -758,27 +841,41 @@ export interface SystemDefinition<Spec extends AnySystemSpec, out A = void, out
758
841
  /**
759
842
  * The executable implementation of the system.
760
843
  */
761
- readonly run: SystemRun<Spec, A, E>;
844
+ readonly run: SystemRun<Spec, E>;
762
845
  /**
763
846
  * The system this one is a gated copy of, made by `Schedule.when(...)`:
764
847
  * the same system with extra run conditions. The runtime keys per-system
765
848
  * state (change detection, event cursors) by the original, so a system and
766
849
  * its gated copies are one reader.
767
850
  */
768
- readonly base?: SystemDefinition<any, any, any, any, any, any> | undefined;
851
+ readonly base?: SystemDefinition<any, any, any, any, any> | undefined;
769
852
  }
770
853
  /**
771
854
  * A system implementation.
772
855
  *
773
- * Return nothing for a system that cannot fail. Return an `Fx` when the system
774
- * has an expected failure (`Fx.fail(...)`) or wants to compose effects; the
775
- * failure type becomes part of every schedule that contains the system.
856
+ * Return nothing for a system that cannot fail. Return
857
+ * `Result.failure(error)` for an expected failure: the system's ECS writes
858
+ * are rolled back, its commands and events are dropped, and the tick stops
859
+ * with a typed `SystemFailure` whose `error` is inferred from every
860
+ * `Result.failure(...)` the body returns. A returned success
861
+ * (`Result.success(...)`) behaves like returning nothing. Exceptions are
862
+ * defects, not failures: they roll back the same way and are rethrown.
863
+ *
864
+ * @example
865
+ * ```ts
866
+ * const Spend = Game.System("Spend", {
867
+ * resources: { gold: Game.System.writeResource(Gold) }
868
+ * }, ({ resources }) => {
869
+ * if (resources.gold.get() < 10) return Result.failure("NotEnoughGold" as const)
870
+ * resources.gold.update((gold) => gold - 10)
871
+ * })
872
+ * ```
776
873
  */
777
- export type SystemRun<Spec extends AnySystemSpec, A = void, E = never> = (context: SystemContext<Spec>) => Fx<A, E, SystemDependencies<Spec>> | void;
874
+ export type SystemRun<Spec extends AnySystemSpec, E = never> = (context: SystemContext<Spec>) => Result.Result<unknown, E> | void;
778
875
  export declare function System<const Access extends SystemAccessInput & {
779
876
  readonly schema: Schema.Any;
780
- }, A = void, E = never, Root = unknown, const Name extends string = string>(name: Name, spec: Access & {
877
+ }, E = never, Root = unknown, const Name extends string = string>(name: Name, spec: Access & {
781
878
  readonly [Key in Exclude<keyof Access, keyof SystemAccessInput | "schema">]: never;
782
- }, run: SystemRun<SystemSpec<Access["schema"], Access, Root>, A, E>): SystemDefinition<SystemSpec<Access["schema"], Access, Root>, A, E, Root, Name, SystemAccessNeeds<Access>>;
879
+ }, run: SystemRun<SystemSpec<Access["schema"], Access, Root>, E>): SystemDefinition<SystemSpec<Access["schema"], Access, Root>, E, Root, Name, SystemAccessNeeds<Access>>;
783
880
  export {};
784
881
  //# sourceMappingURL=System.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../src/System.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../src/System.ts"],"names":[],"mappings":"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"}
package/dist/System.js CHANGED
@@ -80,7 +80,7 @@ export const readEvent = (descriptor) => ({
80
80
  *
81
81
  * If the payload needs to name an entity for later work, emit a durable
82
82
  * `Game.Entity.handle(...)` (optionally with an intent component) and let the later
83
- * reader re-resolve it through `lookup.getHandle(...)`.
83
+ * reader re-resolve it through `queries.x.getHandle(...)` (through a declared query).
84
84
  *
85
85
  * @example
86
86
  * ```ts
@@ -97,6 +97,50 @@ export const writeEvent = (descriptor) => ({
97
97
  mode: "write",
98
98
  descriptor
99
99
  });
100
+ /**
101
+ * Requires that every system writing this event or resource runs earlier in
102
+ * the same `runtime.tick(...)` call than the reading system: the reader then
103
+ * sees this tick's data, never last tick's. The library never reorders
104
+ * anything; it only checks.
105
+ *
106
+ * `runtime.tick(...)` checks it at compile time over everything passed to that
107
+ * call, in order (gated groups count by position), and rejects a writer that
108
+ * runs after the reader and a call whose order is not statically known. A
109
+ * read with no writer in the call compiles (a reader reused in several
110
+ * ticks); the `event-never-written` lint reports data nobody writes.
111
+ * `tryTick` checks the same at runtime.
112
+ *
113
+ * Use it on reads whose correctness depends on running after their writers
114
+ * (damage applied the tick it is dealt). A plain read is right when last
115
+ * tick's data is acceptable.
116
+ *
117
+ * On a query (`queries: { enemies: Game.System.thisTick(Enemies) }`), the
118
+ * writers are systems whose declared commands can change what it matches:
119
+ * `spawns` covering every component it requires, or `inserts` / `removes` of
120
+ * any component it names (selection slots, optional ones included, `with`,
121
+ * `without`, filters). Each must run earlier with an `applyDeferred()` (or
122
+ * `applyStateTransitions(...)`) between it and the reader, since commands
123
+ * apply only there. `despawns` never count: a despawned entity stays visible
124
+ * to queries until the next `applyDeferred()`. Nested schedules are
125
+ * flattened, gated groups count by position, and a transition bundle counts
126
+ * at its `applyStateTransitions(...)` step (which applies queued commands
127
+ * first), as if every schedule in it runs, markers inside included.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * const ApplyDamage = Game.System("ApplyDamage", {
132
+ * events: { damage: Game.System.thisTick(Game.System.readEvent(Damage)) }
133
+ * }, ({ events }) => { ... })
134
+ *
135
+ * runtime.tick(Game.Schedule(DealDamage, ApplyDamage)) // compiles
136
+ * runtime.tick(Game.Schedule(ApplyDamage, DealDamage)) // "ApplyDamage needs Damage from this tick, but its writer DealDamage runs after it"
137
+ *
138
+ * const AimAtNewest = Game.System("AimAtNewest", { queries: { enemies: Game.System.thisTick(Enemies) } }, ...)
139
+ * runtime.tick(Game.Schedule(SpawnWave, Game.Schedule.applyDeferred(), AimAtNewest)) // compiles
140
+ * runtime.tick(Game.Schedule(SpawnWave, AimAtNewest)) // "AimAtNewest needs this tick's commands for queries.enemies, but SpawnWave queues them with no applyDeferred() in between"
141
+ * ```
142
+ */
143
+ export const thisTick = (read) => ({ ...read, thisTick: true });
100
144
  /**
101
145
  * Declares read access to the current committed value of a finite-state machine.
102
146
  *
@@ -129,7 +173,7 @@ export const transition = (stateMachine) => Machine.transition(stateMachine);
129
173
  * normal events: each run sees those published since its previous run.
130
174
  *
131
175
  * This is one of the clearest signs that the modeled value should be a machine
132
- * rather than a plain state descriptor.
176
+ * rather than a resource or a `Descriptor.EntityState` component.
133
177
  */
134
178
  export const readTransitionEvent = (stateMachine) => Machine.readTransitionEvent(stateMachine);
135
179
  /**
@@ -141,8 +185,9 @@ export const readTransitionEvent = (stateMachine) => Machine.readTransitionEvent
141
185
  * ticked less often than the one that removes (rendering after several fixed
142
186
  * updates) still sees every removal. A system skipped by its run conditions
143
187
  * keeps its position, like `added`/`changed`, and sees the removals when it
144
- * runs again. Each log is capped at `Runtime.streamCapacity` entries; drops
145
- * show up as `missed` reads in the debug trace. Systems usually pair this
188
+ * runs again. Each log is capped at `Runtime.streamCapacity` entries; a
189
+ * reader that missed dropped ones sees `lagged() === true` (and a `missed`
190
+ * read in the debug trace). Systems usually pair this
146
191
  * with host cleanup such as removing renderer-owned nodes. {@link readDespawned}
147
192
  * complements this for whole-entity teardown.
148
193
  *
@@ -196,8 +241,8 @@ export const readDespawned = () => ({
196
241
  * Defines a system from an explicit spec and a typed implementation.
197
242
  *
198
243
  * This is the public entrypoint for authoring systems. The implementation only
199
- * receives the capabilities declared in the spec, and the returned effect keeps
200
- * service dependencies tracked in the type system.
244
+ * receives the capabilities declared in the spec; return
245
+ * `Result.failure(error)` for an expected failure (see {@link SystemRun}).
201
246
  *
202
247
  * Use the string-name overload in normal code. The name is turned into an
203
248
  * internal ordering token automatically, so the system can participate in
@@ -265,6 +310,7 @@ export function System(name, spec, run) {
265
310
  pauseWhen: spec.pauseWhen ?? [],
266
311
  transitions: spec.transitions ?? {},
267
312
  local: spec.local,
313
+ commands: spec.commands,
268
314
  __schemaRoot: undefined
269
315
  };
270
316
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"System.js","sourceRoot":"","sources":["../src/System.ts"],"names":[],"mappings":"AA4DA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAIvC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AA4D/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAa,EACG,EAAE,CAAC,CAAC;IACpB,UAAU;CACX,CAAC,CAAA;AAkBF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,UAAa,EACI,EAAE,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM;IACZ,UAAU;CACX,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,UAAa,EACK,EAAE,CAAC,CAAC;IACtB,IAAI,EAAE,OAAO;IACb,UAAU;CACX,CAAC,CAAA;AAkBF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,UAAa,EACC,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU;CACX,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,UAAa,EACE,EAAE,CAAC,CAAC;IACnB,IAAI,EAAE,OAAO;IACb,UAAU;CACX,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,YAAe,EACS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,YAAe,EACc,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,YAAe,EACY,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,YAAe,EACiB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;AA8G9E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,UAAa,EACG,EAAE,CAAC,CAAC;IACpB,UAAU;CACX,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAW,EACa,EAAE,CAAC,CAAC;IAC5B,QAAQ;CACT,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,WAAW;CAClB,CAAC,CAAA;AA6gBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,2BAA2B,GAAG,CAClC,MAA2C,EACE,EAAE;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IACtB,MAAM,YAAY,GAAwC,EAAE,CAAA;IAC5D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,SAAQ;QAC3D,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAA0C,CAAC,CAAA;QACtE,CAAC;aAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAuC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,8BAA8B,GAAG,CACrC,SAA4B,EACiB,EAAE,CAAC,SAAS,CAAC,YAAY,CAAA;AAExE,MAAM,yBAAyB,GAAG,CAChC,IAAsC,EACO,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;IACpE,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC7C,GAAG,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC7C,GAAG,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;IACjD,GAAG,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACrD,GAAG,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IAC5D,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;CAClE,CAAC,CAAA;AAgBF,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,IAAyD,EACzD,GAA+C;IAI/C,MAAM,cAAc,GAAG;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;QACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;QAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;QAC7C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,SAAS;KAChB,CAAA;IAET,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,yBAAyB,CAAC,cAAc,CAAC;QACvD,YAAY,EAAE,SAAS;QACvB,QAAQ,EAAE;YACR,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;YACjB,IAAI;SACL;QACD,IAAI,EAAE,cAAc;QACpB,GAAG;KAC8C,CAAA;AACrD,CAAC"}
1
+ {"version":3,"file":"System.js","sourceRoot":"","sources":["../src/System.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@
5
5
  * small number of stable namespaces instead of many deep internal paths.
6
6
  */
7
7
  /**
8
- * Branding helpers for validated values.
8
+ * Branding helpers for packages that author validated value types (like
9
+ * `@typeonce/ritmo-math`). Game code validates through descriptors instead.
9
10
  */
10
11
  export * as Brand from "./Brand.ts";
11
12
  /**
@@ -17,13 +18,13 @@ export * as Decode from "./Decode.ts";
17
18
  */
18
19
  export * as Debug from "./Debug.ts";
19
20
  /**
20
- * Descriptor authoring helpers.
21
+ * Simulation time: the fixed step, the clock resource, durations in whole steps.
21
22
  */
22
- export * as Descriptor from "./Descriptor.ts";
23
+ export * as Clock from "./Clock.ts";
23
24
  /**
24
- * Reusable validated authored definitions.
25
+ * Descriptor authoring helpers.
25
26
  */
26
- export * as Definition from "./Definition.ts";
27
+ export * as Descriptor from "./Descriptor.ts";
27
28
  /**
28
29
  * Entity identity and proof helpers.
29
30
  */
@@ -33,9 +34,9 @@ export * as Entity from "./Entity.ts";
33
34
  */
34
35
  export * as EntityScope from "./EntityScope.ts";
35
36
  /**
36
- * Minimal effect-style computation type.
37
+ * The host's wall clock as an injected contract (`standard`, `test()`).
37
38
  */
38
- export * as Fx from "./Fx.ts";
39
+ export * as HostClock from "./HostClock.ts";
39
40
  /**
40
41
  * Read-only typed world projections.
41
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}