@oasys/oecs 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/CHANGELOG.md +1223 -266
  2. package/README.md +217 -112
  3. package/dist/core/ecs/access_check.d.cts +29 -29
  4. package/dist/core/ecs/access_check.d.ts +29 -29
  5. package/dist/core/ecs/access_check.d.ts.map +1 -1
  6. package/dist/core/ecs/archetype.d.cts +217 -209
  7. package/dist/core/ecs/archetype.d.ts +217 -209
  8. package/dist/core/ecs/archetype.d.ts.map +1 -1
  9. package/dist/core/ecs/archetype_closure.d.cts +23 -0
  10. package/dist/core/ecs/archetype_closure.d.ts +23 -0
  11. package/dist/core/ecs/archetype_closure.d.ts.map +1 -0
  12. package/dist/core/ecs/archetype_graph.d.cts +33 -33
  13. package/dist/core/ecs/archetype_graph.d.ts +33 -33
  14. package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
  15. package/dist/core/ecs/archetype_types.d.cts +55 -0
  16. package/dist/core/ecs/archetype_types.d.ts +55 -0
  17. package/dist/core/ecs/archetype_types.d.ts.map +1 -0
  18. package/dist/core/ecs/change_feed.d.cts +53 -0
  19. package/dist/core/ecs/change_feed.d.ts +53 -0
  20. package/dist/core/ecs/change_feed.d.ts.map +1 -0
  21. package/dist/core/ecs/changed_query.d.cts +36 -0
  22. package/dist/core/ecs/changed_query.d.ts +36 -0
  23. package/dist/core/ecs/changed_query.d.ts.map +1 -0
  24. package/dist/core/ecs/chunk_columns.d.cts +49 -0
  25. package/dist/core/ecs/chunk_columns.d.ts +49 -0
  26. package/dist/core/ecs/chunk_columns.d.ts.map +1 -0
  27. package/dist/core/ecs/command_log.d.cts +26 -26
  28. package/dist/core/ecs/command_log.d.ts +26 -26
  29. package/dist/core/ecs/command_log.d.ts.map +1 -1
  30. package/dist/core/ecs/component.d.cts +43 -42
  31. package/dist/core/ecs/component.d.ts +43 -42
  32. package/dist/core/ecs/component.d.ts.map +1 -1
  33. package/dist/core/ecs/component_registry.d.cts +53 -0
  34. package/dist/core/ecs/component_registry.d.ts +53 -0
  35. package/dist/core/ecs/component_registry.d.ts.map +1 -0
  36. package/dist/core/ecs/compute_backend.d.cts +18 -7
  37. package/dist/core/ecs/compute_backend.d.ts +18 -7
  38. package/dist/core/ecs/compute_backend.d.ts.map +1 -1
  39. package/dist/core/ecs/deferred_commands.d.cts +15 -14
  40. package/dist/core/ecs/deferred_commands.d.ts +15 -14
  41. package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
  42. package/dist/core/ecs/dispatch_trace.d.cts +32 -31
  43. package/dist/core/ecs/dispatch_trace.d.ts +32 -31
  44. package/dist/core/ecs/dispatch_trace.d.ts.map +1 -1
  45. package/dist/core/ecs/ecs.d.cts +289 -270
  46. package/dist/core/ecs/ecs.d.ts +289 -270
  47. package/dist/core/ecs/ecs.d.ts.map +1 -1
  48. package/dist/core/ecs/ecs_memory.d.cts +134 -136
  49. package/dist/core/ecs/ecs_memory.d.ts +134 -136
  50. package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
  51. package/dist/core/ecs/ecs_options.d.cts +89 -0
  52. package/dist/core/ecs/ecs_options.d.ts +89 -0
  53. package/dist/core/ecs/ecs_options.d.ts.map +1 -0
  54. package/dist/core/ecs/entity.d.cts +4 -4
  55. package/dist/core/ecs/entity.d.ts +4 -4
  56. package/dist/core/ecs/entity_allocator.d.cts +20 -18
  57. package/dist/core/ecs/entity_allocator.d.ts +20 -18
  58. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  59. package/dist/core/ecs/event.d.cts +36 -22
  60. package/dist/core/ecs/event.d.ts +36 -22
  61. package/dist/core/ecs/event.d.ts.map +1 -1
  62. package/dist/core/ecs/facades.d.cts +12 -126
  63. package/dist/core/ecs/facades.d.ts +12 -126
  64. package/dist/core/ecs/facades.d.ts.map +1 -1
  65. package/dist/core/ecs/frame_stepper.d.cts +12 -12
  66. package/dist/core/ecs/frame_stepper.d.ts +12 -12
  67. package/dist/core/ecs/frame_stepper.d.ts.map +1 -1
  68. package/dist/core/ecs/frame_trace.d.cts +32 -32
  69. package/dist/core/ecs/frame_trace.d.ts +32 -32
  70. package/dist/core/ecs/frame_trace.d.ts.map +1 -1
  71. package/dist/core/ecs/host_commands.d.cts +103 -85
  72. package/dist/core/ecs/host_commands.d.ts +103 -85
  73. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  74. package/dist/core/ecs/index.d.cts +21 -11
  75. package/dist/core/ecs/index.d.ts +21 -11
  76. package/dist/core/ecs/index.d.ts.map +1 -1
  77. package/dist/core/ecs/observer.d.cts +39 -120
  78. package/dist/core/ecs/observer.d.ts +39 -120
  79. package/dist/core/ecs/observer.d.ts.map +1 -1
  80. package/dist/core/ecs/phase.d.cts +79 -0
  81. package/dist/core/ecs/phase.d.ts +79 -0
  82. package/dist/core/ecs/phase.d.ts.map +1 -0
  83. package/dist/core/ecs/plugin.d.cts +125 -0
  84. package/dist/core/ecs/plugin.d.ts +125 -0
  85. package/dist/core/ecs/plugin.d.ts.map +1 -0
  86. package/dist/core/ecs/plugin_slots.d.cts +26 -0
  87. package/dist/core/ecs/plugin_slots.d.ts +26 -0
  88. package/dist/core/ecs/plugin_slots.d.ts.map +1 -0
  89. package/dist/core/ecs/query.d.cts +208 -578
  90. package/dist/core/ecs/query.d.ts +208 -578
  91. package/dist/core/ecs/query.d.ts.map +1 -1
  92. package/dist/core/ecs/query_cache.d.cts +130 -0
  93. package/dist/core/ecs/query_cache.d.ts +130 -0
  94. package/dist/core/ecs/query_cache.d.ts.map +1 -0
  95. package/dist/core/ecs/query_registry.d.cts +47 -0
  96. package/dist/core/ecs/query_registry.d.ts +47 -0
  97. package/dist/core/ecs/query_registry.d.ts.map +1 -0
  98. package/dist/core/ecs/query_terms.d.cts +126 -0
  99. package/dist/core/ecs/query_terms.d.ts +126 -0
  100. package/dist/core/ecs/query_terms.d.ts.map +1 -0
  101. package/dist/core/ecs/ref.d.cts +100 -39
  102. package/dist/core/ecs/ref.d.ts +100 -39
  103. package/dist/core/ecs/ref.d.ts.map +1 -1
  104. package/dist/core/ecs/relation.d.cts +101 -182
  105. package/dist/core/ecs/relation.d.ts +101 -182
  106. package/dist/core/ecs/relation.d.ts.map +1 -1
  107. package/dist/core/ecs/resource.d.cts +13 -13
  108. package/dist/core/ecs/resource.d.ts +13 -13
  109. package/dist/core/ecs/resource_registry.d.cts +5 -5
  110. package/dist/core/ecs/resource_registry.d.ts +5 -5
  111. package/dist/core/ecs/resource_registry.d.ts.map +1 -1
  112. package/dist/core/ecs/row_kinds.d.cts +24 -0
  113. package/dist/core/ecs/row_kinds.d.ts +24 -0
  114. package/dist/core/ecs/row_kinds.d.ts.map +1 -0
  115. package/dist/core/ecs/run_condition.d.cts +23 -23
  116. package/dist/core/ecs/run_condition.d.ts +23 -23
  117. package/dist/core/ecs/run_condition.d.ts.map +1 -1
  118. package/dist/core/ecs/schedule.d.cts +91 -120
  119. package/dist/core/ecs/schedule.d.ts +91 -120
  120. package/dist/core/ecs/schedule.d.ts.map +1 -1
  121. package/dist/core/ecs/schedule_plan.d.cts +33 -0
  122. package/dist/core/ecs/schedule_plan.d.ts +33 -0
  123. package/dist/core/ecs/schedule_plan.d.ts.map +1 -0
  124. package/dist/core/ecs/snapshot.d.cts +77 -0
  125. package/dist/core/ecs/snapshot.d.ts +77 -0
  126. package/dist/core/ecs/snapshot.d.ts.map +1 -0
  127. package/dist/core/ecs/snapshot_mount.d.cts +42 -0
  128. package/dist/core/ecs/snapshot_mount.d.ts +42 -0
  129. package/dist/core/ecs/snapshot_mount.d.ts.map +1 -0
  130. package/dist/core/ecs/sparse_store.d.cts +108 -51
  131. package/dist/core/ecs/sparse_store.d.ts +108 -51
  132. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  133. package/dist/core/ecs/store.d.cts +527 -473
  134. package/dist/core/ecs/store.d.ts +527 -473
  135. package/dist/core/ecs/store.d.ts.map +1 -1
  136. package/dist/core/ecs/store_layout_listener.d.cts +6 -6
  137. package/dist/core/ecs/store_layout_listener.d.ts +6 -6
  138. package/dist/core/ecs/store_types.d.cts +122 -0
  139. package/dist/core/ecs/store_types.d.ts +122 -0
  140. package/dist/core/ecs/store_types.d.ts.map +1 -0
  141. package/dist/core/ecs/system.d.cts +146 -61
  142. package/dist/core/ecs/system.d.ts +146 -61
  143. package/dist/core/ecs/system.d.ts.map +1 -1
  144. package/dist/core/ecs/system_context.d.cts +296 -0
  145. package/dist/core/ecs/system_context.d.ts +296 -0
  146. package/dist/core/ecs/system_context.d.ts.map +1 -0
  147. package/dist/core/ecs/system_set.d.cts +48 -0
  148. package/dist/core/ecs/system_set.d.ts +48 -0
  149. package/dist/core/ecs/system_set.d.ts.map +1 -0
  150. package/dist/core/ecs/utils/arrays.d.cts +15 -1
  151. package/dist/core/ecs/utils/arrays.d.ts +15 -1
  152. package/dist/core/ecs/utils/arrays.d.ts.map +1 -1
  153. package/dist/core/ecs/utils/error.d.cts +82 -6
  154. package/dist/core/ecs/utils/error.d.ts +82 -6
  155. package/dist/core/ecs/utils/error.d.ts.map +1 -1
  156. package/dist/core/ecs/utils/plugin_error.d.cts +10 -0
  157. package/dist/core/ecs/utils/plugin_error.d.ts +10 -0
  158. package/dist/core/ecs/utils/plugin_error.d.ts.map +1 -0
  159. package/dist/core/restore_errors.d.cts +30 -0
  160. package/dist/core/restore_errors.d.ts +30 -0
  161. package/dist/core/restore_errors.d.ts.map +1 -0
  162. package/dist/core/store/action_ring.d.cts +44 -44
  163. package/dist/core/store/action_ring.d.ts +44 -44
  164. package/dist/core/store/action_ring.d.ts.map +1 -1
  165. package/dist/core/store/allocator.d.cts +149 -95
  166. package/dist/core/store/allocator.d.ts +149 -95
  167. package/dist/core/store/allocator.d.ts.map +1 -1
  168. package/dist/core/store/buffer_backed_column.d.cts +17 -17
  169. package/dist/core/store/buffer_backed_column.d.ts +17 -17
  170. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  171. package/dist/core/store/column_store.d.cts +124 -86
  172. package/dist/core/store/column_store.d.ts +124 -86
  173. package/dist/core/store/column_store.d.ts.map +1 -1
  174. package/dist/core/store/command_dispatch.d.cts +14 -15
  175. package/dist/core/store/command_dispatch.d.ts +14 -15
  176. package/dist/core/store/command_dispatch.d.ts.map +1 -1
  177. package/dist/core/store/command_ring.d.cts +36 -39
  178. package/dist/core/store/command_ring.d.ts +36 -39
  179. package/dist/core/store/command_ring.d.ts.map +1 -1
  180. package/dist/core/store/descriptor.d.cts +34 -17
  181. package/dist/core/store/descriptor.d.ts +34 -17
  182. package/dist/core/store/descriptor.d.ts.map +1 -1
  183. package/dist/core/store/entity_index.d.cts +34 -35
  184. package/dist/core/store/entity_index.d.ts +34 -35
  185. package/dist/core/store/entity_index.d.ts.map +1 -1
  186. package/dist/core/store/event_ring.d.cts +36 -38
  187. package/dist/core/store/event_ring.d.ts +36 -38
  188. package/dist/core/store/event_ring.d.ts.map +1 -1
  189. package/dist/core/store/extend.d.cts +13 -7
  190. package/dist/core/store/extend.d.ts +13 -7
  191. package/dist/core/store/extend.d.ts.map +1 -1
  192. package/dist/core/store/grow.d.cts +2 -2
  193. package/dist/core/store/grow.d.ts +2 -2
  194. package/dist/core/store/grow.d.ts.map +1 -1
  195. package/dist/core/store/header.d.cts +31 -27
  196. package/dist/core/store/header.d.ts +31 -27
  197. package/dist/core/store/header.d.ts.map +1 -1
  198. package/dist/core/store/index.d.cts +10 -10
  199. package/dist/core/store/index.d.ts +10 -10
  200. package/dist/core/store/index.d.ts.map +1 -1
  201. package/dist/core/store/layout_ops.d.cts +71 -62
  202. package/dist/core/store/layout_ops.d.ts +71 -62
  203. package/dist/core/store/layout_ops.d.ts.map +1 -1
  204. package/dist/core/store/region_table.d.cts +28 -21
  205. package/dist/core/store/region_table.d.ts +28 -21
  206. package/dist/core/store/region_table.d.ts.map +1 -1
  207. package/dist/core/store/snapshot.d.cts +31 -16
  208. package/dist/core/store/snapshot.d.ts +31 -16
  209. package/dist/core/store/snapshot.d.ts.map +1 -1
  210. package/dist/core/store/state_hash.d.cts +12 -12
  211. package/dist/core/store/state_hash.d.ts +12 -12
  212. package/dist/core/store/state_hash.d.ts.map +1 -1
  213. package/dist/core/store/store_regions.d.cts +10 -10
  214. package/dist/core/store/store_regions.d.ts +10 -10
  215. package/dist/core/store/store_regions.d.ts.map +1 -1
  216. package/dist/core/store/vendored_abi/abi.d.cts +27 -2
  217. package/dist/core/store/vendored_abi/abi.d.ts +27 -2
  218. package/dist/core/store/vendored_abi/abi.d.ts.map +1 -1
  219. package/dist/host_commands-B2KMx8O2.cjs +1 -0
  220. package/dist/host_commands-ClVPvhSa.cjs +2 -0
  221. package/dist/host_commands-CwxVQS1z.js +1524 -0
  222. package/dist/host_commands-nJvTy88E.js +1667 -0
  223. package/dist/index.cjs +1 -1
  224. package/dist/index.d.cts +15 -10
  225. package/dist/index.d.ts +15 -10
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.development.cjs +1 -1
  228. package/dist/index.development.js +5804 -5203
  229. package/dist/index.js +5323 -4764
  230. package/dist/internal.cjs +2 -2
  231. package/dist/internal.d.cts +5 -2
  232. package/dist/internal.d.ts +5 -2
  233. package/dist/internal.d.ts.map +1 -1
  234. package/dist/internal.development.cjs +1 -1
  235. package/dist/internal.development.js +70 -20
  236. package/dist/internal.js +138 -83
  237. package/dist/plugins/abi-D3V-QUSf.cjs +1 -0
  238. package/dist/plugins/abi-NP8pNxpd.js +42 -0
  239. package/dist/plugins/arrays-Dr_1hCjL.js +28 -0
  240. package/dist/plugins/arrays-Dt-Joc4i.cjs +1 -0
  241. package/dist/plugins/assertions-gtDVfbnQ.js +6 -0
  242. package/dist/plugins/assertions-z5GQd_bB.cjs +1 -0
  243. package/dist/{extensions → plugins}/editor/editor.d.cts +54 -54
  244. package/dist/{extensions → plugins}/editor/editor.d.ts +54 -54
  245. package/dist/plugins/editor/editor.d.ts.map +1 -0
  246. package/dist/{extensions → plugins}/editor/field_handle.d.cts +12 -12
  247. package/dist/{extensions → plugins}/editor/field_handle.d.ts +12 -12
  248. package/dist/plugins/editor/field_handle.d.ts.map +1 -0
  249. package/dist/plugins/editor/index.d.cts +22 -0
  250. package/dist/plugins/editor/index.d.ts +22 -0
  251. package/dist/plugins/editor/index.d.ts.map +1 -0
  252. package/dist/plugins/editor.cjs +1 -0
  253. package/dist/plugins/editor.d.cts +1 -0
  254. package/dist/plugins/editor.d.ts +1 -0
  255. package/dist/plugins/editor.development.cjs +1 -0
  256. package/dist/{extensions/editor/index.development.js → plugins/editor.development.js} +81 -64
  257. package/dist/{extensions/editor/index.js → plugins/editor.js} +81 -64
  258. package/dist/plugins/events/event_channel.d.cts +13 -0
  259. package/dist/plugins/events/event_channel.d.ts +13 -0
  260. package/dist/plugins/events/event_channel.d.ts.map +1 -0
  261. package/dist/plugins/events/event_registry.d.cts +22 -0
  262. package/dist/plugins/events/event_registry.d.ts +22 -0
  263. package/dist/plugins/events/event_registry.d.ts.map +1 -0
  264. package/dist/plugins/events/facade.d.cts +26 -0
  265. package/dist/plugins/events/facade.d.ts +26 -0
  266. package/dist/plugins/events/facade.d.ts.map +1 -0
  267. package/dist/plugins/events/index.d.cts +10 -0
  268. package/dist/plugins/events/index.d.ts +10 -0
  269. package/dist/plugins/events/index.d.ts.map +1 -0
  270. package/dist/plugins/events.cjs +1 -0
  271. package/dist/plugins/events.d.cts +1 -0
  272. package/dist/plugins/events.d.ts +1 -0
  273. package/dist/plugins/events.development.cjs +1 -0
  274. package/dist/plugins/events.development.js +174 -0
  275. package/dist/plugins/events.js +159 -0
  276. package/dist/plugins/observers/index.d.cts +23 -0
  277. package/dist/plugins/observers/index.d.ts +23 -0
  278. package/dist/plugins/observers/index.d.ts.map +1 -0
  279. package/dist/plugins/observers/observer_registry.d.cts +101 -0
  280. package/dist/plugins/observers/observer_registry.d.ts +101 -0
  281. package/dist/plugins/observers/observer_registry.d.ts.map +1 -0
  282. package/dist/plugins/observers.cjs +1 -0
  283. package/dist/plugins/observers.d.cts +1 -0
  284. package/dist/plugins/observers.d.ts +1 -0
  285. package/dist/plugins/observers.development.cjs +1 -0
  286. package/dist/plugins/observers.development.js +431 -0
  287. package/dist/plugins/observers.js +403 -0
  288. package/dist/plugins/relation_store-BsoegrZh.js +313 -0
  289. package/dist/plugins/relation_store-DQKSnxsm.cjs +1 -0
  290. package/dist/plugins/relation_store-RBhpcE28.cjs +1 -0
  291. package/dist/plugins/relation_store-RqW5Snx6.js +328 -0
  292. package/dist/plugins/relations/builtin_relations.d.cts +48 -0
  293. package/dist/plugins/relations/builtin_relations.d.ts +48 -0
  294. package/dist/plugins/relations/builtin_relations.d.ts.map +1 -0
  295. package/dist/plugins/relations/facade.d.cts +73 -0
  296. package/dist/plugins/relations/facade.d.ts +73 -0
  297. package/dist/plugins/relations/facade.d.ts.map +1 -0
  298. package/dist/plugins/relations/index.d.cts +11 -0
  299. package/dist/plugins/relations/index.d.ts +11 -0
  300. package/dist/plugins/relations/index.d.ts.map +1 -0
  301. package/dist/{core/ecs → plugins/relations}/relation_service.d.cts +85 -97
  302. package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +85 -97
  303. package/dist/plugins/relations/relation_service.d.ts.map +1 -0
  304. package/dist/plugins/relations/relation_store.d.cts +177 -0
  305. package/dist/plugins/relations/relation_store.d.ts +177 -0
  306. package/dist/plugins/relations/relation_store.d.ts.map +1 -0
  307. package/dist/plugins/relations.cjs +1 -0
  308. package/dist/plugins/relations.d.cts +1 -0
  309. package/dist/plugins/relations.d.ts +1 -0
  310. package/dist/plugins/relations.development.cjs +1 -0
  311. package/dist/plugins/relations.development.js +603 -0
  312. package/dist/plugins/relations.js +553 -0
  313. package/dist/plugins/snapshots/index.d.cts +33 -0
  314. package/dist/plugins/snapshots/index.d.ts +33 -0
  315. package/dist/plugins/snapshots/index.d.ts.map +1 -0
  316. package/dist/plugins/snapshots/resume.d.cts +57 -0
  317. package/dist/plugins/snapshots/resume.d.ts +57 -0
  318. package/dist/plugins/snapshots/resume.d.ts.map +1 -0
  319. package/dist/plugins/snapshots/snapshot_service.d.cts +59 -0
  320. package/dist/plugins/snapshots/snapshot_service.d.ts +59 -0
  321. package/dist/plugins/snapshots/snapshot_service.d.ts.map +1 -0
  322. package/dist/plugins/snapshots.cjs +1 -0
  323. package/dist/plugins/snapshots.d.cts +1 -0
  324. package/dist/plugins/snapshots.d.ts +1 -0
  325. package/dist/plugins/snapshots.development.cjs +1 -0
  326. package/dist/plugins/snapshots.development.js +737 -0
  327. package/dist/plugins/snapshots.js +737 -0
  328. package/dist/plugins/solid/index.d.cts +8 -0
  329. package/dist/plugins/solid/index.d.ts +8 -0
  330. package/dist/plugins/solid/index.d.ts.map +1 -0
  331. package/dist/plugins/solid/solid.d.cts +97 -0
  332. package/dist/plugins/solid/solid.d.ts +97 -0
  333. package/dist/plugins/solid/solid.d.ts.map +1 -0
  334. package/dist/plugins/solid.cjs +1 -0
  335. package/dist/plugins/solid.d.cts +1 -0
  336. package/dist/plugins/solid.d.ts +1 -0
  337. package/dist/plugins/solid.development.cjs +1 -0
  338. package/dist/plugins/solid.development.js +319 -0
  339. package/dist/plugins/solid.js +319 -0
  340. package/dist/plugins/workers/index.d.cts +75 -0
  341. package/dist/plugins/workers/index.d.ts +75 -0
  342. package/dist/plugins/workers/index.d.ts.map +1 -0
  343. package/dist/plugins/workers/node_threads.d.cts +25 -0
  344. package/dist/plugins/workers/node_threads.d.ts +25 -0
  345. package/dist/plugins/workers/node_threads.d.ts.map +1 -0
  346. package/dist/plugins/workers/plan.d.cts +61 -0
  347. package/dist/plugins/workers/plan.d.ts +61 -0
  348. package/dist/plugins/workers/plan.d.ts.map +1 -0
  349. package/dist/plugins/workers/pool.d.cts +144 -0
  350. package/dist/plugins/workers/pool.d.ts +144 -0
  351. package/dist/plugins/workers/pool.d.ts.map +1 -0
  352. package/dist/plugins/workers/protocol.d.cts +112 -0
  353. package/dist/plugins/workers/protocol.d.ts +112 -0
  354. package/dist/plugins/workers/protocol.d.ts.map +1 -0
  355. package/dist/plugins/workers/worker_bind.d.cts +64 -0
  356. package/dist/plugins/workers/worker_bind.d.ts +64 -0
  357. package/dist/plugins/workers/worker_bind.d.ts.map +1 -0
  358. package/dist/plugins/workers/worker_loop.d.cts +14 -0
  359. package/dist/plugins/workers/worker_loop.d.ts +14 -0
  360. package/dist/plugins/workers/worker_loop.d.ts.map +1 -0
  361. package/dist/plugins/workers.cjs +1 -0
  362. package/dist/plugins/workers.d.cts +1 -0
  363. package/dist/plugins/workers.d.ts +1 -0
  364. package/dist/plugins/workers.development.cjs +1 -0
  365. package/dist/plugins/workers.development.js +596 -0
  366. package/dist/plugins/workers.js +474 -0
  367. package/dist/primitives.cjs +1 -1
  368. package/dist/primitives.d.cts +4 -4
  369. package/dist/primitives.d.ts +4 -4
  370. package/dist/primitives.development.cjs +1 -1
  371. package/dist/primitives.development.js +66 -22
  372. package/dist/primitives.js +66 -22
  373. package/dist/shared-BKl12xF1.js +132 -0
  374. package/dist/shared-Dk-pACZT.cjs +1 -0
  375. package/dist/shared.cjs +1 -1
  376. package/dist/shared.d.cts +7 -7
  377. package/dist/shared.d.ts +7 -7
  378. package/dist/shared.d.ts.map +1 -1
  379. package/dist/shared.development.cjs +1 -1
  380. package/dist/shared.development.js +4 -3
  381. package/dist/shared.js +4 -3
  382. package/dist/topological_sort-Cc_yXqPT.js +346 -0
  383. package/dist/topological_sort-vp1imU6D.cjs +1 -0
  384. package/dist/type_primitives/assertions.d.cts +12 -16
  385. package/dist/type_primitives/assertions.d.ts +12 -16
  386. package/dist/type_primitives/assertions.d.ts.map +1 -1
  387. package/dist/type_primitives/binary_heap/binary_heap.d.cts +2 -6
  388. package/dist/type_primitives/binary_heap/binary_heap.d.ts +2 -6
  389. package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
  390. package/dist/type_primitives/bitset/bitset.d.cts +7 -11
  391. package/dist/type_primitives/bitset/bitset.d.ts +7 -11
  392. package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
  393. package/dist/type_primitives/brand.d.cts +2 -7
  394. package/dist/type_primitives/brand.d.ts +2 -7
  395. package/dist/type_primitives/brand.d.ts.map +1 -1
  396. package/dist/type_primitives/error.d.cts +1 -2
  397. package/dist/type_primitives/error.d.ts +1 -2
  398. package/dist/type_primitives/error.d.ts.map +1 -1
  399. package/dist/type_primitives/index.d.cts +1 -1
  400. package/dist/type_primitives/index.d.ts +1 -1
  401. package/dist/type_primitives/sparse_map/sparse_map.d.cts +3 -7
  402. package/dist/type_primitives/sparse_map/sparse_map.d.ts +3 -7
  403. package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
  404. package/dist/type_primitives/sparse_set/sparse_set.d.cts +2 -6
  405. package/dist/type_primitives/sparse_set/sparse_set.d.ts +2 -6
  406. package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
  407. package/dist/type_primitives/topological_sort/topological_sort.d.cts +1 -5
  408. package/dist/type_primitives/topological_sort/topological_sort.d.ts +1 -5
  409. package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
  410. package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +16 -15
  411. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +16 -15
  412. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
  413. package/dist/utils/error.d.ts.map +1 -1
  414. package/dist/version.d.cts +3 -3
  415. package/dist/version.d.ts +3 -3
  416. package/dist/worker.cjs +1 -0
  417. package/dist/worker.d.cts +17 -0
  418. package/dist/worker.d.ts +17 -0
  419. package/dist/worker.d.ts.map +1 -0
  420. package/dist/worker.development.cjs +1 -0
  421. package/dist/worker.development.js +253 -0
  422. package/dist/worker.js +253 -0
  423. package/package.json +363 -191
  424. package/dist/core/ecs/builtin_relations.d.cts +0 -43
  425. package/dist/core/ecs/builtin_relations.d.ts +0 -43
  426. package/dist/core/ecs/builtin_relations.d.ts.map +0 -1
  427. package/dist/core/ecs/event_registry.d.cts +0 -22
  428. package/dist/core/ecs/event_registry.d.ts +0 -22
  429. package/dist/core/ecs/event_registry.d.ts.map +0 -1
  430. package/dist/core/ecs/relation_service.d.ts.map +0 -1
  431. package/dist/core/ecs/resume.d.cts +0 -85
  432. package/dist/core/ecs/resume.d.ts +0 -85
  433. package/dist/core/ecs/resume.d.ts.map +0 -1
  434. package/dist/core/ecs/snapshot_service.d.cts +0 -94
  435. package/dist/core/ecs/snapshot_service.d.ts +0 -94
  436. package/dist/core/ecs/snapshot_service.d.ts.map +0 -1
  437. package/dist/extensions/editor/editor.d.ts.map +0 -1
  438. package/dist/extensions/editor/field_handle.d.ts.map +0 -1
  439. package/dist/extensions/editor/index.cjs +0 -1
  440. package/dist/extensions/editor/index.d.cts +0 -21
  441. package/dist/extensions/editor/index.d.ts +0 -21
  442. package/dist/extensions/editor/index.d.ts.map +0 -1
  443. package/dist/extensions/editor/index.development.cjs +0 -1
  444. package/dist/extensions/reactive/ecs_sync.d.cts +0 -214
  445. package/dist/extensions/reactive/ecs_sync.d.ts +0 -214
  446. package/dist/extensions/reactive/ecs_sync.d.ts.map +0 -1
  447. package/dist/extensions/reactive/index.cjs +0 -1
  448. package/dist/extensions/reactive/index.d.cts +0 -23
  449. package/dist/extensions/reactive/index.d.ts +0 -23
  450. package/dist/extensions/reactive/index.d.ts.map +0 -1
  451. package/dist/extensions/reactive/index.development.cjs +0 -1
  452. package/dist/extensions/reactive/index.development.js +0 -215
  453. package/dist/extensions/reactive/index.js +0 -215
  454. package/dist/extensions/solid/index.cjs +0 -1
  455. package/dist/extensions/solid/index.d.cts +0 -6
  456. package/dist/extensions/solid/index.d.ts +0 -6
  457. package/dist/extensions/solid/index.d.ts.map +0 -1
  458. package/dist/extensions/solid/index.development.cjs +0 -1
  459. package/dist/extensions/solid/index.development.js +0 -40
  460. package/dist/extensions/solid/index.js +0 -36
  461. package/dist/extensions/solid/kernel_solid.d.cts +0 -45
  462. package/dist/extensions/solid/kernel_solid.d.ts +0 -45
  463. package/dist/extensions/solid/kernel_solid.d.ts.map +0 -1
  464. package/dist/host_commands-BlR3oZ3x.js +0 -2406
  465. package/dist/host_commands-C2cpU3yC.cjs +0 -1
  466. package/dist/internal-BoxWl4dG.js +0 -2565
  467. package/dist/internal-CGBEwfeB.cjs +0 -2
  468. package/dist/interop-CT-REx0W.cjs +0 -1
  469. package/dist/interop-CcY6ASQc.js +0 -18
  470. package/dist/interop-DqxleBo7.js +0 -18
  471. package/dist/interop-T1HZ-Dpa.cjs +0 -1
  472. package/dist/kernel-Cz2Kxlwl.js +0 -240
  473. package/dist/kernel-DgyrLFjW.js +0 -227
  474. package/dist/kernel-sw7ScKWu.cjs +0 -1
  475. package/dist/kernel-yWV3XnAb.cjs +0 -1
  476. package/dist/reactive/array.d.cts +0 -24
  477. package/dist/reactive/array.d.ts +0 -24
  478. package/dist/reactive/array.d.ts.map +0 -1
  479. package/dist/reactive/index.cjs +0 -1
  480. package/dist/reactive/index.d.cts +0 -11
  481. package/dist/reactive/index.d.ts +0 -11
  482. package/dist/reactive/index.d.ts.map +0 -1
  483. package/dist/reactive/index.development.cjs +0 -1
  484. package/dist/reactive/index.development.js +0 -18
  485. package/dist/reactive/index.js +0 -18
  486. package/dist/reactive/interop.d.cts +0 -19
  487. package/dist/reactive/interop.d.ts +0 -19
  488. package/dist/reactive/interop.d.ts.map +0 -1
  489. package/dist/reactive/kernel.d.cts +0 -73
  490. package/dist/reactive/kernel.d.ts +0 -73
  491. package/dist/reactive/kernel.d.ts.map +0 -1
  492. package/dist/reactive/map.d.cts +0 -16
  493. package/dist/reactive/map.d.ts +0 -16
  494. package/dist/reactive/map.d.ts.map +0 -1
  495. package/dist/reactive/shallow.d.cts +0 -11
  496. package/dist/reactive/shallow.d.ts +0 -11
  497. package/dist/reactive/shallow.d.ts.map +0 -1
  498. package/dist/reactive/struct.d.cts +0 -10
  499. package/dist/reactive/struct.d.ts +0 -10
  500. package/dist/reactive/struct.d.ts.map +0 -1
  501. package/dist/shallow-Bs39EPh1.js +0 -150
  502. package/dist/shallow-C5YmTbtb.cjs +0 -1
  503. package/dist/shallow-CiFC70Dz.js +0 -159
  504. package/dist/shallow-DQ8aG51_.cjs +0 -1
  505. package/dist/shared-B4v0L1cw.js +0 -109
  506. package/dist/shared-DU78k0pU.cjs +0 -1
  507. package/dist/topological_sort-BDvEyb9W.cjs +0 -1
  508. package/dist/topological_sort-DK6EjpWa.js +0 -135
  509. package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
  510. package/dist/typed_arrays-DIVwVy5_.js +0 -258
@@ -19,12 +19,12 @@ export type FieldValues<S extends ComponentSchema> = {
19
19
  readonly [K in keyof S]: number;
20
20
  };
21
21
  /**
22
- * Values argument tuple for attaching a component of schema `S` empty for a
22
+ * Values argument tuple for attaching a component of schema `S`, empty for a
23
23
  * tag, a single optional partial-values map otherwise. A tag schema
24
24
  * (`Record<string, never>`) would otherwise degenerate: `keyof` an
25
25
  * index-signature record is `string`, so `Partial<FieldValues<…>>` collapses to
26
26
  * `Record<string, number>` and `Frozen({ anything: 1 })` compiles. The
27
- * conditional forbids values on tags outright; a schema-erased `ComponentDef`
27
+ * conditional forbids values on tags outright. A schema-erased `ComponentDef`
28
28
  * falls into the valued branch, so untyped call sites keep the loose shape.
29
29
  */
30
30
  export type ValuesArg<S extends ComponentSchema> = S extends Record<string, never> ? [] : [values?: Partial<FieldValues<S>>];
@@ -32,16 +32,16 @@ export type ValuesArg<S extends ComponentSchema> = S extends Record<string, neve
32
32
  * `FieldValues` for APIs where the values object is required and complete
33
33
  * (`addComponent`'s valued overload, the host-seam `SpawnEntry`). Guards the
34
34
  * same tag degeneracy as `ValuesArg`: a tag accepts only the empty object
35
- * (`Record<string, never>` every property typed `never`), so
35
+ * (`Record<string, never>`, every property typed `never`), so
36
36
  * `addComponent(e, Frozen, { x: 1 })` is a compile error while the
37
37
  * tag-overload-less call sites can still pass `{}`.
38
38
  */
39
39
  export type CompleteFieldValues<S extends ComponentSchema> = S extends Record<string, never> ? Record<string, never> : FieldValues<S>;
40
40
  /**
41
41
  * Trailing-argument tuple for the attach surfaces (`ctx.commands.add`'s
42
- * explicit-values form, `ctx.addSparse`): a tag takes NO values argument, a valued schema REQUIRES a
43
- * complete one. Encodes the former tag/valued overload pair as one signature,
44
- * which the typed system seam needs its `def` parameter is a single
42
+ * explicit-values form, `ctx.addSparse`): a tag takes no values argument, a valued schema requires a
43
+ * complete one. Encodes the former tag and valued overload pair as one signature,
44
+ * which the typed system seam needs, its `def` parameter is a single
45
45
  * declared-access-constrained type param, and per-schema overloads would
46
46
  * re-introduce the tag-vs-valued split on top of it.
47
47
  */
@@ -51,10 +51,10 @@ export type ColumnsForSchema<S extends ComponentSchema> = {
51
51
  readonly [K in keyof S]: TagToTypedArray[S[K]];
52
52
  };
53
53
  /**
54
- * Mutable sibling of `ColumnsForSchema` the field-keyed column group handed
55
- * back by `eachChunk`'s `cols.mut(def)` (no `readonly`, since the whole point
54
+ * Mutable sibling of `ColumnsForSchema`, the field-keyed column group handed
55
+ * back by `forEachChunk`'s `cols.mut(def)` (no `readonly`, since the whole point
56
56
  * is in-place writes). The change-tick is stamped once when the group is
57
- * resolved, so the per-row loop is plain typed-array indexing (§eachChunk).
57
+ * resolved, so the per-row loop is plain typed-array indexing.
58
58
  */
59
59
  export type MutableColumnsForSchema<S extends ComponentSchema> = {
60
60
  [K in keyof S]: TagToTypedArray[S[K]];
@@ -62,28 +62,28 @@ export type MutableColumnsForSchema<S extends ComponentSchema> = {
62
62
  declare const __schema: unique symbol;
63
63
  /**
64
64
  * A component handle. **Callable**: `Pos({ x, y })` produces a `Bundle` (omitted
65
- * fields zero-fill at attach), so one varargs shape `spawn(Pos({x,y}),
66
- * Vel({vx:1}), IsEnemy)` replaces the older incompatible attach shapes. A bare
67
- * `Pos` (uncalled) still stands in for a tag / all-zero values wherever a
65
+ * fields zero-fill at attach), so one varargs shape, `spawn(Pos({x,y}),
66
+ * Vel({vx:1}), IsEnemy)`, replaces the older incompatible attach shapes. A bare
67
+ * `Pos` (uncalled) still stands in for a tag, or for all-zero values, wherever a
68
68
  * `BundleOrDef` is accepted.
69
69
  *
70
70
  * The numeric component id lives on `.id` (registration order). Consumers treat
71
- * the def as an opaque handle; internal code reads `def.id` where it needs the
71
+ * the def as an opaque handle. Internal code reads `def.id` where it needs the
72
72
  * raw id. The call signature's `S` makes `ComponentDef<{x:"f64"}>` distinct from
73
73
  * `ComponentDef<{vx:"f64"}>`.
74
74
  *
75
- * The optional `[__schema]` slot never exists at runtime; it re-states `S` in a
76
- * covariant tuple position so that a TAG def type is not a universal assignment
75
+ * The optional `[__schema]` slot never exists at runtime. It re-states `S` in a
76
+ * covariant tuple position so that a tag def type is not a universal assignment
77
77
  * sink. Through the call signature alone every def is assignable to
78
78
  * `ComponentDef<Record<string, never>>` (the tag callable takes no required
79
- * args and any `Bundle` satisfies its return), which would let ONE tag in a
79
+ * args and any `Bundle` satisfies its return), which would let one tag in a
80
80
  * system's declared-access union admit every component at compile time
81
- * (§typestate — `DeclaredRead` and friends in system.ts). With the slot, a
81
+ * (`DeclaredRead` and friends in system.ts). With the slot, a
82
82
  * valued schema is not assignable to the tag schema (`"f64" ⊀ never`), while
83
83
  * schema erasure (`ComponentDef<S>` → bare `ComponentDef`) still works because
84
84
  * every schema is assignable to `ComponentSchema`.
85
85
  *
86
- * Build one with `makeComponentDef`; never construct by hand.
86
+ * Build one with `createComponentDef`. Never construct by hand.
87
87
  */
88
88
  export interface ComponentDef<S extends ComponentSchema = ComponentSchema> {
89
89
  (...values: ValuesArg<S>): Bundle<S>;
@@ -92,17 +92,17 @@ export interface ComponentDef<S extends ComponentSchema = ComponentSchema> {
92
92
  }
93
93
  /**
94
94
  * Recover a def's schema type: `SchemaOf<typeof Pos>` is `{x:"f64", y:"f64"}`.
95
- * The typed `SystemContext` methods (§typestate) constrain their `def`
95
+ * The typed `SystemContext` methods (system.ts) constrain their `def`
96
96
  * parameter to the system's declared-access union and use this to type the
97
97
  * field argument, in place of taking `ComponentDef<S>` directly.
98
98
  */
99
99
  export type SchemaOf<D> = D extends ComponentDef<infer S extends ComponentSchema> ? S : never;
100
100
  /**
101
- * `unknown` if `D` is one of the query's declared terms, else an error tuple
102
- * the query-seam sibling of system.ts's `DeclaredRead` (§typestate).
103
- * `Query.eachChunk`'s cursor and `ArchetypeView`'s column
101
+ * `unknown` if `D` is one of the query's declared terms, else an error tuple,
102
+ * the query-seam sibling of system.ts's `DeclaredRead`.
103
+ * `Query.forEachChunk`'s cursor and `ArchetypeView`'s column
104
104
  * accessors intersect this into their `def` parameter so fetching a component
105
- * that is NOT a term of the iterating query fails to compile (previously
105
+ * that is not a term of the iterating query fails to compile (previously
106
106
  * caught only by the dev-mode access check, and only when the system's
107
107
  * declaration was itself wrong). Same encoding rules as the system asserts:
108
108
  * stable `D extends ComponentDef<any>` constraints keep instantiations
@@ -110,15 +110,15 @@ export type SchemaOf<D> = D extends ComponentDef<infer S extends ComponentSchema
110
110
  */
111
111
  export type DeclaredQueryTerm<Defs extends readonly ComponentDef<any>[], D> = [D] extends [
112
112
  Defs[number]
113
- ] ? unknown : ["component is not a term of this query add it with .and(...)", D];
114
- /** Options bag accepted by `registerComponent` / `registerSparseComponent`. */
113
+ ] ? unknown : ["component is not a term of this query, add it with .and(...)", D];
114
+ /** Options bag accepted by `registerComponent` and `registerSparseComponent`. */
115
115
  export interface ComponentRegisterOptions {
116
- /** Debug label for diagnostics errors then read `'Pos' (component 5)`
116
+ /** Debug label for diagnostics, errors then read `'Pos' (component 5)`
117
117
  * instead of `component 5`. Never affects behaviour, layout, or hashing. */
118
118
  readonly name?: string;
119
119
  }
120
120
  /**
121
- * Schema-erased component handle just the `.id`. Internal, schema-agnostic
121
+ * Schema-erased component handle, only the `.id`. Internal, schema-agnostic
122
122
  * code (access checks, dirty-set notes, field-id lookup) takes this instead of
123
123
  * `ComponentDef`: the callable signature makes `ComponentDef<S>` *invariant* in
124
124
  * `S` (a generic `ComponentDef<S>` is not assignable to `ComponentDef`), but
@@ -131,27 +131,27 @@ export type ComponentHandle = {
131
131
  /**
132
132
  * Mint a callable `ComponentDef` for a freshly-registered component id. The
133
133
  * returned function produces a `Bundle` when called (`Pos({x,y})`) and carries
134
- * its numeric id on a non-enumerable `.id` (invisible to spreads / `JSON`).
135
- * The single cast bridges the function value to the branded handle type the
134
+ * its numeric id on a non-enumerable `.id`, invisible to a spread and to `JSON`.
135
+ * The single cast bridges the function value to the branded handle type, the
136
136
  * `.id` is installed at runtime by `defineProperty` (the branded-ID boundary).
137
137
  */
138
- export declare function makeComponentDef<S extends ComponentSchema>(id: ComponentID): ComponentDef<S>;
138
+ export declare function createComponentDef<S extends ComponentSchema>(id: ComponentID): ComponentDef<S>;
139
139
  export interface Bundle<S extends ComponentSchema = ComponentSchema> {
140
140
  readonly def: ComponentDef<S>;
141
141
  readonly values: Partial<FieldValues<S>>;
142
142
  }
143
- /** Either a populated bundle or a bare def (tag / all-fields-zero). */
143
+ /** Either a populated bundle or a bare def, a tag with all fields zero. */
144
144
  export type BundleOrDef<S extends ComponentSchema = ComponentSchema> = Bundle<S> | ComponentDef<S>;
145
- /** Re-validate one bundle-or-def item against its OWN def's schema. A bare def
146
- * (the callable) passes as-is; a bundle is re-stated as `Bundle<S>` for its
145
+ /** Re-validate one bundle-or-def item against its own def's schema. A bare def
146
+ * (the callable) passes as-is. A bundle is re-stated as `Bundle<S>` for its
147
147
  * def's `S`, so a hand-written `{ def, values }` literal whose fields don't
148
- * match the def is rejected closing the raw-literal leak that `bundle(Pos,…)`
149
- * / `Pos(…)` never had (those validate at their own call site). Per-element
148
+ * match the def is rejected, closing the raw-literal leak that `bundle(Pos,…)`
149
+ * and `Pos(…)` never had (those validate at their own call site). Per-element
150
150
  * mapper for `StrictBundles`. */
151
151
  export type StrictBundle<T> = T extends ComponentDef ? T : T extends {
152
152
  def: ComponentDef<infer S>;
153
153
  } ? Bundle<S> : never;
154
- /** Mapped tuple over a bundle-or-def varargs list each element re-checked
154
+ /** Mapped tuple over a bundle-or-def varargs list, each element re-checked
155
155
  * against its own def's schema. The SolidJS-`on` per-element pattern (pull the
156
156
  * tuple apart, map every element), over callable bundles instead of
157
157
  * `{ def, values }` entry-objects. The one strictness mechanism shared by
@@ -160,17 +160,18 @@ export type StrictBundles<Items extends readonly BundleOrDef[]> = {
160
160
  [K in keyof Items]: StrictBundle<Items[K]>;
161
161
  };
162
162
  /** Recover the def tuple from a bundle-or-def varargs list, so `template(...)`
163
- * still returns `Template<[Pos, Vel]>` the typed key set that `spawn`'s
163
+ * still returns `Template<[Pos, Vel]>`, the typed key set that `spawn`'s
164
164
  * `overrides` (`TemplateOverrides`) maps over. Also a per-element tuple map. */
165
165
  export type DefsOf<Items extends readonly BundleOrDef[]> = {
166
166
  [K in keyof Items]: Items[K] extends {
167
167
  def: infer D extends ComponentDef;
168
168
  } ? D : Items[K] extends ComponentDef ? Items[K] : never;
169
169
  };
170
- /** Pair a component def with field values to attach. Omitted fields zero-fill;
171
- * a tag def takes no values (see `ValuesArg`). */
170
+ /** Pair a component def with field values to attach. Omitted fields zero-fill.
171
+ * A tag def takes no values (see `ValuesArg`). */
172
172
  export declare function bundle<S extends ComponentSchema>(def: ComponentDef<S>, ...values: ValuesArg<S>): Bundle<S>;
173
- /** Extract the def from a `BundleOrDef`. A bare def is the callable; a bundle a plain object. */
173
+ /** Extract the def from a `BundleOrDef`. A bare def is the callable. A bundle
174
+ * is a plain object. */
174
175
  export declare function bundleDef(item: BundleOrDef): ComponentDef;
175
176
  /** Extract the values from a `BundleOrDef` (a bare def contributes no values). */
176
177
  export declare function bundleValues(item: BundleOrDef): Readonly<Record<string, number>>;
@@ -181,7 +182,7 @@ export declare function bundleValues(item: BundleOrDef): Readonly<Record<string,
181
182
  * **Advisory, not a runtime barrier:** the value behind this type is the live
182
183
  * mutable backing `TypedArray` (`Archetype.getColumnRead` returns
183
184
  * `.buf as unknown as ReadonlyColumn`), so a deliberate cast can still write
184
- * through. For mutation use the mutable `Archetype.getColumn` (tick-bumping).
185
+ * through. For mutation use the mutable `Archetype.getColumnMut` (tick-bumping).
185
186
  * Enforced by the escape-hatch lint, not the runtime.
186
187
  */
187
188
  export interface ReadonlyColumn {
@@ -190,7 +191,7 @@ export interface ReadonlyColumn {
190
191
  }
191
192
  /**
192
193
  * Compile-time readonly view of a Uint32Array. Blocks index writes at the type
193
- * layer. **Advisory, not a runtime barrier** same caveat as `ReadonlyColumn`:
194
+ * layer. **Advisory, not a runtime barrier**, same caveat as `ReadonlyColumn`:
194
195
  * the underlying value is the live mutable buffer.
195
196
  */
196
197
  export interface ReadonlyUint32Array {
@@ -19,12 +19,12 @@ export type FieldValues<S extends ComponentSchema> = {
19
19
  readonly [K in keyof S]: number;
20
20
  };
21
21
  /**
22
- * Values argument tuple for attaching a component of schema `S` empty for a
22
+ * Values argument tuple for attaching a component of schema `S`, empty for a
23
23
  * tag, a single optional partial-values map otherwise. A tag schema
24
24
  * (`Record<string, never>`) would otherwise degenerate: `keyof` an
25
25
  * index-signature record is `string`, so `Partial<FieldValues<…>>` collapses to
26
26
  * `Record<string, number>` and `Frozen({ anything: 1 })` compiles. The
27
- * conditional forbids values on tags outright; a schema-erased `ComponentDef`
27
+ * conditional forbids values on tags outright. A schema-erased `ComponentDef`
28
28
  * falls into the valued branch, so untyped call sites keep the loose shape.
29
29
  */
30
30
  export type ValuesArg<S extends ComponentSchema> = S extends Record<string, never> ? [] : [values?: Partial<FieldValues<S>>];
@@ -32,16 +32,16 @@ export type ValuesArg<S extends ComponentSchema> = S extends Record<string, neve
32
32
  * `FieldValues` for APIs where the values object is required and complete
33
33
  * (`addComponent`'s valued overload, the host-seam `SpawnEntry`). Guards the
34
34
  * same tag degeneracy as `ValuesArg`: a tag accepts only the empty object
35
- * (`Record<string, never>` every property typed `never`), so
35
+ * (`Record<string, never>`, every property typed `never`), so
36
36
  * `addComponent(e, Frozen, { x: 1 })` is a compile error while the
37
37
  * tag-overload-less call sites can still pass `{}`.
38
38
  */
39
39
  export type CompleteFieldValues<S extends ComponentSchema> = S extends Record<string, never> ? Record<string, never> : FieldValues<S>;
40
40
  /**
41
41
  * Trailing-argument tuple for the attach surfaces (`ctx.commands.add`'s
42
- * explicit-values form, `ctx.addSparse`): a tag takes NO values argument, a valued schema REQUIRES a
43
- * complete one. Encodes the former tag/valued overload pair as one signature,
44
- * which the typed system seam needs its `def` parameter is a single
42
+ * explicit-values form, `ctx.addSparse`): a tag takes no values argument, a valued schema requires a
43
+ * complete one. Encodes the former tag and valued overload pair as one signature,
44
+ * which the typed system seam needs, its `def` parameter is a single
45
45
  * declared-access-constrained type param, and per-schema overloads would
46
46
  * re-introduce the tag-vs-valued split on top of it.
47
47
  */
@@ -51,10 +51,10 @@ export type ColumnsForSchema<S extends ComponentSchema> = {
51
51
  readonly [K in keyof S]: TagToTypedArray[S[K]];
52
52
  };
53
53
  /**
54
- * Mutable sibling of `ColumnsForSchema` the field-keyed column group handed
55
- * back by `eachChunk`'s `cols.mut(def)` (no `readonly`, since the whole point
54
+ * Mutable sibling of `ColumnsForSchema`, the field-keyed column group handed
55
+ * back by `forEachChunk`'s `cols.mut(def)` (no `readonly`, since the whole point
56
56
  * is in-place writes). The change-tick is stamped once when the group is
57
- * resolved, so the per-row loop is plain typed-array indexing (§eachChunk).
57
+ * resolved, so the per-row loop is plain typed-array indexing.
58
58
  */
59
59
  export type MutableColumnsForSchema<S extends ComponentSchema> = {
60
60
  [K in keyof S]: TagToTypedArray[S[K]];
@@ -62,28 +62,28 @@ export type MutableColumnsForSchema<S extends ComponentSchema> = {
62
62
  declare const __schema: unique symbol;
63
63
  /**
64
64
  * A component handle. **Callable**: `Pos({ x, y })` produces a `Bundle` (omitted
65
- * fields zero-fill at attach), so one varargs shape `spawn(Pos({x,y}),
66
- * Vel({vx:1}), IsEnemy)` replaces the older incompatible attach shapes. A bare
67
- * `Pos` (uncalled) still stands in for a tag / all-zero values wherever a
65
+ * fields zero-fill at attach), so one varargs shape, `spawn(Pos({x,y}),
66
+ * Vel({vx:1}), IsEnemy)`, replaces the older incompatible attach shapes. A bare
67
+ * `Pos` (uncalled) still stands in for a tag, or for all-zero values, wherever a
68
68
  * `BundleOrDef` is accepted.
69
69
  *
70
70
  * The numeric component id lives on `.id` (registration order). Consumers treat
71
- * the def as an opaque handle; internal code reads `def.id` where it needs the
71
+ * the def as an opaque handle. Internal code reads `def.id` where it needs the
72
72
  * raw id. The call signature's `S` makes `ComponentDef<{x:"f64"}>` distinct from
73
73
  * `ComponentDef<{vx:"f64"}>`.
74
74
  *
75
- * The optional `[__schema]` slot never exists at runtime; it re-states `S` in a
76
- * covariant tuple position so that a TAG def type is not a universal assignment
75
+ * The optional `[__schema]` slot never exists at runtime. It re-states `S` in a
76
+ * covariant tuple position so that a tag def type is not a universal assignment
77
77
  * sink. Through the call signature alone every def is assignable to
78
78
  * `ComponentDef<Record<string, never>>` (the tag callable takes no required
79
- * args and any `Bundle` satisfies its return), which would let ONE tag in a
79
+ * args and any `Bundle` satisfies its return), which would let one tag in a
80
80
  * system's declared-access union admit every component at compile time
81
- * (§typestate — `DeclaredRead` and friends in system.ts). With the slot, a
81
+ * (`DeclaredRead` and friends in system.ts). With the slot, a
82
82
  * valued schema is not assignable to the tag schema (`"f64" ⊀ never`), while
83
83
  * schema erasure (`ComponentDef<S>` → bare `ComponentDef`) still works because
84
84
  * every schema is assignable to `ComponentSchema`.
85
85
  *
86
- * Build one with `makeComponentDef`; never construct by hand.
86
+ * Build one with `createComponentDef`. Never construct by hand.
87
87
  */
88
88
  export interface ComponentDef<S extends ComponentSchema = ComponentSchema> {
89
89
  (...values: ValuesArg<S>): Bundle<S>;
@@ -92,17 +92,17 @@ export interface ComponentDef<S extends ComponentSchema = ComponentSchema> {
92
92
  }
93
93
  /**
94
94
  * Recover a def's schema type: `SchemaOf<typeof Pos>` is `{x:"f64", y:"f64"}`.
95
- * The typed `SystemContext` methods (§typestate) constrain their `def`
95
+ * The typed `SystemContext` methods (system.ts) constrain their `def`
96
96
  * parameter to the system's declared-access union and use this to type the
97
97
  * field argument, in place of taking `ComponentDef<S>` directly.
98
98
  */
99
99
  export type SchemaOf<D> = D extends ComponentDef<infer S extends ComponentSchema> ? S : never;
100
100
  /**
101
- * `unknown` if `D` is one of the query's declared terms, else an error tuple
102
- * the query-seam sibling of system.ts's `DeclaredRead` (§typestate).
103
- * `Query.eachChunk`'s cursor and `ArchetypeView`'s column
101
+ * `unknown` if `D` is one of the query's declared terms, else an error tuple,
102
+ * the query-seam sibling of system.ts's `DeclaredRead`.
103
+ * `Query.forEachChunk`'s cursor and `ArchetypeView`'s column
104
104
  * accessors intersect this into their `def` parameter so fetching a component
105
- * that is NOT a term of the iterating query fails to compile (previously
105
+ * that is not a term of the iterating query fails to compile (previously
106
106
  * caught only by the dev-mode access check, and only when the system's
107
107
  * declaration was itself wrong). Same encoding rules as the system asserts:
108
108
  * stable `D extends ComponentDef<any>` constraints keep instantiations
@@ -110,15 +110,15 @@ export type SchemaOf<D> = D extends ComponentDef<infer S extends ComponentSchema
110
110
  */
111
111
  export type DeclaredQueryTerm<Defs extends readonly ComponentDef<any>[], D> = [D] extends [
112
112
  Defs[number]
113
- ] ? unknown : ["component is not a term of this query add it with .and(...)", D];
114
- /** Options bag accepted by `registerComponent` / `registerSparseComponent`. */
113
+ ] ? unknown : ["component is not a term of this query, add it with .and(...)", D];
114
+ /** Options bag accepted by `registerComponent` and `registerSparseComponent`. */
115
115
  export interface ComponentRegisterOptions {
116
- /** Debug label for diagnostics errors then read `'Pos' (component 5)`
116
+ /** Debug label for diagnostics, errors then read `'Pos' (component 5)`
117
117
  * instead of `component 5`. Never affects behaviour, layout, or hashing. */
118
118
  readonly name?: string;
119
119
  }
120
120
  /**
121
- * Schema-erased component handle just the `.id`. Internal, schema-agnostic
121
+ * Schema-erased component handle, only the `.id`. Internal, schema-agnostic
122
122
  * code (access checks, dirty-set notes, field-id lookup) takes this instead of
123
123
  * `ComponentDef`: the callable signature makes `ComponentDef<S>` *invariant* in
124
124
  * `S` (a generic `ComponentDef<S>` is not assignable to `ComponentDef`), but
@@ -131,27 +131,27 @@ export type ComponentHandle = {
131
131
  /**
132
132
  * Mint a callable `ComponentDef` for a freshly-registered component id. The
133
133
  * returned function produces a `Bundle` when called (`Pos({x,y})`) and carries
134
- * its numeric id on a non-enumerable `.id` (invisible to spreads / `JSON`).
135
- * The single cast bridges the function value to the branded handle type the
134
+ * its numeric id on a non-enumerable `.id`, invisible to a spread and to `JSON`.
135
+ * The single cast bridges the function value to the branded handle type, the
136
136
  * `.id` is installed at runtime by `defineProperty` (the branded-ID boundary).
137
137
  */
138
- export declare function makeComponentDef<S extends ComponentSchema>(id: ComponentID): ComponentDef<S>;
138
+ export declare function createComponentDef<S extends ComponentSchema>(id: ComponentID): ComponentDef<S>;
139
139
  export interface Bundle<S extends ComponentSchema = ComponentSchema> {
140
140
  readonly def: ComponentDef<S>;
141
141
  readonly values: Partial<FieldValues<S>>;
142
142
  }
143
- /** Either a populated bundle or a bare def (tag / all-fields-zero). */
143
+ /** Either a populated bundle or a bare def, a tag with all fields zero. */
144
144
  export type BundleOrDef<S extends ComponentSchema = ComponentSchema> = Bundle<S> | ComponentDef<S>;
145
- /** Re-validate one bundle-or-def item against its OWN def's schema. A bare def
146
- * (the callable) passes as-is; a bundle is re-stated as `Bundle<S>` for its
145
+ /** Re-validate one bundle-or-def item against its own def's schema. A bare def
146
+ * (the callable) passes as-is. A bundle is re-stated as `Bundle<S>` for its
147
147
  * def's `S`, so a hand-written `{ def, values }` literal whose fields don't
148
- * match the def is rejected closing the raw-literal leak that `bundle(Pos,…)`
149
- * / `Pos(…)` never had (those validate at their own call site). Per-element
148
+ * match the def is rejected, closing the raw-literal leak that `bundle(Pos,…)`
149
+ * and `Pos(…)` never had (those validate at their own call site). Per-element
150
150
  * mapper for `StrictBundles`. */
151
151
  export type StrictBundle<T> = T extends ComponentDef ? T : T extends {
152
152
  def: ComponentDef<infer S>;
153
153
  } ? Bundle<S> : never;
154
- /** Mapped tuple over a bundle-or-def varargs list each element re-checked
154
+ /** Mapped tuple over a bundle-or-def varargs list, each element re-checked
155
155
  * against its own def's schema. The SolidJS-`on` per-element pattern (pull the
156
156
  * tuple apart, map every element), over callable bundles instead of
157
157
  * `{ def, values }` entry-objects. The one strictness mechanism shared by
@@ -160,17 +160,18 @@ export type StrictBundles<Items extends readonly BundleOrDef[]> = {
160
160
  [K in keyof Items]: StrictBundle<Items[K]>;
161
161
  };
162
162
  /** Recover the def tuple from a bundle-or-def varargs list, so `template(...)`
163
- * still returns `Template<[Pos, Vel]>` the typed key set that `spawn`'s
163
+ * still returns `Template<[Pos, Vel]>`, the typed key set that `spawn`'s
164
164
  * `overrides` (`TemplateOverrides`) maps over. Also a per-element tuple map. */
165
165
  export type DefsOf<Items extends readonly BundleOrDef[]> = {
166
166
  [K in keyof Items]: Items[K] extends {
167
167
  def: infer D extends ComponentDef;
168
168
  } ? D : Items[K] extends ComponentDef ? Items[K] : never;
169
169
  };
170
- /** Pair a component def with field values to attach. Omitted fields zero-fill;
171
- * a tag def takes no values (see `ValuesArg`). */
170
+ /** Pair a component def with field values to attach. Omitted fields zero-fill.
171
+ * A tag def takes no values (see `ValuesArg`). */
172
172
  export declare function bundle<S extends ComponentSchema>(def: ComponentDef<S>, ...values: ValuesArg<S>): Bundle<S>;
173
- /** Extract the def from a `BundleOrDef`. A bare def is the callable; a bundle a plain object. */
173
+ /** Extract the def from a `BundleOrDef`. A bare def is the callable. A bundle
174
+ * is a plain object. */
174
175
  export declare function bundleDef(item: BundleOrDef): ComponentDef;
175
176
  /** Extract the values from a `BundleOrDef` (a bare def contributes no values). */
176
177
  export declare function bundleValues(item: BundleOrDef): Readonly<Record<string, number>>;
@@ -181,7 +182,7 @@ export declare function bundleValues(item: BundleOrDef): Readonly<Record<string,
181
182
  * **Advisory, not a runtime barrier:** the value behind this type is the live
182
183
  * mutable backing `TypedArray` (`Archetype.getColumnRead` returns
183
184
  * `.buf as unknown as ReadonlyColumn`), so a deliberate cast can still write
184
- * through. For mutation use the mutable `Archetype.getColumn` (tick-bumping).
185
+ * through. For mutation use the mutable `Archetype.getColumnMut` (tick-bumping).
185
186
  * Enforced by the escape-hatch lint, not the runtime.
186
187
  */
187
188
  export interface ReadonlyColumn {
@@ -190,7 +191,7 @@ export interface ReadonlyColumn {
190
191
  }
191
192
  /**
192
193
  * Compile-time readonly view of a Uint32Array. Blocks index writes at the type
193
- * layer. **Advisory, not a runtime barrier** same caveat as `ReadonlyColumn`:
194
+ * layer. **Advisory, not a runtime barrier**, same caveat as `ReadonlyColumn`:
194
195
  * the underlying value is the live mutable buffer.
195
196
  */
196
197
  export interface ReadonlyUint32Array {
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { ComponentDef, ComponentHandle } from './component.cjs';
2
+ import { ComponentMeta } from './store_types.cjs';
3
+ import { TypedArrayTag } from '../../type_primitives/index.cjs';
4
+ /**
5
+ * Reject a field named like an accessor's own state (`__cols`, `__row`): a ref
6
+ * or cursor over the component would shadow its own state with the field, or
7
+ * the field with its state. `kind` names the storage class in the fault,
8
+ * either "component" or "sparse component".
9
+ *
10
+ * Always on, not `__DEV__` gated. Registration is cold.
11
+ */
12
+ export declare function assertFieldNamesFree(fieldNames: readonly string[], kind: string): void;
13
+ /**
14
+ * Reject an `f32` or an `f64` field on a `deterministic: true` world, at
15
+ * registration. IEEE-754 rounds differently across hosts in the last place. A
16
+ * float column in a fixed-update path is then a silent per-tick `stateHash`
17
+ * divergence between client and server, the one thing the determinism opt-in
18
+ * exists to prevent.
19
+ *
20
+ * A world that did not opt in skips the walk and keeps its floats, so the
21
+ * default path pays nothing. The array shorthand defaults to `f64` and lands
22
+ * here too, so a deterministic world must pass an explicit integer type.
23
+ */
24
+ export declare function assertDeterministicFieldTypes(deterministic: boolean, fieldNames: readonly string[], fieldTypes: readonly TypedArrayTag[], kind: string): void;
25
+ /**
26
+ * Append one component's metadata to `metas` and return its definition.
27
+ *
28
+ * The caller guarantees that `metas` is the world's live metadata array and
29
+ * that nothing else appends to it. The id this hands out is the array's length
30
+ * before the append.
31
+ *
32
+ * The archetype descriptor in the backing carries a fixed-width component
33
+ * mask, and the module matches archetypes on that mask alone. A component id
34
+ * past the mask's width would be invisible there, so two archetypes that
35
+ * differ only in such a component would conflate. This fails instead, and the
36
+ * fault names `registerSparseComponent` as the remedy, because a sparse
37
+ * component keeps its own id space and costs no mask bit.
38
+ *
39
+ * A rejected registration leaves no partial state. Both checks run before the
40
+ * id is taken and before the append.
41
+ */
42
+ export declare function appendComponentMeta<S extends Record<string, TypedArrayTag>>(metas: ComponentMeta[], deterministic: boolean, schema: S, name?: string): ComponentDef<S>;
43
+ /** `'Pos' (component 5)` when the component was registered with a debug name,
44
+ * else `component 5`, the label diagnostics interpolate. */
45
+ export declare function componentMetaLabel(metas: readonly ComponentMeta[], cid: number): string;
46
+ /**
47
+ * The field index assigned to `(def, fieldName)` at registration. Indexes are
48
+ * insertion-order, zero-based, and stable for the lifetime of the world. A
49
+ * system that passes `(component_id, field_id)` pairs across the WASM FFI
50
+ * resolves them once, at setup.
51
+ */
52
+ export declare function fieldIdOfMeta(metas: readonly ComponentMeta[], def: ComponentHandle, fieldName: string): number;
53
+ //# sourceMappingURL=component_registry.d.ts.map
@@ -0,0 +1,53 @@
1
+ import { ComponentDef, ComponentHandle } from './component.js';
2
+ import { ComponentMeta } from './store_types.js';
3
+ import { TypedArrayTag } from '../../type_primitives/index.js';
4
+ /**
5
+ * Reject a field named like an accessor's own state (`__cols`, `__row`): a ref
6
+ * or cursor over the component would shadow its own state with the field, or
7
+ * the field with its state. `kind` names the storage class in the fault,
8
+ * either "component" or "sparse component".
9
+ *
10
+ * Always on, not `__DEV__` gated. Registration is cold.
11
+ */
12
+ export declare function assertFieldNamesFree(fieldNames: readonly string[], kind: string): void;
13
+ /**
14
+ * Reject an `f32` or an `f64` field on a `deterministic: true` world, at
15
+ * registration. IEEE-754 rounds differently across hosts in the last place. A
16
+ * float column in a fixed-update path is then a silent per-tick `stateHash`
17
+ * divergence between client and server, the one thing the determinism opt-in
18
+ * exists to prevent.
19
+ *
20
+ * A world that did not opt in skips the walk and keeps its floats, so the
21
+ * default path pays nothing. The array shorthand defaults to `f64` and lands
22
+ * here too, so a deterministic world must pass an explicit integer type.
23
+ */
24
+ export declare function assertDeterministicFieldTypes(deterministic: boolean, fieldNames: readonly string[], fieldTypes: readonly TypedArrayTag[], kind: string): void;
25
+ /**
26
+ * Append one component's metadata to `metas` and return its definition.
27
+ *
28
+ * The caller guarantees that `metas` is the world's live metadata array and
29
+ * that nothing else appends to it. The id this hands out is the array's length
30
+ * before the append.
31
+ *
32
+ * The archetype descriptor in the backing carries a fixed-width component
33
+ * mask, and the module matches archetypes on that mask alone. A component id
34
+ * past the mask's width would be invisible there, so two archetypes that
35
+ * differ only in such a component would conflate. This fails instead, and the
36
+ * fault names `registerSparseComponent` as the remedy, because a sparse
37
+ * component keeps its own id space and costs no mask bit.
38
+ *
39
+ * A rejected registration leaves no partial state. Both checks run before the
40
+ * id is taken and before the append.
41
+ */
42
+ export declare function appendComponentMeta<S extends Record<string, TypedArrayTag>>(metas: ComponentMeta[], deterministic: boolean, schema: S, name?: string): ComponentDef<S>;
43
+ /** `'Pos' (component 5)` when the component was registered with a debug name,
44
+ * else `component 5`, the label diagnostics interpolate. */
45
+ export declare function componentMetaLabel(metas: readonly ComponentMeta[], cid: number): string;
46
+ /**
47
+ * The field index assigned to `(def, fieldName)` at registration. Indexes are
48
+ * insertion-order, zero-based, and stable for the lifetime of the world. A
49
+ * system that passes `(component_id, field_id)` pairs across the WASM FFI
50
+ * resolves them once, at setup.
51
+ */
52
+ export declare function fieldIdOfMeta(metas: readonly ComponentMeta[], def: ComponentHandle, fieldName: string): number;
53
+ //# sourceMappingURL=component_registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component_registry.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/component_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;KAwBK;AAKL,OAAO,EAGN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC5C,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,IAAI,EAAE,MAAM,GACV,IAAI,CAiBN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1E,KAAK,EAAE,aAAa,EAAE,EACtB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,MAAM,GACX,YAAY,CAAC,CAAC,CAAC,CAyCjB;AAED;4DAC4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,GACf,MAAM,CAiBR"}
@@ -2,19 +2,19 @@ import { Brand } from '../../type_primitives/index.cjs';
2
2
  import { StoreLayoutListener } from './store_layout_listener.cjs';
3
3
  /**
4
4
  * An opaque token identifying one of a backend's entry points (one
5
- * "backend-system"). The engine **never interprets** it the backend mints it
5
+ * "backend-system"). The engine **never interprets** it, the backend mints it
6
6
  * and is the only thing that maps it back to a concrete computation. Carried on
7
7
  * `SystemConfig.backendHandle` and handed verbatim to `ComputeBackend.run`.
8
8
  *
9
- * Branded so a stray `number` can't be mistaken for a handle; consumers mint
9
+ * Branded so a stray `number` can't be mistaken for a handle. Consumers mint
10
10
  * one by casting (the backend owns the id space, like flecs's `run` function
11
11
  * pointer or a small index into the backend's entry table).
12
12
  */
13
13
  export type BackendSystemHandle = Brand<number, "backend_system_handle">;
14
14
  /**
15
15
  * The engine-side contract a compute backend implements. Composes
16
- * `StoreLayoutListener` (the already-clean SAB handshake `setLayout` is called
17
- * once on attach to seed the layout and again after every SAB grow/extend) with
16
+ * `StoreLayoutListener` (the already-clean SAB handshake, `setLayout` is called
17
+ * once on attach to seed the layout and again after every SAB grow and extend) with
18
18
  * a single generic `run` entry point.
19
19
  *
20
20
  * A backend is attached opt-in via `ECS.attachBackend(backend)`, which also
@@ -25,13 +25,24 @@ export interface ComputeBackend extends StoreLayoutListener {
25
25
  /**
26
26
  * Execute the backend-system identified by `handle`. Called by the
27
27
  * `Schedule` in place of the system's `fn` closure, inside the same
28
- * `accessCheck` span so the system's declared `writes` authorise whatever
28
+ * `accessCheck` span, so the system's declared `writes` authorise whatever
29
29
  * shared-memory columns the backend mutates, exactly as a TS body that calls
30
30
  * out to the backend would be authorised today.
31
31
  *
32
- * `handle` is opaque to the engine; it is one the backend minted and the
32
+ * `handle` is opaque to the engine. It is one the backend minted and the
33
33
  * engine merely round-trips from `SystemConfig.backendHandle`.
34
+ *
35
+ * `deltaTime` is the seconds the phase runs with, the same value a TS body
36
+ * receives. A module body needs it, and it is not in the store bytes, so it
37
+ * travels as a call argument. `tick` is the world's frame tick, the count of
38
+ * `update()` calls so far, and it is not in the bytes either. A backend that
39
+ * stamps its own frame state reads it here rather than counting calls, which
40
+ * would drift on a frame that runs the phase more than once.
41
+ *
42
+ * The engine publishes the descriptor row counts before this call when a
43
+ * mutation left them stale, so a module that walks the descriptors sees the
44
+ * live row count of every archetype.
34
45
  */
35
- run(handle: BackendSystemHandle): void;
46
+ run(handle: BackendSystemHandle, deltaTime: number, tick: number): void;
36
47
  }
37
48
  //# sourceMappingURL=compute_backend.d.ts.map