@typeonce/ritmo 0.8.0 → 0.9.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 (117) hide show
  1. package/README.md +3 -2
  2. package/dist/Clock.d.ts +19 -4
  3. package/dist/Clock.d.ts.map +1 -1
  4. package/dist/Clock.js +18 -2
  5. package/dist/Clock.js.map +1 -1
  6. package/dist/Command.d.ts +101 -45
  7. package/dist/Command.d.ts.map +1 -1
  8. package/dist/Command.js +22 -4
  9. package/dist/Command.js.map +1 -1
  10. package/dist/Debug.d.ts +66 -8
  11. package/dist/Debug.d.ts.map +1 -1
  12. package/dist/Descriptor.d.ts +27 -9
  13. package/dist/Descriptor.d.ts.map +1 -1
  14. package/dist/Descriptor.js +13 -9
  15. package/dist/Descriptor.js.map +1 -1
  16. package/dist/Entity.d.ts +15 -8
  17. package/dist/Entity.d.ts.map +1 -1
  18. package/dist/Entity.js.map +1 -1
  19. package/dist/FixedLoop.d.ts +106 -0
  20. package/dist/FixedLoop.d.ts.map +1 -0
  21. package/dist/FixedLoop.js +97 -0
  22. package/dist/FixedLoop.js.map +1 -0
  23. package/dist/HostClock.d.ts +1 -1
  24. package/dist/HostClock.d.ts.map +1 -1
  25. package/dist/HostClock.js +2 -1
  26. package/dist/HostClock.js.map +1 -1
  27. package/dist/Machine.d.ts +4 -1
  28. package/dist/Machine.d.ts.map +1 -1
  29. package/dist/Machine.js +4 -1
  30. package/dist/Machine.js.map +1 -1
  31. package/dist/Query.d.ts +52 -10
  32. package/dist/Query.d.ts.map +1 -1
  33. package/dist/Query.js +2 -1
  34. package/dist/Query.js.map +1 -1
  35. package/dist/Relation.d.ts +5 -14
  36. package/dist/Relation.d.ts.map +1 -1
  37. package/dist/Relation.js +0 -32
  38. package/dist/Relation.js.map +1 -1
  39. package/dist/Runtime.d.ts +58 -15
  40. package/dist/Runtime.d.ts.map +1 -1
  41. package/dist/Runtime.js +288 -70
  42. package/dist/Runtime.js.map +1 -1
  43. package/dist/Schedule.d.ts +24 -15
  44. package/dist/Schedule.d.ts.map +1 -1
  45. package/dist/Schedule.js +2 -1
  46. package/dist/Schedule.js.map +1 -1
  47. package/dist/Schema.d.ts +98 -29
  48. package/dist/Schema.d.ts.map +1 -1
  49. package/dist/Schema.js +4 -4
  50. package/dist/Schema.js.map +1 -1
  51. package/dist/Snapshot.d.ts +76 -1
  52. package/dist/Snapshot.d.ts.map +1 -1
  53. package/dist/Snapshot.js +42 -1
  54. package/dist/Snapshot.js.map +1 -1
  55. package/dist/System.d.ts +68 -24
  56. package/dist/System.d.ts.map +1 -1
  57. package/dist/System.js.map +1 -1
  58. package/dist/index.d.ts +4 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +4 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/internal/cells.d.ts +2 -0
  63. package/dist/internal/cells.d.ts.map +1 -1
  64. package/dist/internal/cells.js +34 -8
  65. package/dist/internal/cells.js.map +1 -1
  66. package/dist/internal/debug.d.ts +3 -0
  67. package/dist/internal/debug.d.ts.map +1 -1
  68. package/dist/internal/debug.js +83 -15
  69. package/dist/internal/debug.js.map +1 -1
  70. package/dist/internal/fragments.d.ts +2 -6
  71. package/dist/internal/fragments.d.ts.map +1 -1
  72. package/dist/internal/fragments.js +25 -2
  73. package/dist/internal/fragments.js.map +1 -1
  74. package/dist/internal/game.d.ts +2 -0
  75. package/dist/internal/game.d.ts.map +1 -1
  76. package/dist/internal/game.js +16 -3
  77. package/dist/internal/game.js.map +1 -1
  78. package/dist/internal/queries.d.ts.map +1 -1
  79. package/dist/internal/queries.js +27 -18
  80. package/dist/internal/queries.js.map +1 -1
  81. package/dist/internal/relations.d.ts +10 -0
  82. package/dist/internal/relations.d.ts.map +1 -0
  83. package/dist/internal/relations.js +32 -0
  84. package/dist/internal/relations.js.map +1 -0
  85. package/dist/internal/streams.d.ts +2 -0
  86. package/dist/internal/streams.d.ts.map +1 -1
  87. package/dist/internal/streams.js +10 -0
  88. package/dist/internal/streams.js.map +1 -1
  89. package/dist/internal/world.d.ts +7 -1
  90. package/dist/internal/world.d.ts.map +1 -1
  91. package/dist/internal/world.js +53 -3
  92. package/dist/internal/world.js.map +1 -1
  93. package/package.json +1 -1
  94. package/src/Clock.ts +29 -4
  95. package/src/Command.ts +161 -67
  96. package/src/Debug.ts +61 -9
  97. package/src/Descriptor.ts +43 -17
  98. package/src/Entity.ts +16 -9
  99. package/src/FixedLoop.ts +218 -0
  100. package/src/HostClock.ts +2 -1
  101. package/src/Machine.ts +4 -1
  102. package/src/Query.ts +47 -10
  103. package/src/Relation.ts +5 -67
  104. package/src/Runtime.ts +345 -85
  105. package/src/Schedule.ts +31 -19
  106. package/src/Schema.ts +118 -35
  107. package/src/Snapshot.ts +90 -2
  108. package/src/System.ts +76 -23
  109. package/src/index.ts +4 -0
  110. package/src/internal/cells.ts +42 -10
  111. package/src/internal/debug.ts +84 -15
  112. package/src/internal/fragments.ts +23 -3
  113. package/src/internal/game.ts +19 -3
  114. package/src/internal/queries.ts +28 -2
  115. package/src/internal/relations.ts +52 -0
  116. package/src/internal/streams.ts +11 -0
  117. package/src/internal/world.ts +60 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"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"}
package/dist/Schema.d.ts CHANGED
@@ -53,6 +53,7 @@ import type * as Command from "./Command.ts";
53
53
  import type { ConstructedDescriptor, Descriptor } from "./Descriptor.ts";
54
54
  import type * as Entity from "./Entity.ts";
55
55
  import type * as EntityScope from "./EntityScope.ts";
56
+ import { type exitApplyDeferredMessage } from "./internal/game.ts";
56
57
  import type * as Condition from "./Condition.ts";
57
58
  import type * as Inspector from "./Inspector.ts";
58
59
  import type * as Machine from "./Machine.ts";
@@ -64,11 +65,28 @@ import type * as Result from "./Result.ts";
64
65
  import type * as Debug from "./Debug.ts";
65
66
  import type * as Runtime from "./Runtime.ts";
66
67
  import type * as Schedule from "./Schedule.ts";
68
+ import type * as Snapshot from "./Snapshot.ts";
67
69
  import type * as System from "./System.ts";
68
70
  /**
69
71
  * A mapping from schema keys to nominal descriptors.
70
72
  */
71
73
  export type Registry = Record<string, Descriptor.Any>;
74
+ /** At least one: a permission that names nothing allows nothing. */
75
+ type NonEmpty<T> = readonly [T, ...ReadonlyArray<T>];
76
+ type Article<Kind extends string> = Kind extends "event" ? "an" : "a";
77
+ /**
78
+ * Rejects descriptors of another kind in a fragment's `components`,
79
+ * `resources`, or `events`, naming where each belongs.
80
+ */
81
+ type RegistryOfKind<R, Expected extends string> = {
82
+ readonly [K in keyof R]: R[K] extends {
83
+ readonly kind: Expected;
84
+ } ? unknown : R[K] extends {
85
+ readonly kind: infer Actual extends string;
86
+ } ? {
87
+ readonly __fixSchema__: Actual extends "service" ? `${K & string} is a service, not ${Article<Expected>} ${Expected}: provide services to Game.Runtime.make({ services }) instead of registering them` : `${K & string} is ${Article<Actual>} ${Actual}, not ${Article<Expected>} ${Expected}: move it to ${Actual}s: { ... }`;
88
+ } : unknown;
89
+ };
72
90
  /**
73
91
  * A closed schema: the components, resources, events, and relations a world
74
92
  * may contain, and the component requirements (`Schema.requires`) every
@@ -117,6 +135,10 @@ type PairsOf<R> = R extends ComponentRequirement<infer Pairs> ? Pairs : never;
117
135
  * Requirements chain (`A` requires `B`, `B` requires `C`) and may name
118
136
  * components of other fragments of the same `Schema.bind`.
119
137
  *
138
+ * A saved component cannot require a transient one (`Schema.bind` rejects
139
+ * it): a restore would bring the requirer back without it. A transient
140
+ * requirer may require a transient component.
141
+ *
120
142
  * @example
121
143
  * ```ts
122
144
  * const Gameplay = Schema.fragment({
@@ -183,15 +205,21 @@ export type ValidateFragments<Fragments extends ReadonlyArray<Schema.Any>> = [
183
205
  readonly __schemaConflicts__: FragmentConflicts<Fragments>;
184
206
  };
185
207
  type UnregisteredRequirements<S extends Schema.Any> = Exclude<Schema.Requires<S>[0] | Schema.Requires<S>[1], Schema.ComponentDescriptor<S>["name"]>;
208
+ type TransientComponentName<S extends Schema.Any> = Extract<Schema.ComponentDescriptor<S>, {
209
+ readonly transient: true;
210
+ }>["name"];
211
+ /** One message per saved requirer that requires a transient component. */
212
+ type TransientRequirements<S extends Schema.Any, Pairs = Schema.Requires<S>> = Pairs extends readonly [infer From extends string, infer To extends string] ? To extends TransientComponentName<S> ? From extends TransientComponentName<S> ? never : `${From} requires ${To}, which is transient and not saved: make ${From} transient too, or give ${To} a constructor` : never : never;
186
213
  /**
187
214
  * Rejects requirements naming a component the bound schema does not
188
215
  * register. Checked at `bind`, so a fragment may require a component another
189
- * fragment registers. Erased schemas (`Schema.Any`) are checked by `bind` at
190
- * runtime instead.
216
+ * fragment registers. Also rejects a saved component requiring a transient
217
+ * one (a restore would bring the requirer back without it). Erased schemas
218
+ * (`Schema.Any`) are checked by `bind` at runtime instead.
191
219
  */
192
- export type ValidateRequires<S extends Schema.Any> = [
193
- UnregisteredRequirements<S>
194
- ] extends [never] ? unknown : string extends Schema.Requires<S>[1] ? unknown : {
220
+ export type ValidateRequires<S extends Schema.Any> = string extends Schema.Requires<S>[1] ? unknown : [UnregisteredRequirements<S>] extends [never] ? [TransientRequirements<S>] extends [never] ? unknown : {
221
+ readonly __schemaRequires__: TransientRequirements<S>;
222
+ } : {
195
223
  readonly __schemaRequires__: `${UnregisteredRequirements<S>} is named in Schema.requires(...) but no fragment registers it: add it to a fragment's components`;
196
224
  };
197
225
  /**
@@ -210,10 +238,6 @@ export type ValidateRequires<S extends Schema.Any> = [
210
238
  * ```
211
239
  */
212
240
  export declare const defineRoot: <const Name extends string>(name: Name) => RootToken<Name>;
213
- /**
214
- * Creates an empty schema.
215
- */
216
- export declare const empty: () => SchemaDefinition;
217
241
  /**
218
242
  * Creates a schema fragment.
219
243
  *
@@ -231,9 +255,9 @@ export declare const empty: () => SchemaDefinition;
231
255
  * ```
232
256
  */
233
257
  export declare const fragment: <const Components extends Registry = {}, const Resources extends Registry = {}, const Events extends Registry = {}, const Relations extends Record<string, Relation.Relation.Any> = {}, const Requires extends ReadonlyArray<ComponentRequirement> = readonly []>(definition: {
234
- readonly components?: Components;
235
- readonly resources?: Resources;
236
- readonly events?: Events;
258
+ readonly components?: Components & RegistryOfKind<Components, "component">;
259
+ readonly resources?: Resources & RegistryOfKind<Resources, "resource">;
260
+ readonly events?: Events & RegistryOfKind<Events, "event">;
237
261
  readonly relations?: Relations;
238
262
  readonly requires?: Requires;
239
263
  } & ValidateFragments<[SchemaDefinition<Components, Resources, Events, Relations>]>) => SchemaDefinition<Components, Resources, Events, Relations, PairsOf<Requires[number]>>;
@@ -296,7 +320,17 @@ interface BoundInspectorAccess<S extends Schema.Any, Root> extends Inspector.Ins
296
320
  }
297
321
  type BoundScheduleEntry<S extends Schema.Any, Root> = Schema.BoundSystem<S, Root, any, any> | Schedule.ApplyDeferredStep | Schedule.ApplyStateTransitionsStep<any, Root> | Schedule.ScheduleDefinition<S, any, Root, any, any, Schedule.AnyScheduleOrder>;
298
322
  type BoundTransitionEntry<S extends Schema.Any, Root> = Exclude<BoundScheduleEntry<S, Root>, Schedule.ApplyStateTransitionsStep<any, Root>>;
299
- type BoundTransitionScheduleResult<S extends Schema.Any, Root, M extends Schema.BoundStateMachine<Root>, Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>> = Machine.TransitionScheduleDefinition<S, M, Schedule.CompositionExactRequirements<Entries>, Root, Schedule.CompositionFailure<Entries>, Schedule.CompositionOrder<Entries>>;
323
+ /**
324
+ * Rejects `applyDeferred()` in an exit phase (`onExit`, `onTransition`): the
325
+ * phase rolls back as one when a system in it fails, which applied commands
326
+ * could not. Nested schedules are checked when the schedule is built.
327
+ */
328
+ type NoApplyDeferredInExit<Entries extends ReadonlyArray<unknown>> = [
329
+ Extract<Entries[number], Schedule.ApplyDeferredStep>
330
+ ] extends [never] ? unknown : {
331
+ readonly __fixTransition__: typeof exitApplyDeferredMessage;
332
+ };
333
+ type BoundTransitionScheduleResult<S extends Schema.Any, Root, M extends Schema.BoundStateMachine<Root>, Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>> = Machine.TransitionScheduleDefinition<S, M, Schedule.CompositionExactRequirements<Entries> | M, Root, Schedule.CompositionFailure<Entries>, Schedule.CompositionOrder<Entries>>;
300
334
  type BoundTransitionBundleInput<S extends Schema.Any, Root> = Schema.BoundTransitionSchedule<S, Root, any, any, any> | Schema.BoundTransitionBundle<S, Root, any, any, any>;
301
335
  type BoundTransitionBundleResult<S extends Schema.Any, Root, Entries extends ReadonlyArray<BoundTransitionBundleInput<S, Root>>> = Schedule.TransitionBundleDefinition<S, ReadonlyArray<Schedule.FlattenTransitionEntries<Entries>[number]>, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Root, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Schedule.TransitionBundleFailure<Schedule.FlattenTransitionEntries<Entries>>, Schedule.CompositionOrder<Entries>>;
302
336
  /**
@@ -388,12 +422,19 @@ export declare namespace Schema {
388
422
  * with an intent component that later resolution must prove.
389
423
  */
390
424
  handle: <const D extends ComponentDescriptor<S> | undefined = undefined>(target: Entity.HandleTarget<S, Root>, intent?: D) => Entity.Handle<Root, D>;
425
+ /**
426
+ * The entity id a handle names, to compare with ids or pass where an id
427
+ * is expected (`queries.x.get(id)`), instead of storing the id beside
428
+ * the handle. Like the handle, it proves nothing about liveness:
429
+ * resolve it through a query. Two handles of the same entity are `===`.
430
+ */
431
+ id: (handle: Entity.Handle<Root, ComponentDescriptor<S> | undefined>) => Entity.EntityId<S, Root>;
391
432
  };
392
433
  readonly Query: {
393
434
  <const Selection extends Record<string, QuerySelectionAccess<S, Root>>, const With extends ReadonlyArray<ComponentDescriptor<S>> = [], const Without extends ReadonlyArray<ComponentDescriptor<S>> = [], const Filters extends ReadonlyArray<QueryModule.Filter<ComponentDescriptor<S>>> = [], const WithRelations extends ReadonlyArray<RelationDescriptor<S>> = [], const WithoutRelations extends ReadonlyArray<RelationDescriptor<S>> = [], const WithRelated extends ReadonlyArray<RelationDescriptor<S>> = [], const WithoutRelated extends ReadonlyArray<RelationDescriptor<S>> = []>(spec: {
394
435
  readonly selection: Selection;
395
436
  readonly with?: With;
396
- readonly without?: Without;
437
+ readonly without?: Without & QueryModule.ExclusionsPossible<Selection, With, Without, Filters>;
397
438
  readonly filters?: Filters;
398
439
  readonly withRelations?: WithRelations;
399
440
  readonly withoutRelations?: WithoutRelations;
@@ -422,10 +463,15 @@ export declare namespace Schema {
422
463
  * Adds entries to a draft (a value not yet spawned). Use
423
464
  * `commands.insert` for an entity that already exists.
424
465
  */
425
- extend: <P extends Entity.ComponentProof, const Entries extends ReadonlyArray<Command.SpawnEntry<S>>>(draft: Entity.EntityDraft<S, P, Root>, ...entries: Entries) => Command.DraftFor<S, Entries, P, Root>;
426
- entry: <D extends ComponentDescriptor<S>>(descriptor: D, value: Descriptor.Value<D>) => Command.Entry<D>;
466
+ extend: <P extends Entity.ComponentProof, const Entries extends ReadonlyArray<Command.SpawnEntry<S>>, Relates = never>(draft: Entity.EntityDraft<S, P, Root, Relates>, ...entries: Entries) => Command.DraftFor<S, Entries, P, Root, Relates>;
467
+ entry: <D extends ComponentDescriptor<S>>(descriptor: D, value: QueryModule.ReadonlyValue<Descriptor.Value<D>>) => Command.Entry<D>;
427
468
  entryRaw: <D extends Extract<ComponentDescriptor<S>, ConstructedDescriptor<"component", string, any, any, any>>>(descriptor: D, raw: Descriptor.Raw<D>) => Result.Result<Command.Entry<D>, Descriptor.ConstructionError<D>>;
428
- relate: <P extends Entity.ComponentProof, R extends RelationDescriptor<S>>(draft: Entity.EntityDraft<S, P, Root>, relation: R, target: Entity.EntityId<S, Root>) => Entity.EntityDraft<S, P, Root>;
469
+ /**
470
+ * Stages a relation on a draft, created with the spawn. Spawning the
471
+ * draft needs the relation in `Game.System.relates(...)`, like
472
+ * `commands.relate`.
473
+ */
474
+ relate: <P extends Entity.ComponentProof, R extends RelationDescriptor<S>, Relates = never>(draft: Entity.EntityDraft<S, P, Root, Relates>, relation: R, target: Entity.EntityId<S, Root>) => Entity.EntityDraft<S, P, Root, Relates | R>;
429
475
  };
430
476
  /**
431
477
  * Declares one game-wide mode (menu, playing, paused): queued with
@@ -445,6 +491,12 @@ export declare namespace Schema {
445
491
  * returns a `SubStateInactive` failure. So `inState(Sub, x)` alone
446
492
  * implies the parent's state.
447
493
  *
494
+ * The sub-state enters together with the parent's commit, before any
495
+ * `onEnter` schedule runs: the parent's `onEnter` systems already see its
496
+ * value, its `despawnOnEnter` scopes are cleared before they spawn, and
497
+ * a failing `onEnter` leaves it entered. Its own `onEnter` schedules
498
+ * run after the parent's.
499
+ *
448
500
  * Use a second top-level machine instead when the two modes are
449
501
  * independent (each keeps its value whatever the other does).
450
502
  *
@@ -503,17 +555,20 @@ export declare namespace Schema {
503
555
  */
504
556
  commands: typeof Command.commands;
505
557
  /** Allows spawning drafts whose components are all among these and what they require (`Schema.requires`); see `Command.spawns`. */
506
- spawns: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"spawns", Components[number] | Command.RequiredDescriptors<S, Components[number]["name"]>>;
558
+ spawns: <const Components extends NonEmpty<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"spawns", Components[number] | Command.RequiredDescriptors<S, Components[number]["name"]>>;
507
559
  /** Allows `insert` (add or replace at the next `applyDeferred()`) of these; see `Command.inserts`. */
508
- inserts: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"inserts", Components[number]>;
560
+ inserts: <const Components extends NonEmpty<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"inserts", Components[number]>;
509
561
  /** Allows `remove` of these. */
510
- removes: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"removes", Components[number]>;
562
+ removes: <const Components extends NonEmpty<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"removes", Components[number]>;
511
563
  /** Allows `despawn` of entities a query proves have one of these; see `Command.despawns`. */
512
- despawns: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"despawns", Components[number]>;
564
+ despawns: <const Components extends NonEmpty<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"despawns", Components[number]>;
513
565
  /** Allows `despawnScope` of this scope. */
514
566
  despawnsScope: <const Scope extends EntityScope.EntityScope<string, Root>>(scope: Scope) => Command.Permission<"despawnsScope", Scope>;
515
- /** Allows `relate`, `unrelate`, and `reorderChildren` of these relations. */
516
- relates: <const Relations extends ReadonlyArray<RelationDescriptor<S>>>(...relations: Relations) => Command.Permission<"relates", Relations[number]>;
567
+ /**
568
+ * Allows `relate`, `unrelate`, and `reorderChildren` of these relations,
569
+ * and spawning drafts that stage them with `Game.Command.relate(...)`.
570
+ */
571
+ relates: <const Relations extends NonEmpty<RelationDescriptor<S>>>(...relations: Relations) => Command.Permission<"relates", Relations[number]>;
517
572
  };
518
573
  readonly Schedule: {
519
574
  /**
@@ -523,12 +578,23 @@ export declare namespace Schema {
523
578
  <const Entries extends ReadonlyArray<BoundScheduleEntry<S, Root>>>(...entries: Entries): Schedule.AnonymousScheduleBuildFor<S, Entries, Root>;
524
579
  transitions: <const Entries extends ReadonlyArray<BoundTransitionBundleInput<S, Root>>>(...entries: Entries) => BoundTransitionBundleResult<S, Root, Entries>;
525
580
  onEnter: <M extends BoundStateMachine<Root>, const Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>>(machine: M, state: Machine.StateMachine.Value<M>, plan: readonly [...Entries]) => BoundTransitionScheduleResult<S, Root, M, Entries>;
526
- onExit: <M extends BoundStateMachine<Root>, const Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>>(machine: M, state: Machine.StateMachine.Value<M>, plan: readonly [...Entries]) => BoundTransitionScheduleResult<S, Root, M, Entries>;
527
- onTransition: <M extends BoundStateMachine<Root>, const Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>>(machine: M, transition: readonly [Machine.StateMachine.Value<M>, Machine.StateMachine.Value<M>], plan: readonly [...Entries]) => BoundTransitionScheduleResult<S, Root, M, Entries>;
581
+ /**
582
+ * Systems run when `machine` leaves `state`. The exit phase of one
583
+ * transition (the exit schedules of the sub-states it ends, then of
584
+ * `state`, then `onTransition`) is one transaction: when a system in it
585
+ * fails, everything the phase did is undone (except `local`) and the
586
+ * transition stays queued, so the next attempt starts from the same
587
+ * state. Its commands are applied at the next `applyDeferred()` after
588
+ * the marker, so it cannot contain `applyDeferred()` itself.
589
+ */
590
+ onExit: <M extends BoundStateMachine<Root>, const Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>>(machine: M, state: Machine.StateMachine.Value<M>, plan: readonly [...Entries] & NoApplyDeferredInExit<Entries>) => BoundTransitionScheduleResult<S, Root, M, Entries>;
591
+ /** Systems run on one `[from, to]` transition, last in its exit phase (see `onExit`). */
592
+ onTransition: <M extends BoundStateMachine<Root>, const Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>>(machine: M, transition: readonly [Machine.StateMachine.Value<M>, Machine.StateMachine.Value<M>], plan: readonly [...Entries] & NoApplyDeferredInExit<Entries>) => BoundTransitionScheduleResult<S, Root, M, Entries>;
528
593
  /**
529
594
  * Builds a schedule whose systems run only while every condition
530
595
  * passes (in addition to their own `when`). Nested schedules are
531
- * gated too; marker steps still run. Gated systems drop the events
596
+ * gated too; marker steps still run, and so do the transition schedules
597
+ * an `applyStateTransitions(bundle)` in the group runs. Gated systems drop the events
532
598
  * published while gated; use `pauseWhen` to keep them. For one system,
533
599
  * use `when` in its spec.
534
600
  */
@@ -546,15 +612,18 @@ export declare namespace Schema {
546
612
  };
547
613
  readonly Runtime: {
548
614
  /**
549
- * Builds a runtime. Returns a `Result` exactly when a provided resource
550
- * goes through a constructed descriptor and can fail validation.
615
+ * Builds a runtime. Always returns a `Result`: a `Success` (read
616
+ * `.value`) when nothing provided can fail, and a `Result` to check
617
+ * when a provided resource goes through a constructed descriptor.
551
618
  */
552
619
  make: <const ProvidedServices extends Runtime.RuntimeServices<any>, const Resources extends Runtime.RuntimeResources<S> = {}, const ProvidedMachines extends Runtime.RuntimeMachines<any> = Runtime.RuntimeMachines<{}>, const Enabled extends Debug.Option | undefined = undefined>(options: {
553
620
  readonly services: ProvidedServices;
554
- readonly resources?: Resources;
621
+ readonly resources?: Resources & Runtime.ExactResources<S, Resources>;
555
622
  readonly machines?: ProvidedMachines;
556
623
  /** Attaches a `debug` handle to the runtime; see the `Debug` module. */
557
624
  readonly debug?: Enabled;
625
+ /** The game's save migrations (`Snapshot.migrations`): `restore` upgrades older saves with them. */
626
+ readonly saves?: Snapshot.Migrations;
558
627
  }) => Runtime.MakeRuntimeResult<S, RuntimeServicesOf<ProvidedServices>, Resources, Root, RuntimeMachinesOf<ProvidedMachines>, Enabled>;
559
628
  service: typeof Runtime.service;
560
629
  services: typeof Runtime.services;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"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"}
package/dist/Schema.js CHANGED
@@ -15,6 +15,10 @@ import { makeGame } from "./internal/game.js";
15
15
  * Requirements chain (`A` requires `B`, `B` requires `C`) and may name
16
16
  * components of other fragments of the same `Schema.bind`.
17
17
  *
18
+ * A saved component cannot require a transient one (`Schema.bind` rejects
19
+ * it): a restore would bring the requirer back without it. A transient
20
+ * requirer may require a transient component.
21
+ *
18
22
  * @example
19
23
  * ```ts
20
24
  * const Gameplay = Schema.fragment({
@@ -51,10 +55,6 @@ export const defineRoot = (name) => ({
51
55
  _Name: (_) => undefined
52
56
  }
53
57
  });
54
- /**
55
- * Creates an empty schema.
56
- */
57
- export const empty = () => emptySchema();
58
58
  /**
59
59
  * Creates a schema fragment.
60
60
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAgE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAItB,SAAY,EACZ,GAAG,QAAkB,EACwD,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE7H,MAAM,gBAAgB,GAAG,mBAA4B,CAAA;AAUrD,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CACzD,OAAO,KAAK,KAAK,QAAQ;OACtB,KAAK,KAAK,IAAI;OACd,MAAM,IAAI,KAAK;OACf,KAAK,CAAC,IAAI,KAAK,YAAY,CAAA;AAsGhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4B,IAAU,EAAmB,EAAE,CAAC,CAAC;IACrF,IAAI,EAAE,YAAY;IAClB,IAAI;IACJ,CAAC,gBAAgB,CAAC,EAAE;QAClB,KAAK,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,SAA4B;KAClD;CACF,CAAoB,CAAA;AAErB;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAqB,EAAE,CAAC,WAAW,EAAE,CAAA;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAMtB,UAMiF,EAAyF,EAAE,CAC5K,YAAY,CAAC,WAAW,EAAE,EAAE;IAC1B,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE;IACvC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;IACrC,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;IAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;IACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;CACpC,CAA0F,CAAA;AA6B7F,MAAM,UAAU,IAAI,CAAC,GAAG,IAA2C;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAsB,CAAA;IAC1F,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACrC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxF,CAAC"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAiC,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAsF5E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAItB,SAAY,EACZ,GAAG,QAAkB,EACwD,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE7H,MAAM,gBAAgB,GAAG,mBAA4B,CAAA;AAUrD,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CACzD,OAAO,KAAK,KAAK,QAAQ;OACtB,KAAK,KAAK,IAAI;OACd,MAAM,IAAI,KAAK;OACf,KAAK,CAAC,IAAI,KAAK,YAAY,CAAA;AAsHhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4B,IAAU,EAAmB,EAAE,CAAC,CAAC;IACrF,IAAI,EAAE,YAAY;IAClB,IAAI;IACJ,CAAC,gBAAgB,CAAC,EAAE;QAClB,KAAK,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,SAA4B;KAClD;CACF,CAAoB,CAAA;AAErB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAMtB,UAMiF,EAAyF,EAAE,CAC5K,YAAY,CAAC,WAAW,EAAE,EAAE;IAC1B,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE;IACvC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;IACrC,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;IAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;IACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;CACpC,CAA0F,CAAA;AA6B7F,MAAM,UAAU,IAAI,CAAC,GAAG,IAA2C;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAsB,CAAA;IAC1F,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACrC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxF,CAAC"}
@@ -24,10 +24,17 @@
24
24
  *
25
25
  * Restoring despawns every current entity and spawns the saved ones with their
26
26
  * original ids, so change detection and renderer sync see a restore as normal
27
- * despawns and spawns. Pending commands and events are dropped. Transient
27
+ * despawns and spawns. Pending commands and events emitted by systems are
28
+ * dropped; events the host sent with `runtime.send` and no system has read
29
+ * yet are kept, since they are input that has not been handled. Transient
28
30
  * components are absent from restored entities; transient resources keep their
29
31
  * current value.
30
32
  *
33
+ * When the game's save format changes, give the runtime its migrations
34
+ * (`Game.Runtime.make({ saves: Snapshot.migrations(...) })`): saves carry a
35
+ * `gameVersion`, and `restore` upgrades older ones step by step before
36
+ * validating them.
37
+ *
31
38
  * @module Snapshot
32
39
  * @docGroup runtime
33
40
  *
@@ -78,6 +85,12 @@ export interface EntitySnapshot {
78
85
  export declare const version = 2;
79
86
  export interface WorldSnapshot {
80
87
  readonly version: typeof version;
88
+ /**
89
+ * The game's own save version: the last `Snapshot.migration` the runtime
90
+ * that wrote it was given (0 without migrations, and for saves written
91
+ * before game versions existed).
92
+ */
93
+ readonly gameVersion: number;
81
94
  /** The next id the runtime will allocate. */
82
95
  readonly nextEntity: number;
83
96
  readonly entities: ReadonlyArray<EntitySnapshot>;
@@ -103,6 +116,12 @@ export type RestoreError = {
103
116
  } | {
104
117
  readonly _tag: "UnsupportedVersion";
105
118
  readonly version: unknown;
119
+ }
120
+ /** A save written by a newer game than this runtime's migrations reach. */
121
+ | {
122
+ readonly _tag: "NewerGameVersion";
123
+ readonly gameVersion: number;
124
+ readonly latest: number;
106
125
  } | {
107
126
  readonly _tag: "UnknownComponent";
108
127
  readonly entityId: number;
@@ -152,6 +171,11 @@ export type RestoreError = {
152
171
  readonly _tag: "DuplicateEntity";
153
172
  readonly entityId: number;
154
173
  }
174
+ /** A scope name that no `Game.EntityScope(...)` of this game defines. */
175
+ | {
176
+ readonly _tag: "UnknownScope";
177
+ readonly name: string;
178
+ }
155
179
  /** A scope member that is not a saved entity, or is already in another scope. */
156
180
  | {
157
181
  readonly _tag: "InvalidScope";
@@ -166,5 +190,56 @@ export type RestoreError = {
166
190
  * checked against the schema by the runtime.
167
191
  */
168
192
  export declare const parse: (data: unknown) => Result.Result<WorldSnapshot, RestoreError>;
193
+ /**
194
+ * One step of a game's save format: turns a save of version `to - 1` into
195
+ * version `to`. A pure function on the save's plain data, tested like one.
196
+ */
197
+ export interface Migration<To extends number = number> {
198
+ readonly to: To;
199
+ readonly migrate: (save: WorldSnapshot) => WorldSnapshot;
200
+ }
201
+ /** A game's save migrations, given to `Game.Runtime.make({ saves })`. Built with {@link migrations}. */
202
+ export interface Migrations<Latest extends number = number> {
203
+ readonly kind: "SnapshotMigrations";
204
+ /** The game version `snapshot()` writes. */
205
+ readonly latest: Latest;
206
+ readonly steps: ReadonlyArray<Migration>;
207
+ }
208
+ /**
209
+ * Declares the step that upgrades saves to game version `to` (from `to - 1`).
210
+ *
211
+ * @example
212
+ * ```ts
213
+ * Snapshot.migration(2, (save) => ({ ...save, resources: { ...save.resources, "Town/Gold": 0 } }))
214
+ * ```
215
+ */
216
+ export declare const migration: <const To extends number>(to: To, migrate: (save: WorldSnapshot) => WorldSnapshot) => Migration<To>;
217
+ type Last<Steps> = Steps extends readonly [...Array<unknown>, infer L extends Migration] ? L["to"] : number;
218
+ /** `unknown` when the steps are numbered 1, 2, 3, ... in order; otherwise the message naming the misplaced one. */
219
+ type Consecutive<Steps, Count extends Array<0> = []> = Steps extends readonly [infer Head extends Migration, ...infer Tail] ? number extends Head["to"] ? unknown : Head["to"] extends [...Count, 0]["length"] ? Consecutive<Tail, [...Count, 0]> : {
220
+ readonly __fixMigrations__: `migration ${Head["to"]} is listed where migration ${[...Count, 0]["length"]} belongs: number migrations 1, 2, 3, ... in order`;
221
+ } : unknown;
222
+ /**
223
+ * A game's save migrations, numbered 1, 2, 3, ... in order (checked at
224
+ * compile time for literal numbers, and at runtime). Pass them to
225
+ * `Game.Runtime.make({ saves })`: `snapshot()` then writes the last number as
226
+ * the save's `gameVersion`, and `restore(data)` runs every step after the
227
+ * save's version, in order, before validating it as usual. A save newer than
228
+ * the last step fails with `NewerGameVersion`. Use it instead of editing raw
229
+ * save data before `restore`.
230
+ *
231
+ * @example
232
+ * ```ts
233
+ * const runtime = Game.Runtime.make({
234
+ * services,
235
+ * saves: Snapshot.migrations(
236
+ * Snapshot.migration(1, (save) => ({ ...save, scopes: {} })),
237
+ * Snapshot.migration(2, renameGold)
238
+ * )
239
+ * }).value
240
+ * runtime.restore(raw)
241
+ * ```
242
+ */
243
+ export declare const migrations: <const Steps extends readonly [Migration, ...Array<Migration>]>(...steps: Steps & Consecutive<Steps>) => Migrations<Last<Steps>>;
169
244
  export {};
170
245
  //# sourceMappingURL=Snapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Snapshot.d.ts","sourceRoot":"","sources":["../src/Snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Snapshot.d.ts","sourceRoot":"","sources":["../src/Snapshot.ts"],"names":[],"mappings":"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"}