@vgai/engine 0.5.0 → 0.5.2

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 (538) hide show
  1. package/package.json +1 -1
  2. package/schemas/engine-capabilities.json +4 -4
  3. package/schemas/vgai-game.schema.json +2 -2
  4. package/src/adapter/authoring.ts +42 -0
  5. package/src/adapter/index.ts +3 -0
  6. package/src/adapter/ingest/overlay-apply.ts +50 -6
  7. package/src/adapter/ingest/scene-capture.ts +51 -2
  8. package/src/adapter/vgai-scene-game-adapter.ts +24 -0
  9. package/src/manifest/schema.ts +7 -3
  10. package/src/runtime/create-runtime.ts +97 -0
  11. package/src/runtime/game.ts +11 -1
  12. package/src/scene/asset-ref-check.ts +1 -1
  13. package/src/scene/scene-loader.ts +2 -2
  14. package/src/scene/user-data.ts +18 -0
  15. package/src/world3d-react/behavior.tsx +19 -11
  16. package/src/world3d-react/r3f-adapter.tsx +8 -0
  17. package/dist/adapter/adapter-surface.d.ts +0 -30
  18. package/dist/adapter/adapter-surface.d.ts.map +0 -1
  19. package/dist/adapter/adapter-surface.js +0 -18
  20. package/dist/adapter/authoring.d.ts +0 -461
  21. package/dist/adapter/authoring.d.ts.map +0 -1
  22. package/dist/adapter/authoring.js +0 -22
  23. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  24. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  25. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  26. package/dist/adapter/first-party-systems.d.ts +0 -38
  27. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  28. package/dist/adapter/first-party-systems.js +0 -77
  29. package/dist/adapter/game-adapter.d.ts +0 -133
  30. package/dist/adapter/game-adapter.d.ts.map +0 -1
  31. package/dist/adapter/game-adapter.js +0 -10
  32. package/dist/adapter/host-context.d.ts +0 -71
  33. package/dist/adapter/host-context.d.ts.map +0 -1
  34. package/dist/adapter/host-context.js +0 -16
  35. package/dist/adapter/index.d.ts +0 -22
  36. package/dist/adapter/index.d.ts.map +0 -1
  37. package/dist/adapter/index.js +0 -15
  38. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  39. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  40. package/dist/adapter/ingest/game-contract.js +0 -30
  41. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  42. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  43. package/dist/adapter/ingest/overlay-applier.js +0 -132
  44. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  45. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  46. package/dist/adapter/ingest/overlay-apply.js +0 -101
  47. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  48. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  49. package/dist/adapter/ingest/overlay-file.js +0 -66
  50. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  51. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  52. package/dist/adapter/ingest/overlay-report.js +0 -103
  53. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  54. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  55. package/dist/adapter/ingest/scene-capture.js +0 -248
  56. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  57. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  58. package/dist/adapter/ingest/upstream-pin.js +0 -50
  59. package/dist/adapter/loop-gate-report.d.ts +0 -34
  60. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  61. package/dist/adapter/loop-gate-report.js +0 -37
  62. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  63. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  64. package/dist/adapter/rapier-physics-adapter.js +0 -46
  65. package/dist/adapter/system-adapter.d.ts +0 -206
  66. package/dist/adapter/system-adapter.d.ts.map +0 -1
  67. package/dist/adapter/system-adapter.js +0 -13
  68. package/dist/adapter/transform.d.ts +0 -18
  69. package/dist/adapter/transform.d.ts.map +0 -1
  70. package/dist/adapter/transform.js +0 -1
  71. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
  72. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  73. package/dist/adapter/vgai-scene-game-adapter.js +0 -762
  74. package/dist/ai/navigation.d.ts +0 -64
  75. package/dist/ai/navigation.d.ts.map +0 -1
  76. package/dist/ai/navigation.js +0 -133
  77. package/dist/animation/anim-graph-types.d.ts +0 -25
  78. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  79. package/dist/animation/anim-graph-types.js +0 -1
  80. package/dist/animation/animation-clock.d.ts +0 -213
  81. package/dist/animation/animation-clock.d.ts.map +0 -1
  82. package/dist/animation/animation-clock.js +0 -301
  83. package/dist/animation/blend-node.d.ts +0 -22
  84. package/dist/animation/blend-node.d.ts.map +0 -1
  85. package/dist/animation/blend-node.js +0 -97
  86. package/dist/animation/camera-ownership.d.ts +0 -250
  87. package/dist/animation/camera-ownership.d.ts.map +0 -1
  88. package/dist/animation/camera-ownership.js +0 -169
  89. package/dist/animation/cinematic-cues.d.ts +0 -200
  90. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  91. package/dist/animation/cinematic-cues.js +0 -213
  92. package/dist/animation/clip-map.d.ts +0 -12
  93. package/dist/animation/clip-map.d.ts.map +0 -1
  94. package/dist/animation/clip-map.js +0 -37
  95. package/dist/animation/gsap-registration.d.ts +0 -119
  96. package/dist/animation/gsap-registration.d.ts.map +0 -1
  97. package/dist/animation/gsap-registration.js +0 -92
  98. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  99. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  100. package/dist/animation/theatre-clock-binding.js +0 -29
  101. package/dist/animation/theatre-director.d.ts +0 -242
  102. package/dist/animation/theatre-director.d.ts.map +0 -1
  103. package/dist/animation/theatre-director.js +0 -235
  104. package/dist/animation/theatre-object-binding.d.ts +0 -305
  105. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  106. package/dist/animation/theatre-object-binding.js +0 -351
  107. package/dist/animation/xstate-animation-binding.d.ts +0 -56
  108. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  109. package/dist/animation/xstate-animation-binding.js +0 -331
  110. package/dist/animation/xstate-animation-meta.d.ts +0 -266
  111. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  112. package/dist/animation/xstate-animation-meta.js +0 -252
  113. package/dist/assets.d.ts +0 -26
  114. package/dist/assets.d.ts.map +0 -1
  115. package/dist/assets.js +0 -55
  116. package/dist/audio/index.d.ts +0 -4
  117. package/dist/audio/index.d.ts.map +0 -1
  118. package/dist/audio/index.js +0 -24
  119. package/dist/audio/tone-clock-binding.d.ts +0 -75
  120. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  121. package/dist/audio/tone-clock-binding.js +0 -29
  122. package/dist/audio/tone-context.d.ts +0 -114
  123. package/dist/audio/tone-context.d.ts.map +0 -1
  124. package/dist/audio/tone-context.js +0 -39
  125. package/dist/audio/tone-offline-render.d.ts +0 -90
  126. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  127. package/dist/audio/tone-offline-render.js +0 -56
  128. package/dist/audio/wav-encode.d.ts +0 -38
  129. package/dist/audio/wav-encode.d.ts.map +0 -1
  130. package/dist/audio/wav-encode.js +0 -97
  131. package/dist/character/cloth-sim.d.ts +0 -179
  132. package/dist/character/cloth-sim.d.ts.map +0 -1
  133. package/dist/character/cloth-sim.js +0 -334
  134. package/dist/character/spring-chain.d.ts +0 -135
  135. package/dist/character/spring-chain.d.ts.map +0 -1
  136. package/dist/character/spring-chain.js +0 -165
  137. package/dist/core/game-loop.d.ts +0 -42
  138. package/dist/core/game-loop.d.ts.map +0 -1
  139. package/dist/core/game-loop.js +0 -167
  140. package/dist/core/seeded-random.d.ts +0 -69
  141. package/dist/core/seeded-random.d.ts.map +0 -1
  142. package/dist/core/seeded-random.js +0 -121
  143. package/dist/core/system-runner.d.ts +0 -120
  144. package/dist/core/system-runner.d.ts.map +0 -1
  145. package/dist/core/system-runner.js +0 -297
  146. package/dist/core/types.d.ts +0 -92
  147. package/dist/core/types.d.ts.map +0 -1
  148. package/dist/core/types.js +0 -25
  149. package/dist/data/data-asset.d.ts +0 -101
  150. package/dist/data/data-asset.d.ts.map +0 -1
  151. package/dist/data/data-asset.js +0 -122
  152. package/dist/data/data-check-core.d.ts +0 -110
  153. package/dist/data/data-check-core.d.ts.map +0 -1
  154. package/dist/data/data-check-core.js +0 -178
  155. package/dist/data/data-ref.d.ts +0 -79
  156. package/dist/data/data-ref.d.ts.map +0 -1
  157. package/dist/data/data-ref.js +0 -130
  158. package/dist/data/vite-plugin-data.d.ts +0 -79
  159. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  160. package/dist/data/vite-plugin-data.js +0 -217
  161. package/dist/dev/console-bridge.d.ts +0 -22
  162. package/dist/dev/console-bridge.d.ts.map +0 -1
  163. package/dist/dev/console-bridge.js +0 -71
  164. package/dist/dev/debug-draw.d.ts +0 -24
  165. package/dist/dev/debug-draw.d.ts.map +0 -1
  166. package/dist/dev/debug-draw.js +0 -73
  167. package/dist/dev/logger.d.ts +0 -30
  168. package/dist/dev/logger.d.ts.map +0 -1
  169. package/dist/dev/logger.js +0 -90
  170. package/dist/dev/performance-profiler.d.ts +0 -60
  171. package/dist/dev/performance-profiler.d.ts.map +0 -1
  172. package/dist/dev/performance-profiler.js +0 -181
  173. package/dist/dev/webgl-gpu-timer.d.ts +0 -8
  174. package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
  175. package/dist/dev/webgl-gpu-timer.js +0 -52
  176. package/dist/ecs/component-manager.d.ts +0 -205
  177. package/dist/ecs/component-manager.d.ts.map +0 -1
  178. package/dist/ecs/component-manager.js +0 -706
  179. package/dist/ecs/game-component.d.ts +0 -146
  180. package/dist/ecs/game-component.d.ts.map +0 -1
  181. package/dist/ecs/game-component.js +0 -141
  182. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  183. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  184. package/dist/ecs/hmr-swap-report.js +0 -55
  185. package/dist/humanoid/bake.operation.d.ts +0 -119
  186. package/dist/humanoid/bake.operation.d.ts.map +0 -1
  187. package/dist/humanoid/bake.operation.js +0 -228
  188. package/dist/humanoid/body.d.ts +0 -101
  189. package/dist/humanoid/body.d.ts.map +0 -1
  190. package/dist/humanoid/body.js +0 -530
  191. package/dist/humanoid/clips.d.ts +0 -62
  192. package/dist/humanoid/clips.d.ts.map +0 -1
  193. package/dist/humanoid/clips.js +0 -121
  194. package/dist/humanoid/compose.d.ts +0 -75
  195. package/dist/humanoid/compose.d.ts.map +0 -1
  196. package/dist/humanoid/compose.js +0 -176
  197. package/dist/humanoid/generate.d.ts +0 -92
  198. package/dist/humanoid/generate.d.ts.map +0 -1
  199. package/dist/humanoid/generate.js +0 -124
  200. package/dist/humanoid/index.d.ts +0 -24
  201. package/dist/humanoid/index.d.ts.map +0 -1
  202. package/dist/humanoid/index.js +0 -18
  203. package/dist/humanoid/schema.d.ts +0 -35
  204. package/dist/humanoid/schema.d.ts.map +0 -1
  205. package/dist/humanoid/schema.js +0 -87
  206. package/dist/humanoid/skeleton.d.ts +0 -103
  207. package/dist/humanoid/skeleton.d.ts.map +0 -1
  208. package/dist/humanoid/skeleton.js +0 -289
  209. package/dist/index.d.ts +0 -37
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js +0 -30
  212. package/dist/input/input-manager.d.ts +0 -945
  213. package/dist/input/input-manager.d.ts.map +0 -1
  214. package/dist/input/input-manager.js +0 -2207
  215. package/dist/input/input-types.d.ts +0 -174
  216. package/dist/input/input-types.d.ts.map +0 -1
  217. package/dist/input/input-types.js +0 -1
  218. package/dist/input/prompt-labels.d.ts +0 -21
  219. package/dist/input/prompt-labels.d.ts.map +0 -1
  220. package/dist/input/prompt-labels.js +0 -121
  221. package/dist/input/rebind-controller.d.ts +0 -59
  222. package/dist/input/rebind-controller.d.ts.map +0 -1
  223. package/dist/input/rebind-controller.js +0 -85
  224. package/dist/input/schema.d.ts +0 -16
  225. package/dist/input/schema.d.ts.map +0 -1
  226. package/dist/input/schema.js +0 -228
  227. package/dist/loader.d.ts +0 -43
  228. package/dist/loader.d.ts.map +0 -1
  229. package/dist/loader.js +0 -59
  230. package/dist/manifest/index.d.ts +0 -5
  231. package/dist/manifest/index.d.ts.map +0 -1
  232. package/dist/manifest/index.js +0 -8
  233. package/dist/manifest/load-file.d.ts +0 -4
  234. package/dist/manifest/load-file.d.ts.map +0 -1
  235. package/dist/manifest/load-file.js +0 -14
  236. package/dist/manifest/load.d.ts +0 -144
  237. package/dist/manifest/load.d.ts.map +0 -1
  238. package/dist/manifest/load.js +0 -273
  239. package/dist/manifest/schema.d.ts +0 -230
  240. package/dist/manifest/schema.d.ts.map +0 -1
  241. package/dist/manifest/schema.js +0 -394
  242. package/dist/physics/collision-system.d.ts +0 -41
  243. package/dist/physics/collision-system.d.ts.map +0 -1
  244. package/dist/physics/collision-system.js +0 -64
  245. package/dist/physics/physics-registry.d.ts +0 -45
  246. package/dist/physics/physics-registry.d.ts.map +0 -1
  247. package/dist/physics/physics-registry.js +0 -65
  248. package/dist/physics/transform-writer.d.ts +0 -16
  249. package/dist/physics/transform-writer.d.ts.map +0 -1
  250. package/dist/physics/transform-writer.js +0 -38
  251. package/dist/physics/trigger-dispatch.d.ts +0 -24
  252. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  253. package/dist/physics/trigger-dispatch.js +0 -80
  254. package/dist/react/game-state.d.ts +0 -156
  255. package/dist/react/game-state.d.ts.map +0 -1
  256. package/dist/react/game-state.js +0 -222
  257. package/dist/react/root-adapter.d.ts +0 -11
  258. package/dist/react/root-adapter.d.ts.map +0 -1
  259. package/dist/react/root-adapter.js +0 -41
  260. package/dist/react/unmanaged-root-detector.d.ts +0 -12
  261. package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
  262. package/dist/react/unmanaged-root-detector.js +0 -45
  263. package/dist/react/use-data.d.ts +0 -60
  264. package/dist/react/use-data.d.ts.map +0 -1
  265. package/dist/react/use-data.js +0 -101
  266. package/dist/react/use-selection.d.ts +0 -75
  267. package/dist/react/use-selection.d.ts.map +0 -1
  268. package/dist/react/use-selection.js +0 -90
  269. package/dist/render/auto-batcher.d.ts +0 -34
  270. package/dist/render/auto-batcher.d.ts.map +0 -1
  271. package/dist/render/auto-batcher.js +0 -140
  272. package/dist/render/render-batch-system.d.ts +0 -33
  273. package/dist/render/render-batch-system.d.ts.map +0 -1
  274. package/dist/render/render-batch-system.js +0 -230
  275. package/dist/render/render-features.d.ts +0 -47
  276. package/dist/render/render-features.d.ts.map +0 -1
  277. package/dist/render/render-features.js +0 -105
  278. package/dist/render/render-settings.d.ts +0 -36
  279. package/dist/render/render-settings.d.ts.map +0 -1
  280. package/dist/render/render-settings.js +0 -51
  281. package/dist/runtime/create-runtime.d.ts +0 -249
  282. package/dist/runtime/create-runtime.d.ts.map +0 -1
  283. package/dist/runtime/create-runtime.js +0 -641
  284. package/dist/runtime/debug-bridge.d.ts +0 -257
  285. package/dist/runtime/debug-bridge.d.ts.map +0 -1
  286. package/dist/runtime/debug-bridge.js +0 -224
  287. package/dist/runtime/debug-registry.d.ts +0 -288
  288. package/dist/runtime/debug-registry.d.ts.map +0 -1
  289. package/dist/runtime/debug-registry.js +0 -513
  290. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  291. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  292. package/dist/runtime/frame-selector-cache.js +0 -65
  293. package/dist/runtime/game.d.ts +0 -496
  294. package/dist/runtime/game.d.ts.map +0 -1
  295. package/dist/runtime/game.js +0 -741
  296. package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
  297. package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
  298. package/dist/runtime/gameplay-rng-trap.js +0 -96
  299. package/dist/runtime/input-router.d.ts +0 -78
  300. package/dist/runtime/input-router.d.ts.map +0 -1
  301. package/dist/runtime/input-router.js +0 -171
  302. package/dist/runtime/mount-game.d.ts +0 -129
  303. package/dist/runtime/mount-game.d.ts.map +0 -1
  304. package/dist/runtime/mount-game.js +0 -152
  305. package/dist/runtime/mount-manifest.d.ts +0 -173
  306. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  307. package/dist/runtime/mount-manifest.js +0 -297
  308. package/dist/runtime/render-audio-control.d.ts +0 -110
  309. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  310. package/dist/runtime/render-audio-control.js +0 -111
  311. package/dist/runtime/render-control.d.ts +0 -291
  312. package/dist/runtime/render-control.d.ts.map +0 -1
  313. package/dist/runtime/render-control.js +0 -264
  314. package/dist/runtime/render-seed.d.ts +0 -57
  315. package/dist/runtime/render-seed.d.ts.map +0 -1
  316. package/dist/runtime/render-seed.js +0 -74
  317. package/dist/runtime/state-bridge.d.ts +0 -61
  318. package/dist/runtime/state-bridge.d.ts.map +0 -1
  319. package/dist/runtime/state-bridge.js +0 -63
  320. package/dist/runtime/types.d.ts +0 -253
  321. package/dist/runtime/types.d.ts.map +0 -1
  322. package/dist/runtime/types.js +0 -1
  323. package/dist/scene/asset-loaders.d.ts +0 -79
  324. package/dist/scene/asset-loaders.d.ts.map +0 -1
  325. package/dist/scene/asset-loaders.js +0 -141
  326. package/dist/scene/asset-paths.d.ts +0 -11
  327. package/dist/scene/asset-paths.d.ts.map +0 -1
  328. package/dist/scene/asset-paths.js +0 -108
  329. package/dist/scene/asset-ref-check.d.ts +0 -88
  330. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  331. package/dist/scene/asset-ref-check.js +0 -214
  332. package/dist/scene/asset-registry.d.ts +0 -38
  333. package/dist/scene/asset-registry.d.ts.map +0 -1
  334. package/dist/scene/asset-registry.js +0 -66
  335. package/dist/scene/collider-dimensions.d.ts +0 -63
  336. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  337. package/dist/scene/collider-dimensions.js +0 -98
  338. package/dist/scene/component-registry.d.ts +0 -22
  339. package/dist/scene/component-registry.d.ts.map +0 -1
  340. package/dist/scene/component-registry.js +0 -37
  341. package/dist/scene/defaults.d.ts +0 -252
  342. package/dist/scene/defaults.d.ts.map +0 -1
  343. package/dist/scene/defaults.js +0 -151
  344. package/dist/scene/geometries/index.d.ts +0 -8
  345. package/dist/scene/geometries/index.d.ts.map +0 -1
  346. package/dist/scene/geometries/index.js +0 -7
  347. package/dist/scene/geometries/terrain.d.ts +0 -2
  348. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  349. package/dist/scene/geometries/terrain.js +0 -37
  350. package/dist/scene/geometry-registry.d.ts +0 -24
  351. package/dist/scene/geometry-registry.d.ts.map +0 -1
  352. package/dist/scene/geometry-registry.js +0 -20
  353. package/dist/scene/instance-registry.d.ts +0 -36
  354. package/dist/scene/instance-registry.d.ts.map +0 -1
  355. package/dist/scene/instance-registry.js +0 -55
  356. package/dist/scene/instancers/grid.d.ts +0 -2
  357. package/dist/scene/instancers/grid.d.ts.map +0 -1
  358. package/dist/scene/instancers/grid.js +0 -36
  359. package/dist/scene/instancers/index.d.ts +0 -8
  360. package/dist/scene/instancers/index.d.ts.map +0 -1
  361. package/dist/scene/instancers/index.js +0 -7
  362. package/dist/scene/light-camera-factory.d.ts +0 -23
  363. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  364. package/dist/scene/light-camera-factory.js +0 -68
  365. package/dist/scene/material-factory.d.ts +0 -17
  366. package/dist/scene/material-factory.d.ts.map +0 -1
  367. package/dist/scene/material-factory.js +0 -197
  368. package/dist/scene/material-registry.d.ts +0 -40
  369. package/dist/scene/material-registry.d.ts.map +0 -1
  370. package/dist/scene/material-registry.js +0 -44
  371. package/dist/scene/materials/index.d.ts +0 -8
  372. package/dist/scene/materials/index.d.ts.map +0 -1
  373. package/dist/scene/materials/index.js +0 -7
  374. package/dist/scene/materials/water.d.ts +0 -2
  375. package/dist/scene/materials/water.d.ts.map +0 -1
  376. package/dist/scene/materials/water.js +0 -54
  377. package/dist/scene/parse.d.ts +0 -23
  378. package/dist/scene/parse.d.ts.map +0 -1
  379. package/dist/scene/parse.js +0 -179
  380. package/dist/scene/particles-factory.d.ts +0 -33
  381. package/dist/scene/particles-factory.d.ts.map +0 -1
  382. package/dist/scene/particles-factory.js +0 -282
  383. package/dist/scene/scene-apply.d.ts +0 -109
  384. package/dist/scene/scene-apply.d.ts.map +0 -1
  385. package/dist/scene/scene-apply.js +0 -370
  386. package/dist/scene/scene-diff-schema.d.ts +0 -285
  387. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  388. package/dist/scene/scene-diff-schema.js +0 -92
  389. package/dist/scene/scene-diff-types.d.ts +0 -40
  390. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  391. package/dist/scene/scene-diff-types.js +0 -14
  392. package/dist/scene/scene-loader.d.ts +0 -167
  393. package/dist/scene/scene-loader.d.ts.map +0 -1
  394. package/dist/scene/scene-loader.js +0 -1211
  395. package/dist/scene/scene-query.d.ts +0 -11
  396. package/dist/scene/scene-query.d.ts.map +0 -1
  397. package/dist/scene/scene-query.js +0 -63
  398. package/dist/scene/scene-types.d.ts +0 -10
  399. package/dist/scene/scene-types.d.ts.map +0 -1
  400. package/dist/scene/scene-types.js +0 -8
  401. package/dist/scene/scene-version.d.ts +0 -26
  402. package/dist/scene/scene-version.d.ts.map +0 -1
  403. package/dist/scene/scene-version.js +0 -34
  404. package/dist/scene/schema/animation.d.ts +0 -8
  405. package/dist/scene/schema/animation.d.ts.map +0 -1
  406. package/dist/scene/schema/animation.js +0 -42
  407. package/dist/scene/schema/audio.d.ts +0 -13
  408. package/dist/scene/schema/audio.d.ts.map +0 -1
  409. package/dist/scene/schema/audio.js +0 -22
  410. package/dist/scene/schema/camera.d.ts +0 -28
  411. package/dist/scene/schema/camera.d.ts.map +0 -1
  412. package/dist/scene/schema/camera.js +0 -17
  413. package/dist/scene/schema/collider.d.ts +0 -40
  414. package/dist/scene/schema/collider.d.ts.map +0 -1
  415. package/dist/scene/schema/collider.js +0 -55
  416. package/dist/scene/schema/entity-ref.d.ts +0 -31
  417. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  418. package/dist/scene/schema/entity-ref.js +0 -61
  419. package/dist/scene/schema/entity.d.ts +0 -1036
  420. package/dist/scene/schema/entity.d.ts.map +0 -1
  421. package/dist/scene/schema/entity.js +0 -153
  422. package/dist/scene/schema/environment.d.ts +0 -425
  423. package/dist/scene/schema/environment.d.ts.map +0 -1
  424. package/dist/scene/schema/environment.js +0 -357
  425. package/dist/scene/schema/index.d.ts +0 -37
  426. package/dist/scene/schema/index.d.ts.map +0 -1
  427. package/dist/scene/schema/index.js +0 -19
  428. package/dist/scene/schema/instances.d.ts +0 -14
  429. package/dist/scene/schema/instances.d.ts.map +0 -1
  430. package/dist/scene/schema/instances.js +0 -28
  431. package/dist/scene/schema/joint.d.ts +0 -23
  432. package/dist/scene/schema/joint.d.ts.map +0 -1
  433. package/dist/scene/schema/joint.js +0 -23
  434. package/dist/scene/schema/light.d.ts +0 -38
  435. package/dist/scene/schema/light.d.ts.map +0 -1
  436. package/dist/scene/schema/light.js +0 -26
  437. package/dist/scene/schema/material.d.ts +0 -199
  438. package/dist/scene/schema/material.d.ts.map +0 -1
  439. package/dist/scene/schema/material.js +0 -103
  440. package/dist/scene/schema/mesh.d.ts +0 -48
  441. package/dist/scene/schema/mesh.d.ts.map +0 -1
  442. package/dist/scene/schema/mesh.js +0 -82
  443. package/dist/scene/schema/particles.d.ts +0 -2178
  444. package/dist/scene/schema/particles.d.ts.map +0 -1
  445. package/dist/scene/schema/particles.js +0 -321
  446. package/dist/scene/schema/physics.d.ts +0 -56
  447. package/dist/scene/schema/physics.d.ts.map +0 -1
  448. package/dist/scene/schema/physics.js +0 -37
  449. package/dist/scene/schema/scene-file.d.ts +0 -303
  450. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  451. package/dist/scene/schema/scene-file.js +0 -256
  452. package/dist/scene/schema/shadow.d.ts +0 -28
  453. package/dist/scene/schema/shadow.d.ts.map +0 -1
  454. package/dist/scene/schema/shadow.js +0 -20
  455. package/dist/scene/schema/spline.d.ts +0 -25
  456. package/dist/scene/schema/spline.d.ts.map +0 -1
  457. package/dist/scene/schema/spline.js +0 -15
  458. package/dist/scene/schema/tuples.d.ts +0 -12
  459. package/dist/scene/schema/tuples.d.ts.map +0 -1
  460. package/dist/scene/schema/tuples.js +0 -14
  461. package/dist/scene/user-data.d.ts +0 -185
  462. package/dist/scene/user-data.d.ts.map +0 -1
  463. package/dist/scene/user-data.js +0 -144
  464. package/dist/setup/setup-audio.d.ts +0 -20
  465. package/dist/setup/setup-audio.d.ts.map +0 -1
  466. package/dist/setup/setup-audio.js +0 -41
  467. package/dist/setup/setup-particles.d.ts +0 -17
  468. package/dist/setup/setup-particles.d.ts.map +0 -1
  469. package/dist/setup/setup-particles.js +0 -16
  470. package/dist/setup/setup-physics.d.ts +0 -25
  471. package/dist/setup/setup-physics.d.ts.map +0 -1
  472. package/dist/setup/setup-physics.js +0 -51
  473. package/dist/setup/setup-renderer.d.ts +0 -69
  474. package/dist/setup/setup-renderer.d.ts.map +0 -1
  475. package/dist/setup/setup-renderer.js +0 -363
  476. package/dist/tools/define-tool.d.ts +0 -130
  477. package/dist/tools/define-tool.d.ts.map +0 -1
  478. package/dist/tools/define-tool.js +0 -96
  479. package/dist/world2d/authoring-2d.d.ts +0 -80
  480. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  481. package/dist/world2d/authoring-2d.js +0 -195
  482. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  483. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  484. package/dist/world2d/capture-to-scene2d.js +0 -49
  485. package/dist/world2d/collision-2d.d.ts +0 -52
  486. package/dist/world2d/collision-2d.d.ts.map +0 -1
  487. package/dist/world2d/collision-2d.js +0 -70
  488. package/dist/world2d/components-2d.d.ts +0 -47
  489. package/dist/world2d/components-2d.d.ts.map +0 -1
  490. package/dist/world2d/components-2d.js +0 -77
  491. package/dist/world2d/index.d.ts +0 -34
  492. package/dist/world2d/index.d.ts.map +0 -1
  493. package/dist/world2d/index.js +0 -32
  494. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  495. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  496. package/dist/world2d/ingest-iframe-2d.js +0 -166
  497. package/dist/world2d/ingest2d.d.ts +0 -97
  498. package/dist/world2d/ingest2d.d.ts.map +0 -1
  499. package/dist/world2d/ingest2d.js +0 -40
  500. package/dist/world2d/physics2d-registry.d.ts +0 -24
  501. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  502. package/dist/world2d/physics2d-registry.js +0 -38
  503. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  504. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  505. package/dist/world2d/pixi-game-adapter.js +0 -210
  506. package/dist/world2d/pixi-surface.d.ts +0 -39
  507. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  508. package/dist/world2d/pixi-surface.js +0 -47
  509. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  510. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  511. package/dist/world2d/scene-capture-2d.js +0 -92
  512. package/dist/world2d/scene2d-loader.d.ts +0 -27
  513. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  514. package/dist/world2d/scene2d-loader.js +0 -275
  515. package/dist/world2d/schema/entity2d.d.ts +0 -102
  516. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  517. package/dist/world2d/schema/entity2d.js +0 -119
  518. package/dist/world2d/schema/physics2d.d.ts +0 -46
  519. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  520. package/dist/world2d/schema/physics2d.js +0 -45
  521. package/dist/world2d/schema/sprite.d.ts +0 -42
  522. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  523. package/dist/world2d/schema/sprite.js +0 -63
  524. package/dist/world2d/schema/tilemap.d.ts +0 -15
  525. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  526. package/dist/world2d/schema/tilemap.js +0 -19
  527. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  528. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  529. package/dist/world2d/schema/tuples2d.js +0 -19
  530. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  531. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  532. package/dist/world2d/system-adapters-2d.js +0 -37
  533. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  534. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  535. package/dist/world2d/transform-writer-2d.js +0 -22
  536. package/dist/world2d/types.d.ts +0 -59
  537. package/dist/world2d/types.d.ts.map +0 -1
  538. package/dist/world2d/types.js +0 -1
@@ -1,496 +0,0 @@
1
- /**
2
- * Game root — T7.1 slice 1 ("introduce Game internally") + slice 2 ("world
3
- * registry + ordered frame algorithm"), extended in T7.3 slice 1 with real
4
- * `'pixijs'`-kind `WorldInstance` support (`stage`/`physics2d`/`collisions2d`,
5
- * a real `pixiRoot()`) so `world2d/pixi-game-adapter.ts` can register its
6
- * world onto a real `Game` instead of driving its own loop, and in T7.3
7
- * slice 2 with a construction-time stage check (symmetric with the
8
- * threejs/scene check) and the two-world (threejs + pixijs) proof
9
- * (`test/game-three-plus-pixi.test.ts`). T6.2 slice 1 adds real `'react'`-kind
10
- * `WorldInstance` support (`container`, a real `reactRoot()`) — the DOM-root
11
- * world surface `runtime/create-runtime.ts`'s roots path now mounts (see
12
- * `docs/REACT-WORLD-DESIGN.md` §1.B); react roots host no `ComponentManager`
13
- * (D8 — components attaching to a react-kind manager already throw,
14
- * `ecs/component-manager.ts`), so `physics`/`collisions`/`camera`/`frame`
15
- * stay `undefined` for them exactly like an opaque/foreign mount.
16
- *
17
- * See `docs/GAME-ROOT-DESIGN.md` (D6), particularly §4 (the frame algorithm)
18
- * and §8 stage 2, for the full target shape. This file holds the Game/
19
- * WorldInstance shell, the NEW game-scoped `SystemRunner`, and the
20
- * host-facing `runFrame` frame executor. The public surface is NOT frozen
21
- * yet — do not add these exports to a barrel/index; only the in-scope
22
- * runtime/adapter files import this module directly. The `gpu` per-world
23
- * cache is the one remaining slice-1 omission.
24
- */
25
- import type * as PIXI from 'pixi.js';
26
- import type * as THREE from 'three';
27
- import type { AdapterSurface as AdapterSurfaceLeaf } from '../adapter/adapter-surface';
28
- import type { MountedWorld } from '../adapter/game-adapter';
29
- import type { SystemAdapters } from '../adapter/system-adapter';
30
- import type { VgaiMountedGame } from '../adapter/vgai-scene-game-adapter';
31
- import type { AssetCache } from '../assets';
32
- import type { createGameLoop } from '../core/game-loop';
33
- import { type SystemRunner } from '../core/system-runner';
34
- import { type SystemPhaseName } from '../core/types';
35
- import { type PerformanceProfiler } from '../dev/performance-profiler';
36
- import type { ComponentManager } from '../ecs/component-manager';
37
- import type { GameComponent } from '../ecs/game-component';
38
- import type { InputManager } from '../input/input-manager';
39
- import type { CollisionSystem } from '../physics/collision-system';
40
- import type { PhysicsRegistry } from '../physics/physics-registry';
41
- import type { AudioContext as GameAudio } from '../setup/setup-audio';
42
- import type { Collision2DSystem } from '../world2d/collision-2d';
43
- import type { Physics2DRegistry } from '../world2d/physics2d-registry';
44
- import { type RunTicksOptions } from './debug-registry';
45
- import { type GameStateBridge } from './state-bridge';
46
- /** The one loop type — `createGameLoop`'s return shape (D1, fixed-step). */
47
- export type GameLoop = ReturnType<typeof createGameLoop>;
48
- /**
49
- * Game-level play-state control surface (D10, T7.6 — `docs/DECISIONS-PENDING.md`
50
- * §D10): pause/resume/step as ONE control surface on the running game, with
51
- * PER-WORLD `pausable` semantics (`WorldInstance.pausable`) — a menu/HUD world
52
- * declaring `pausable: false` keeps ticking (input, components, physics) while
53
- * every `pausable: true` world freezes. Interacts with D1 (deliberate
54
- * fixed-rate rendering): a paused-and-pausable world's `render` phase still
55
- * runs every substep (with `dt` forced to `0`, so time-based render effects —
56
- * e.g. a post-processing pass with its own internal clock — don't silently
57
- * keep animating under a "frozen" scene) — simulation freezes, the screen does
58
- * not go black. `GameLoop.timeScale` (unaffected by this) remains the
59
- * orthogonal "speed up/slow down" axis — pausing never touches it, so the
60
- * host's accumulator/rAF loop keeps ticking at its normal cadence and keeps
61
- * calling `runFrame`, which is what makes "paused still renders" possible
62
- * (the previous `GameSession.pause()` implementation set `loop.timeScale = 0`,
63
- * which — per D1 — starves the accumulator and stops rendering too; that was
64
- * the bug this control surface replaces, not a compatible behavior to keep).
65
- */
66
- export interface PlayState {
67
- /** Whether the game is currently paused (game-level — see the per-world
68
- * `pausable` caveat above: a `pausable: false` world ignores this). */
69
- readonly paused: boolean;
70
- /**
71
- * Freeze every `pausable` world's simulation (idempotent — a second call
72
- * while already paused is a no-op) and, for every `pausable`, self-driven
73
- * (`drivesOwnLoop`) world, invoke its loop-gate capability
74
- * (`mounted.setPaused(true)`) — reporting loudly, once per world, when that
75
- * capability is absent (an honest "cannot gate" instead of a silent no-op,
76
- * `docs/CAPABILITY-TIERS.md` §d). Also silences every `pausable` world's
77
- * audio via its `SystemAdapters.audio` (absent ⇒ the same loud, once-only
78
- * report).
79
- */
80
- pause(): void;
81
- /** Resume every `pausable` world — the inverse of `pause()`, same
82
- * idempotency and loop-gate/audio fan-out (no re-reporting; a world that
83
- * couldn't be gated on pause simply never was, so resume has nothing to
84
- * undo for it). */
85
- resume(): void;
86
- /**
87
- * Advance exactly the currently-FROZEN roots by one fixed substep: the
88
- * `pausable`, host-driven (`!drivesOwnLoop`) roots while `paused` is
89
- * true. While NOT paused this is a whole-call no-op — under D10 the loop
90
- * never stops, so every non-frozen world is already being ticked; an
91
- * unconditional extra tick was the §7.1-2 double-tick bug (probe4). A
92
- * `pausable`, self-driven world that was actually gated by `pause()`
93
- * (adapter has `setPaused`) steps via its own loop-gate `step()`
94
- * capability instead (absent ⇒ the same loud report as `pause()`); a
95
- * self-driven world the gate couldn't reach is still running and is left
96
- * alone. `dt` defaults to the engine's fixed timestep (1/60s — every real
97
- * host constructs its loop with this value; see `create-runtime.ts`).
98
- */
99
- step(dt?: number): void;
100
- }
101
- /**
102
- * The kinds of render surface a world can be. `'threejs'` and `'pixijs'`
103
- * roots are real as of T7.3 slice 1 (`create-runtime.ts`'s default threejs
104
- * world; `world2d/pixi-game-adapter.ts`'s pixi world); `'react'` is named
105
- * here so the type is already shaped for T7.4 and no caller has to widen a
106
- * union later.
107
- *
108
- * Re-exported from `adapter/adapter-surface.ts` (T7.5) — moved there so
109
- * `adapter/game-adapter.ts`'s kind-tagged `MountedWorld` types can name it
110
- * without an import cycle back to this file. This re-export keeps every
111
- * existing `import type { AdapterSurface } from '../runtime/game'` call site
112
- * (`ecs/game-component.ts`, `ecs/component-manager.ts`) compiling unchanged.
113
- */
114
- export type AdapterSurface = AdapterSurfaceLeaf;
115
- /**
116
- * A world's per-phase frame hooks (GAME-ROOT-DESIGN §4, T7.1 slice 2).
117
- * Populated on a `WorldInstance` only for first-party mounts — an opaque/
118
- * foreign mount has no phase-partitioned entry point, so it stays
119
- * `undefined` and the Game's frame executor (`GameInternal.runFrame`) falls
120
- * back to calling its single `mounted.update(dt)` once per substep instead.
121
- */
122
- export interface WorldFrameHooks {
123
- /** Run this world's engine systems + component ticks + world-bound game
124
- * systems for one phase. For a first-party world this delegates to the
125
- * SAME `SystemRunner.runPhase` its (legacy) `mounted.update` uses. */
126
- runPhase(phase: SystemPhaseName, dt: number): void;
127
- /** Run once per substep, after ALL phases have run for ALL roots this
128
- * substep (mirrors where `mounted.update`'s post-`systems.run` work sat
129
- * today — e.g. `input.endFrame()`). Optional: a world may have nothing
130
- * to do here. */
131
- endFrame?(): void;
132
- }
133
- /**
134
- * A single world instance: the unit of adaptation (GAME-ROOT-DESIGN §3).
135
- * Slice-1 subset — `gpu` (per-world GPU resource cache, §6.2) is omitted
136
- * until the slice that builds it.
137
- */
138
- export interface WorldInstance {
139
- /** Manifest id (T3.1). Slice 1 always registers exactly one: `'main'`. */
140
- readonly id: string;
141
- readonly kind: AdapterSurface;
142
- /** Per-world play/pause semantics (D10, T7.6). Slice 1 always `true`. */
143
- readonly pausable: boolean;
144
- /** The GameAdapter that produced `mounted` — first-party or external.
145
- * Deliberately narrower than `GameAdapter<K>` (T7.5): this field is only
146
- * ever read for `.id` (`Game.registerWorld`'s diagnostic message below) —
147
- * never re-invoked — and `GameAdapter<K>`'s `mount` signature legitimately
148
- * differs per kind's host type (a pixijs adapter's `World2DHost`, a react
149
- * adapter's `ReactWorldHost`, vs a threejs adapter's `HostContext`), so
150
- * requiring the FULL interface here would force a cast at every non-
151
- * threejs registration site for no behavioral gain — see `AdapterHandle`
152
- * below. */
153
- readonly adapter: AdapterHandle;
154
- /** The live mounted surface — one of `MountedWorld`'s kind-tagged shapes
155
- * (T7.5; `MountedThreeWorld` for a threejs world, `MountedPixiWorld` for
156
- * pixijs, `MountedReactWorld` for react). */
157
- readonly mounted: MountedWorld;
158
- /** Kind-narrowed accessor: throws a descriptive error when this world is
159
- * not a threejs world. */
160
- threeRoot(): THREE.Scene;
161
- /** Kind-narrowed accessor for pixijs roots (T7.3): returns the stage
162
- * passed to `createWorldInstance` for a `'pixijs'`-kind world. Throws
163
- * descriptively for a non-pixijs world, or a pixijs world built without
164
- * a `stage` (see `WorldInstanceInit.stage`). */
165
- pixiRoot(): PIXI.Container;
166
- /** Kind-narrowed accessor for react roots (T6.2 slice 1,
167
- * `docs/REACT-WORLD-DESIGN.md` §1.B): returns the DOM-root layer
168
- * `<div>` the host mounted this world's react tree into (the SAME
169
- * element passed as `container` to `createWorldInstance` — identity
170
- * matters, mirroring `threeRoot()`/`pixiRoot()`'s "same instance the
171
- * adapter mounted" contract). Throws descriptively for a non-react
172
- * world, or a react world built without a `container` (see
173
- * `WorldInstanceInit.container`). */
174
- reactRoot(): HTMLElement;
175
- /** Present only when the world's mount is first-party (Rapier3D for
176
- * threejs roots). */
177
- readonly physics?: PhysicsRegistry | undefined;
178
- readonly collisions?: CollisionSystem | undefined;
179
- /** Present only when the world's mount is a first-party pixijs world
180
- * (Rapier2D, T7.3) — the 2D analog of `physics`/`collisions` above. Kept
181
- * as separate fields (not folded into `physics`/`collisions` as a union)
182
- * so 3D call sites keep their non-union `PhysicsRegistry`/`CollisionSystem`
183
- * typing unchanged. */
184
- readonly physics2d?: Physics2DRegistry | undefined;
185
- readonly collisions2d?: Collision2DSystem | undefined;
186
- /** Kind-typed via `mounted` in T7.5; `unknown` here deliberately. */
187
- readonly camera?: unknown;
188
- /** Phase-partitioned frame entry point (T7.1 slice 2) — present only for
189
- * first-party mounts. `undefined` for an opaque/foreign mount, which
190
- * `GameInternal.runFrame` drives via its single `mounted.update` call
191
- * instead (unless it `drivesOwnLoop`, in which case it isn't ticked at
192
- * all — see `runFrame`). */
193
- readonly frame?: WorldFrameHooks | undefined;
194
- }
195
- /**
196
- * Minimal identity surface `WorldInstance.adapter` needs (T7.5) — see that
197
- * field's doc comment for why it's narrower than `GameAdapter<K>`. Any real
198
- * adapter object (a NAMED type, not a fresh object literal) — `GameAdapter<K>`,
199
- * `Pixi2DGameAdapter`, `ReactRootAdapter`, or a project's own custom adapter —
200
- * satisfies this trivially (extra members beyond `id` are always fine for a
201
- * non-literal source); a bare `{ id, mount }` object literal built INLINE at
202
- * a `createWorldInstance`/`registerXWorld` call site needs an intermediate
203
- * `const` (excess-property checking only special-cases fresh literals).
204
- */
205
- export interface AdapterHandle {
206
- readonly id: string;
207
- }
208
- /** Inputs to {@link createWorldInstance}. */
209
- export interface WorldInstanceInit {
210
- readonly id: string;
211
- readonly kind: AdapterSurface;
212
- /** Defaults to `true` (D10's per-world default). */
213
- readonly pausable?: boolean;
214
- readonly adapter: AdapterHandle;
215
- readonly mounted: MountedWorld;
216
- /** Required when `kind === 'threejs'` — backs `threeRoot()`. */
217
- readonly scene?: THREE.Scene | undefined;
218
- /** Required when `kind === 'pixijs'` — backs `pixiRoot()` (T7.3 slice 2,
219
- * symmetric with `scene` for threejs above). */
220
- readonly stage?: PIXI.Container | undefined;
221
- /** Required when `kind === 'react'` — backs `reactRoot()` (T6.2 slice 1,
222
- * symmetric with `scene`/`stage` above): the DOM-root layer `<div>` this
223
- * world's react tree is mounted into. */
224
- readonly container?: HTMLElement | undefined;
225
- readonly physics?: PhysicsRegistry | undefined;
226
- readonly collisions?: CollisionSystem | undefined;
227
- readonly physics2d?: Physics2DRegistry | undefined;
228
- readonly collisions2d?: Collision2DSystem | undefined;
229
- readonly camera?: unknown;
230
- readonly frame?: WorldFrameHooks | undefined;
231
- }
232
- /**
233
- * Build a `WorldInstance` whose kind-narrowed accessors throw descriptively
234
- * on kind mismatch (GAME-ROOT-DESIGN §3). This is the one place that builds
235
- * `threeRoot`/`pixiRoot`, so every world (however it's constructed, in this
236
- * slice or later ones) gets identical throw behavior.
237
- */
238
- export declare function createWorldInstance(init: WorldInstanceInit): WorldInstance;
239
- /**
240
- * Type guard for whether a `MountedGame` is a first-party
241
- * `VgaiSceneGameAdapter` mount (has a live `GameContext` at `.ctx`). Used to
242
- * decide whether a world's `physics`/`collisions`/`camera` (and, on `Game`,
243
- * `components`/`input`/`audio`) can be populated from it — an external
244
- * adapter's mount has none of these first-party handles.
245
- *
246
- * Checks the `firstParty: true` brand (checklist item 1), NOT `'ctx' in
247
- * mounted` — world2d's `MountedGame2D` (`world2d/pixi-game-adapter.ts`) also
248
- * has a `ctx` key (a `World2DContext`, unrelated to `GameContext`), so a
249
- * structural `'ctx' in mounted` check would misfire once T7.3 registers 2D
250
- * roots onto the same `Game`. The probe is a plain property read, not an
251
- * `instanceof`/value import of `vgai-scene-game-adapter.ts` — the
252
- * `VgaiMountedGame` import above stays type-only.
253
- */
254
- export declare function isFirstPartyMounted(mounted: MountedWorld): mounted is VgaiMountedGame;
255
- /**
256
- * The Game root (GAME-ROOT-DESIGN §3). Owns the one loop, the raw-asset
257
- * cache, the world registry, and (T7.1 slice 2) the game-scoped
258
- * `SystemRunner`. `components`/`input`/`audio` remain slice-1 late
259
- * additions: they delegate to the default world's first-party mount so
260
- * existing single-world call sites keep working; hoisting them to true
261
- * Game ownership (GAME-ROOT-DESIGN §3's target shape) is a later slice's
262
- * work, not this one's.
263
- */
264
- export interface Game {
265
- readonly loop: GameLoop;
266
- readonly assets: AssetCache;
267
- /** Per-game diagnostic store. Disabled by default; the editor enables it on demand. */
268
- readonly profiler: PerformanceProfiler;
269
- /**
270
- * The game-scoped `SystemRunner` (GAME-ROOT-DESIGN §4, T7.1 slice 2) — a
271
- * NEW bucket, separate from any world's own runner. Within each phase,
272
- * `GameInternal.runFrame` runs THIS runner's `runPhase` first, before any
273
- * world's engine systems/component ticks/world-bound game systems (e.g.
274
- * `ctx.systems.add`, which stays world-bound to the default world — see
275
- * `runtime/types.ts`). Empty for every existing game (nothing registers
276
- * against it yet), so `runFrame`'s behavior for a single-world game is
277
- * unchanged by its presence.
278
- */
279
- readonly systems: SystemRunner;
280
- /** Declaration-ordered. Slice 1 registers exactly one (the default
281
- * threejs world) — this is the SAME array reference `registerWorld`
282
- * mutates, not a snapshot, so holders (e.g. `GameContext.roots`) observe
283
- * later registrations. */
284
- readonly roots: ReadonlyArray<WorldInstance>;
285
- world(id: string): WorldInstance | null;
286
- /** First threejs world, else first world. Throws descriptively when no
287
- * world has been registered yet. */
288
- readonly defaultWorld: WorldInstance;
289
- /**
290
- * Game-scoped aggregation of every world's `SystemAdapters` (§7.1-3,
291
- * `docs/GAME-ROOT-DESIGN.md` §3: "`registerSystemAdapter` is game-scoped" —
292
- * the recorded decision this getter finally implements; probe1). Each
293
- * mounted world builds its OWN `mounted.systems` object (a game registers
294
- * capabilities like `networking` from ITS OWN `setup()`, via
295
- * `ctx.registerSystemAdapter`, per-world) — this merges every world's
296
- * `mounted.systems` into ONE `SystemAdapters`, in `roots` REGISTRATION
297
- * order, first registration wins per key. A later world registering the
298
- * SAME kind (e.g. two roots both exposing `networking`) does not
299
- * override the first — instead this warns ONCE per (game instance, key)
300
- * naming both world ids, matching this file's `[game] world "<id>" …`
301
- * console idiom (see `registerWorld` below). NOT to be confused with
302
- * `Game.systems` (the game-scoped `SystemRunner` bucket, an entirely
303
- * different concept — see that field's doc comment) — this name was
304
- * deliberately chosen not to collide with it.
305
- *
306
- * A plain getter (recomputed on every read, not cached) so a LATER
307
- * `registerWorld` call (or a world's setup registering a NEW adapter kind
308
- * after this was first read) is always reflected — only the COLLISION
309
- * warning is deduped (once per key, for the lifetime of this `Game`).
310
- * Includes every world regardless of first-party-ness — `mounted.systems`
311
- * is a capability any adapter (first-party or foreign) may expose.
312
- */
313
- readonly systemAdapters: SystemAdapters;
314
- /** Delegates to the default world's first-party `ComponentManager`.
315
- * Throws when the default world is not a first-party mount. */
316
- readonly components: ComponentManager;
317
- /** Delegates to the default world's first-party `InputManager`. Throws
318
- * when the default world is not a first-party mount. */
319
- readonly input: InputManager;
320
- /** Delegates to the default world's first-party audio context. Throws
321
- * when the default world is not a first-party mount. */
322
- readonly audio: GameAudio;
323
- /**
324
- * Frame-versioned state bridge (T7.4 slice 1 — `docs/REACT-STATE-BRIDGE.md`
325
- * §2). Bumped once per completed `runFrame`, after all phases of all
326
- * roots and all `endFrame` hooks (see `runFrame`'s tail below). This is
327
- * the ONE subscription surface `useGameState`
328
- * (`@vgai/engine/react/game-state`) — or any
329
- * other frame-versioned consumer — subscribes to; `state-bridge.ts` itself
330
- * has no react import, matching the rest of `runtime/`.
331
- */
332
- readonly state: GameStateBridge;
333
- /** Game-level play-state control surface (D10, T7.6) — see {@link PlayState}. */
334
- readonly play: PlayState;
335
- /**
336
- * Cross-world component query (GAME-ROOT-DESIGN §5, T7.1 slice 3) — the
337
- * game-level half; `ComponentManager.queryByComponent` (`ecs/
338
- * component-manager.ts`) is the per-world half this aggregates.
339
- *
340
- * Iterates `roots` in declaration order, skipping any world whose mount
341
- * is not first-party (an opaque/foreign mount has no `ComponentManager`
342
- * to query), applying `opts.worldId`/`opts.kind` as world-level filters,
343
- * and concatenating each remaining world's `queryByComponent(cls)`
344
- * result. No filter (`opts` omitted) spans **every** world — that is the
345
- * whole point of this API existing (D7's "cross-world flow is ordinary
346
- * component access", e.g. a pixi minimap component querying the 3D
347
- * world's tank components).
348
- *
349
- * Returns component **instances**, not nodes — `inst.world`/typed node
350
- * accessors (`inst.object3D`, the generic `inst.node`) are T7.2's; this
351
- * API's contract freezes HERE. The physical ONE-`ComponentManager`
352
- * unification (partitioning one manager by (phase, world) instead of one
353
- * manager per world) lands with T7.2/T7.3 — this per-world-aggregation
354
- * implementation is the compatible interim: callers written against this
355
- * signature keep working unchanged once the manager is unified
356
- * underneath.
357
- *
358
- * `T extends GameComponent<AdapterSurface>` (not the bare default-`'threejs'`
359
- * `GameComponent`, T7.3 slice 2) — the whole point of a CROSS-WORLD query
360
- * is spanning every kind in one call (the T7.3 AC,
361
- * `test/game-three-plus-pixi.test.ts`), so a `GameComponent<'pixijs'>`
362
- * subclass must type-check here exactly like a default-kind one does.
363
- */
364
- queryByComponent<T extends GameComponent<AdapterSurface>>(cls: new () => T, opts?: {
365
- worldId?: string;
366
- kind?: AdapterSurface;
367
- }): T[];
368
- }
369
- /**
370
- * Host-internal extension of {@link Game}: adds `registerWorld` (the host's
371
- * wiring surface for populating the world registry) and `runFrame` (the
372
- * frame executor). NEITHER is part of the game-facing `Game` surface —
373
- * games/components never call either directly; the host loop
374
- * (`createGameRuntime`) and `GameSession.step()` are the only callers of
375
- * `runFrame`.
376
- */
377
- export interface GameInternal extends Game {
378
- /** Append a world in declaration order. Throws on a duplicate id. */
379
- registerWorld(world: WorldInstance): void;
380
- /**
381
- * Run ONE fixed substep across every phase and every world
382
- * (GAME-ROOT-DESIGN §4):
383
- *
384
- * ```
385
- * for phase in PHASE_ORDER:
386
- * game.systems.runPhase(phase, dt) // game-scoped, first
387
- * for world in roots (declaration order):
388
- * if world.mounted.drivesOwnLoop: continue
389
- * world.frame?.runPhase(phase, dt)
390
- * for world in roots: // after ALL phases
391
- * if world.mounted.drivesOwnLoop: continue
392
- * if world.frame: world.frame.endFrame?.()
393
- * else: world.mounted.update?.(dt) // opaque world fallback
394
- * ```
395
- *
396
- * For today's single first-party world this is byte-identical to the
397
- * legacy `mounted.update(dt)` (`game.systems` is empty; the one world's
398
- * `frame.runPhase` delegates to the SAME `SystemRunner.runPhase` its
399
- * `update` used; `endFrame` is the same `postFrame` call). A
400
- * `drivesOwnLoop` world is never ticked here at all — matching its
401
- * exclusion from the legacy `!mountedRef.drivesOwnLoop` guard. An opaque
402
- * host-driven world (no `frame`) gets exactly one `update(dt)` call per
403
- * substep, after the phase loop — unchanged cadence from today.
404
- *
405
- * D10/T7.6 play-state addendum: when `Game.play.paused` is true, every
406
- * `pausable` (and non-`drivesOwnLoop`) world skips every phase EXCEPT
407
- * `render` (still called, every substep, with `dt` forced to `0`) and skips
408
- * its `endFrame`/opaque-`update` call entirely — a `pausable: false` world
409
- * is completely unaffected. `opts.ignorePause` runs this call as if nothing
410
- * were paused, regardless of the live `paused` flag; kept for external
411
- * byte-compatibility (no first-party caller passes it today — grep finds
412
- * none) but is no longer how `Game.play.step()` works (§7.1-2 fix,
413
- * probe4: the old `ignorePause` full-frame re-run double-ticked every
414
- * already-running `pausable: false` world, since D10's ordinary loop never
415
- * stops ticking them). `Game.play.step()` now drives this function via the
416
- * internal-only `onlyFrozen` mode instead (see `runFrameImpl` — not part of
417
- * this public, host-facing signature): it ticks EXACTLY the currently
418
- * frozen set (host-driven, `pausable`, and `paused`) through every phase +
419
- * `endFrame` with the real `dt` (not the render-phase's forced `0`), and
420
- * touches no other world at all — a natural no-op while not paused, since
421
- * the frozen set is then empty.
422
- */
423
- runFrame(dt: number, opts?: {
424
- ignorePause?: boolean;
425
- }): void;
426
- /**
427
- * D15/T-D15.3-.4 (`docs/D15-DETERMINISM-DESIGN.md` §2.b) — a deterministic
428
- * fast-forward primitive: synchronously call the SAME per-tick pipeline
429
- * `runFrame` uses, `n` times in a tight loop, with `dt` fixed to the host
430
- * loop's own fixed timestep (`this.loop.fixedDt` — `core/game-loop.ts`).
431
- * This generalizes `render-control.ts`'s proven `VgaiRenderHarness.
432
- * simulateSubsteps` from the capture-only door (`?vgai-render=1`) to a
433
- * Game-level primitive every door can reach (the bridge's
434
- * `window.__vgai.runTicks`, the editor relay's `run-ticks` case →
435
- * `play.runTicks`) — `simulateSubsteps` itself is UNTOUCHED by this
436
- * addition (it may later delegate to this method; not this unit's job).
437
- *
438
- * Semantics:
439
- * - **Decoupled from wall clock and the accumulator.** `runTicks` drives
440
- * `runFrame` DIRECTLY — it never goes through `GameLoop`'s own
441
- * accumulator/spiral-of-death drop path, so `n` ticks always advance
442
- * `tick`/`simT` by exactly `n`/`n * fixedDt`, on any hardware, regardless
443
- * of how slow or fast the call actually took wall-clock-wise. Single-
444
- * threaded-burst note: because JS has one thread, this synchronous burst
445
- * can never interleave with a real rAF frame — but if the host's own
446
- * loop is still running (`loop.start()`), wall-clock time keeps accruing
447
- * in ITS accumulator while this call executes; the NEXT rAF frame after
448
- * the burst sees that gap and the loop's existing `maxAccumulator` clamp
449
- * absorbs it exactly as it would absorb any other slow-frame gap (up to
450
- * 8 substeps, additional time dropped) — `runTicks` does not need to
451
- * (and does not) touch the accumulator itself to make this safe.
452
- * - **`opts.render`** (default `'last'`): `'last'` skips the `preRender`/
453
- * `render` phases for ticks `0..n-2` and runs the full phase list
454
- * (including `preRender`/`render`) on the final tick only — the GGPO
455
- * tick-without-render pattern. `'all'` renders every tick. `'none'`
456
- * never renders, not even the last tick. `tick`/`simT`/
457
- * `stateBridge.bump()`/the debug event ring advance identically on
458
- * EVERY tick regardless of `render` — only the paint-affecting phases
459
- * are skipped, so state watchers (`useGameState`, debug state providers)
460
- * stay correct even when fast-forwarding with no visible output.
461
- * - **Refuses while paused.** Throws a structured `DebugError`
462
- * (`code: 'RUN_TICKS_PAUSED'`) if `Game.play.paused` is true —
463
- * `Game.play.step()` owns stepping the frozen set; `runTicks` is a
464
- * running-game primitive, not a paused-world stepper, and silently
465
- * no-op-ing or silently ignoring pause would violate the "byte-identical
466
- * across doors" contract this primitive exists to provide.
467
- * - **Does not bypass the input focus gate.** Every tick's `input` phase
468
- * runs through the SAME `InputManager` every other call to `runFrame`
469
- * does — a gated virtual actuation (page unfocused, Game tab inactive)
470
- * still reports `{delivered: false, reason}` exactly as it would under
471
- * normal play; `runTicks` has no special-cased "force focus" behavior.
472
- */
473
- runTicks(n: number, opts?: RunTicksOptions): void;
474
- }
475
- /**
476
- * Construct the (host-internal) Game shell. Callers: `createGameRuntime`
477
- * builds this BEFORE mounting its one adapter, then registers the default
478
- * threejs world once mount resolves (see `registerThreeWorld` in
479
- * `create-runtime.ts`).
480
- */
481
- export declare function createGame(opts: {
482
- loop: GameLoop;
483
- assets: AssetCache;
484
- /** D15 (T-D15.1) — the root seed `ctx.random` boots from, on every world
485
- * mounted onto this Game. Defaults to `DEFAULT_SEEDED_RANDOM_SEED` (a
486
- * fixed, non-wall-clock constant — `ctx.random` is always reproducible
487
- * on its own terms, whether or not the project's manifest DECLARES that
488
- * reproducibility as a contract). The manifest-aware boot path
489
- * (`mount-manifest.ts`'s `mountManifestWorlds`) is what actually resolves
490
- * `manifest.determinism.defaultSeed`/`?vgai-seed=`/explicit config and
491
- * passes the result here, BEFORE any world's `mount()`/`setup()` runs —
492
- * `createGameRuntime` always constructs the Game (this call) first (see
493
- * this function's own doc comment below). */
494
- seed?: number | undefined;
495
- }): GameInternal;
496
- //# sourceMappingURL=game.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/runtime/game.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,OAAO,KAAK,KAAK,IAAI,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEzE,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,SAAS;IACxB;4EACwE;IACxE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;;wBAGoB;IACpB,MAAM,IAAI,IAAI,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;2EAEuE;IACvE,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD;;;sBAGkB;IAClB,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;;;;iBAQa;IACb,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;kDAE8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B;+BAC2B;IAC3B,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;IACzB;;;qDAGiD;IACjD,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;IAC3B;;;;;;;0CAOsC;IACtC,SAAS,IAAI,WAAW,CAAC;IACzB;0BACsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAClD;;;;4BAIwB;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;iCAI6B;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IACzC;qDACiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5C;;8CAE0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAmI1E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,IAAI,eAAe,CAErF;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B;;;+BAG2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;IACxC;yCACqC;IACrC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;oEACgE;IAChE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC;6DACyD;IACzD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;6DACyD;IACzD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,cAAc,CAAC,EACtD,GAAG,EAAE,UAAU,CAAC,EAChB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,cAAc,CAAA;KAAE,GACjD,CAAC,EAAE,CAAC;CACR;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,qEAAqE;IACrE,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACnD;AAUD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;;;kDAS8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GAAG,YAAY,CA2kBf"}