@vgai/engine 0.2.0 → 0.3.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 (541) hide show
  1. package/README.md +3 -1
  2. package/dist/adapter/authoring.d.ts +404 -0
  3. package/dist/adapter/authoring.d.ts.map +1 -0
  4. package/dist/adapter/authoring.js +22 -0
  5. package/dist/adapter/colyseus-networking-adapter.d.ts +43 -0
  6. package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -0
  7. package/dist/adapter/colyseus-networking-adapter.js +38 -0
  8. package/dist/adapter/first-party-systems.d.ts +38 -0
  9. package/dist/adapter/first-party-systems.d.ts.map +1 -0
  10. package/dist/adapter/first-party-systems.js +77 -0
  11. package/dist/adapter/game-adapter.d.ts +133 -0
  12. package/dist/adapter/game-adapter.d.ts.map +1 -0
  13. package/dist/adapter/game-adapter.js +10 -0
  14. package/dist/adapter/host-context.d.ts +73 -0
  15. package/dist/adapter/host-context.d.ts.map +1 -0
  16. package/dist/adapter/host-context.js +16 -0
  17. package/dist/adapter/index.d.ts +22 -0
  18. package/dist/adapter/index.d.ts.map +1 -0
  19. package/dist/adapter/index.js +15 -0
  20. package/dist/adapter/ingest/game-contract.d.ts +53 -0
  21. package/dist/adapter/ingest/game-contract.d.ts.map +1 -0
  22. package/dist/adapter/ingest/game-contract.js +30 -0
  23. package/dist/adapter/ingest/overlay-applier.d.ts +118 -0
  24. package/dist/adapter/ingest/overlay-applier.d.ts.map +1 -0
  25. package/dist/adapter/ingest/overlay-applier.js +132 -0
  26. package/dist/adapter/ingest/overlay-apply.d.ts +60 -0
  27. package/dist/adapter/ingest/overlay-apply.d.ts.map +1 -0
  28. package/dist/adapter/ingest/overlay-apply.js +101 -0
  29. package/dist/adapter/ingest/overlay-file.d.ts +79 -0
  30. package/dist/adapter/ingest/overlay-file.d.ts.map +1 -0
  31. package/dist/adapter/ingest/overlay-file.js +66 -0
  32. package/dist/adapter/ingest/overlay-report.d.ts +113 -0
  33. package/dist/adapter/ingest/overlay-report.d.ts.map +1 -0
  34. package/dist/adapter/ingest/overlay-report.js +103 -0
  35. package/dist/adapter/ingest/scene-capture.d.ts +97 -0
  36. package/dist/adapter/ingest/scene-capture.d.ts.map +1 -0
  37. package/dist/adapter/ingest/scene-capture.js +248 -0
  38. package/dist/adapter/ingest/upstream-pin.d.ts +47 -0
  39. package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -0
  40. package/dist/adapter/ingest/upstream-pin.js +50 -0
  41. package/dist/adapter/loop-gate-report.d.ts +34 -0
  42. package/dist/adapter/loop-gate-report.d.ts.map +1 -0
  43. package/dist/adapter/loop-gate-report.js +37 -0
  44. package/dist/adapter/rapier-physics-adapter.d.ts +12 -0
  45. package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -0
  46. package/dist/adapter/rapier-physics-adapter.js +46 -0
  47. package/dist/adapter/system-adapter.d.ts +133 -0
  48. package/dist/adapter/system-adapter.d.ts.map +1 -0
  49. package/dist/adapter/system-adapter.js +13 -0
  50. package/dist/adapter/transform.d.ts +18 -0
  51. package/dist/adapter/transform.d.ts.map +1 -0
  52. package/dist/adapter/transform.js +1 -0
  53. package/dist/adapter/vgai-scene-game-adapter.d.ts +116 -0
  54. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +1 -0
  55. package/dist/adapter/vgai-scene-game-adapter.js +714 -0
  56. package/dist/adapter/world-kind.d.ts +30 -0
  57. package/dist/adapter/world-kind.d.ts.map +1 -0
  58. package/dist/adapter/world-kind.js +18 -0
  59. package/dist/ai/navigation.d.ts +64 -0
  60. package/dist/ai/navigation.d.ts.map +1 -0
  61. package/dist/ai/navigation.js +133 -0
  62. package/dist/animation/anim-graph-types.d.ts +25 -0
  63. package/dist/animation/anim-graph-types.d.ts.map +1 -0
  64. package/dist/animation/anim-graph-types.js +1 -0
  65. package/dist/animation/animation-clock.d.ts +213 -0
  66. package/dist/animation/animation-clock.d.ts.map +1 -0
  67. package/dist/animation/animation-clock.js +301 -0
  68. package/dist/animation/blend-node.d.ts +22 -0
  69. package/dist/animation/blend-node.d.ts.map +1 -0
  70. package/dist/animation/blend-node.js +97 -0
  71. package/dist/animation/camera-ownership.d.ts +250 -0
  72. package/dist/animation/camera-ownership.d.ts.map +1 -0
  73. package/dist/animation/camera-ownership.js +169 -0
  74. package/dist/animation/cinematic-cues.d.ts +200 -0
  75. package/dist/animation/cinematic-cues.d.ts.map +1 -0
  76. package/dist/animation/cinematic-cues.js +213 -0
  77. package/dist/animation/clip-map.d.ts +12 -0
  78. package/dist/animation/clip-map.d.ts.map +1 -0
  79. package/dist/animation/clip-map.js +37 -0
  80. package/dist/animation/gsap-registration.d.ts +119 -0
  81. package/dist/animation/gsap-registration.d.ts.map +1 -0
  82. package/dist/animation/gsap-registration.js +92 -0
  83. package/dist/animation/theatre-clock-binding.d.ts +89 -0
  84. package/dist/animation/theatre-clock-binding.d.ts.map +1 -0
  85. package/dist/animation/theatre-clock-binding.js +29 -0
  86. package/dist/animation/theatre-director.d.ts +242 -0
  87. package/dist/animation/theatre-director.d.ts.map +1 -0
  88. package/dist/animation/theatre-director.js +235 -0
  89. package/dist/animation/theatre-object-binding.d.ts +305 -0
  90. package/dist/animation/theatre-object-binding.d.ts.map +1 -0
  91. package/dist/animation/theatre-object-binding.js +351 -0
  92. package/dist/animation/xstate-animation-binding.d.ts +111 -0
  93. package/dist/animation/xstate-animation-binding.d.ts.map +1 -0
  94. package/dist/animation/xstate-animation-binding.js +307 -0
  95. package/dist/animation/xstate-animation-meta.d.ts +228 -0
  96. package/dist/animation/xstate-animation-meta.d.ts.map +1 -0
  97. package/dist/animation/xstate-animation-meta.js +221 -0
  98. package/dist/assets.d.ts +26 -0
  99. package/dist/assets.d.ts.map +1 -0
  100. package/dist/assets.js +55 -0
  101. package/dist/audio/index.d.ts +4 -0
  102. package/dist/audio/index.d.ts.map +1 -0
  103. package/dist/audio/index.js +24 -0
  104. package/dist/audio/tone-clock-binding.d.ts +75 -0
  105. package/dist/audio/tone-clock-binding.d.ts.map +1 -0
  106. package/dist/audio/tone-clock-binding.js +29 -0
  107. package/dist/audio/tone-context.d.ts +114 -0
  108. package/dist/audio/tone-context.d.ts.map +1 -0
  109. package/dist/audio/tone-context.js +39 -0
  110. package/dist/audio/tone-offline-render.d.ts +90 -0
  111. package/dist/audio/tone-offline-render.d.ts.map +1 -0
  112. package/dist/audio/tone-offline-render.js +56 -0
  113. package/dist/audio/wav-encode.d.ts +38 -0
  114. package/dist/audio/wav-encode.d.ts.map +1 -0
  115. package/dist/audio/wav-encode.js +97 -0
  116. package/dist/core/game-loop.d.ts +21 -0
  117. package/dist/core/game-loop.d.ts.map +1 -0
  118. package/dist/core/game-loop.js +130 -0
  119. package/dist/core/system-runner.d.ts +120 -0
  120. package/dist/core/system-runner.d.ts.map +1 -0
  121. package/dist/core/system-runner.js +286 -0
  122. package/dist/core/types.d.ts +58 -0
  123. package/dist/core/types.d.ts.map +1 -0
  124. package/dist/core/types.js +25 -0
  125. package/dist/data/data-asset.d.ts +101 -0
  126. package/dist/data/data-asset.d.ts.map +1 -0
  127. package/dist/data/data-asset.js +122 -0
  128. package/dist/data/data-check-core.d.ts +110 -0
  129. package/dist/data/data-check-core.d.ts.map +1 -0
  130. package/dist/data/data-check-core.js +178 -0
  131. package/dist/data/data-ref.d.ts +79 -0
  132. package/dist/data/data-ref.d.ts.map +1 -0
  133. package/dist/data/data-ref.js +130 -0
  134. package/dist/data/vite-plugin-data.d.ts +79 -0
  135. package/dist/data/vite-plugin-data.d.ts.map +1 -0
  136. package/dist/data/vite-plugin-data.js +217 -0
  137. package/dist/dev/console-bridge.d.ts +22 -0
  138. package/dist/dev/console-bridge.d.ts.map +1 -0
  139. package/dist/dev/console-bridge.js +71 -0
  140. package/dist/dev/debug-draw.d.ts +24 -0
  141. package/dist/dev/debug-draw.d.ts.map +1 -0
  142. package/dist/dev/debug-draw.js +73 -0
  143. package/dist/dev/logger.d.ts +30 -0
  144. package/dist/dev/logger.d.ts.map +1 -0
  145. package/dist/dev/logger.js +90 -0
  146. package/dist/ecs/component-manager.d.ts +189 -0
  147. package/dist/ecs/component-manager.d.ts.map +1 -0
  148. package/dist/ecs/component-manager.js +676 -0
  149. package/dist/ecs/game-component.d.ts +97 -0
  150. package/dist/ecs/game-component.d.ts.map +1 -0
  151. package/dist/ecs/game-component.js +80 -0
  152. package/dist/ecs/hmr-swap-report.d.ts +53 -0
  153. package/dist/ecs/hmr-swap-report.d.ts.map +1 -0
  154. package/dist/ecs/hmr-swap-report.js +55 -0
  155. package/dist/index.d.ts +37 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +30 -0
  158. package/dist/input/input-manager.d.ts +596 -0
  159. package/dist/input/input-manager.d.ts.map +1 -0
  160. package/dist/input/input-manager.js +1564 -0
  161. package/dist/input/input-types.d.ts +171 -0
  162. package/dist/input/input-types.d.ts.map +1 -0
  163. package/dist/input/input-types.js +1 -0
  164. package/dist/input/prompt-labels.d.ts +21 -0
  165. package/dist/input/prompt-labels.d.ts.map +1 -0
  166. package/dist/input/prompt-labels.js +121 -0
  167. package/dist/input/rebind-controller.d.ts +59 -0
  168. package/dist/input/rebind-controller.d.ts.map +1 -0
  169. package/dist/input/rebind-controller.js +85 -0
  170. package/dist/input/schema.d.ts +16 -0
  171. package/dist/input/schema.d.ts.map +1 -0
  172. package/dist/input/schema.js +228 -0
  173. package/dist/loader.d.ts +43 -0
  174. package/dist/loader.d.ts.map +1 -0
  175. package/dist/loader.js +59 -0
  176. package/dist/manifest/index.d.ts +5 -0
  177. package/dist/manifest/index.d.ts.map +1 -0
  178. package/dist/manifest/index.js +8 -0
  179. package/dist/manifest/load-file.d.ts +4 -0
  180. package/dist/manifest/load-file.d.ts.map +1 -0
  181. package/dist/manifest/load-file.js +14 -0
  182. package/dist/manifest/load.d.ts +117 -0
  183. package/dist/manifest/load.d.ts.map +1 -0
  184. package/dist/manifest/load.js +255 -0
  185. package/dist/manifest/schema.d.ts +173 -0
  186. package/dist/manifest/schema.d.ts.map +1 -0
  187. package/dist/manifest/schema.js +302 -0
  188. package/dist/physics/collision-system.d.ts +41 -0
  189. package/dist/physics/collision-system.d.ts.map +1 -0
  190. package/dist/physics/collision-system.js +64 -0
  191. package/dist/physics/physics-registry.d.ts +45 -0
  192. package/dist/physics/physics-registry.d.ts.map +1 -0
  193. package/dist/physics/physics-registry.js +65 -0
  194. package/dist/physics/transform-writer.d.ts +16 -0
  195. package/dist/physics/transform-writer.d.ts.map +1 -0
  196. package/dist/physics/transform-writer.js +38 -0
  197. package/dist/physics/trigger-dispatch.d.ts +24 -0
  198. package/dist/physics/trigger-dispatch.d.ts.map +1 -0
  199. package/dist/physics/trigger-dispatch.js +80 -0
  200. package/dist/react/game-state.d.ts +105 -0
  201. package/dist/react/game-state.d.ts.map +1 -0
  202. package/dist/react/game-state.js +144 -0
  203. package/dist/react/use-data.d.ts +60 -0
  204. package/dist/react/use-data.d.ts.map +1 -0
  205. package/dist/react/use-data.js +96 -0
  206. package/dist/react/use-selection.d.ts +75 -0
  207. package/dist/react/use-selection.d.ts.map +1 -0
  208. package/dist/react/use-selection.js +90 -0
  209. package/dist/render/auto-batcher.d.ts +34 -0
  210. package/dist/render/auto-batcher.d.ts.map +1 -0
  211. package/dist/render/auto-batcher.js +140 -0
  212. package/dist/render/render-batch-system.d.ts +33 -0
  213. package/dist/render/render-batch-system.d.ts.map +1 -0
  214. package/dist/render/render-batch-system.js +230 -0
  215. package/dist/render/render-features.d.ts +47 -0
  216. package/dist/render/render-features.d.ts.map +1 -0
  217. package/dist/render/render-features.js +105 -0
  218. package/dist/render/render-settings.d.ts +36 -0
  219. package/dist/render/render-settings.d.ts.map +1 -0
  220. package/dist/render/render-settings.js +51 -0
  221. package/dist/runtime/create-runtime.d.ts +280 -0
  222. package/dist/runtime/create-runtime.d.ts.map +1 -0
  223. package/dist/runtime/create-runtime.js +795 -0
  224. package/dist/runtime/frame-selector-cache.d.ts +41 -0
  225. package/dist/runtime/frame-selector-cache.d.ts.map +1 -0
  226. package/dist/runtime/frame-selector-cache.js +65 -0
  227. package/dist/runtime/game.d.ts +433 -0
  228. package/dist/runtime/game.d.ts.map +1 -0
  229. package/dist/runtime/game.js +569 -0
  230. package/dist/runtime/input-router.d.ts +78 -0
  231. package/dist/runtime/input-router.d.ts.map +1 -0
  232. package/dist/runtime/input-router.js +171 -0
  233. package/dist/runtime/mount-game.d.ts +129 -0
  234. package/dist/runtime/mount-game.d.ts.map +1 -0
  235. package/dist/runtime/mount-game.js +152 -0
  236. package/dist/runtime/mount-manifest.d.ts +119 -0
  237. package/dist/runtime/mount-manifest.d.ts.map +1 -0
  238. package/dist/runtime/mount-manifest.js +204 -0
  239. package/dist/runtime/render-audio-control.d.ts +110 -0
  240. package/dist/runtime/render-audio-control.d.ts.map +1 -0
  241. package/dist/runtime/render-audio-control.js +111 -0
  242. package/dist/runtime/render-control.d.ts +291 -0
  243. package/dist/runtime/render-control.d.ts.map +1 -0
  244. package/dist/runtime/render-control.js +264 -0
  245. package/dist/runtime/render-seed.d.ts +57 -0
  246. package/dist/runtime/render-seed.d.ts.map +1 -0
  247. package/dist/runtime/render-seed.js +74 -0
  248. package/dist/runtime/scene-ui-bridge.d.ts +69 -0
  249. package/dist/runtime/scene-ui-bridge.d.ts.map +1 -0
  250. package/dist/runtime/scene-ui-bridge.js +23 -0
  251. package/dist/runtime/scene-ui-data.d.ts +13 -0
  252. package/dist/runtime/scene-ui-data.d.ts.map +1 -0
  253. package/dist/runtime/scene-ui-data.js +92 -0
  254. package/dist/runtime/state-bridge.d.ts +47 -0
  255. package/dist/runtime/state-bridge.d.ts.map +1 -0
  256. package/dist/runtime/state-bridge.js +53 -0
  257. package/dist/runtime/types.d.ts +179 -0
  258. package/dist/runtime/types.d.ts.map +1 -0
  259. package/dist/runtime/types.js +1 -0
  260. package/dist/scene/asset-loaders.d.ts +79 -0
  261. package/dist/scene/asset-loaders.d.ts.map +1 -0
  262. package/dist/scene/asset-loaders.js +141 -0
  263. package/dist/scene/asset-paths.d.ts +11 -0
  264. package/dist/scene/asset-paths.d.ts.map +1 -0
  265. package/dist/scene/asset-paths.js +108 -0
  266. package/dist/scene/asset-ref-check.d.ts +88 -0
  267. package/dist/scene/asset-ref-check.d.ts.map +1 -0
  268. package/dist/scene/asset-ref-check.js +214 -0
  269. package/dist/scene/asset-registry.d.ts +30 -0
  270. package/dist/scene/asset-registry.d.ts.map +1 -0
  271. package/dist/scene/asset-registry.js +50 -0
  272. package/dist/scene/collider-dimensions.d.ts +63 -0
  273. package/dist/scene/collider-dimensions.d.ts.map +1 -0
  274. package/dist/scene/collider-dimensions.js +98 -0
  275. package/dist/scene/component-registry.d.ts +17 -0
  276. package/dist/scene/component-registry.d.ts.map +1 -0
  277. package/dist/scene/component-registry.js +28 -0
  278. package/dist/scene/defaults.d.ts +252 -0
  279. package/dist/scene/defaults.d.ts.map +1 -0
  280. package/dist/scene/defaults.js +151 -0
  281. package/dist/scene/geometries/index.d.ts +8 -0
  282. package/dist/scene/geometries/index.d.ts.map +1 -0
  283. package/dist/scene/geometries/index.js +7 -0
  284. package/dist/scene/geometries/terrain.d.ts +2 -0
  285. package/dist/scene/geometries/terrain.d.ts.map +1 -0
  286. package/dist/scene/geometries/terrain.js +37 -0
  287. package/dist/scene/geometry-registry.d.ts +24 -0
  288. package/dist/scene/geometry-registry.d.ts.map +1 -0
  289. package/dist/scene/geometry-registry.js +20 -0
  290. package/dist/scene/instance-registry.d.ts +36 -0
  291. package/dist/scene/instance-registry.d.ts.map +1 -0
  292. package/dist/scene/instance-registry.js +55 -0
  293. package/dist/scene/instancers/grid.d.ts +2 -0
  294. package/dist/scene/instancers/grid.d.ts.map +1 -0
  295. package/dist/scene/instancers/grid.js +36 -0
  296. package/dist/scene/instancers/index.d.ts +8 -0
  297. package/dist/scene/instancers/index.d.ts.map +1 -0
  298. package/dist/scene/instancers/index.js +7 -0
  299. package/dist/scene/light-camera-factory.d.ts +23 -0
  300. package/dist/scene/light-camera-factory.d.ts.map +1 -0
  301. package/dist/scene/light-camera-factory.js +68 -0
  302. package/dist/scene/material-factory.d.ts +17 -0
  303. package/dist/scene/material-factory.d.ts.map +1 -0
  304. package/dist/scene/material-factory.js +197 -0
  305. package/dist/scene/material-registry.d.ts +40 -0
  306. package/dist/scene/material-registry.d.ts.map +1 -0
  307. package/dist/scene/material-registry.js +44 -0
  308. package/dist/scene/materials/index.d.ts +8 -0
  309. package/dist/scene/materials/index.d.ts.map +1 -0
  310. package/dist/scene/materials/index.js +7 -0
  311. package/dist/scene/materials/water.d.ts +2 -0
  312. package/dist/scene/materials/water.d.ts.map +1 -0
  313. package/dist/scene/materials/water.js +54 -0
  314. package/dist/scene/parse.d.ts +23 -0
  315. package/dist/scene/parse.d.ts.map +1 -0
  316. package/dist/scene/parse.js +179 -0
  317. package/dist/scene/particles-factory.d.ts +33 -0
  318. package/dist/scene/particles-factory.d.ts.map +1 -0
  319. package/dist/scene/particles-factory.js +282 -0
  320. package/dist/scene/scene-apply.d.ts +109 -0
  321. package/dist/scene/scene-apply.d.ts.map +1 -0
  322. package/dist/scene/scene-apply.js +326 -0
  323. package/dist/scene/scene-diff-schema.d.ts +285 -0
  324. package/dist/scene/scene-diff-schema.d.ts.map +1 -0
  325. package/dist/scene/scene-diff-schema.js +92 -0
  326. package/dist/scene/scene-diff-types.d.ts +40 -0
  327. package/dist/scene/scene-diff-types.d.ts.map +1 -0
  328. package/dist/scene/scene-diff-types.js +14 -0
  329. package/dist/scene/scene-loader.d.ts +177 -0
  330. package/dist/scene/scene-loader.d.ts.map +1 -0
  331. package/dist/scene/scene-loader.js +1213 -0
  332. package/dist/scene/scene-query.d.ts +11 -0
  333. package/dist/scene/scene-query.d.ts.map +1 -0
  334. package/dist/scene/scene-query.js +63 -0
  335. package/dist/scene/scene-types.d.ts +10 -0
  336. package/dist/scene/scene-types.d.ts.map +1 -0
  337. package/dist/scene/scene-types.js +8 -0
  338. package/dist/scene/scene-version.d.ts +26 -0
  339. package/dist/scene/scene-version.d.ts.map +1 -0
  340. package/dist/scene/scene-version.js +34 -0
  341. package/dist/scene/schema/animation.d.ts +8 -0
  342. package/dist/scene/schema/animation.d.ts.map +1 -0
  343. package/dist/scene/schema/animation.js +42 -0
  344. package/dist/scene/schema/audio.d.ts +13 -0
  345. package/dist/scene/schema/audio.d.ts.map +1 -0
  346. package/dist/scene/schema/audio.js +22 -0
  347. package/dist/scene/schema/camera.d.ts +28 -0
  348. package/dist/scene/schema/camera.d.ts.map +1 -0
  349. package/dist/scene/schema/camera.js +17 -0
  350. package/dist/scene/schema/collider.d.ts +40 -0
  351. package/dist/scene/schema/collider.d.ts.map +1 -0
  352. package/dist/scene/schema/collider.js +55 -0
  353. package/dist/scene/schema/entity-ref.d.ts +31 -0
  354. package/dist/scene/schema/entity-ref.d.ts.map +1 -0
  355. package/dist/scene/schema/entity-ref.js +61 -0
  356. package/dist/scene/schema/entity.d.ts +1036 -0
  357. package/dist/scene/schema/entity.d.ts.map +1 -0
  358. package/dist/scene/schema/entity.js +153 -0
  359. package/dist/scene/schema/environment.d.ts +425 -0
  360. package/dist/scene/schema/environment.d.ts.map +1 -0
  361. package/dist/scene/schema/environment.js +357 -0
  362. package/dist/scene/schema/index.d.ts +39 -0
  363. package/dist/scene/schema/index.d.ts.map +1 -0
  364. package/dist/scene/schema/index.js +20 -0
  365. package/dist/scene/schema/instances.d.ts +14 -0
  366. package/dist/scene/schema/instances.d.ts.map +1 -0
  367. package/dist/scene/schema/instances.js +28 -0
  368. package/dist/scene/schema/joint.d.ts +23 -0
  369. package/dist/scene/schema/joint.d.ts.map +1 -0
  370. package/dist/scene/schema/joint.js +23 -0
  371. package/dist/scene/schema/light.d.ts +38 -0
  372. package/dist/scene/schema/light.d.ts.map +1 -0
  373. package/dist/scene/schema/light.js +26 -0
  374. package/dist/scene/schema/material.d.ts +199 -0
  375. package/dist/scene/schema/material.d.ts.map +1 -0
  376. package/dist/scene/schema/material.js +99 -0
  377. package/dist/scene/schema/mesh.d.ts +48 -0
  378. package/dist/scene/schema/mesh.d.ts.map +1 -0
  379. package/dist/scene/schema/mesh.js +82 -0
  380. package/dist/scene/schema/particles.d.ts +2178 -0
  381. package/dist/scene/schema/particles.d.ts.map +1 -0
  382. package/dist/scene/schema/particles.js +321 -0
  383. package/dist/scene/schema/physics.d.ts +56 -0
  384. package/dist/scene/schema/physics.d.ts.map +1 -0
  385. package/dist/scene/schema/physics.js +37 -0
  386. package/dist/scene/schema/scene-file.d.ts +304 -0
  387. package/dist/scene/schema/scene-file.d.ts.map +1 -0
  388. package/dist/scene/schema/scene-file.js +262 -0
  389. package/dist/scene/schema/shadow.d.ts +28 -0
  390. package/dist/scene/schema/shadow.d.ts.map +1 -0
  391. package/dist/scene/schema/shadow.js +20 -0
  392. package/dist/scene/schema/spline.d.ts +25 -0
  393. package/dist/scene/schema/spline.d.ts.map +1 -0
  394. package/dist/scene/schema/spline.js +15 -0
  395. package/dist/scene/schema/tuples.d.ts +12 -0
  396. package/dist/scene/schema/tuples.d.ts.map +1 -0
  397. package/dist/scene/schema/tuples.js +14 -0
  398. package/dist/scene/schema/ui.d.ts +880 -0
  399. package/dist/scene/schema/ui.d.ts.map +1 -0
  400. package/dist/scene/schema/ui.js +506 -0
  401. package/dist/scene/user-data.d.ts +171 -0
  402. package/dist/scene/user-data.d.ts.map +1 -0
  403. package/dist/scene/user-data.js +137 -0
  404. package/dist/setup/setup-audio.d.ts +20 -0
  405. package/dist/setup/setup-audio.d.ts.map +1 -0
  406. package/dist/setup/setup-audio.js +41 -0
  407. package/dist/setup/setup-particles.d.ts +17 -0
  408. package/dist/setup/setup-particles.d.ts.map +1 -0
  409. package/dist/setup/setup-particles.js +16 -0
  410. package/dist/setup/setup-physics.d.ts +25 -0
  411. package/dist/setup/setup-physics.d.ts.map +1 -0
  412. package/dist/setup/setup-physics.js +51 -0
  413. package/dist/setup/setup-renderer.d.ts +69 -0
  414. package/dist/setup/setup-renderer.d.ts.map +1 -0
  415. package/dist/setup/setup-renderer.js +363 -0
  416. package/dist/tools/define-tool.d.ts +105 -0
  417. package/dist/tools/define-tool.d.ts.map +1 -0
  418. package/dist/tools/define-tool.js +82 -0
  419. package/dist/world2d/authoring-2d.d.ts +76 -0
  420. package/dist/world2d/authoring-2d.d.ts.map +1 -0
  421. package/dist/world2d/authoring-2d.js +176 -0
  422. package/dist/world2d/capture-to-scene2d.d.ts +5 -0
  423. package/dist/world2d/capture-to-scene2d.d.ts.map +1 -0
  424. package/dist/world2d/capture-to-scene2d.js +49 -0
  425. package/dist/world2d/collision-2d.d.ts +52 -0
  426. package/dist/world2d/collision-2d.d.ts.map +1 -0
  427. package/dist/world2d/collision-2d.js +70 -0
  428. package/dist/world2d/components-2d.d.ts +47 -0
  429. package/dist/world2d/components-2d.d.ts.map +1 -0
  430. package/dist/world2d/components-2d.js +77 -0
  431. package/dist/world2d/index.d.ts +34 -0
  432. package/dist/world2d/index.d.ts.map +1 -0
  433. package/dist/world2d/index.js +32 -0
  434. package/dist/world2d/ingest-iframe-2d.d.ts +82 -0
  435. package/dist/world2d/ingest-iframe-2d.d.ts.map +1 -0
  436. package/dist/world2d/ingest-iframe-2d.js +166 -0
  437. package/dist/world2d/ingest2d.d.ts +97 -0
  438. package/dist/world2d/ingest2d.d.ts.map +1 -0
  439. package/dist/world2d/ingest2d.js +40 -0
  440. package/dist/world2d/physics2d-registry.d.ts +24 -0
  441. package/dist/world2d/physics2d-registry.d.ts.map +1 -0
  442. package/dist/world2d/physics2d-registry.js +38 -0
  443. package/dist/world2d/pixi-game-adapter.d.ts +107 -0
  444. package/dist/world2d/pixi-game-adapter.d.ts.map +1 -0
  445. package/dist/world2d/pixi-game-adapter.js +211 -0
  446. package/dist/world2d/pixi-surface.d.ts +39 -0
  447. package/dist/world2d/pixi-surface.d.ts.map +1 -0
  448. package/dist/world2d/pixi-surface.js +47 -0
  449. package/dist/world2d/scene-capture-2d.d.ts +43 -0
  450. package/dist/world2d/scene-capture-2d.d.ts.map +1 -0
  451. package/dist/world2d/scene-capture-2d.js +92 -0
  452. package/dist/world2d/scene2d-loader.d.ts +27 -0
  453. package/dist/world2d/scene2d-loader.d.ts.map +1 -0
  454. package/dist/world2d/scene2d-loader.js +274 -0
  455. package/dist/world2d/schema/entity2d.d.ts +102 -0
  456. package/dist/world2d/schema/entity2d.d.ts.map +1 -0
  457. package/dist/world2d/schema/entity2d.js +119 -0
  458. package/dist/world2d/schema/physics2d.d.ts +46 -0
  459. package/dist/world2d/schema/physics2d.d.ts.map +1 -0
  460. package/dist/world2d/schema/physics2d.js +45 -0
  461. package/dist/world2d/schema/sprite.d.ts +42 -0
  462. package/dist/world2d/schema/sprite.d.ts.map +1 -0
  463. package/dist/world2d/schema/sprite.js +63 -0
  464. package/dist/world2d/schema/tilemap.d.ts +15 -0
  465. package/dist/world2d/schema/tilemap.d.ts.map +1 -0
  466. package/dist/world2d/schema/tilemap.js +19 -0
  467. package/dist/world2d/schema/tuples2d.d.ts +20 -0
  468. package/dist/world2d/schema/tuples2d.d.ts.map +1 -0
  469. package/dist/world2d/schema/tuples2d.js +19 -0
  470. package/dist/world2d/system-adapters-2d.d.ts +16 -0
  471. package/dist/world2d/system-adapters-2d.d.ts.map +1 -0
  472. package/dist/world2d/system-adapters-2d.js +37 -0
  473. package/dist/world2d/transform-writer-2d.d.ts +16 -0
  474. package/dist/world2d/transform-writer-2d.d.ts.map +1 -0
  475. package/dist/world2d/transform-writer-2d.js +22 -0
  476. package/dist/world2d/types.d.ts +53 -0
  477. package/dist/world2d/types.d.ts.map +1 -0
  478. package/dist/world2d/types.js +1 -0
  479. package/package.json +18 -4
  480. package/src/adapter/authoring.ts +10 -0
  481. package/src/adapter/first-party-systems.ts +23 -34
  482. package/src/adapter/index.ts +1 -3
  483. package/src/adapter/system-adapter.ts +15 -22
  484. package/src/adapter/vgai-scene-game-adapter.ts +5 -14
  485. package/src/animation/anim-graph-types.ts +12 -43
  486. package/src/animation/animation-clock.ts +479 -0
  487. package/src/animation/camera-ownership.ts +467 -0
  488. package/src/animation/cinematic-cues.ts +451 -0
  489. package/src/animation/clip-map.ts +41 -0
  490. package/src/animation/gsap-registration.ts +184 -0
  491. package/src/animation/theatre-clock-binding.ts +111 -0
  492. package/src/animation/theatre-director.ts +347 -0
  493. package/src/animation/theatre-object-binding.ts +661 -0
  494. package/src/animation/xstate-animation-binding.ts +398 -0
  495. package/src/animation/xstate-animation-meta.ts +282 -0
  496. package/src/audio/index.ts +39 -7
  497. package/src/audio/tone-clock-binding.ts +98 -0
  498. package/src/audio/tone-context.ts +129 -0
  499. package/src/audio/tone-offline-render.ts +167 -0
  500. package/src/audio/wav-encode.ts +119 -0
  501. package/src/core/game-loop.ts +17 -0
  502. package/src/core/types.ts +13 -0
  503. package/src/data/data-asset.ts +167 -0
  504. package/src/data/data-check-core.ts +242 -0
  505. package/src/data/data-ref.ts +145 -0
  506. package/src/data/vite-plugin-data.ts +290 -0
  507. package/src/index.ts +48 -0
  508. package/src/input/input-manager.ts +1206 -32
  509. package/src/input/input-types.ts +155 -3
  510. package/src/input/prompt-labels.ts +122 -0
  511. package/src/input/rebind-controller.ts +105 -0
  512. package/src/input/schema.ts +206 -52
  513. package/src/react/use-data.ts +114 -0
  514. package/src/react/use-selection.tsx +135 -0
  515. package/src/runtime/create-runtime.ts +30 -9
  516. package/src/runtime/render-audio-control.ts +168 -0
  517. package/src/runtime/render-control.ts +522 -0
  518. package/src/runtime/render-seed.ts +79 -0
  519. package/src/runtime/types.ts +0 -5
  520. package/src/scene/asset-loaders.ts +10 -36
  521. package/src/scene/asset-paths.ts +0 -2
  522. package/src/scene/asset-ref-check.ts +248 -0
  523. package/src/scene/parse.ts +133 -0
  524. package/src/scene/scene-loader.ts +81 -96
  525. package/src/scene/schema/animation.ts +30 -79
  526. package/src/scene/schema/entity.ts +20 -0
  527. package/src/scene/schema/index.ts +2 -12
  528. package/src/scene/user-data.ts +8 -9
  529. package/src/setup/setup-renderer.ts +9 -2
  530. package/src/tools/define-tool.ts +152 -0
  531. package/src/animation/anim-graph.ts +0 -406
  532. package/src/animation/anim-system.ts +0 -28
  533. package/src/animation/property-track.ts +0 -178
  534. package/src/animation/schema.ts +0 -204
  535. package/src/audio/ambient.ts +0 -300
  536. package/src/audio/impacts.ts +0 -212
  537. package/src/audio/movement.ts +0 -140
  538. package/src/audio/musical.ts +0 -200
  539. package/src/audio/ui-sounds.ts +0 -171
  540. package/src/audio/vehicle.ts +0 -235
  541. package/src/audio/weapons.ts +0 -152
@@ -0,0 +1,290 @@
1
+ /**
2
+ * `vgaiDataCheck` — build-path validation for data assets and project tools
3
+ * (docs/DATA-TOOLS-DESIGN.md §6.7, the enforcement half of W5). A Vite plugin
4
+ * for the PROJECT's own `vite.config.ts` (the template wires it; the editor
5
+ * dev server boots Vite from the ENGINE's config and never runs this — its
6
+ * surface is covered by `vgai doctor` instead). Build-only (`apply: 'build'`):
7
+ * in dev, `defineData`'s parse-on-load already fails loud in the console.
8
+ *
9
+ * Three checks, all failing the build loud:
10
+ *
11
+ * 1. **Schema integrity** (`buildStart`): every registered asset's
12
+ * `.data.json` is read fresh from disk and validated through
13
+ * {@link parseDataJson} — the EXACT parse `defineData` runs at load (§9.1:
14
+ * an emitted-JSON-Schema validator here could disagree with runtime; the
15
+ * Zod schema itself never can). The schemas arrive EXECUTABLE because
16
+ * `vite.config.ts` statically imports the project's data-asset registry
17
+ * (`src/data/assets.ts` in the template) — Vite's config loader bundles
18
+ * config-relative TS imports, which is what makes this the one build-side
19
+ * place project Zod schemas can run.
20
+ * 2. **Ref integrity** (`buildStart`): every `file#key(.field)*` string in
21
+ * every `src/data/*.data.json` (registered or not) must resolve — shared
22
+ * definition with `vgai doctor` via {@link findDanglingDataRefs}, so the
23
+ * two surfaces can never disagree about what "dangling" means. A second,
24
+ * narrower ref check runs alongside it for REGISTERED assets only: any
25
+ * field declared with `dataRef(target)` (`./data-ref.ts`) whose `target`
26
+ * names no asset currently on disk fails loud too (§9.4's "renamed the
27
+ * target file" hole, closed for declared refs — see
28
+ * `collectDeclaredRefFields`/`findMissingRefTargets` in `data-check-core.ts`).
29
+ * 3. **Tools never ship** (`generateBundle`): no emitted chunk may contain a
30
+ * module from `src/tools/` or a `*.tool.*` file (§4: tester serves and
31
+ * standalone builds strip tools entirely; W4 made this true by
32
+ * construction — nothing imports tools — and this check PINS it against
33
+ * the day some game module imports a tool "just for a helper").
34
+ *
35
+ * Unregistered data files (a `.data.json` with no entry in the passed
36
+ * `assets` list) are a WARNING, not an error: they still get ref-integrity
37
+ * and runtime parse-on-load, but no build-time schema check — the warning
38
+ * names the registry file to fix.
39
+ */
40
+
41
+ import { readdirSync, readFileSync, statSync } from 'node:fs';
42
+ import { join, relative } from 'node:path';
43
+ import type { Plugin } from 'vite';
44
+ import type { z } from 'zod';
45
+ import { parseDataJson, toDataJsonSchema } from './data-asset';
46
+ import {
47
+ collectDeclaredRefFields,
48
+ findDanglingDataRefs,
49
+ findMissingRefTargets,
50
+ } from './data-check-core';
51
+
52
+ /** One registered data asset: its executable Zod schema + the project-relative path of its `.data.json`. */
53
+ export interface DataCheckAsset {
54
+ readonly schema: z.ZodType;
55
+ /** e.g. `'src/data/tuning.data.json'` — read fresh from disk at buildStart. */
56
+ readonly sourcePath: string;
57
+ }
58
+
59
+ export interface VgaiDataCheckOptions {
60
+ readonly assets: readonly DataCheckAsset[];
61
+ /** Project root the `sourcePath`s resolve against. Default: `process.cwd()` (vite build's cwd). */
62
+ readonly root?: string;
63
+ }
64
+
65
+ /** Recursively collect `*.data.json` under `dir` (absent dir → empty — a project with no data assets builds fine). */
66
+ function findDataFiles(dir: string): string[] {
67
+ let entries: string[];
68
+ try {
69
+ entries = readdirSync(dir);
70
+ } catch {
71
+ return [];
72
+ }
73
+ const out: string[] = [];
74
+ for (const entry of entries) {
75
+ const full = join(dir, entry);
76
+ if (statSync(full).isDirectory()) out.push(...findDataFiles(full));
77
+ else if (entry.endsWith('.data.json')) out.push(full);
78
+ }
79
+ return out;
80
+ }
81
+
82
+ /** `src/data/tuning.data.json` → `tuning` (normalizing either slash direction). */
83
+ function assetStem(sourcePath: string): string {
84
+ const rel = sourcePath.split('\\').join('/');
85
+ return (
86
+ rel
87
+ .split('/')
88
+ .pop()
89
+ ?.replace(/\.data\.json$/, '') ?? rel
90
+ );
91
+ }
92
+
93
+ /**
94
+ * Parse every data file in the project once — the registered subset gets
95
+ * schema validation, the whole set feeds ref integrity. Unparseable files
96
+ * become errors; unregistered files become warnings naming the registry.
97
+ *
98
+ * DUPLICATE-STEM GUARD: `findDataFiles` walks `src/data/` recursively, so two
99
+ * files in different subdirectories can share a stem (e.g.
100
+ * `src/data/enemies.data.json` and `src/data/legacy/enemies.data.json`) — the
101
+ * exact identity `file#key` refs AND the registry's `sourcePath` lookup both
102
+ * address by stem alone (§2.2). Without this guard `parsedByStem.set` would
103
+ * silently last-wins the collision, and check 1 below could validate a
104
+ * REGISTERED asset's schema against a totally unrelated file's JSON. Detected
105
+ * here (one error per colliding path, naming every path) and excluded from
106
+ * `parsedByStem` entirely — any resolution against a duplicate stem would be
107
+ * an arbitrary, possibly-wrong pick, so neither check 1 nor check 2 (ref
108
+ * integrity) resolves anything through it once it's flagged.
109
+ */
110
+ interface ParsedDataFiles {
111
+ parsedByStem: Map<string, unknown>;
112
+ /** Stems the duplicate-stem guard already flagged — check 1 skips its own
113
+ * redundant "not found on disk" for these (the duplicate-stem error
114
+ * already explains why the stem has no single resolvable payload). */
115
+ ambiguousStems: Set<string>;
116
+ }
117
+
118
+ function parseAllDataFiles(
119
+ root: string,
120
+ registered: ReadonlySet<string>,
121
+ errors: string[],
122
+ warnings: string[],
123
+ ): ParsedDataFiles {
124
+ const parsedByStem = new Map<string, unknown>();
125
+ const pathsByStem = new Map<string, string[]>();
126
+ for (const abs of findDataFiles(join(root, 'src', 'data'))) {
127
+ const rel = relative(root, abs).split('\\').join('/');
128
+ const stem = assetStem(rel);
129
+ const paths = pathsByStem.get(stem);
130
+ if (paths) paths.push(rel);
131
+ else pathsByStem.set(stem, [rel]);
132
+
133
+ try {
134
+ parsedByStem.set(stem, JSON.parse(readFileSync(abs, 'utf-8')));
135
+ } catch (err) {
136
+ errors.push(
137
+ `"${rel}" is not valid JSON: ${err instanceof Error ? err.message : String(err)}`,
138
+ );
139
+ continue;
140
+ }
141
+ if (!registered.has(rel)) {
142
+ warnings.push(
143
+ `"${rel}" is not registered in the data-asset registry (src/data/assets.ts), so it gets ` +
144
+ 'no build-time schema check (runtime parse-on-load still applies). Register it there — ' +
145
+ 'the template ships the worked example.',
146
+ );
147
+ }
148
+ }
149
+
150
+ const ambiguousStems = new Set<string>();
151
+ for (const [stem, paths] of pathsByStem) {
152
+ if (paths.length < 2) continue;
153
+ ambiguousStems.add(stem);
154
+ errors.push(
155
+ `asset stem "${stem}" is claimed by ${paths.length} files (${paths.join(', ')}) — ` +
156
+ '"file#key" refs and the data-asset registry address a file by its stem alone (§2.2), so ' +
157
+ 'this is an unresolvable identity collision. Rename one — asset stems must be unique ' +
158
+ 'across the whole project, not just per directory.',
159
+ );
160
+ parsedByStem.delete(stem); // arbitrary otherwise — neither check below may resolve through it
161
+ }
162
+
163
+ return { parsedByStem, ambiguousStems };
164
+ }
165
+
166
+ /**
167
+ * The fs half of checks 1 + 2, extracted from the plugin hook so it is
168
+ * directly unit-testable against a fixture folder (no rollup context needed).
169
+ */
170
+ export function collectDataCheckProblems(options: VgaiDataCheckOptions): {
171
+ errors: string[];
172
+ warnings: string[];
173
+ } {
174
+ const root = options.root ?? process.cwd();
175
+ const errors: string[] = [];
176
+ const warnings: string[] = [];
177
+ const registered = new Set(options.assets.map((a) => a.sourcePath.split('\\').join('/')));
178
+ const { parsedByStem, ambiguousStems } = parseAllDataFiles(root, registered, errors, warnings);
179
+
180
+ // Check 1 — registered assets validate through the exact runtime parse.
181
+ for (const asset of options.assets) {
182
+ const rel = asset.sourcePath.split('\\').join('/');
183
+ if (!parsedByStem.has(assetStem(rel))) {
184
+ // An AMBIGUOUS stem already has its own duplicate-stem error above,
185
+ // which fully explains why there's no single payload to validate
186
+ // against — a second "not found on disk" here would just be
187
+ // confusing noise about a file that plainly IS on disk.
188
+ if (!ambiguousStems.has(assetStem(rel))) {
189
+ errors.push(
190
+ `registered data asset "${rel}" was not found on disk — fix the path in the registry ` +
191
+ '(src/data/assets.ts) or restore the file.',
192
+ );
193
+ }
194
+ continue;
195
+ }
196
+ try {
197
+ parseDataJson(asset.schema, parsedByStem.get(assetStem(rel)), rel);
198
+ } catch (err) {
199
+ errors.push(err instanceof Error ? err.message : String(err));
200
+ }
201
+ }
202
+
203
+ // Check 2 — no dangling refs anywhere.
204
+ for (const dangling of findDanglingDataRefs(parsedByStem)) {
205
+ errors.push(
206
+ `dangling data ref in "src/data/${dangling.inAsset}.data.json" at ${dangling.atPath}: ` +
207
+ `"${dangling.ref}" — "${dangling.missingSegment}" does not exist in ` +
208
+ `src/data/${dangling.targetAsset}.data.json. Fix the key or remove the ref ` +
209
+ '(refs are "file#key" strings — docs/DATA-TOOLS-DESIGN.md §2.2).',
210
+ );
211
+ }
212
+
213
+ // Check 2b — every declared `dataRef(target)` field (registered assets
214
+ // only, same set check 1 already validates) must name a target that's
215
+ // actually on disk — the §9.4 fix: this fires even if NO current value
216
+ // happens to look like a ref, unlike check 2 above (see
217
+ // `data-check-core.ts`'s module doc).
218
+ const assetNames = new Set(parsedByStem.keys());
219
+ for (const asset of options.assets) {
220
+ const rel = asset.sourcePath.split('\\').join('/');
221
+ const declared = collectDeclaredRefFields(toDataJsonSchema(asset.schema));
222
+ for (const missing of findMissingRefTargets(declared, assetNames)) {
223
+ errors.push(
224
+ `"${rel}" declares field "${missing.fieldPath}" as dataRef('${missing.targetStem}'), but ` +
225
+ `no "src/data/${missing.targetStem}.data.json" exists. Restore/rename the target file, ` +
226
+ `or update the dataRef('${missing.targetStem}') call in the schema.`,
227
+ );
228
+ }
229
+ }
230
+
231
+ return { errors, warnings };
232
+ }
233
+
234
+ /** True iff a bundled module id is tool code that must never ship (§4). Pure, unit-tested. */
235
+ export function isToolModuleId(id: string): boolean {
236
+ const normalized = id.split('\\').join('/');
237
+ return /\/src\/tools\//.test(normalized) || /\.tool\.[tj]sx?(\?|$)/.test(normalized);
238
+ }
239
+
240
+ /**
241
+ * Build-path validation plugin — see the module doc. Wire it in the project's
242
+ * `vite.config.ts`, passing the data-asset registry:
243
+ *
244
+ * ```ts
245
+ * import { vgaiDataCheck } from '@vgai/engine/data/vite-plugin-data';
246
+ * import { dataAssets } from './src/data/assets';
247
+ * export default defineConfig({
248
+ * plugins: [vgaiDataCheck({
249
+ * root: __dirname,
250
+ * assets: dataAssets.map((a) => ({ schema: a.schema, sourcePath: `src/data/${a.name}.data.json` })),
251
+ * })],
252
+ * });
253
+ * ```
254
+ */
255
+ export function vgaiDataCheck(options: VgaiDataCheckOptions): Plugin {
256
+ return {
257
+ name: 'vgai:data-check',
258
+ apply: 'build',
259
+ buildStart() {
260
+ const { errors, warnings } = collectDataCheckProblems(options);
261
+ for (const warning of warnings) this.warn(warning);
262
+ if (errors.length > 0) {
263
+ // ONE error carrying every problem — fail loud with the full picture,
264
+ // not a fix-one-rebuild-see-the-next loop.
265
+ this.error(
266
+ `data-asset validation failed (${errors.length} problem${errors.length === 1 ? '' : 's'} ` +
267
+ `— docs/DATA-TOOLS-DESIGN.md §6.7):\n${errors.map((e) => ` - ${e}`).join('\n')}`,
268
+ );
269
+ }
270
+ },
271
+ generateBundle(_outputOptions, bundle) {
272
+ const leaked = new Set<string>();
273
+ for (const output of Object.values(bundle)) {
274
+ if (output.type !== 'chunk') continue;
275
+ for (const id of Object.keys(output.modules)) {
276
+ if (isToolModuleId(id)) leaked.add(id.split('\\').join('/'));
277
+ }
278
+ }
279
+ if (leaked.size > 0) {
280
+ this.error(
281
+ 'project tool code reached the game build — tools are editor-only and must never ship ' +
282
+ 'to players (docs/DATA-TOOLS-DESIGN.md §4). Remove every game-code import of these ' +
283
+ `modules (tools may import game code, never the reverse):\n${[...leaked]
284
+ .map((id) => ` - ${id}`)
285
+ .join('\n')}`,
286
+ );
287
+ }
288
+ },
289
+ };
290
+ }
package/src/index.ts ADDED
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `@vgai/engine`'s package `"."` entry — what `import '@vgai/engine'`
3
+ * resolves to.
4
+ *
5
+ * This is a SMALL, CURATED barrel, not a re-export-everything convenience
6
+ * import. The engine's own doctrine (CLAUDE.md: "the engine code in
7
+ * `packages/engine/src/` is meant to be read and edited directly — it is
8
+ * not a black-box library") means subpath imports
9
+ * (`@vgai/engine/<path>`, matching this package's `"./*"` exports entry)
10
+ * remain the primary way to reach engine internals — reach for a subpath
11
+ * first. This barrel exists only so the package's bare-name entry point is
12
+ * HONEST (resolves to something real and useful) instead of dangling; it
13
+ * covers just the handful of symbols a game/consumer needs to author a
14
+ * first-party `setup()` and mount it, plus the scene/manifest file
15
+ * entry points. Keep it small when extending it — prefer a new subpath
16
+ * export over growing this file into a firehose.
17
+ *
18
+ * Groups (import order below is alphabetical-by-specifier, per the repo's
19
+ * biome `organizeImports` rule, not by group — see this list instead):
20
+ * - game setup contract: `GameContext`/`GameCleanup`/`GameSetupFn`, `fromSetup`
21
+ * - component model: `GameComponent`, `WorldKind`
22
+ * - manifest-driven mount: `mountManifestWorlds` + its option/result types
23
+ * - scene file entry point: `parseSceneFile`/`parsePrefabFile`
24
+ * - game manifest (vgai.game.json) entry point: `loadGameManifest`
25
+ */
26
+
27
+ export { fromSetup } from './adapter/vgai-scene-game-adapter';
28
+ export type { WorldKind } from './adapter/world-kind';
29
+ export { GameComponent } from './ecs/game-component';
30
+ export type {
31
+ GameManifest,
32
+ ResolvedAdapter,
33
+ ResolvedGameManifest,
34
+ ResolvedWorldEntry,
35
+ WorldAdapter,
36
+ WorldEntry,
37
+ } from './manifest';
38
+ export { CAPABILITY_CEILINGS, DEFAULT_SERVER_MODULE, loadGameManifest } from './manifest';
39
+ export type { GameSession } from './runtime/create-runtime';
40
+ export type {
41
+ MountEntry,
42
+ MountedManifestSession,
43
+ MountManifestOptions,
44
+ } from './runtime/mount-manifest';
45
+ export { mountManifestWorlds } from './runtime/mount-manifest';
46
+ export type { GameCleanup, GameContext, GameSetupFn } from './runtime/types';
47
+ export { parsePrefabFile, parseSceneFile, SceneParseError } from './scene/parse';
48
+ export type { PrefabFile, SceneFile } from './scene/schema';