@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/Command.d.ts CHANGED
@@ -108,7 +108,7 @@ type EntryOf<D> = D extends Descriptor<"component", string, any> ? Entry<D> : ne
108
108
  export type SchemaEntry<S extends Schema.Any> = EntryOf<SchemaComponentDescriptor<S>>;
109
109
  /**
110
110
  * One entry accepted by `spawn(...)` and `insert(...)`: a plain descriptor/value
111
- * pair, or a `Result` of one (from `entryRaw(...)` or `entryResult(...)`).
111
+ * pair, or a `Result` of one (from `entryRaw(...)`).
112
112
  */
113
113
  export type SpawnEntry<S extends Schema.Any> = SchemaEntry<S> | Result.Result<SchemaEntry<S>, any>;
114
114
  type EntryValue<T> = [
@@ -117,10 +117,14 @@ type EntryValue<T> = [
117
117
  /**
118
118
  * Folds entries into the component proof of the resulting draft.
119
119
  */
120
- export type FoldEntries<Entries extends ReadonlyArray<SpawnEntry<any>>, P extends Entity.ComponentProof = {}> = Entries extends readonly [
120
+ export type FoldEntries<Entries extends ReadonlyArray<SpawnEntry<any>>, P extends Entity.ComponentProof = {}> = number extends Entries["length"] ? P & MaybeEntries<EntryValue<Entries[number]>> : Entries extends readonly [
121
121
  infer Head extends SpawnEntry<any>,
122
122
  ...infer Tail extends Array<SpawnEntry<any>>
123
123
  ] ? FoldEntries<Tail, Draft.InsertEntry<P, EntryValue<Head>>> : P;
124
+ /** The proof of entries that may each be present: every component they can hold, optional. */
125
+ type MaybeEntries<Entry> = {
126
+ readonly [E in Entry as E extends readonly [infer D extends Descriptor<"component", string, any>, unknown] ? Descriptor.Name<D> : never]?: E extends readonly [infer D extends Descriptor<"component", string, any>, unknown] ? Descriptor.Value<D> : never;
127
+ };
124
128
  /**
125
129
  * Per-entry failures, aligned with the entries: `null` for entries that
126
130
  * succeeded or could not fail.
@@ -201,13 +205,15 @@ export interface InternalWorld<S extends Schema.Any> {
201
205
  */
202
206
  export declare const entry: <D extends Descriptor<"component", string, any>>(descriptor: D, value: Descriptor.Value<D>) => Entry<D>;
203
207
  /**
204
- * Lifts an already validated value into an entry result, keeping the failure
205
- * visible to `spawn(...)` / `insert(...)`.
206
- */
207
- export declare const entryResult: <D extends Descriptor<"component", string, any>, Error>(descriptor: D, result: Result.Result<Descriptor.Value<D>, Error>) => Result.Result<Entry<D>, Error>;
208
- /**
209
- * Validates raw input through a constructed descriptor and returns an entry
210
- * result.
208
+ * Validates raw input through a constructed descriptor's own validator and
209
+ * returns an entry result for `spawn(...)` / `insert(...)`.
210
+ *
211
+ * This is the one way to put unvalidated data on an entity: the descriptor
212
+ * owns its validator (`Descriptor.ConstructedComponent(...)`, built with
213
+ * `Decode` or `Descriptor.fromStandardSchema`). Values that are already
214
+ * valid use a plain `[Descriptor, value]` entry instead. To validate authored
215
+ * constants once at module load, call the constructor (`Vector2.result(...)`)
216
+ * and keep the carried value.
211
217
  *
212
218
  * @example
213
219
  * ```ts
@@ -221,11 +227,14 @@ export declare const entryResult: <D extends Descriptor<"component", string, any
221
227
  */
222
228
  export declare const entryRaw: <D extends DescriptorModule.ConstructedDescriptor<"component", string, any, any, any>>(descriptor: D, raw: Descriptor.Raw<D>) => Result.Result<Entry<D>, Descriptor.ConstructionError<D>>;
223
229
  /**
224
- * Adds entries to a draft. Plain entries return the new draft; if any entry is
225
- * a `Result`, the draft is returned as a `Result` whose error lists every
226
- * entry's failure (or `null`).
230
+ * Adds entries to a draft, a value not yet spawned. Plain entries return the
231
+ * new draft; if any entry is a `Result`, the draft is returned as a `Result`
232
+ * whose error lists every entry's failure (or `null`).
233
+ *
234
+ * Use this while building what a spawn will hold. Use `commands.insert` to
235
+ * add or replace components on an entity that already exists.
227
236
  */
228
- export declare const insert: <S extends Schema.Any, P extends Entity.ComponentProof, Root, const Entries extends ReadonlyArray<SpawnEntry<S>>>(draft: Entity.EntityDraft<S, P, Root>, ...entries: Entries) => DraftFor<S, Entries, P, Root>;
237
+ export declare const extend: <S extends Schema.Any, P extends Entity.ComponentProof, Root, const Entries extends ReadonlyArray<SpawnEntry<S>>>(draft: Entity.EntityDraft<S, P, Root>, ...entries: Entries) => DraftFor<S, Entries, P, Root>;
229
238
  /**
230
239
  * Starts a staged entity from component entries.
231
240
  *
@@ -250,58 +259,173 @@ export declare const spawn: <S extends Schema.Any, Root = unknown, const Entries
250
259
  * attach the relation when the spawn command is applied.
251
260
  */
252
261
  export declare const relate: <S extends Schema.Any, P extends Entity.ComponentProof, R extends Relation.Relation.Any, Root = unknown>(draft: Entity.EntityDraft<S, P, Root>, relation: R, target: Entity.EntityId<S, Root>) => Entity.EntityDraft<S, P, Root>;
262
+ /** One permission of `Game.System.commands(...)`: a kind of command, and what it may touch. */
263
+ export interface Permission<out Kind extends PermissionKind, out Value> {
264
+ readonly permission: Kind;
265
+ readonly values: ReadonlyArray<Value>;
266
+ }
267
+ export type PermissionKind = "spawns" | "inserts" | "removes" | "despawns" | "despawnsScope" | "relates";
268
+ type ComponentDescriptor = Descriptor<"component", string, any>;
269
+ /**
270
+ * Allows `spawn` / `spawnIn` of drafts whose components are all among `components`.
271
+ * Use it for entities the system creates; use `extend` on a draft to build one.
272
+ */
273
+ export declare const spawns: <const Components extends ReadonlyArray<ComponentDescriptor>>(...components: Components) => Permission<"spawns", Components[number]>;
274
+ /**
275
+ * Allows `insert(entity, [X, value])` with `X` among `components`: add or
276
+ * replace at the next `applyDeferred()`. To change a value now, on an entity
277
+ * you matched, write through a query (`Game.Query.write`) instead.
278
+ */
279
+ export declare const inserts: <const Components extends ReadonlyArray<ComponentDescriptor>>(...components: Components) => Permission<"inserts", Components[number]>;
280
+ /** Allows `remove(entity, X)` with `X` among `components`. */
281
+ export declare const removes: <const Components extends ReadonlyArray<ComponentDescriptor>>(...components: Components) => Permission<"removes", Components[number]>;
253
282
  /**
254
- * Public command API exposed to systems.
283
+ * Allows `despawn(entity)` where `entity` comes from a query match proving one
284
+ * of `components` (`match.entity`), never a raw id: the system can only
285
+ * despawn what it has proven is, for example, an `Enemy`.
286
+ */
287
+ export declare const despawns: <const Components extends ReadonlyArray<ComponentDescriptor>>(...components: Components) => Permission<"despawns", Components[number]>;
288
+ /** Allows `despawnScope(scope)` for this scope. */
289
+ export declare const despawnsScope: <const Scope extends EntityScope.EntityScope.Any>(scope: Scope) => Permission<"despawnsScope", Scope>;
290
+ /** Allows `relate`, `unrelate`, and `reorderChildren` for these relations. */
291
+ export declare const relates: <const Relations extends ReadonlyArray<Relation.Relation.Any>>(...relations: Relations) => Permission<"relates", Relations[number]>;
292
+ type PermissionValue<Permissions, Kind extends PermissionKind> = Permissions extends Permission<Kind, infer Value> ? Value : never;
293
+ /**
294
+ * The commands a system may queue, declared in its spec as
295
+ * `commands: Game.System.commands(...)`. Without it, the system has no
296
+ * `commands`.
297
+ */
298
+ export interface CommandAccess<out Spawns = never, out Inserts = never, out Removes = never, out Despawns = never, out Scopes = never, out Relates = never> {
299
+ readonly kind: "commands";
300
+ readonly permissions: ReadonlyArray<Permission<PermissionKind, unknown>>;
301
+ readonly __permissions?: (_: never) => readonly [Spawns, Inserts, Removes, Despawns, Scopes, Relates];
302
+ }
303
+ export declare namespace CommandAccess {
304
+ type Any = CommandAccess<any, any, any, any, any, any>;
305
+ }
306
+ /** Declares the commands a system may queue; see the permission builders. */
307
+ export declare const commands: <const Permissions extends ReadonlyArray<Permission<PermissionKind, unknown>>>(...permissions: Permissions) => CommandAccess<PermissionValue<Permissions[number], "spawns">, PermissionValue<Permissions[number], "inserts">, PermissionValue<Permissions[number], "removes">, PermissionValue<Permissions[number], "despawns">, PermissionValue<Permissions[number], "despawnsScope">, PermissionValue<Permissions[number], "relates">>;
308
+ /** The `commands` of a system that declares none. */
309
+ export type NotDeclared = "commands are not declared for this system: add commands: Game.System.commands(...) to its spec, with the permissions it needs (spawns, inserts, removes, despawns, despawnsScope, relates)";
310
+ /** A method whose permission is not declared: any call fails with an argument error naming the fix. */
311
+ type MethodNotDeclared<Method extends string, Builder extends string> = (...fix: ReadonlyArray<`${Method} is not declared in this system's commands: add Game.System.${Builder}(...) to Game.System.commands(...)`>) => never;
312
+ type Fix<Message extends string> = {
313
+ readonly __fixCommands__: Message;
314
+ };
315
+ type Names<D> = D extends {
316
+ readonly name: infer Name extends string;
317
+ } ? Name : never;
318
+ /** Every key of every member of a union of proofs (a draft with a conditional entry is a union). */
319
+ type AllKeys<P> = P extends unknown ? keyof P & string : never;
320
+ type DraftAllowed<P, Spawns> = [
321
+ Exclude<AllKeys<P>, Names<Spawns>>
322
+ ] extends [never] ? unknown : Fix<`${Exclude<AllKeys<P>, Names<Spawns>>} is not declared in this system's commands: add it to Game.System.spawns(...)`>;
323
+ type EntriesAllowed<Entries extends ReadonlyArray<readonly [ComponentDescriptor, unknown]>, Inserts> = [
324
+ Exclude<Entries[number][0], Inserts>
325
+ ] extends [never] ? unknown : Fix<`${Names<Exclude<Entries[number][0], Inserts>>} is not declared in this system's commands: add it to Game.System.inserts(...)`>;
326
+ type RemoveAllowed<D, Removes> = [
327
+ D
328
+ ] extends [Removes] ? unknown : Fix<`${Names<D>} is not declared in this system's commands: add it to Game.System.removes(...)`>;
329
+ type DespawnAllowed<E, Despawns> = E extends {
330
+ readonly kind: "EntityRef" | "EntityMut";
331
+ readonly __proves?: (_: never) => infer Proves;
332
+ } ? [Extract<Proves, Despawns>] extends [never] ? Fix<`despawn needs an entity from a query proving ${Names<Despawns>} (declared in despawns)`> : unknown : E extends {
333
+ readonly [spawnedTypeId]: (_: never) => infer Spawned;
334
+ } ? [Extract<Spawned, Names<Despawns>>] extends [never] ? Fix<`despawn needs an entity spawned with ${Names<Despawns>} (declared in despawns)`> : unknown : Fix<`despawn needs an entity from a query proving ${Names<Despawns>} (declared in despawns), not a raw id: pass match.entity`>;
335
+ declare const spawnedTypeId: unique symbol;
336
+ /**
337
+ * The id `spawn` / `spawnIn` return: an `EntityId` that also records the
338
+ * components its draft holds in every case, so the system that queued it can
339
+ * `despawn` it before the next `applyDeferred()` (no query can match it yet).
340
+ * Stored as a plain `EntityId`, it is a raw id again.
341
+ */
342
+ export type SpawnedId<S extends Schema.Any, Root, Components extends string> = Entity.EntityId<S, Root> & {
343
+ readonly [spawnedTypeId]: (_: never) => Components;
344
+ };
345
+ /** The keys every member of a union of proofs requires (what a draft holds in every case). */
346
+ type RequiredKeys<P> = P extends unknown ? {
347
+ [K in keyof P]-?: {} extends Pick<P, K> ? never : K;
348
+ }[keyof P] & string : never;
349
+ type MissingSomewhere<P, All> = P extends unknown ? Exclude<All, RequiredKeys<P>> : never;
350
+ type HeldNames<P> = Exclude<AllKeys<P>, MissingSomewhere<P, AllKeys<P>>>;
351
+ /**
352
+ * The command API a system gets for its declared permissions. Commands are
353
+ * the structural mutation entrypoint: spawns, inserts, removals, despawns,
354
+ * and relation edits. They are queued in order and applied only at the next
355
+ * `applyDeferred()` (or `applyStateTransitions(...)`) schedule step.
255
356
  *
256
- * Commands are the structural mutation entrypoint: spawns, inserts, removals,
257
- * despawns, and relation edits. They are queued in order and applied only at
258
- * the next `applyDeferred()` (or `applyStateTransitions(...)`) schedule step.
357
+ * Each method exists only with its permission, and only for what it names:
358
+ * `spawn` needs `Game.System.spawns(...)` listing every component of the
359
+ * draft, `insert` needs `inserts`, `remove` needs `removes`, `despawn` needs
360
+ * `despawns` and an entity from a query proving one of them, `despawnScope`
361
+ * needs `despawnsScope`, and relation edits need `relates`.
259
362
  *
260
363
  * Resource and event writes are not commands: they go through the
261
364
  * `writeResource(...)` / `writeEvent(...)` access a system declares.
262
365
  */
263
- export interface CommandsApi<S extends Schema.Any, Root = unknown> {
366
+ export interface CommandsApi<S extends Schema.Any, Root = unknown, Spawns = never, Inserts = never, Removes = never, Despawns = never, Scopes = never, Relates = never> {
264
367
  /**
265
368
  * Queues a staged entity for spawning and returns its stable runtime id.
266
369
  */
267
- readonly spawn: <P extends Entity.ComponentProof>(draft: Entity.EntityDraft<S, P, Root>) => Entity.EntityId<S, Root>;
370
+ readonly spawn: [Spawns] extends [never] ? MethodNotDeclared<"spawn", "spawns"> : <P extends Entity.ComponentProof>(draft: Entity.EntityDraft<S, P, Root> & DraftAllowed<P, Spawns>) => SpawnedId<S, Root, HeldNames<P>>;
268
371
  /**
269
- * Queues an entity spawn owned by one lifetime scope.
270
- *
271
- * Scoped entities can later be removed together with `despawnScope(...)`.
372
+ * Queues an entity spawn owned by one lifetime scope (removed together
373
+ * with `despawnScope(...)`).
272
374
  */
273
- readonly spawnIn: <P extends Entity.ComponentProof>(scope: EntityScope.EntityScope<string, Root>, draft: Entity.EntityDraft<S, P, Root>) => Entity.EntityId<S, Root>;
375
+ readonly spawnIn: [Spawns] extends [never] ? MethodNotDeclared<"spawnIn", "spawns"> : <P extends Entity.ComponentProof>(scope: EntityScope.EntityScope<string, Root>, draft: Entity.EntityDraft<S, P, Root> & DraftAllowed<P, Spawns>) => SpawnedId<S, Root, HeldNames<P>>;
274
376
  /**
275
- * Queues component inserts (or replacements) on an existing entity.
377
+ * Queues component inserts (or replacements) on an existing entity, applied
378
+ * at the next `applyDeferred()`. To change a value now, on an entity you
379
+ * matched, write through a query (`Game.Query.write`) instead.
276
380
  *
277
381
  * Entries must already be valid; validate raw input with
278
382
  * `Game.Command.entryRaw(...)` first.
279
383
  */
280
- readonly insert: (entity: Entity.EntityId<S, Root>, ...entries: ReadonlyArray<SchemaEntry<S>>) => Entity.EntityId<S, Root>;
384
+ readonly insert: [Inserts] extends [never] ? MethodNotDeclared<"insert", "inserts"> : <const Entries extends ReadonlyArray<SchemaEntry<S>>>(entity: Entity.EntityId<S, Root>, ...entries: Entries & EntriesAllowed<Entries, Inserts>) => Entity.EntityId<S, Root>;
281
385
  /**
282
- * Queues an entity removal.
386
+ * Queues an entity removal. A despawned entity stays visible to queries
387
+ * until the next `applyDeferred()`, and despawns never count as writers for
388
+ * `Game.System.thisTick` query reads.
389
+ *
390
+ * Pass `match.entity` from a query proving one of the `despawns`
391
+ * components, or the id `spawn` returned in this run (it holds its draft's
392
+ * components); never a raw id.
283
393
  */
284
- readonly despawn: (entity: Entity.EntityId<S, Root>) => void;
394
+ readonly despawn: [Despawns] extends [never] ? MethodNotDeclared<"despawn", "despawns"> : <const E>(entity: E & DespawnAllowed<E, Despawns>) => void;
285
395
  /**
286
396
  * Queues removal of every entity owned by one lifetime scope.
287
397
  */
288
- readonly despawnScope: (scope: EntityScope.EntityScope<string, Root>) => void;
398
+ readonly despawnScope: [Scopes] extends [never] ? MethodNotDeclared<"despawnScope", "despawnsScope"> : (scope: Scopes) => void;
289
399
  /**
290
400
  * Queues a component removal on an existing entity.
291
401
  */
292
- readonly remove: <D extends Extract<Schema.Components<S>[keyof Schema.Components<S>], Descriptor<"component", string, any>>>(entity: Entity.EntityId<S, Root>, descriptor: D) => Entity.EntityId<S, Root>;
402
+ readonly remove: [Removes] extends [never] ? MethodNotDeclared<"remove", "removes"> : <D extends Extract<Schema.Components<S>[keyof Schema.Components<S>], ComponentDescriptor>>(entity: Entity.EntityId<S, Root>, descriptor: D & RemoveAllowed<D, Removes>) => Entity.EntityId<S, Root>;
293
403
  /**
294
404
  * Queues one live relation mutation for deferred application.
295
405
  */
296
- readonly relate: <R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Any>>(entity: Entity.EntityId<S, Root>, relation: R, target: Entity.EntityId<S, Root>) => void;
406
+ readonly relate: [Relates] extends [never] ? MethodNotDeclared<"relate", "relates"> : <R extends Extract<Relates, Relation.Relation.Any>>(entity: Entity.EntityId<S, Root>, relation: R, target: Entity.EntityId<S, Root>) => void;
297
407
  /**
298
408
  * Queues removal of one outgoing relation when present.
299
409
  */
300
- readonly unrelate: <R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Any>>(entity: Entity.EntityId<S, Root>, relation: R) => void;
410
+ readonly unrelate: [Relates] extends [never] ? MethodNotDeclared<"unrelate", "relates"> : <R extends Extract<Relates, Relation.Relation.Any>>(entity: Entity.EntityId<S, Root>, relation: R) => void;
301
411
  /**
302
412
  * Queues a hierarchy-only reorder of one parent's current children.
303
413
  */
304
- readonly reorderChildren: <R extends Extract<Schema.Relations<S>[keyof Schema.Relations<S>], Relation.Relation.Hierarchy>>(entity: Entity.EntityId<S, Root>, relation: R, children: ReadonlyArray<Entity.EntityId<S, Root>>) => void;
414
+ readonly reorderChildren: [Relates] extends [never] ? MethodNotDeclared<"reorderChildren", "relates"> : <R extends Extract<Relates, Relation.Relation.Hierarchy>>(entity: Entity.EntityId<S, Root>, relation: R, children: ReadonlyArray<Entity.EntityId<S, Root>>) => void;
415
+ }
416
+ /** The command queue the runtime gives each system: every command, unchecked, and `flush`. */
417
+ export interface CommandQueue<S extends Schema.Any, Root = unknown> {
418
+ readonly spawn: (draft: Entity.EntityDraft<S, any, Root>) => Entity.EntityId<S, Root>;
419
+ readonly spawnIn: (scope: EntityScope.EntityScope<string, Root>, draft: Entity.EntityDraft<S, any, Root>) => Entity.EntityId<S, Root>;
420
+ readonly insert: (entity: Entity.EntityId<S, Root>, ...entries: ReadonlyArray<SchemaEntry<S>>) => Entity.EntityId<S, Root>;
421
+ readonly despawn: (entity: Entity.EntityId<S, Root> | {
422
+ readonly id: Entity.EntityId<S, Root>;
423
+ }) => void;
424
+ readonly despawnScope: (scope: EntityScope.EntityScope<string, Root>) => void;
425
+ readonly remove: (entity: Entity.EntityId<S, Root>, descriptor: ComponentDescriptor) => Entity.EntityId<S, Root>;
426
+ readonly relate: (entity: Entity.EntityId<S, Root>, relation: Relation.Relation.Any, target: Entity.EntityId<S, Root>) => void;
427
+ readonly unrelate: (entity: Entity.EntityId<S, Root>, relation: Relation.Relation.Any) => void;
428
+ readonly reorderChildren: (entity: Entity.EntityId<S, Root>, relation: Relation.Relation.Hierarchy, children: ReadonlyArray<Entity.EntityId<S, Root>>) => void;
305
429
  /**
306
430
  * Drains the queued commands in insertion order.
307
431
  */
@@ -313,6 +437,6 @@ export interface CommandsApi<S extends Schema.Any, Root = unknown> {
313
437
  * The returned API is intentionally imperative for system authors, but all
314
438
  * mutations stay deferred until `flush()` is applied by the runtime.
315
439
  */
316
- export declare const makeCommands: <S extends Schema.Any, Root = unknown>(allocateId: () => Entity.EntityId<S, Root>) => CommandsApi<S, Root>;
440
+ export declare const makeCommands: <S extends Schema.Any, Root = unknown>(allocateId: () => Entity.EntityId<S, Root>) => CommandQueue<S, Root>;
317
441
  export {};
318
442
  //# sourceMappingURL=Command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
package/dist/Command.js CHANGED
@@ -71,15 +71,15 @@ const unspawnedId = Entity.makeEntityId(-1);
71
71
  */
72
72
  export const entry = (descriptor, value) => [descriptor, value];
73
73
  /**
74
- * Lifts an already validated value into an entry result, keeping the failure
75
- * visible to `spawn(...)` / `insert(...)`.
76
- */
77
- export const entryResult = (descriptor, result) => result.ok
78
- ? Result.success([descriptor, result.value])
79
- : Result.failure(result.error);
80
- /**
81
- * Validates raw input through a constructed descriptor and returns an entry
82
- * result.
74
+ * Validates raw input through a constructed descriptor's own validator and
75
+ * returns an entry result for `spawn(...)` / `insert(...)`.
76
+ *
77
+ * This is the one way to put unvalidated data on an entity: the descriptor
78
+ * owns its validator (`Descriptor.ConstructedComponent(...)`, built with
79
+ * `Decode` or `Descriptor.fromStandardSchema`). Values that are already
80
+ * valid use a plain `[Descriptor, value]` entry instead. To validate authored
81
+ * constants once at module load, call the constructor (`Vector2.result(...)`)
82
+ * and keep the carried value.
83
83
  *
84
84
  * @example
85
85
  * ```ts
@@ -91,13 +91,21 @@ export const entryResult = (descriptor, result) => result.ok
91
91
  * commands.spawn(draft.value)
92
92
  * ```
93
93
  */
94
- export const entryRaw = (descriptor, raw) => entryResult(descriptor, DescriptorModule.constructorOf(descriptor).result(raw));
94
+ export const entryRaw = (descriptor, raw) => {
95
+ const validated = DescriptorModule.constructorOf(descriptor).result(raw);
96
+ return validated.ok
97
+ ? Result.success([descriptor, validated.value])
98
+ : Result.failure(validated.error);
99
+ };
95
100
  /**
96
- * Adds entries to a draft. Plain entries return the new draft; if any entry is
97
- * a `Result`, the draft is returned as a `Result` whose error lists every
98
- * entry's failure (or `null`).
101
+ * Adds entries to a draft, a value not yet spawned. Plain entries return the
102
+ * new draft; if any entry is a `Result`, the draft is returned as a `Result`
103
+ * whose error lists every entry's failure (or `null`).
104
+ *
105
+ * Use this while building what a spawn will hold. Use `commands.insert` to
106
+ * add or replace components on an entity that already exists.
99
107
  */
100
- export const insert = (draft, ...entries) => build(draft.id, { ...draft.proof }, [...draft.components], draft.relations, entries);
108
+ export const extend = (draft, ...entries) => build(draft.id, { ...draft.proof }, [...draft.components], draft.relations, entries);
101
109
  /**
102
110
  * Shared draft builder. Plain entries take a fast path; the first `Result`
103
111
  * entry switches to collecting per-entry errors.
@@ -162,6 +170,31 @@ export const relate = (draft, relation, target) => Entity.draft(draft.id, draft.
162
170
  target
163
171
  }
164
172
  ]);
173
+ /**
174
+ * Allows `spawn` / `spawnIn` of drafts whose components are all among `components`.
175
+ * Use it for entities the system creates; use `extend` on a draft to build one.
176
+ */
177
+ export const spawns = (...components) => ({ permission: "spawns", values: components });
178
+ /**
179
+ * Allows `insert(entity, [X, value])` with `X` among `components`: add or
180
+ * replace at the next `applyDeferred()`. To change a value now, on an entity
181
+ * you matched, write through a query (`Game.Query.write`) instead.
182
+ */
183
+ export const inserts = (...components) => ({ permission: "inserts", values: components });
184
+ /** Allows `remove(entity, X)` with `X` among `components`. */
185
+ export const removes = (...components) => ({ permission: "removes", values: components });
186
+ /**
187
+ * Allows `despawn(entity)` where `entity` comes from a query match proving one
188
+ * of `components` (`match.entity`), never a raw id: the system can only
189
+ * despawn what it has proven is, for example, an `Enemy`.
190
+ */
191
+ export const despawns = (...components) => ({ permission: "despawns", values: components });
192
+ /** Allows `despawnScope(scope)` for this scope. */
193
+ export const despawnsScope = (scope) => ({ permission: "despawnsScope", values: [scope] });
194
+ /** Allows `relate`, `unrelate`, and `reorderChildren` for these relations. */
195
+ export const relates = (...relations) => ({ permission: "relates", values: relations });
196
+ /** Declares the commands a system may queue; see the permission builders. */
197
+ export const commands = (...permissions) => ({ kind: "commands", permissions });
165
198
  /**
166
199
  * Creates a fresh command queue for a system execution.
167
200
  *
@@ -216,10 +249,11 @@ export const makeCommands = (allocateId) => {
216
249
  return entity;
217
250
  },
218
251
  despawn(entity) {
252
+ const id = typeof entity === "object" ? entity.id : entity;
219
253
  queue.push({
220
254
  tag: "despawn",
221
255
  apply(world) {
222
- world.destroyEntity(entity);
256
+ world.destroyEntity(id);
223
257
  }
224
258
  });
225
259
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}