@oasys/oecs 0.5.2 → 0.5.4

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 (189) hide show
  1. package/CHANGELOG.md +208 -14
  2. package/README.md +198 -145
  3. package/dist/core/ecs/access_check.d.cts +3 -3
  4. package/dist/core/ecs/access_check.d.ts +3 -3
  5. package/dist/core/ecs/archetype.d.cts +103 -43
  6. package/dist/core/ecs/archetype.d.ts +103 -43
  7. package/dist/core/ecs/archetype.d.ts.map +1 -1
  8. package/dist/core/ecs/archetype_graph.d.cts +8 -8
  9. package/dist/core/ecs/archetype_graph.d.ts +8 -8
  10. package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
  11. package/dist/core/ecs/builtin_relations.d.cts +1 -1
  12. package/dist/core/ecs/builtin_relations.d.ts +1 -1
  13. package/dist/core/ecs/command_log.d.cts +4 -4
  14. package/dist/core/ecs/command_log.d.ts +4 -4
  15. package/dist/core/ecs/command_log.d.ts.map +1 -1
  16. package/dist/core/ecs/component.d.cts +4 -4
  17. package/dist/core/ecs/component.d.ts +4 -4
  18. package/dist/core/ecs/deferred_commands.d.cts +1 -1
  19. package/dist/core/ecs/deferred_commands.d.ts +1 -1
  20. package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
  21. package/dist/core/ecs/ecs.d.cts +85 -43
  22. package/dist/core/ecs/ecs.d.ts +85 -43
  23. package/dist/core/ecs/ecs.d.ts.map +1 -1
  24. package/dist/core/ecs/ecs_memory.d.cts +15 -15
  25. package/dist/core/ecs/ecs_memory.d.ts +15 -15
  26. package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
  27. package/dist/core/ecs/entity_allocator.d.cts +6 -6
  28. package/dist/core/ecs/entity_allocator.d.ts +6 -6
  29. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  30. package/dist/core/ecs/event.d.cts +2 -2
  31. package/dist/core/ecs/event.d.ts +2 -2
  32. package/dist/core/ecs/event_registry.d.cts +1 -1
  33. package/dist/core/ecs/event_registry.d.ts +1 -1
  34. package/dist/core/ecs/event_registry.d.ts.map +1 -1
  35. package/dist/core/ecs/facades.d.cts +15 -15
  36. package/dist/core/ecs/facades.d.ts +15 -15
  37. package/dist/core/ecs/facades.d.ts.map +1 -1
  38. package/dist/core/ecs/frame_trace.d.cts +2 -2
  39. package/dist/core/ecs/frame_trace.d.ts +2 -2
  40. package/dist/core/ecs/host_commands.d.cts +12 -12
  41. package/dist/core/ecs/host_commands.d.ts +12 -12
  42. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  43. package/dist/core/ecs/index.d.cts +1 -1
  44. package/dist/core/ecs/index.d.ts +1 -1
  45. package/dist/core/ecs/index.d.ts.map +1 -1
  46. package/dist/core/ecs/observer.d.cts +9 -9
  47. package/dist/core/ecs/observer.d.ts +9 -9
  48. package/dist/core/ecs/observer.d.ts.map +1 -1
  49. package/dist/core/ecs/query.d.cts +91 -70
  50. package/dist/core/ecs/query.d.ts +91 -70
  51. package/dist/core/ecs/query.d.ts.map +1 -1
  52. package/dist/core/ecs/ref.d.cts +53 -1
  53. package/dist/core/ecs/ref.d.ts +53 -1
  54. package/dist/core/ecs/ref.d.ts.map +1 -1
  55. package/dist/core/ecs/relation.d.cts +15 -15
  56. package/dist/core/ecs/relation.d.ts +15 -15
  57. package/dist/core/ecs/relation.d.ts.map +1 -1
  58. package/dist/core/ecs/relation_service.d.cts +14 -14
  59. package/dist/core/ecs/relation_service.d.ts +14 -14
  60. package/dist/core/ecs/relation_service.d.ts.map +1 -1
  61. package/dist/core/ecs/resource.d.cts +1 -1
  62. package/dist/core/ecs/resource.d.ts +1 -1
  63. package/dist/core/ecs/resource_registry.d.cts +2 -2
  64. package/dist/core/ecs/resource_registry.d.ts +2 -2
  65. package/dist/core/ecs/resume.d.cts +3 -3
  66. package/dist/core/ecs/resume.d.ts +3 -3
  67. package/dist/core/ecs/resume.d.ts.map +1 -1
  68. package/dist/core/ecs/schedule.d.cts +22 -9
  69. package/dist/core/ecs/schedule.d.ts +22 -9
  70. package/dist/core/ecs/schedule.d.ts.map +1 -1
  71. package/dist/core/ecs/snapshot_service.d.cts +3 -3
  72. package/dist/core/ecs/snapshot_service.d.ts +3 -3
  73. package/dist/core/ecs/sparse_store.d.cts +6 -6
  74. package/dist/core/ecs/sparse_store.d.ts +6 -6
  75. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  76. package/dist/core/ecs/store.d.cts +189 -110
  77. package/dist/core/ecs/store.d.ts +189 -110
  78. package/dist/core/ecs/store.d.ts.map +1 -1
  79. package/dist/core/ecs/store_layout_listener.d.cts +2 -2
  80. package/dist/core/ecs/store_layout_listener.d.ts +2 -2
  81. package/dist/core/ecs/system.d.cts +8 -8
  82. package/dist/core/ecs/system.d.ts +8 -8
  83. package/dist/core/ecs/system.d.ts.map +1 -1
  84. package/dist/core/ecs/utils/error.d.cts +7 -0
  85. package/dist/core/ecs/utils/error.d.ts +7 -0
  86. package/dist/core/ecs/utils/error.d.ts.map +1 -1
  87. package/dist/core/store/action_ring.d.cts +7 -8
  88. package/dist/core/store/action_ring.d.ts +7 -8
  89. package/dist/core/store/action_ring.d.ts.map +1 -1
  90. package/dist/core/store/allocator.d.cts +58 -35
  91. package/dist/core/store/allocator.d.ts +58 -35
  92. package/dist/core/store/allocator.d.ts.map +1 -1
  93. package/dist/core/store/buffer_backed_column.d.cts +5 -6
  94. package/dist/core/store/buffer_backed_column.d.ts +5 -6
  95. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  96. package/dist/core/store/column_store.d.cts +23 -23
  97. package/dist/core/store/column_store.d.ts +23 -23
  98. package/dist/core/store/column_store.d.ts.map +1 -1
  99. package/dist/core/store/command_dispatch.d.cts +1 -1
  100. package/dist/core/store/command_dispatch.d.ts +1 -1
  101. package/dist/core/store/command_ring.d.cts +6 -7
  102. package/dist/core/store/command_ring.d.ts +6 -7
  103. package/dist/core/store/command_ring.d.ts.map +1 -1
  104. package/dist/core/store/descriptor.d.cts +2 -2
  105. package/dist/core/store/descriptor.d.ts +2 -2
  106. package/dist/core/store/entity_index.d.cts +3 -3
  107. package/dist/core/store/entity_index.d.ts +3 -3
  108. package/dist/core/store/event_ring.d.cts +7 -7
  109. package/dist/core/store/event_ring.d.ts +7 -7
  110. package/dist/core/store/extend.d.cts +2 -2
  111. package/dist/core/store/extend.d.ts +2 -2
  112. package/dist/core/store/extend.d.ts.map +1 -1
  113. package/dist/core/store/grow.d.cts +1 -1
  114. package/dist/core/store/grow.d.ts +1 -1
  115. package/dist/core/store/grow.d.ts.map +1 -1
  116. package/dist/core/store/header.d.cts +9 -9
  117. package/dist/core/store/header.d.ts +9 -9
  118. package/dist/core/store/header.d.ts.map +1 -1
  119. package/dist/core/store/layout_ops.d.cts +25 -7
  120. package/dist/core/store/layout_ops.d.ts +25 -7
  121. package/dist/core/store/layout_ops.d.ts.map +1 -1
  122. package/dist/core/store/state_hash.d.cts +3 -3
  123. package/dist/core/store/state_hash.d.ts +3 -3
  124. package/dist/extensions/editor/editor.d.cts +4 -4
  125. package/dist/extensions/editor/editor.d.ts +4 -4
  126. package/dist/extensions/editor/editor.d.ts.map +1 -1
  127. package/dist/extensions/editor/field_handle.d.cts +1 -1
  128. package/dist/extensions/editor/field_handle.d.ts +1 -1
  129. package/dist/extensions/editor/index.d.cts +2 -2
  130. package/dist/extensions/editor/index.d.ts +2 -2
  131. package/dist/extensions/editor/index.development.js +4 -4
  132. package/dist/extensions/editor/index.js +4 -4
  133. package/dist/extensions/reactive/ecs_sync.d.cts +4 -4
  134. package/dist/extensions/reactive/ecs_sync.d.ts +4 -4
  135. package/dist/extensions/reactive/index.d.cts +4 -4
  136. package/dist/extensions/reactive/index.d.ts +4 -4
  137. package/dist/extensions/reactive/index.development.js +3 -3
  138. package/dist/extensions/reactive/index.js +3 -3
  139. package/dist/extensions/solid/index.d.cts +1 -1
  140. package/dist/extensions/solid/index.d.ts +1 -1
  141. package/dist/extensions/solid/index.development.js +1 -1
  142. package/dist/extensions/solid/index.js +1 -1
  143. package/dist/extensions/solid/kernel_solid.d.cts +1 -1
  144. package/dist/extensions/solid/kernel_solid.d.ts +1 -1
  145. package/dist/extensions/solid/kernel_solid.d.ts.map +1 -1
  146. package/dist/{host_commands-BI8pEmjH.js → host_commands-BlR3oZ3x.js} +473 -393
  147. package/dist/host_commands-C2cpU3yC.cjs +1 -0
  148. package/dist/index.cjs +1 -1
  149. package/dist/index.d.cts +2 -2
  150. package/dist/index.d.ts +2 -2
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.development.cjs +1 -1
  153. package/dist/index.development.js +3345 -2963
  154. package/dist/index.js +1496 -1131
  155. package/dist/{internal-BMDgWZbt.js → internal-BoxWl4dG.js} +410 -330
  156. package/dist/internal-CGBEwfeB.cjs +2 -0
  157. package/dist/internal.cjs +1 -1
  158. package/dist/internal.development.cjs +1 -1
  159. package/dist/internal.development.js +1 -1
  160. package/dist/internal.js +1 -1
  161. package/dist/primitives.development.js +1 -1
  162. package/dist/primitives.js +1 -1
  163. package/dist/reactive/index.d.cts +2 -2
  164. package/dist/reactive/index.d.ts +2 -2
  165. package/dist/reactive/index.development.js +1 -1
  166. package/dist/reactive/index.js +1 -1
  167. package/dist/reactive/kernel.d.cts +5 -5
  168. package/dist/reactive/kernel.d.ts +5 -5
  169. package/dist/reactive/shallow.d.cts +1 -1
  170. package/dist/reactive/shallow.d.ts +1 -1
  171. package/dist/{shallow-DfnAm9vG.js → shallow-Bs39EPh1.js} +1 -1
  172. package/dist/{shallow-9S1pY_Iw.js → shallow-CiFC70Dz.js} +1 -1
  173. package/dist/{shared-BU1Cd40h.js → shared-B4v0L1cw.js} +41 -35
  174. package/dist/shared-DU78k0pU.cjs +1 -0
  175. package/dist/shared.cjs +1 -1
  176. package/dist/shared.d.cts +1 -1
  177. package/dist/shared.d.ts +1 -1
  178. package/dist/shared.development.cjs +1 -1
  179. package/dist/shared.development.js +1 -1
  180. package/dist/shared.js +1 -1
  181. package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +2 -2
  182. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +2 -2
  183. package/dist/{typed_arrays-BcXcnzB4.js → typed_arrays-DIVwVy5_.js} +1 -1
  184. package/dist/version.d.cts +2 -2
  185. package/dist/version.d.ts +2 -2
  186. package/package.json +1 -1
  187. package/dist/host_commands-CxhpzMx9.cjs +0 -1
  188. package/dist/internal-LiTSB_tG.cjs +0 -2
  189. package/dist/shared-BymrGTyR.cjs +0 -1
@@ -3,7 +3,7 @@ export declare class EntityAllocator {
3
3
  /** SAB-backed per-slot generation counters — replanted on restore. */
4
4
  private _generations;
5
5
  /** Single-slot view over the entity-index region's `length` header field —
6
- * replanted on restore. Written on every high-water bump (#368). */
6
+ * replanted on restore. Written on every high-water bump. */
7
7
  private _lengthView;
8
8
  private _highWater;
9
9
  private readonly _freeIndices;
@@ -26,17 +26,17 @@ export declare class EntityAllocator {
26
26
  /** Allocate a slot and return its packed id; the slot index is left in
27
27
  * `lastIndex`. This *commits* the slot (bumps counts, stamps the generation
28
28
  * so `isAliveIndex` is already true) — a caller placing the entity into an
29
- * archetype row must have reserved column capacity first (#775). */
29
+ * archetype row must have reserved column capacity first. */
30
30
  alloc(): EntityID;
31
31
  /** Pre-check that `count` fresh slots fit, so a bulk-spawn commits
32
- * all-or-nothing (#775): `alloc`'s own per-call guard would otherwise
32
+ * all-or-nothing: `alloc`'s own per-call guard would otherwise
33
33
  * throw partway through the loop, leaving committed slots phantom-alive.
34
34
  * Free-list reuse covers the first `freeCount` slots; only the remainder
35
35
  * draws down the high-water headroom. */
36
36
  ensureCapacity(count: number): void;
37
37
  /** Recycle (or retire) a slot whose entity carried `generation`. Bumps the
38
38
  * generation so stale IDs read dead; once the counter would reach the
39
- * reserved tombstone the slot is RETIRED, not recycled (#376): stamp
39
+ * reserved tombstone the slot is RETIRED, not recycled: stamp
40
40
  * RETIRED_GENERATION (never issued to a live handle) and skip the
41
41
  * free-list push, closing the ABA window. Burning one of 2^20 indices
42
42
  * after 2047 reuses is cheap; the branch is predicted not-taken on
@@ -44,14 +44,14 @@ export declare class EntityAllocator {
44
44
  recycle(index: number, generation: number): void;
45
45
  /** Allocation-side liveness: the slot is in the issued range and its
46
46
  * current generation matches the handle's. (`Store.isAlive` layers the
47
- * malformed-handle guards (#778) on top of this.) */
47
+ * malformed-handle guards on top of this.) */
48
48
  isAliveIndex(index: number, generation: number): boolean;
49
49
  /** Mirror the current high-water into the SAB `length` header — called
50
50
  * after a buffer replant so the fresh region carries the host value. */
51
51
  publishLength(): void;
52
52
  snapshotFreeIndices(): number[];
53
53
  /** Restore path, step 1: adopt the high-water recovered from the restored
54
- * region's length header BEFORE the replant republishes it (#789). */
54
+ * region's length header BEFORE the replant republishes it. */
55
55
  setHighWater(value: number): void;
56
56
  /** Restore path, step 2: adopt the captured free-list + alive count. */
57
57
  restoreHostState(freeIndices: readonly number[], aliveCount: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity_allocator.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/entity_allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG7E,qBAAa,eAAe;IAC3B,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAAa;IACjC;wEACoE;IACpE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;iDAE6C;IACtC,SAAS,SAAK;gBAET,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW;IAM9E;mEAC+D;IACxD,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAK3E;oEACgE;IAChE,IAAW,WAAW,IAAI,UAAU,CAEnC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;wEAGoE;IAC7D,KAAK,IAAI,QAAQ;IA8BxB;;;;6CAIyC;IAClC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;oCAMgC;IACzB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWvD;;yDAEqD;IAC9C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/D;4EACwE;IACjE,aAAa,IAAI,IAAI;IAOrB,mBAAmB,IAAI,MAAM,EAAE;IAItC;0EACsE;IAC/D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC,wEAAwE;IACjE,gBAAgB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAKjF"}
1
+ {"version":3,"file":"entity_allocator.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/entity_allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG7E,qBAAa,eAAe;IAC3B,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAAa;IACjC;iEAC6D;IAC7D,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;iDAE6C;IACtC,SAAS,SAAK;gBAET,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW;IAM9E;mEAC+D;IACxD,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAK3E;oEACgE;IAChE,IAAW,WAAW,IAAI,UAAU,CAEnC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;iEAG6D;IACtD,KAAK,IAAI,QAAQ;IA8BxB;;;;6CAIyC;IAClC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;oCAMgC;IACzB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWvD;;kDAE8C;IACvC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/D;4EACwE;IACjE,aAAa,IAAI,IAAI;IAOrB,mBAAmB,IAAI,MAAM,EAAE;IAItC;mEAC+D;IACxD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC,wEAAwE;IACjE,gBAAgB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAKjF"}
@@ -11,7 +11,7 @@ export declare const asEventId: (value: number) => EventID;
11
11
  * alias), but satisfies the homomorphic `EventShape` check. */
12
12
  export type EventSchema = Readonly<Record<string, number>>;
13
13
  /**
14
- * Homomorphic constraint for event-schema type params (POLISH_AUDIT M9):
14
+ * Homomorphic constraint for event-schema type params:
15
15
  * `S extends EventShape<S>` checks every property of `S` is a number WITHOUT
16
16
  * requiring an index signature, so `interface`-declared schemas (which lack
17
17
  * the implicit index signature type literals get) are accepted too.
@@ -34,7 +34,7 @@ export type EventDef<S extends EventShape<S> = EventSchema> = EventID & {
34
34
  * The "cannot mutate the live channel through the reader" property is
35
35
  * **advisory** — the columns are the same live `number[]` objects the channel
36
36
  * mutates (see `EventChannel` below), so the `readonly` typing blocks writes
37
- * at the type layer only; a §10c-policed cast can still write through.
37
+ * at the type layer only; a deliberate cast can still write through.
38
38
  */
39
39
  export type EventReader<S extends EventShape<S>> = {
40
40
  readonly length: number;
@@ -11,7 +11,7 @@ export declare const asEventId: (value: number) => EventID;
11
11
  * alias), but satisfies the homomorphic `EventShape` check. */
12
12
  export type EventSchema = Readonly<Record<string, number>>;
13
13
  /**
14
- * Homomorphic constraint for event-schema type params (POLISH_AUDIT M9):
14
+ * Homomorphic constraint for event-schema type params:
15
15
  * `S extends EventShape<S>` checks every property of `S` is a number WITHOUT
16
16
  * requiring an index signature, so `interface`-declared schemas (which lack
17
17
  * the implicit index signature type literals get) are accepted too.
@@ -34,7 +34,7 @@ export type EventDef<S extends EventShape<S> = EventSchema> = EventID & {
34
34
  * The "cannot mutate the live channel through the reader" property is
35
35
  * **advisory** — the columns are the same live `number[]` objects the channel
36
36
  * mutates (see `EventChannel` below), so the `readonly` typing blocks writes
37
- * at the type layer only; a §10c-policed cast can still write through.
37
+ * at the type layer only; a deliberate cast can still write through.
38
38
  */
39
39
  export type EventReader<S extends EventShape<S>> = {
40
40
  readonly length: number;
@@ -13,7 +13,7 @@ export declare class EventRegistry {
13
13
  * `ECS.update` samples this either side of `dispatchSet` to assert an onSet
14
14
  * observer emitted nothing — its emissions would be wiped by the tick-tail
15
15
  * `clearEvents` and break the empty-channel-at-boundary invariant snapshot /
16
- * restore relies on (#586). Walks only the dirty list, never the hot emit path. */
16
+ * restore relies on. Walks only the dirty list, never the hot emit path. */
17
17
  devBufferedEventCount(): number;
18
18
  registerEventByKey<S extends EventShape<S>>(key: symbol, fields: readonly (keyof S & string)[]): EventDef<S>;
19
19
  getEventDefByKey(key: symbol): EventDef<any>;
@@ -13,7 +13,7 @@ export declare class EventRegistry {
13
13
  * `ECS.update` samples this either side of `dispatchSet` to assert an onSet
14
14
  * observer emitted nothing — its emissions would be wiped by the tick-tail
15
15
  * `clearEvents` and break the empty-channel-at-boundary invariant snapshot /
16
- * restore relies on (#586). Walks only the dirty list, never the hot emit path. */
16
+ * restore relies on. Walks only the dirty list, never the hot emit path. */
17
17
  devBufferedEventCount(): number;
18
18
  registerEventByKey<S extends EventShape<S>>(key: symbol, fields: readonly (keyof S & string)[]): EventDef<S>;
19
19
  getEventDefByKey(key: symbol): EventDef<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"event_registry.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/event_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;KAOK;AAGL,OAAO,EAGN,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAa;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAK/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,KAAK,CAAK;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEzD,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAC3C,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACnC,QAAQ,CAAC,CAAC,CAAC;IAOP,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAYnE,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQjD,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAIzE,WAAW,IAAI,IAAI;IAS1B;;;;uFAImF;IAC5E,qBAAqB,IAAI,MAAM;IAQ/B,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACnC,QAAQ,CAAC,CAAC,CAAC;IAcP,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;IAY5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGxC"}
1
+ {"version":3,"file":"event_registry.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/event_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;KAOK;AAGL,OAAO,EAGN,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAa;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAK/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,KAAK,CAAK;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEzD,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAC3C,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACnC,QAAQ,CAAC,CAAC,CAAC;IAOP,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAYnE,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQjD,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAIzE,WAAW,IAAI,IAAI;IAe1B;;;;gFAI4E;IACrE,qBAAqB,IAAI,MAAM;IAQ/B,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACnC,QAAQ,CAAC,CAAC,CAAC;IAcP,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;IAY5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGxC"}
@@ -3,8 +3,8 @@ import { EntityID } from './entity.cjs';
3
3
  import { OnDeleteTarget, RelationDef, RelationOptions } from './relation.cjs';
4
4
  import { ResourceKey } from './resource.cjs';
5
5
  import { EventFieldsCover, EventKey, EventReader, EventShape, SignalKey } from './event.cjs';
6
- /** Relations — sparse `(relation, target)` pairs and hierarchy traversal
7
- * (#471 / #474, ADR-0011). Add/remove/re-target cause no archetype
6
+ /** Relations — sparse `(relation, target)` pairs and hierarchy traversal.
7
+ * Add/remove/re-target cause no archetype
8
8
  * transition; ops are immediate and safe mid-tick. Traversal and wildcard
9
9
  * reads are cold-path. */
10
10
  export declare class ECSRelations {
@@ -14,10 +14,10 @@ export declare class ECSRelations {
14
14
  /** Register a relation kind. Exclusive (default) stores one target per
15
15
  * source; `{ multi: true }` stores a target set per source.
16
16
  * `{ onDeleteTarget: "delete" | "clear" | "orphan" }` selects target-death
17
- * cleanup (default `orphan`, #473).
17
+ * cleanup (default `orphan`).
18
18
  *
19
- * The overloads stamp the CARDINALITY into the handle type (typestate
20
- * a173382 / POLISH_AUDIT #7), exactly like the flat `registerRelation`:
19
+ * The overloads stamp the CARDINALITY into the handle type, exactly like
20
+ * the flat `registerRelation`:
21
21
  * the exclusive-only surfaces (`targetOf`, `ancestorsOf`/`rootOf`/
22
22
  * `cascadeOf`, `Query.hierarchy`) accept only `RelationDef<"exclusive">`,
23
23
  * so passing a `{ multi: true }` relation is a compile error. A
@@ -51,11 +51,11 @@ export declare class ECSRelations {
51
51
  /** Sources pointing at `tgt` under `R` (the reverse index), ascending by id.
52
52
  * `(entity, def)` order, matching `targetOf` / `targetsOf`. */
53
53
  sourcesOf(tgt: EntityID, def: RelationDef): EntityID[];
54
- /** All `(source, target)` pairs of relation `R` — the `(R, *)` wildcard
55
- * (#472). Sources in canonical entity-index order. Cold path. */
54
+ /** All `(source, target)` pairs of relation `R` — the `(R, *)` wildcard.
55
+ * Sources in canonical entity-index order. Cold path. */
56
56
  pairsOf(def: RelationDef): readonly (readonly [EntityID, EntityID])[];
57
57
  /** Every `(relation, source)` pointing at `tgt`, across all relation kinds —
58
- * the `(*, T)` wildcard (#472). Ordered by relation id then source id. */
58
+ * the `(*, T)` wildcard. Ordered by relation id then source id. */
59
59
  sourcesOfAny(tgt: EntityID): readonly (readonly [RelationDef, EntityID])[];
60
60
  /** Walk relation `R` up from `src` to its chain root, returning
61
61
  * `[src, parent, …, root]` (nearest-ancestor-first). Exclusive only. */
@@ -68,7 +68,7 @@ export declare class ECSRelations {
68
68
  * `cascade` order). Exclusive only. */
69
69
  cascadeOf(root: EntityID, def: RelationDef<"exclusive">): EntityID[];
70
70
  /** Reclaim relation reverse-index memory: drop every reverse entry whose
71
- * target has been destroyed, returning the total dropped (#491). Purely
71
+ * target has been destroyed, returning the total dropped. Purely
72
72
  * cold-path, no observable state change — call at scene/snapshot
73
73
  * boundaries. */
74
74
  compact(): number;
@@ -115,13 +115,13 @@ export declare class ECSResources {
115
115
  register<T>(key: ResourceKey<T>, value: NoInfer<T>): void;
116
116
  get<T>(key: ResourceKey<T>): T;
117
117
  set<T>(key: ResourceKey<T>, value: NoInfer<T>): void;
118
- /** Drop a resource from the world (#798). Access-checked as a *write*;
118
+ /** Drop a resource from the world. Access-checked as a *write*;
119
119
  * fails closed on a missing key. Afterwards the key is free to `register`
120
120
  * again — the present → absent → present lifecycle. */
121
121
  remove<T>(key: ResourceKey<T>): void;
122
122
  has<T>(key: ResourceKey<T>): boolean;
123
123
  }
124
- /** The determinism surface (#626 / ADR-0020): world snapshot/resume and the
124
+ /** The determinism surface: world snapshot/resume and the
125
125
  * canonical state digest. Every member except `deterministic` throws
126
126
  * `DETERMINISM_DISABLED` unless the world was constructed with
127
127
  * `{ deterministic: true }`. All cold-path — take captures at tick
@@ -138,8 +138,8 @@ export declare class ECSSnapshots {
138
138
  stateHash(): number;
139
139
  /** Capture the full live world (dense + sparse/relations + host-side
140
140
  * bookkeeping) to one self-contained byte buffer that `restore` can mount
141
- * back onto a live, ticking world (#789). v1 does NOT capture resources,
142
- * events, or change-detection baselines (ADR-0031). */
141
+ * back onto a live, ticking world. v1 does NOT capture resources,
142
+ * events, or change-detection baselines. */
143
143
  capture(): Uint8Array;
144
144
  /** Mount a `capture()` buffer onto this live world and keep ticking.
145
145
  * Fails closed on a malformed frame or registration mismatch BEFORE
@@ -147,8 +147,8 @@ export declare class ECSSnapshots {
147
147
  * layout (prewarm so the set is stable). */
148
148
  restore(bytes: Uint8Array): void;
149
149
  /** Serialize the sparse stores + relations to a self-contained buffer —
150
- * the sparse half of a world snapshot, canonical entity-index order
151
- * (#470). Pairs with `restoreSparse`. */
150
+ * the sparse half of a world snapshot, canonical entity-index order.
151
+ * Pairs with `restoreSparse`. */
152
152
  captureSparse(): Uint8Array;
153
153
  /** Repopulate the sparse stores + relation indices from `captureSparse`
154
154
  * bytes. Sparse components must already be registered in the same order;
@@ -3,8 +3,8 @@ import { EntityID } from './entity.js';
3
3
  import { OnDeleteTarget, RelationDef, RelationOptions } from './relation.js';
4
4
  import { ResourceKey } from './resource.js';
5
5
  import { EventFieldsCover, EventKey, EventReader, EventShape, SignalKey } from './event.js';
6
- /** Relations — sparse `(relation, target)` pairs and hierarchy traversal
7
- * (#471 / #474, ADR-0011). Add/remove/re-target cause no archetype
6
+ /** Relations — sparse `(relation, target)` pairs and hierarchy traversal.
7
+ * Add/remove/re-target cause no archetype
8
8
  * transition; ops are immediate and safe mid-tick. Traversal and wildcard
9
9
  * reads are cold-path. */
10
10
  export declare class ECSRelations {
@@ -14,10 +14,10 @@ export declare class ECSRelations {
14
14
  /** Register a relation kind. Exclusive (default) stores one target per
15
15
  * source; `{ multi: true }` stores a target set per source.
16
16
  * `{ onDeleteTarget: "delete" | "clear" | "orphan" }` selects target-death
17
- * cleanup (default `orphan`, #473).
17
+ * cleanup (default `orphan`).
18
18
  *
19
- * The overloads stamp the CARDINALITY into the handle type (typestate
20
- * a173382 / POLISH_AUDIT #7), exactly like the flat `registerRelation`:
19
+ * The overloads stamp the CARDINALITY into the handle type, exactly like
20
+ * the flat `registerRelation`:
21
21
  * the exclusive-only surfaces (`targetOf`, `ancestorsOf`/`rootOf`/
22
22
  * `cascadeOf`, `Query.hierarchy`) accept only `RelationDef<"exclusive">`,
23
23
  * so passing a `{ multi: true }` relation is a compile error. A
@@ -51,11 +51,11 @@ export declare class ECSRelations {
51
51
  /** Sources pointing at `tgt` under `R` (the reverse index), ascending by id.
52
52
  * `(entity, def)` order, matching `targetOf` / `targetsOf`. */
53
53
  sourcesOf(tgt: EntityID, def: RelationDef): EntityID[];
54
- /** All `(source, target)` pairs of relation `R` — the `(R, *)` wildcard
55
- * (#472). Sources in canonical entity-index order. Cold path. */
54
+ /** All `(source, target)` pairs of relation `R` — the `(R, *)` wildcard.
55
+ * Sources in canonical entity-index order. Cold path. */
56
56
  pairsOf(def: RelationDef): readonly (readonly [EntityID, EntityID])[];
57
57
  /** Every `(relation, source)` pointing at `tgt`, across all relation kinds —
58
- * the `(*, T)` wildcard (#472). Ordered by relation id then source id. */
58
+ * the `(*, T)` wildcard. Ordered by relation id then source id. */
59
59
  sourcesOfAny(tgt: EntityID): readonly (readonly [RelationDef, EntityID])[];
60
60
  /** Walk relation `R` up from `src` to its chain root, returning
61
61
  * `[src, parent, …, root]` (nearest-ancestor-first). Exclusive only. */
@@ -68,7 +68,7 @@ export declare class ECSRelations {
68
68
  * `cascade` order). Exclusive only. */
69
69
  cascadeOf(root: EntityID, def: RelationDef<"exclusive">): EntityID[];
70
70
  /** Reclaim relation reverse-index memory: drop every reverse entry whose
71
- * target has been destroyed, returning the total dropped (#491). Purely
71
+ * target has been destroyed, returning the total dropped. Purely
72
72
  * cold-path, no observable state change — call at scene/snapshot
73
73
  * boundaries. */
74
74
  compact(): number;
@@ -115,13 +115,13 @@ export declare class ECSResources {
115
115
  register<T>(key: ResourceKey<T>, value: NoInfer<T>): void;
116
116
  get<T>(key: ResourceKey<T>): T;
117
117
  set<T>(key: ResourceKey<T>, value: NoInfer<T>): void;
118
- /** Drop a resource from the world (#798). Access-checked as a *write*;
118
+ /** Drop a resource from the world. Access-checked as a *write*;
119
119
  * fails closed on a missing key. Afterwards the key is free to `register`
120
120
  * again — the present → absent → present lifecycle. */
121
121
  remove<T>(key: ResourceKey<T>): void;
122
122
  has<T>(key: ResourceKey<T>): boolean;
123
123
  }
124
- /** The determinism surface (#626 / ADR-0020): world snapshot/resume and the
124
+ /** The determinism surface: world snapshot/resume and the
125
125
  * canonical state digest. Every member except `deterministic` throws
126
126
  * `DETERMINISM_DISABLED` unless the world was constructed with
127
127
  * `{ deterministic: true }`. All cold-path — take captures at tick
@@ -138,8 +138,8 @@ export declare class ECSSnapshots {
138
138
  stateHash(): number;
139
139
  /** Capture the full live world (dense + sparse/relations + host-side
140
140
  * bookkeeping) to one self-contained byte buffer that `restore` can mount
141
- * back onto a live, ticking world (#789). v1 does NOT capture resources,
142
- * events, or change-detection baselines (ADR-0031). */
141
+ * back onto a live, ticking world. v1 does NOT capture resources,
142
+ * events, or change-detection baselines. */
143
143
  capture(): Uint8Array;
144
144
  /** Mount a `capture()` buffer onto this live world and keep ticking.
145
145
  * Fails closed on a malformed frame or registration mismatch BEFORE
@@ -147,8 +147,8 @@ export declare class ECSSnapshots {
147
147
  * layout (prewarm so the set is stable). */
148
148
  restore(bytes: Uint8Array): void;
149
149
  /** Serialize the sparse stores + relations to a self-contained buffer —
150
- * the sparse half of a world snapshot, canonical entity-index order
151
- * (#470). Pairs with `restoreSparse`. */
150
+ * the sparse half of a world snapshot, canonical entity-index order.
151
+ * Pairs with `restoreSparse`. */
152
152
  captureSparse(): Uint8Array;
153
153
  /** Repopulate the sparse stores + relation indices from `captureSparse`
154
154
  * bytes. Sparse components must already be registered in the same order;
@@ -1 +1 @@
1
- {"version":3,"file":"facades.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/facades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facades.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/facades.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export interface FrameTraceSink {
38
38
  *
39
39
  * This is the blessed seam for a consumer to read `stateHash()` between the
40
40
  * phases of one `update()` and bisect a divergence to the exact phase that
41
- * introduced it (#797 / ADR-0032). `flushEnd` marks the same instant, but it
41
+ * introduced it. `flushEnd` marks the same instant, but it
42
42
  * is an observation of the flush *mechanism*, not a "safe to read consistent
43
43
  * state" contract — so per-phase fingerprinting binds to this method, not to a
44
44
  * flush-internal name. Like every sink method the call is read-only w.r.t. the
@@ -115,7 +115,7 @@ export declare class FrameTraceRecorder implements FrameTraceSink {
115
115
  commandQueued(op: StructuralOp, entity: EntityID, component: number | null): void;
116
116
  flushBegin(phase: SCHEDULE): void;
117
117
  flushEnd(phase: SCHEDULE): void;
118
- /** No-op (#797 / ADR-0032). The recorder already marks this instant with
118
+ /** No-op. The recorder already marks this instant with
119
119
  * `flushEnd`, and a per-phase fingerprint is a consumer concern — the recorder
120
120
  * holds no world reference to hash. The seam exists so a consumer's OWN sink can
121
121
  * run code (e.g. `stateHash()`) at the safe post-flush point; the in-tree
@@ -38,7 +38,7 @@ export interface FrameTraceSink {
38
38
  *
39
39
  * This is the blessed seam for a consumer to read `stateHash()` between the
40
40
  * phases of one `update()` and bisect a divergence to the exact phase that
41
- * introduced it (#797 / ADR-0032). `flushEnd` marks the same instant, but it
41
+ * introduced it. `flushEnd` marks the same instant, but it
42
42
  * is an observation of the flush *mechanism*, not a "safe to read consistent
43
43
  * state" contract — so per-phase fingerprinting binds to this method, not to a
44
44
  * flush-internal name. Like every sink method the call is read-only w.r.t. the
@@ -115,7 +115,7 @@ export declare class FrameTraceRecorder implements FrameTraceSink {
115
115
  commandQueued(op: StructuralOp, entity: EntityID, component: number | null): void;
116
116
  flushBegin(phase: SCHEDULE): void;
117
117
  flushEnd(phase: SCHEDULE): void;
118
- /** No-op (#797 / ADR-0032). The recorder already marks this instant with
118
+ /** No-op. The recorder already marks this instant with
119
119
  * `flushEnd`, and a per-phase fingerprint is a consumer concern — the recorder
120
120
  * holds no world reference to hash. The seam exists so a consumer's OWN sink can
121
121
  * run code (e.g. `stateHash()`) at the safe post-flush point; the in-tree
@@ -5,7 +5,7 @@ import { SystemContext } from './query.cjs';
5
5
  import { SCHEDULE } from './schedule.cjs';
6
6
  import { PayloadCodec } from '../store/index.cjs';
7
7
  /** One component to attach to a freshly spawned entity. `values` are required
8
- * and complete as a *strictness* choice, not a runtime need: since #716 every
8
+ * and complete as a *strictness* choice, not a runtime need: every
9
9
  * attach path (deferred included — `writeFields`'s `?? 0`) zero-fills omitted
10
10
  * fields, same as templates. A host command is a reified, replayable record,
11
11
  * so it carries explicit intent for every field rather than relying on the
@@ -18,7 +18,7 @@ export interface SpawnEntry {
18
18
  type SchemaOf<D extends ComponentDef> = D extends ComponentDef<infer S> ? S : ComponentSchema;
19
19
  /** One schema-checked spawn entry: `values` is complete for its own def (see
20
20
  * the `SpawnEntry` doc — explicit intent per field, though the attach path
21
- * zero-fills since #716), and a tag takes exactly `{}`. */
21
+ * zero-fills), and a tag takes exactly `{}`. */
22
22
  export type SpawnEntryFor<D extends ComponentDef> = {
23
23
  readonly def: D;
24
24
  readonly values: CompleteFieldValues<SchemaOf<D>>;
@@ -28,7 +28,7 @@ export type SpawnEntryFor<D extends ComponentDef> = {
28
28
  * varargs (`StrictBundles` — `Partial`, a template/attach zero-fills omitted
29
29
  * fields), a host command demands complete values: it is a reified, replayable
30
30
  * record, so every field is explicit even though the attach path would
31
- * zero-fill (#716). This is the one attach surface that stays on entry-objects
31
+ * zero-fill. This is the one attach surface that stays on entry-objects
32
32
  * — it is transport (record/replay, editor undo), not authoring. */
33
33
  export type SpawnEntries<Defs extends readonly ComponentDef[]> = readonly [
34
34
  ...{
@@ -136,7 +136,7 @@ export declare class HostCommandQueue {
136
136
  push(cmd: HostCommand): this;
137
137
  /** Commands buffered but not yet applied. */
138
138
  get pending(): number;
139
- /** Drop every buffered command without applying it (M15) — e.g. abandoning
139
+ /** Drop every buffered command without applying it — e.g. abandoning
140
140
  * queued edits on a scene unload. Returns how many were dropped. Does not
141
141
  * touch commands already drained into the world. */
142
142
  clear(): number;
@@ -148,7 +148,7 @@ export declare class HostCommandQueue {
148
148
  * `tap`, when present, is invoked with each command in apply order just before
149
149
  * it is applied — the record/replay hook ({@link HostCommandRecorder}). It is
150
150
  * an OPT-IN observer: the tap-free path keeps the original tight loop, so an
151
- * un-recorded drain pays nothing (#702).
151
+ * un-recorded drain pays nothing.
152
152
  */
153
153
  drain(ctx: SystemContext, tap?: (cmd: HostCommand) => void): number;
154
154
  }
@@ -184,7 +184,7 @@ export declare function ringEnableCodec(): PayloadCodec<HostCommand>;
184
184
  export declare function ringRemoveComponentCodec(def: ComponentDef): PayloadCodec<HostCommand>;
185
185
  /** A ctx-aware applier for one ring opcode: runs on the system `ctx` (which the
186
186
  * apply system holds) with the raw 15-byte payload. `tap`, when present, is the
187
- * record/replay hook (#702) — a generic, `onCommand`-bound applier decodes the
187
+ * record/replay hook — a generic, `onCommand`-bound applier decodes the
188
188
  * slot to a `HostCommand` and feeds it to `tap` before applying, so ring-sourced
189
189
  * commands land in the same log as typed-queue ones. A raw `on` applier (a
190
190
  * consumer's own non-`HostCommand` op, e.g. the game's `spawn_unit`) has no
@@ -214,24 +214,24 @@ export declare class HostCommandDispatcher {
214
214
  private readonly appliers;
215
215
  /** Bind a raw ctx-aware applier to `opCode`. Re-binding replaces. */
216
216
  on(opCode: number, applier: RingCommandApplier): this;
217
- /** Unbind `opCode` (M15). Returns whether a binding was removed; subsequent
217
+ /** Unbind `opCode`. Returns whether a binding was removed; subsequent
218
218
  * slots carrying it hit the unknown-opcode path. */
219
219
  off(opCode: number): boolean;
220
220
  /** Bind a `HostCommand` codec to `opCode`: each matching slot is decoded and
221
221
  * run through `applyHostCommand` — the SAME dispatch the typed queue uses.
222
- * A drain-time `tap` (record/replay, #702) sees the decoded command before it
222
+ * A drain-time `tap` (record/replay) sees the decoded command before it
223
223
  * applies, so ring-sourced commands share one log with the typed transport. */
224
224
  onCommand(opCode: number, codec: PayloadCodec<HostCommand>): this;
225
225
  /** Drain every pending slot, dispatching each to its bound applier. Unbound
226
226
  * opcodes are skipped (the read head still advances — matching
227
227
  * `drainCommandRing` / `CommandDispatcher`). Returns slots drained. `tap`,
228
- * when present, is forwarded to each applier as the record/replay hook (#702);
228
+ * when present, is forwarded to each applier as the record/replay hook;
229
229
  * only `onCommand`-bound (generic `HostCommand`) opcodes surface to it. */
230
230
  drain(ctx: SystemContext, view: DataView, ringOff: number, tap?: (cmd: HostCommand) => void): number;
231
231
  }
232
232
  /**
233
233
  * A per-tick sink the apply system feeds drained commands into — the record side
234
- * of record/replay (#702). Declared structurally HERE (not imported from
234
+ * of record/replay. Declared structurally HERE (not imported from
235
235
  * `command_log.ts`) so the seam needs no dependency on the recorder: the one-way
236
236
  * edge is `command_log` → `host_commands`, never back. {@link HostCommandRecorder}
237
237
  * is the in-tree implementation.
@@ -265,14 +265,14 @@ export interface HostCommandSeamOptions {
265
265
  readonly ring?: HostCommandDispatcher;
266
266
  /** When provided, every command the apply system drains — from BOTH transports
267
267
  * (typed queue + `onCommand`-bound ring ops) — is logged into this sink,
268
- * tagged with the tick + `dt`, for record/replay (#702). Off by default: an
268
+ * tagged with the tick + `dt`, for record/replay. Off by default: an
269
269
  * un-recorded seam keeps the original tap-free drain and pays nothing.
270
270
  * {@link HostCommandRecorder} is the in-tree sink; replay it with
271
271
  * `replayCommandLog`. */
272
272
  readonly recorder?: HostCommandSink;
273
273
  }
274
274
  /**
275
- * Tear down a seam installed by {@link installHostCommandSeam} (M15): removes
275
+ * Tear down a seam installed by {@link installHostCommandSeam}: removes
276
276
  * its apply systems from the world's schedule and clears any still-buffered
277
277
  * commands. The queue itself stays usable as a buffer, but nothing drains it
278
278
  * until a new seam is installed. No-op (returns `false`) if `queue` was not
@@ -5,7 +5,7 @@ import { SystemContext } from './query.js';
5
5
  import { SCHEDULE } from './schedule.js';
6
6
  import { PayloadCodec } from '../store/index.js';
7
7
  /** One component to attach to a freshly spawned entity. `values` are required
8
- * and complete as a *strictness* choice, not a runtime need: since #716 every
8
+ * and complete as a *strictness* choice, not a runtime need: every
9
9
  * attach path (deferred included — `writeFields`'s `?? 0`) zero-fills omitted
10
10
  * fields, same as templates. A host command is a reified, replayable record,
11
11
  * so it carries explicit intent for every field rather than relying on the
@@ -18,7 +18,7 @@ export interface SpawnEntry {
18
18
  type SchemaOf<D extends ComponentDef> = D extends ComponentDef<infer S> ? S : ComponentSchema;
19
19
  /** One schema-checked spawn entry: `values` is complete for its own def (see
20
20
  * the `SpawnEntry` doc — explicit intent per field, though the attach path
21
- * zero-fills since #716), and a tag takes exactly `{}`. */
21
+ * zero-fills), and a tag takes exactly `{}`. */
22
22
  export type SpawnEntryFor<D extends ComponentDef> = {
23
23
  readonly def: D;
24
24
  readonly values: CompleteFieldValues<SchemaOf<D>>;
@@ -28,7 +28,7 @@ export type SpawnEntryFor<D extends ComponentDef> = {
28
28
  * varargs (`StrictBundles` — `Partial`, a template/attach zero-fills omitted
29
29
  * fields), a host command demands complete values: it is a reified, replayable
30
30
  * record, so every field is explicit even though the attach path would
31
- * zero-fill (#716). This is the one attach surface that stays on entry-objects
31
+ * zero-fill. This is the one attach surface that stays on entry-objects
32
32
  * — it is transport (record/replay, editor undo), not authoring. */
33
33
  export type SpawnEntries<Defs extends readonly ComponentDef[]> = readonly [
34
34
  ...{
@@ -136,7 +136,7 @@ export declare class HostCommandQueue {
136
136
  push(cmd: HostCommand): this;
137
137
  /** Commands buffered but not yet applied. */
138
138
  get pending(): number;
139
- /** Drop every buffered command without applying it (M15) — e.g. abandoning
139
+ /** Drop every buffered command without applying it — e.g. abandoning
140
140
  * queued edits on a scene unload. Returns how many were dropped. Does not
141
141
  * touch commands already drained into the world. */
142
142
  clear(): number;
@@ -148,7 +148,7 @@ export declare class HostCommandQueue {
148
148
  * `tap`, when present, is invoked with each command in apply order just before
149
149
  * it is applied — the record/replay hook ({@link HostCommandRecorder}). It is
150
150
  * an OPT-IN observer: the tap-free path keeps the original tight loop, so an
151
- * un-recorded drain pays nothing (#702).
151
+ * un-recorded drain pays nothing.
152
152
  */
153
153
  drain(ctx: SystemContext, tap?: (cmd: HostCommand) => void): number;
154
154
  }
@@ -184,7 +184,7 @@ export declare function ringEnableCodec(): PayloadCodec<HostCommand>;
184
184
  export declare function ringRemoveComponentCodec(def: ComponentDef): PayloadCodec<HostCommand>;
185
185
  /** A ctx-aware applier for one ring opcode: runs on the system `ctx` (which the
186
186
  * apply system holds) with the raw 15-byte payload. `tap`, when present, is the
187
- * record/replay hook (#702) — a generic, `onCommand`-bound applier decodes the
187
+ * record/replay hook — a generic, `onCommand`-bound applier decodes the
188
188
  * slot to a `HostCommand` and feeds it to `tap` before applying, so ring-sourced
189
189
  * commands land in the same log as typed-queue ones. A raw `on` applier (a
190
190
  * consumer's own non-`HostCommand` op, e.g. the game's `spawn_unit`) has no
@@ -214,24 +214,24 @@ export declare class HostCommandDispatcher {
214
214
  private readonly appliers;
215
215
  /** Bind a raw ctx-aware applier to `opCode`. Re-binding replaces. */
216
216
  on(opCode: number, applier: RingCommandApplier): this;
217
- /** Unbind `opCode` (M15). Returns whether a binding was removed; subsequent
217
+ /** Unbind `opCode`. Returns whether a binding was removed; subsequent
218
218
  * slots carrying it hit the unknown-opcode path. */
219
219
  off(opCode: number): boolean;
220
220
  /** Bind a `HostCommand` codec to `opCode`: each matching slot is decoded and
221
221
  * run through `applyHostCommand` — the SAME dispatch the typed queue uses.
222
- * A drain-time `tap` (record/replay, #702) sees the decoded command before it
222
+ * A drain-time `tap` (record/replay) sees the decoded command before it
223
223
  * applies, so ring-sourced commands share one log with the typed transport. */
224
224
  onCommand(opCode: number, codec: PayloadCodec<HostCommand>): this;
225
225
  /** Drain every pending slot, dispatching each to its bound applier. Unbound
226
226
  * opcodes are skipped (the read head still advances — matching
227
227
  * `drainCommandRing` / `CommandDispatcher`). Returns slots drained. `tap`,
228
- * when present, is forwarded to each applier as the record/replay hook (#702);
228
+ * when present, is forwarded to each applier as the record/replay hook;
229
229
  * only `onCommand`-bound (generic `HostCommand`) opcodes surface to it. */
230
230
  drain(ctx: SystemContext, view: DataView, ringOff: number, tap?: (cmd: HostCommand) => void): number;
231
231
  }
232
232
  /**
233
233
  * A per-tick sink the apply system feeds drained commands into — the record side
234
- * of record/replay (#702). Declared structurally HERE (not imported from
234
+ * of record/replay. Declared structurally HERE (not imported from
235
235
  * `command_log.ts`) so the seam needs no dependency on the recorder: the one-way
236
236
  * edge is `command_log` → `host_commands`, never back. {@link HostCommandRecorder}
237
237
  * is the in-tree implementation.
@@ -265,14 +265,14 @@ export interface HostCommandSeamOptions {
265
265
  readonly ring?: HostCommandDispatcher;
266
266
  /** When provided, every command the apply system drains — from BOTH transports
267
267
  * (typed queue + `onCommand`-bound ring ops) — is logged into this sink,
268
- * tagged with the tick + `dt`, for record/replay (#702). Off by default: an
268
+ * tagged with the tick + `dt`, for record/replay. Off by default: an
269
269
  * un-recorded seam keeps the original tap-free drain and pays nothing.
270
270
  * {@link HostCommandRecorder} is the in-tree sink; replay it with
271
271
  * `replayCommandLog`. */
272
272
  readonly recorder?: HostCommandSink;
273
273
  }
274
274
  /**
275
- * Tear down a seam installed by {@link installHostCommandSeam} (M15): removes
275
+ * Tear down a seam installed by {@link installHostCommandSeam}: removes
276
276
  * its apply systems from the world's schedule and clears any still-buffered
277
277
  * commands. The queue itself stays usable as a buffer, but nothing drains it
278
278
  * until a new seam is installed. No-op (returns `false`) if `queue` was not
@@ -1 +1 @@
1
- {"version":3,"file":"host_commands.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/host_commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host_commands.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/host_commands.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export type { FrameTraceSink, FrameTrace, FrameTraceEvent, StructuralOp, Observe
21
21
  export { FrameStepper } from './frame_stepper.cjs';
22
22
  export type { FrameStepperOptions } from './frame_stepper.cjs';
23
23
  export { ECSRestoreError, ECS_SNAPSHOT_VERSION } from './resume.cjs';
24
- export type { ComponentRef, ReadonlyComponentRef } from './ref.cjs';
24
+ export type { ComponentCursor, ComponentRef, CursorSeek, ReadonlyComponentCursor, ReadonlyComponentRef } from './ref.cjs';
25
25
  export { Query, QueryBuilder, ChangedQuery, HIERARCHY_UNBOUNDED } from './query.cjs';
26
26
  export type { HierarchyTerm } from './query.cjs';
27
27
  export { ChunkColumns, Commands } from './query.cjs';
@@ -21,7 +21,7 @@ export type { FrameTraceSink, FrameTrace, FrameTraceEvent, StructuralOp, Observe
21
21
  export { FrameStepper } from './frame_stepper.js';
22
22
  export type { FrameStepperOptions } from './frame_stepper.js';
23
23
  export { ECSRestoreError, ECS_SNAPSHOT_VERSION } from './resume.js';
24
- export type { ComponentRef, ReadonlyComponentRef } from './ref.js';
24
+ export type { ComponentCursor, ComponentRef, CursorSeek, ReadonlyComponentCursor, ReadonlyComponentRef } from './ref.js';
25
25
  export { Query, QueryBuilder, ChangedQuery, HIERARCHY_UNBOUNDED } from './query.js';
26
26
  export type { HierarchyTerm } from './query.js';
27
27
  export { ChunkColumns, Commands } from './query.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAI7C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMrF,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAItB,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAM3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMnE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EACN,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,SAAS,EACT,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,eAAe,EACf,cAAc,EACd,aAAa,EACb,GAAG,EACH,KAAK,EACL,KAAK,EACL,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAIlB,YAAY,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,YAAY,EACX,cAAc,EACd,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAUpB,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAK3D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAiBjE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG9D,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAIhE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS1C,OAAO,EACN,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,MAAM,UAAU,CAAC;AAGlB,YAAY,EACX,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO5F,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAKpD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKhG,YAAY,EACX,WAAW,EACX,QAAQ,EACR,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG9C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EACN,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/index.ts"],"names":[],"mappings":"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"}