@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
@@ -6,13 +6,13 @@ import { ComponentDef, ComponentHandle, ComponentID, MutableColumnsForSchema, Co
6
6
  import { SparseComponentDef, SparseComponentID, SparseSchemaOf } from './sparse_store.js';
7
7
  import { RelationDef } from './relation.js';
8
8
  import { SystemAccess, DeclaredRead, DeclaredWrite, DeclaredAdd, DeclaredRemove, DeclaredSparseRead, DeclaredSparseWrite, DeclaredRelationRead, DeclaredRelationWrite, DeclaredResourceRead, DeclaredResourceWrite, DespawnArg } from './system.js';
9
- import { ComponentRef, ReadonlyComponentRef } from './ref.js';
9
+ import { ComponentCursor, ComponentRef, ReadonlyComponentCursor, ReadonlyComponentRef } from './ref.js';
10
10
  import { EventKey, EventReader, EventShape, SignalKey } from './event.js';
11
11
  import { ResourceKey, ResourceValueOf } from './resource.js';
12
12
  import { BitSet } from '../../type_primitives/index.js';
13
13
  /** The query-driver seam on `Store` — the typed contract behind the
14
- * underscore members `ecs.ts` and the query internals reach (M1). `Store`
15
- * implements this; when the cache/driver layer is extracted (M2/H1) the
14
+ * underscore members `ecs.ts` and the query internals reach. `Store`
15
+ * implements this; when the cache/driver layer is extracted the
16
16
  * interface retargets at the collaborator without touching consumers.
17
17
  * `_tick` / `_trace` are deliberately mutable: `ECS.update()` advances the
18
18
  * change tick and `ECS.setTrace` installs the sink through this seam. */
@@ -25,7 +25,7 @@ export interface QueryHost {
25
25
  * gates `_noteSet` at every write site. */
26
26
  readonly _anyDirtyTracked: boolean;
27
27
  /** Bumped when an archetype crosses empty↔non-empty — cached query
28
- * archetype lists rebuild when their observed epoch is stale (#327). */
28
+ * archetype lists rebuild when their observed epoch is stale. */
29
29
  readonly _queryDirtyEpoch: number;
30
30
  /** Record a per-entity onSet dirty mark for `def` (gated by
31
31
  * `_anyDirtyTracked` at the call site). */
@@ -33,11 +33,11 @@ export interface QueryHost {
33
33
  /** Dev-only: buffered event count across dirty channels (mid-update emit
34
34
  * detection in `ECS.update()`). */
35
35
  _devBufferedEventCount(): number;
36
- /** Second query-match path: sparse-term intersection (#469 / ADR-0011). */
36
+ /** Second query-match path: sparse-term intersection. */
37
37
  _forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void, includeDisabled: boolean): void;
38
- /** Third query-match path: the `(*, T)` wildcard (#579). */
38
+ /** Third query-match path: the `(*, T)` wildcard. */
39
39
  _forEachRelationTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
40
- /** Fourth query-match path: hierarchy depth ordering (#581). */
40
+ /** Fourth query-match path: hierarchy depth ordering. */
41
41
  _forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
42
42
  }
43
43
  export interface QueryCacheEntry {
@@ -46,7 +46,7 @@ export interface QueryCacheEntry {
46
46
  anyOfMask: BitSet | null;
47
47
  query: Query<any>;
48
48
  }
49
- /** One owner for every query-resolution cache (M2). Previously the dedup
49
+ /** One owner for every query-resolution cache. Previously the dedup
50
50
  * bucket map lived on `ECS` while `Query` populated eleven composition maps
51
51
  * declared on the resolver interface — ownership split across two modules.
52
52
  * All entries are structural (a query is minted once per unique term set and
@@ -84,10 +84,10 @@ export interface QueryResolver {
84
84
  _getCurrentTick(): number;
85
85
  _getQueryDirtyEpoch(): number;
86
86
  _nextQueryId(): number;
87
- /** All query-resolution caches — dedup + composition (M2). One owner; see
87
+ /** All query-resolution caches — dedup + composition. One owner; see
88
88
  * `QueryCache` for the per-map keying/id-space notes. */
89
89
  readonly _caches: QueryCache;
90
- /** Second query-match path (#469 / ADR-0011): drive iteration by sparse
90
+ /** Second query-match path: drive iteration by sparse
91
91
  * membership rather than the archetype mask, yielding entities — sparse
92
92
  * members are scattered across archetypes, so there is no archetype-column
93
93
  * span to hand back. With a sparse require term, drive from the smallest
@@ -95,18 +95,18 @@ export interface QueryResolver {
95
95
  * archetype list and skip excluded rows; with neither, walk dense entities.
96
96
  * Only entered via `Query.forEachEntity`, so dense `forEach` never pays.
97
97
  * `includeDisabled` widens the per-archetype row scan from enabled rows to
98
- * all rows (#577). */
98
+ * all rows. */
99
99
  _forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void, includeDisabled: boolean): void;
100
100
  /** Backing sparse id of a relation — resolves a `(R, *)` wildcard term
101
- * (`withRelation`, #579) to the membership store the sparse-match path
101
+ * (`withRelation`) to the membership store the sparse-match path
102
102
  * already drives. */
103
103
  _relationBackingSparseId(def: RelationDef): SparseComponentID;
104
- /** Third query-match path (#579): `(*, T)` — drive iteration from the union of
104
+ /** Third query-match path: `(*, T)` — drive iteration from the union of
105
105
  * every relation's `sourcesOf(target)` (dedup + canonical sort), intersected
106
106
  * with the dense mask + sparse terms + the enabled-row filter. Only entered via
107
107
  * `Query.forEachRelatedTo`. */
108
108
  _forEachRelationTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
109
- /** Fourth query-match path (#581): yield the matched entities (dense mask +
109
+ /** Fourth query-match path: yield the matched entities (dense mask +
110
110
  * sparse terms + enabled-row filter, exactly the `_forEachSparseMatch`
111
111
  * intersection) in canonical **hierarchy depth order** over exclusive relation
112
112
  * `relation` — depth ascending (parents before children), entity index
@@ -115,10 +115,10 @@ export interface QueryResolver {
115
115
  * on a query carrying a `.hierarchy(R)` term. */
116
116
  _forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
117
117
  }
118
- /** No depth limit on a `.hierarchy(R)` term (#581) — yield every matched entity
118
+ /** No depth limit on a `.hierarchy(R)` term — yield every matched entity
119
119
  * regardless of its depth in the tree. The default `maxDepth`. */
120
120
  export declare const HIERARCHY_UNBOUNDED: number;
121
- /** A `.hierarchy(R)` depth-ordering term (#581). Records the exclusive relation
121
+ /** A `.hierarchy(R)` depth-ordering term. Records the exclusive relation
122
122
  * whose tree defines the order and the (optional) max depth to yield. Stored on
123
123
  * the Query and consumed by the `forEachEntity` hierarchy match path; absent
124
124
  * (`null`) for the common case. */
@@ -143,10 +143,10 @@ export declare class ChunkColumns<out Defs extends readonly ComponentDef<any>[]
143
143
  /** @internal */ _arch: Archetype;
144
144
  /** @internal */ _tick: number;
145
145
  /** Mutable column group — `const { x, y } = cols.mut(Pos)`. Stamps the tick.
146
- * `def` must be a term of the iterating query (POLISH_AUDIT #6). */
146
+ * `def` must be a term of the iterating query. */
147
147
  mut<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): MutableColumnsForSchema<SchemaOf<D>>;
148
148
  /** Read-only column group — `const { vx, vy } = cols.read(Vel)`. No tick bump.
149
- * `def` must be a term of the iterating query (POLISH_AUDIT #6). */
149
+ * `def` must be a term of the iterating query. */
150
150
  read<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): ColumnsForSchema<SchemaOf<D>>;
151
151
  }
152
152
  export declare class Query<Defs extends readonly ComponentDef[]> {
@@ -173,7 +173,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
173
173
  * sparse-derived query they'd **fail open** — returning the unfiltered dense
174
174
  * result instead of the sparse-filtered one. Throw in `DEV` (compiled
175
175
  * out of prod) steering the caller to `forEachEntity`, the only path that
176
- * honors sparse membership (#469). Mirrors `ChangedQuery`'s dev-guard on its
176
+ * honors sparse membership. Mirrors `ChangedQuery`'s dev-guard on its
177
177
  * include-mask invariant. */
178
178
  private _assertDenseOnly;
179
179
  /** Whether this query carries only dense terms — the precondition for the
@@ -181,7 +181,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
181
181
  private _isDenseOnly;
182
182
  /** First matching entity, or `undefined` when the query matches none — the
183
183
  * singleton read (`player`, `camera`) without hand-rolling a forEach +
184
- * closure capture (POLISH_AUDIT M8). Dense-only queries answer from the
184
+ * closure capture. Dense-only queries answer from the
185
185
  * first non-empty archetype in O(archetypes); queries with sparse /
186
186
  * relation / hierarchy terms fall back to a full `forEachEntity` walk.
187
187
  * "First" is iteration order, not spawn order — with more than one match
@@ -197,16 +197,16 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
197
197
  /** Number of matching archetypes (including empty ones). */
198
198
  get archetypeCount(): number;
199
199
  /** Total entity count across all matching archetypes — enabled rows only by
200
- * default, or all rows when `includeDisabled()` (#577). Reads the partition
200
+ * default, or all rows when `includeDisabled`. Reads the partition
201
201
  * fields directly (not the archetype's flag-dependent `entityCount`
202
202
  * getter). */
203
203
  get entityCount(): number;
204
204
  get archetypes(): readonly ArchetypeView<Defs>[];
205
- /** Carry this query's non-dense terms — optional fetch-if-present (#575) and
206
- * sparse membership (#469) — onto a freshly composed dense query. `and` /
205
+ /** Carry this query's non-dense terms — optional fetch-if-present and
206
+ * sparse membership — onto a freshly composed dense query. `and` /
207
207
  * `not` / `anyOf` build the new dense mask via `_resolveQuery`, which is
208
208
  * keyed on the mask alone and so hands back a query carrying NONE of these
209
- * terms; before #592 that silently dropped them, making composition
209
+ * terms; an earlier version silently dropped them, which made composition
210
210
  * order-dependent (`q.optional(V).and(H)` lost `V`; `q.and(H).optional(V)`
211
211
  * kept it). When this query carries no non-dense terms (the common case)
212
212
  * `base` is already correct and returned as-is, preserving the mask-cached
@@ -216,7 +216,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
216
216
  private _carryNondense;
217
217
  /** Extend required component set. Returns a new (cached) Query. */
218
218
  and<D extends ComponentDef[]>(...comps: D): Query<[...Defs, ...D]>;
219
- /** @internal — cold cache-miss path for single-arg `and`, split out (#649) so
219
+ /** @internal — cold cache-miss path for single-arg `and`, split out so
220
220
  * the hot `and` body is just key-compute + cache hit. The miss path runs once
221
221
  * per unique composition, then every repeat is a cache hit; keeping it out of
222
222
  * line shrinks `and`'s inlined footprint when several composes share one hot
@@ -225,9 +225,9 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
225
225
  private _andMiss;
226
226
  /** Exclude archetypes that have any of these components. */
227
227
  without(...comps: ComponentDef[]): Query<Defs>;
228
- /** @internal — cold cache-miss path for single-arg `not` (#649); see `_andMiss`. */
228
+ /** @internal — cold cache-miss path for single-arg `not`; see `_andMiss`. */
229
229
  private _notMiss;
230
- /** Require a sparse component (#469): match only entities that hold it,
230
+ /** Require a sparse component: match only entities that hold it,
231
231
  * across every archetype. A sparse term doesn't touch the dense mask, so
232
232
  * the returned (cached) query reuses this one's live archetype list; it is
233
233
  * iterated via `forEachEntity`, never `forEach` (sparse members are
@@ -237,11 +237,11 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
237
237
  * the resolver's shared single-term map. Both the single- and multi-arg public
238
238
  * forms fold over this, so all sparse-require composition is deduplicated. */
239
239
  private _withSparseOne;
240
- /** Exclude a sparse component (#469): drop entities that hold it. Same
240
+ /** Exclude a sparse component: drop entities that hold it. Same
241
241
  * dense-list reuse and `forEachEntity` iteration as `withSparse`. */
242
242
  withoutSparse(...defs: SparseComponentDef[]): Query<Defs>;
243
243
  /** One-id `withoutSparse` composition, cached on `(parent_id, sparseId)`. The
244
- * multi-arg form folds over this (#497) — mirrors `_withSparseOne`. */
244
+ * multi-arg form folds over this — mirrors `_withSparseOne`. */
245
245
  private _withoutSparseOne;
246
246
  /** Build a derived query carrying new sparse terms. Reuses this query's
247
247
  * dense state by reference — the masks are never mutated in place (`and` /
@@ -250,19 +250,19 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
250
250
  * Carries the existing `_optional` terms through unchanged (the two axes
251
251
  * compose). */
252
252
  private _deriveSparse;
253
- /** Require the `(R, *)` wildcard (#579): match only sources that hold **any**
253
+ /** Require the `(R, *)` wildcard: match only sources that hold **any**
254
254
  * target under relation `R`. "Has any `(R, *)` pair" is exactly membership in
255
255
  * R's backing sparse store (exclusive `{target}` row / multi tag), so this is a
256
256
  * relation-typed front door over `withSparse` — it pushes R's backing sparse
257
257
  * id onto `_sparseInclude` and reuses the `forEachEntity` sparse-match path
258
258
  * (insertion order; canonical sorting is reserved for `stateHash`/snapshot, and
259
- * costs 4–5× here for no determinism benefit — see the §579 bench report).
259
+ * costs much more here for no determinism benefit).
260
260
  * Membership semantics: each source once; fetch its targets with
261
261
  * `ctx.targetsOf(e, R)`. Requires `relationReads: [R]` (checked at iteration).
262
- * Cached per `(parent_id, relation_id)` like the sparse terms (#497). */
262
+ * Cached per `(parent_id, relation_id)` like the sparse terms. */
263
263
  withRelation(...defs: RelationDef[]): Query<Defs>;
264
264
  private _withRelationOne;
265
- /** Exclude the `(R, *)` wildcard (#579): drop sources that hold any target
265
+ /** Exclude the `(R, *)` wildcard: drop sources that hold any target
266
266
  * under `R`. Mirror of `withRelation` on the exclude side (pushes R's
267
267
  * backing sparse id onto `_sparseExclude`). */
268
268
  withoutRelation(...defs: RelationDef[]): Query<Defs>;
@@ -274,7 +274,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
274
274
  private _deriveRelation;
275
275
  /** Order this query's matched entities in **hierarchy depth order** over the
276
276
  * exclusive relation `R` — parents before children — and (optionally) drop any
277
- * deeper than `maxDepth` (#581; flecs `cascade` / bitECS `Hierarchy()`). The
277
+ * deeper than `maxDepth` (flecs `cascade` / bitECS `Hierarchy()`). The
278
278
  * matched *set* is unchanged (still the dense mask + sparse + `(R, *)` + disabled
279
279
  * terms); `.hierarchy(R)` only **reorders** + depth-limits it, so an entity with
280
280
  * no `R`-parent is a root at depth 0 and still yielded (first). The canonical
@@ -284,8 +284,8 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
284
284
  *
285
285
  * Iterate with `forEachEntity`: members scatter across archetypes, so there is
286
286
  * no SoA column span — `forEach` / `count` reject a hierarchy query (like a
287
- * sparse term). **Exclusive relations only** (matches the traversal constraint
288
- * #474); a multi relation throws `RELATION_MODE_MISMATCH` at iteration, and a
287
+ * sparse term). **Exclusive relations only** (matches the traversal
288
+ * constraint); a multi relation throws `RELATION_MODE_MISMATCH` at iteration, and a
289
289
  * cycle is a loud `RELATION_CYCLE` in `DEV` (a safe break in production).
290
290
  * Requires `relationReads: [R]` (checked at iteration). Carried through
291
291
  * `and`/`not`/`anyOf` like the sparse terms (`_carryNondense`).
@@ -298,13 +298,13 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
298
298
  * reference (the matched set is unchanged) — same rationale as `_deriveSparse`. */
299
299
  private _deriveHierarchy;
300
300
  /** Assert every `(R, *)` wildcard term on this query was declared in the
301
- * system's `relationReads` (#579 / #496). Iteration-time (`forEachEntity` /
301
+ * system's `relationReads`. Iteration-time (`forEachEntity` /
302
302
  * `forEachRelatedTo`), not construction-time, so it is robust to queries
303
303
  * built outside a system — same rationale as the data-op checks. `DEV` only;
304
304
  * outside a system `checkRelationRead` is a no-op. */
305
305
  private _checkRelationAccess;
306
306
  /** Iterate every source related to `target` under **any** relation — the
307
- * `(*, T)` wildcard (#579) — intersected with this query's dense + sparse +
307
+ * `(*, T)` wildcard — intersected with this query's dense + sparse +
308
308
  * `(R, *)` + disabled predicate, each source yielded once in ascending-EntityID
309
309
  * order (the `sourcesOf` / `sourcesOfAny` convention). `target` is supplied
310
310
  * here rather than as a chained term because it is a runtime `EntityID`: baking
@@ -315,13 +315,13 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
315
315
  * `relationReads: [ANY_RELATION]` (plus `[R]` for any composed `withRelation`).
316
316
  * Cold/structural — not a per-tick hot loop over many targets. */
317
317
  forEachRelatedTo(target: EntityID, cb: (entityId: EntityID) => void): void;
318
- /** Add optional fetch-if-present terms (#575). Does NOT narrow the matched
318
+ /** Add optional fetch-if-present terms. Does NOT narrow the matched
319
319
  * set — the dense mask is untouched, so iteration still spans archetypes with
320
320
  * and without each `T`. Read each column per archetype span via
321
321
  * `arch.getOptionalColumnRead(T, field)` (column when present, `undefined`
322
322
  * when absent). `.optional(T)` is the *declaration* that authorizes that fetch:
323
323
  * inside `forEach`, `getOptionalColumnRead` throws in `DEV` if `T` was
324
- * not declared here (#592) — the read-side analog of `reads:[T]`, which is also
324
+ * not declared here — the read-side analog of `reads:[T]`, which is also
325
325
  * still required for access coverage (both checks fire, even on the absent
326
326
  * span). The term is carried through `and`/`not`/`anyOf` (see
327
327
  * `_carryNondense`), so it survives composition in any order. Returns a new
@@ -338,7 +338,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
338
338
  * dense state by reference (the matched set is unchanged) and carries the
339
339
  * existing sparse terms through unchanged — same rationale as `_deriveSparse`. */
340
340
  private _deriveOptional;
341
- /** Opt this query back in to disabled entities (#577). By default a query
341
+ /** Opt this query back in to disabled entities. By default a query
342
342
  * excludes disabled entities (the iteration bound `arch.entityCount` is the
343
343
  * enabled-row count). The returned (cached) query spans disabled rows too:
344
344
  * `forEach` publishes the all-rows flag so the SoA loop's `arch.entityCount`
@@ -347,8 +347,8 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
347
347
  * carried through `and`/`not`/`anyOf` like the sparse/optional terms. */
348
348
  includeDisabled(): Query<Defs>;
349
349
  forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
350
- /** @internal — cold `includeDisabled` wrapper for `forEach` (#577), split out
351
- * (#649) so the all-rows flag dance (`_setIterAllRows` + try/finally) stays
350
+ /** @internal — cold `includeDisabled` wrapper for `forEach`, split out
351
+ * so the all-rows flag dance (`_setIterAllRows` + try/finally) stays
352
352
  * out of `forEach`'s inlined hot body. The default (enabled-only) query never
353
353
  * reaches here, so V8 leaves this uninlined and `forEach` shrinks accordingly. */
354
354
  private _forEachIncludeDisabled;
@@ -399,15 +399,15 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
399
399
  forEachUntil(cb: (arch: ArchetypeView<Defs>) => boolean): boolean;
400
400
  /** @internal — shared body for `forEachUntil`'s default and
401
401
  * `includeDisabled` paths. Same dev-mode optional-term scope as
402
- * `forEach` (#592). */
402
+ * `forEach`. */
403
403
  private _forEachUntilInner;
404
- /** @internal — the `includeDisabled` delegate for `forEach` (#577). The
404
+ /** @internal — the `includeDisabled` delegate for `forEach`. The
405
405
  * default (enabled-only) path inlines this body directly into `forEach`
406
- * (#608) to dodge a megamorphic delegate hop; this copy survives only for the
406
+ * to dodge a megamorphic delegate hop; this copy survives only for the
407
407
  * rare all-rows path, which needs the `_setIterAllRows` try/finally wrap. */
408
408
  private _forEachInner;
409
409
  /** Iterate the entities this query matches, yielding each `EntityID`
410
- * (#469 — the sparse-membership match path). Use this whenever the query
410
+ * (the sparse-membership match path). Use this whenever the query
411
411
  * carries a `withSparse` / `withoutSparse` term: members are scattered
412
412
  * across archetypes, so there is no SoA column span to hand back — read
413
413
  * fields via `ctx.getField` (dense) or `ctx.getSparseField` (sparse) on
@@ -428,7 +428,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
428
428
  * Store has bumped its dirty epoch since our last rebuild, return cached result.
429
429
  *
430
430
  * Rebuild allocates a *fresh* array and swaps it in rather than truncating
431
- * the cached one in place (#431). `forEach`/`count`/`ChangedQuery.forEach`
431
+ * the cached one in place. `forEach`/`count`/`ChangedQuery.forEach`
432
432
  * bind the returned array once and walk it; an in-place `dst.length = 0` +
433
433
  * re-push would corrupt that walk if the query is re-entrantly iterated —
434
434
  * i.e. the callback runs an immediate-mode mutation that crosses a
@@ -441,7 +441,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
441
441
  * iteration never triggers a rebuild mid-loop: deferred mutations settle the
442
442
  * epoch during `flushStructural`, between systems. */
443
443
  _nonEmpty(): Archetype[];
444
- /** @internal — cold rebuild path for `_nonEmpty`, split out (#649) so the
444
+ /** @internal — cold rebuild path for `_nonEmpty`, split out so the
445
445
  * hot `_nonEmpty` body is just an epoch check + cached return. Keeping the
446
446
  * filter loops here shrinks `_nonEmpty`'s inlined bytecode footprint, which
447
447
  * matters when several composed queries iterate inside one hot function (the
@@ -450,7 +450,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
450
450
  private _rebuildNonEmpty;
451
451
  /** Require at least one of these components. */
452
452
  anyOf(...comps: ComponentDef[]): Query<Defs>;
453
- /** @internal — cold cache-miss path for single-arg `anyOf` (#649); see `_andMiss`. */
453
+ /** @internal — cold cache-miss path for single-arg `anyOf`; see `_andMiss`. */
454
454
  private _anyOfMiss;
455
455
  /** Create a ChangedQuery that filters archetypes by change tick.
456
456
  *
@@ -461,11 +461,11 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
461
461
  * Use cases that need row-level granularity should compare per-row
462
462
  * state explicitly inside the callback.
463
463
  *
464
- * The returned ChangedQuery is composable (M6): `and`/`without`/`anyOf`/
464
+ * The returned ChangedQuery is composable: `and`/`without`/`anyOf`/
465
465
  * `optional` refine it further, so `q.changed(Pos).without(Dead)` works — and
466
466
  * is the same set as `q.without(Dead).changed(Pos)`. */
467
467
  changed(...defs: ComponentDef[]): ChangedQuery<Defs>;
468
- /** @internal — cold cache-miss path for single-arg `changed` (#649); see `_andMiss`. */
468
+ /** @internal — cold cache-miss path for single-arg `changed`; see `_andMiss`. */
469
469
  private _changedMiss;
470
470
  /** @internal — reads lastRunTick from the resolver (ECS). */
471
471
  _ctxLastRunTick(): number;
@@ -508,7 +508,7 @@ export type DeclaredBundleOrDef<D> = [D] extends [unknown] ? D extends Component
508
508
  readonly values: Readonly<Partial<FieldValues<SchemaOf<D>>>>;
509
509
  } : never : never;
510
510
  /**
511
- * Deferred structural-command facade (§ctx.commands — Bevy `Commands`).
511
+ * Deferred structural-command facade (Bevy `Commands`).
512
512
  * Namespaces the deferred structural ops so the call site is self-documenting:
513
513
  * `ctx.commands.add(e, …)` is *always* deferred (applied at the phase flush),
514
514
  * ending the collision where `ecs.addComponent` (immediate) and a bare
@@ -553,7 +553,7 @@ export declare class Commands<out A extends SystemAccess = SystemAccess> {
553
553
  remove<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRemove<A, D>): this;
554
554
  /** Destroy an entity (deferred). */
555
555
  despawn(entityId: DespawnArg<A>): this;
556
- /** Buffer `entityId` to be disabled at the phase flush (idempotent, #577).
556
+ /** Buffer `entityId` to be disabled at the phase flush (idempotent).
557
557
  * Deferred because a toggle is an in-archetype row swap, which would corrupt
558
558
  * a `forEach` SoA loop iterating that archetype if applied mid-system (it
559
559
  * reorders the dense columns being read). A disabled entity is excluded from
@@ -583,11 +583,11 @@ export declare class Commands<out A extends SystemAccess = SystemAccess> {
583
583
  export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
584
584
  private readonly store;
585
585
  lastRunTick: number;
586
- /** Deferred structural-command facade (§ctx.commands). */
586
+ /** Deferred structural-command facade. */
587
587
  readonly commands: Commands<A>;
588
588
  /** Current ECS tick. Use this for write ticks in getColumn. */
589
589
  get ecsTick(): number;
590
- /** The world's frame-trace sink (ADR-0030), or `null`. Lets the schedule
590
+ /** The world's frame-trace sink, or `null`. Lets the schedule
591
591
  * fire `systemStart`/`flush*` without reaching into the private store.
592
592
  * Read only under `if (DEV)`; the seam is dead-code-eliminated in prod. */
593
593
  get _trace(): FrameTraceSink | null;
@@ -596,7 +596,7 @@ export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
596
596
  hasComponent(entityId: EntityID, def: ComponentDef): boolean;
597
597
  getField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRead<A, D>, field: string & keyof SchemaOf<D>): number;
598
598
  /** Total sibling of {@link getField}, mirroring `ecs.tryGetField`
599
- * (POLISH_AUDIT #9): `undefined` when the entity is dead or doesn't hold
599
+ *: `undefined` when the entity is dead or doesn't hold
600
600
  * the component, instead of a dev throw / prod garbage read. The safe way
601
601
  * to probe-and-read in one call: `ctx.tryGetField(e, Health, "current") ?? 0`. */
602
602
  tryGetField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRead<A, D>, field: string & keyof SchemaOf<D>): number | undefined;
@@ -609,8 +609,8 @@ export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
609
609
  * still generic cannot call them without casts). */
610
610
  updateField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredWrite<A, D>, field: string & keyof SchemaOf<D>, fn: (current: number) => number): number;
611
611
  /**
612
- * Record an entity as changed for a component's per-entity `onSet` observer
613
- * (#517 §1 / ADR-0013). The SoA write idiom — `const col = arch.getColumn(D,
612
+ * Record an entity as changed for a component's per-entity `onSet` observer.
613
+ * The SoA write idiom — `const col = arch.getColumn(D,
614
614
  * f, tick); col[i] = v` in a tight loop — bypasses the deferred buffer and the
615
615
  * engine never sees the per-element writes, so a per-entity `onSet` consumer
616
616
  * pushes the row here (the bench's winning `tick+list`: raw write + an int
@@ -631,11 +631,32 @@ export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
631
631
  * is an *advisory* compile-time barrier (no `_changedTick` bump): the
632
632
  * `readonly` typing blocks field writes at the type layer, but the
633
633
  * underlying accessor shares its prototype with `ref()` and can still be
634
- * written through a §10c-policed cast. See ref.ts.
634
+ * written through a deliberate cast. See ref.ts.
635
635
  */
636
636
  refRead<D extends ComponentDef<any>>(def: D & DeclaredRead<A, D>, entityId: EntityID): ReadonlyComponentRef<SchemaOf<D>>;
637
+ /**
638
+ * A re-pointable single-entity cursor over `def` — the in-system twin of
639
+ * {@link ECS.cursor}, and the accessor to reach for when a system touches many
640
+ * entities **by id** rather than by query span.
641
+ *
642
+ * `ctx.ref` allocates one accessor for each entity. That allocation is the
643
+ * largest part of the cost of a read of one field by id, because to make an
644
+ * accessor costs much more than to move one. Make the cursor one time,
645
+ * outside the loop:
646
+ *
647
+ * const p = ctx.cursor(Pos);
648
+ * for (const e of hits) { p.at(e); p.x += p.y * dt; }
649
+ *
650
+ * Mutable: every `at()` stamps the change tick. Still prefer `eachChunk` when
651
+ * a query can express the entity set — a cursor removes the per-entity
652
+ * allocation, not the per-entity archetype resolution.
653
+ */
654
+ cursor<D extends ComponentDef<any>>(def: D & DeclaredWrite<A, D>): ComponentCursor<SchemaOf<D>>;
655
+ /** Read-only {@link cursor}: no change-tick stamp on `at()`. Advisory only,
656
+ * same caveat as `ctx.refRead`. */
657
+ cursorRead<D extends ComponentDef<any>>(def: D & DeclaredRead<A, D>): ReadonlyComponentCursor<SchemaOf<D>>;
637
658
  /** Whether `entityId` is currently disabled (immediate read). Toggling is
638
- * deferred — `ctx.commands.disable` / `ctx.commands.enable` (#577). */
659
+ * deferred — `ctx.commands.disable` / `ctx.commands.enable`. */
639
660
  isDisabled(entityId: EntityID): boolean;
640
661
  /** Tags take no values argument; valued schemas require a complete one. */
641
662
  addSparse<D extends SparseComponentDef<any>>(entityId: EntityID, def: D & DeclaredSparseWrite<A, D>, ...values: AttachValuesArg<SparseSchemaOf<D>>): this;
@@ -660,12 +681,12 @@ export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
660
681
  * destructions. Republishes archetype row counts into the SAB
661
682
  * descriptor at the end so any WASM scan running in the next phase
662
683
  * sees fresh `row_count` fields. This is one of two publish sites —
663
- * `ECS.update()` also republishes once at tick start (see PATTERNS.md
664
- * §60), covering host-side mutations between updates. The publish walks
684
+ * `ECS.update()` also republishes once at tick start, which covers
685
+ * host-side mutations between updates. The publish walks
665
686
  * descriptors only — it doesn't touch column data — and benches at
666
687
  * sub-microsecond per archetype, so paying it once per phase boundary
667
- * is materially cheaper than the pre-#306 pattern of paying it per
668
- * WASM-using system per tick. After #336 the descriptor walk is gated
688
+ * is materially cheaper than the earlier pattern of paying it per
689
+ * WASM-using system per tick. The descriptor walk is now gated
669
690
  * on a dirty flag, so read-only phases skip the walk entirely. */
670
691
  flush(): void;
671
692
  /**
@@ -702,7 +723,7 @@ export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
702
723
  * already names it. */
703
724
  getResource<K extends ResourceKey<any>>(key: K & DeclaredResourceRead<A, K>): ResourceValueOf<K>;
704
725
  setResource<K extends ResourceKey<any>>(key: K & DeclaredResourceWrite<A, K>, value: ResourceValueOf<NoInfer<K>>): void;
705
- /** Drop a resource mid-tick (#798). A lifecycle mutation, so it is access-
726
+ /** Drop a resource mid-tick. A lifecycle mutation, so it is access-
706
727
  * checked as a *write* — the system must declare the key in `resourceWrites`,
707
728
  * which serialises it against readers/writers of the same resource. Fails
708
729
  * closed on a missing key. */
@@ -722,11 +743,11 @@ export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
722
743
  /** Permit optional-component data access in the loop (mirrors `Query.optional`). */
723
744
  optional(...defs: ComponentDef[]): ChangedQuery<Defs>;
724
745
  forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
725
- /** @internal — cold `includeDisabled` wrapper (#577), split out of `forEach`
726
- * (#649) so the all-rows flag dance stays out of the inlined hot body. */
746
+ /** @internal — cold `includeDisabled` wrapper, split out of `forEach`
747
+ * so the all-rows flag dance stays out of the inlined hot body. */
727
748
  private _forEachIncludeDisabled;
728
- /** @internal — the `includeDisabled` delegate for `forEach` (#577). The
729
- * default path inlines this body directly into `forEach` (#608) to dodge a
749
+ /** @internal — the `includeDisabled` delegate for `forEach`. The
750
+ * default path inlines this body directly into `forEach` to dodge a
730
751
  * megamorphic delegate hop; this copy survives only for the rare all-rows
731
752
  * path, which needs the `_setIterAllRows` try/finally wrap. */
732
753
  private _forEachInner;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export type ComponentRef<S extends ComponentSchema> = {
9
9
  * Read-only view of a component reference. This is an **advisory** barrier,
10
10
  * not a runtime safety boundary: the `readonly` properties block field writes
11
11
  * at the type layer, but `createRef` installs working get/set on the shared
12
- * prototype for both `ref()` and `refRead()`, so a §10c-policed cast can
12
+ * prototype for both `ref()` and `refRead()`, so a deliberate cast can
13
13
  * still write through (and would skip the change-tick bump `ref()` performs).
14
14
  * Treat it as "I promise I am only reading," enforced by the escape-hatch lint
15
15
  * (`bun run lint:escape-hatches`), not by the runtime.
@@ -28,4 +28,56 @@ export interface RefColumnGroup {
28
28
  * calls for the same group only allocate the lightweight ref object.
29
29
  */
30
30
  export declare function createRef<S extends ComponentSchema>(group: RefColumnGroup, row: number): ComponentRef<S>;
31
+ interface CursorInternal {
32
+ /** The current archetype's row plane (`Archetype._bufs`), index-parallel with
33
+ * its `_flatColumns`. Re-read on every `at()`; safe to hold between `at()` and
34
+ * a field access because `_syncRowPlane` refills it in place. */
35
+ _bufs: AnyTypedArray[];
36
+ /** Where this component's columns start in `_bufs` for the current archetype. */
37
+ _off: number;
38
+ _row: number;
39
+ }
40
+ /** Mutable single-entity cursor: field get/set plus `at(entity)`. */
41
+ export type ComponentCursor<S extends ComponentSchema> = {
42
+ -readonly [K in keyof S]: number;
43
+ } & CursorSeek;
44
+ /**
45
+ * Read-only cursor. **Advisory**, exactly like `ReadonlyComponentRef`: the
46
+ * prototype carries working setters for both variants, so a deliberate cast
47
+ * can still write through — and would skip the change-tick bump the mutable
48
+ * variant performs.
49
+ */
50
+ export type ReadonlyComponentCursor<S extends ComponentSchema> = {
51
+ readonly [K in keyof S]: number;
52
+ } & CursorSeek;
53
+ export interface CursorSeek {
54
+ /**
55
+ * Point this cursor at `entity`, resolving its archetype and row. Every
56
+ * subsequent field access reads or writes `entity` until the next `at()`.
57
+ *
58
+ * Returns the cursor, so a single-expression read stays one expression:
59
+ * `ecs.cursor(Pos).at(e).x`. In a loop, prefer calling it as a statement and
60
+ * reading fields off the cursor — that is the form the allocation-free path
61
+ * exists for.
62
+ */
63
+ at(entity: import('./entity.cjs').EntityID): this;
64
+ }
65
+ /**
66
+ * `at()` needs the archetype and row for an entity, and only the Store can
67
+ * resolve those. Passing the whole Store into the cursor would hand it (and its
68
+ * users) the mutation surface; this is the one operation it actually needs,
69
+ * supplied as a closure by whoever creates the cursor.
70
+ *
71
+ * The binder also carries the mutable/read-only difference: `Store.cursorBinder`
72
+ * closes over whether to stamp the change tick, so the variant is settled once
73
+ * at creation instead of branched on per `at()`.
74
+ */
75
+ export type CursorBinder = (cursor: CursorInternal, entity: unknown) => void;
76
+ /**
77
+ * Build a cursor over `fieldNames`, bound by `bind`. The prototype (field
78
+ * accessors by ordinal, plus `at`) is built once per component and cached; each
79
+ * call allocates one small object, and then nothing per entity.
80
+ */
81
+ export declare function createCursor<S extends ComponentSchema>(fieldNames: readonly string[], bind: CursorBinder): ComponentCursor<S>;
82
+ export {};
31
83
  //# sourceMappingURL=ref.d.ts.map