@vgai/engine 0.3.0 → 0.4.0-canary.20260715.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 (559) hide show
  1. package/package.json +8 -2
  2. package/schemas/engine-api.json +124 -0
  3. package/schemas/engine-api.md +53 -0
  4. package/schemas/engine-capabilities.json +124 -0
  5. package/schemas/inputmap.schema.json +314 -0
  6. package/schemas/mat.schema.json +286 -0
  7. package/schemas/prefab.schema.json +10148 -0
  8. package/schemas/scn2d.schema.json +475 -0
  9. package/schemas/vgai-game.schema.json +383 -0
  10. package/schemas/vscn.schema.json +11007 -0
  11. package/src/adapter/{world-kind.ts → adapter-surface.ts} +6 -6
  12. package/src/adapter/authoring.ts +67 -0
  13. package/src/adapter/game-adapter.ts +8 -8
  14. package/src/adapter/host-context.ts +2 -4
  15. package/src/adapter/index.ts +3 -1
  16. package/src/adapter/system-adapter.ts +73 -0
  17. package/src/adapter/vgai-scene-game-adapter.ts +239 -180
  18. package/src/animation/xstate-animation-binding.ts +300 -262
  19. package/src/animation/xstate-animation-meta.ts +50 -13
  20. package/src/character/cloth-sim.ts +533 -0
  21. package/src/character/spring-chain.ts +307 -0
  22. package/src/core/game-loop.ts +41 -3
  23. package/src/core/seeded-random.ts +161 -0
  24. package/src/core/system-runner.ts +20 -3
  25. package/src/core/types.ts +37 -0
  26. package/src/data/data-asset.ts +1 -1
  27. package/src/dev/performance-profiler.ts +213 -0
  28. package/src/dev/webgl-gpu-timer.ts +53 -0
  29. package/src/ecs/component-manager.ts +45 -12
  30. package/src/ecs/game-component.ts +95 -11
  31. package/src/humanoid/bake.operation.ts +326 -0
  32. package/src/humanoid/body.ts +663 -0
  33. package/src/humanoid/clips.ts +149 -0
  34. package/src/humanoid/compose.ts +209 -0
  35. package/src/humanoid/generate.ts +189 -0
  36. package/src/humanoid/index.ts +36 -0
  37. package/src/humanoid/schema.ts +108 -0
  38. package/src/humanoid/skeleton.ts +345 -0
  39. package/src/index.ts +5 -5
  40. package/src/input/input-manager.ts +701 -22
  41. package/src/input/input-types.ts +5 -2
  42. package/src/manifest/index.ts +5 -5
  43. package/src/manifest/load.ts +125 -72
  44. package/src/manifest/schema.ts +362 -255
  45. package/src/react/game-state.tsx +135 -32
  46. package/src/react/root-adapter.tsx +49 -0
  47. package/src/react/unmanaged-root-detector.ts +66 -0
  48. package/src/react/use-data.ts +12 -2
  49. package/src/runtime/create-runtime.ts +100 -282
  50. package/src/runtime/debug-bridge.ts +483 -0
  51. package/src/runtime/debug-registry.ts +856 -0
  52. package/src/runtime/game.ts +342 -93
  53. package/src/runtime/gameplay-rng-trap.ts +134 -0
  54. package/src/runtime/input-router.ts +7 -7
  55. package/src/runtime/mount-game.ts +40 -38
  56. package/src/runtime/mount-manifest.ts +169 -37
  57. package/src/runtime/render-control.ts +13 -13
  58. package/src/runtime/render-seed.ts +1 -1
  59. package/src/runtime/state-bridge.ts +24 -10
  60. package/src/runtime/types.ts +110 -28
  61. package/src/scene/asset-registry.ts +22 -0
  62. package/src/scene/component-registry.ts +14 -3
  63. package/src/scene/defaults.ts +1 -0
  64. package/src/scene/light-camera-factory.ts +11 -3
  65. package/src/scene/scene-apply.ts +55 -4
  66. package/src/scene/scene-loader.ts +10 -27
  67. package/src/scene/scene-types.ts +0 -1
  68. package/src/scene/schema/index.ts +0 -34
  69. package/src/scene/schema/light.ts +16 -1
  70. package/src/scene/schema/material.ts +96 -91
  71. package/src/scene/schema/scene-file.ts +1 -7
  72. package/src/scene/user-data.ts +14 -1
  73. package/src/setup/setup-renderer.ts +1 -1
  74. package/src/tools/define-tool.ts +50 -11
  75. package/src/world2d/authoring-2d.ts +17 -1
  76. package/src/world2d/collision-2d.ts +1 -1
  77. package/src/world2d/pixi-game-adapter.ts +19 -17
  78. package/src/world2d/scene2d-loader.ts +1 -0
  79. package/src/world2d/types.ts +8 -2
  80. package/dist/adapter/authoring.d.ts +0 -404
  81. package/dist/adapter/authoring.d.ts.map +0 -1
  82. package/dist/adapter/authoring.js +0 -22
  83. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  84. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  85. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  86. package/dist/adapter/first-party-systems.d.ts +0 -38
  87. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  88. package/dist/adapter/first-party-systems.js +0 -77
  89. package/dist/adapter/game-adapter.d.ts +0 -133
  90. package/dist/adapter/game-adapter.d.ts.map +0 -1
  91. package/dist/adapter/game-adapter.js +0 -10
  92. package/dist/adapter/host-context.d.ts +0 -73
  93. package/dist/adapter/host-context.d.ts.map +0 -1
  94. package/dist/adapter/host-context.js +0 -16
  95. package/dist/adapter/index.d.ts +0 -22
  96. package/dist/adapter/index.d.ts.map +0 -1
  97. package/dist/adapter/index.js +0 -15
  98. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  99. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  100. package/dist/adapter/ingest/game-contract.js +0 -30
  101. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  102. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  103. package/dist/adapter/ingest/overlay-applier.js +0 -132
  104. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  105. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  106. package/dist/adapter/ingest/overlay-apply.js +0 -101
  107. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  108. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  109. package/dist/adapter/ingest/overlay-file.js +0 -66
  110. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  111. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  112. package/dist/adapter/ingest/overlay-report.js +0 -103
  113. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  114. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  115. package/dist/adapter/ingest/scene-capture.js +0 -248
  116. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  117. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  118. package/dist/adapter/ingest/upstream-pin.js +0 -50
  119. package/dist/adapter/loop-gate-report.d.ts +0 -34
  120. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  121. package/dist/adapter/loop-gate-report.js +0 -37
  122. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  123. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  124. package/dist/adapter/rapier-physics-adapter.js +0 -46
  125. package/dist/adapter/system-adapter.d.ts +0 -133
  126. package/dist/adapter/system-adapter.d.ts.map +0 -1
  127. package/dist/adapter/system-adapter.js +0 -13
  128. package/dist/adapter/transform.d.ts +0 -18
  129. package/dist/adapter/transform.d.ts.map +0 -1
  130. package/dist/adapter/transform.js +0 -1
  131. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -116
  132. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  133. package/dist/adapter/vgai-scene-game-adapter.js +0 -714
  134. package/dist/adapter/world-kind.d.ts +0 -30
  135. package/dist/adapter/world-kind.d.ts.map +0 -1
  136. package/dist/adapter/world-kind.js +0 -18
  137. package/dist/ai/navigation.d.ts +0 -64
  138. package/dist/ai/navigation.d.ts.map +0 -1
  139. package/dist/ai/navigation.js +0 -133
  140. package/dist/animation/anim-graph-types.d.ts +0 -25
  141. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  142. package/dist/animation/anim-graph-types.js +0 -1
  143. package/dist/animation/animation-clock.d.ts +0 -213
  144. package/dist/animation/animation-clock.d.ts.map +0 -1
  145. package/dist/animation/animation-clock.js +0 -301
  146. package/dist/animation/blend-node.d.ts +0 -22
  147. package/dist/animation/blend-node.d.ts.map +0 -1
  148. package/dist/animation/blend-node.js +0 -97
  149. package/dist/animation/camera-ownership.d.ts +0 -250
  150. package/dist/animation/camera-ownership.d.ts.map +0 -1
  151. package/dist/animation/camera-ownership.js +0 -169
  152. package/dist/animation/cinematic-cues.d.ts +0 -200
  153. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  154. package/dist/animation/cinematic-cues.js +0 -213
  155. package/dist/animation/clip-map.d.ts +0 -12
  156. package/dist/animation/clip-map.d.ts.map +0 -1
  157. package/dist/animation/clip-map.js +0 -37
  158. package/dist/animation/gsap-registration.d.ts +0 -119
  159. package/dist/animation/gsap-registration.d.ts.map +0 -1
  160. package/dist/animation/gsap-registration.js +0 -92
  161. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  162. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  163. package/dist/animation/theatre-clock-binding.js +0 -29
  164. package/dist/animation/theatre-director.d.ts +0 -242
  165. package/dist/animation/theatre-director.d.ts.map +0 -1
  166. package/dist/animation/theatre-director.js +0 -235
  167. package/dist/animation/theatre-object-binding.d.ts +0 -305
  168. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  169. package/dist/animation/theatre-object-binding.js +0 -351
  170. package/dist/animation/xstate-animation-binding.d.ts +0 -111
  171. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  172. package/dist/animation/xstate-animation-binding.js +0 -307
  173. package/dist/animation/xstate-animation-meta.d.ts +0 -228
  174. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  175. package/dist/animation/xstate-animation-meta.js +0 -221
  176. package/dist/assets.d.ts +0 -26
  177. package/dist/assets.d.ts.map +0 -1
  178. package/dist/assets.js +0 -55
  179. package/dist/audio/index.d.ts +0 -4
  180. package/dist/audio/index.d.ts.map +0 -1
  181. package/dist/audio/index.js +0 -24
  182. package/dist/audio/tone-clock-binding.d.ts +0 -75
  183. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  184. package/dist/audio/tone-clock-binding.js +0 -29
  185. package/dist/audio/tone-context.d.ts +0 -114
  186. package/dist/audio/tone-context.d.ts.map +0 -1
  187. package/dist/audio/tone-context.js +0 -39
  188. package/dist/audio/tone-offline-render.d.ts +0 -90
  189. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  190. package/dist/audio/tone-offline-render.js +0 -56
  191. package/dist/audio/wav-encode.d.ts +0 -38
  192. package/dist/audio/wav-encode.d.ts.map +0 -1
  193. package/dist/audio/wav-encode.js +0 -97
  194. package/dist/core/game-loop.d.ts +0 -21
  195. package/dist/core/game-loop.d.ts.map +0 -1
  196. package/dist/core/game-loop.js +0 -130
  197. package/dist/core/system-runner.d.ts +0 -120
  198. package/dist/core/system-runner.d.ts.map +0 -1
  199. package/dist/core/system-runner.js +0 -286
  200. package/dist/core/types.d.ts +0 -58
  201. package/dist/core/types.d.ts.map +0 -1
  202. package/dist/core/types.js +0 -25
  203. package/dist/data/data-asset.d.ts +0 -101
  204. package/dist/data/data-asset.d.ts.map +0 -1
  205. package/dist/data/data-asset.js +0 -122
  206. package/dist/data/data-check-core.d.ts +0 -110
  207. package/dist/data/data-check-core.d.ts.map +0 -1
  208. package/dist/data/data-check-core.js +0 -178
  209. package/dist/data/data-ref.d.ts +0 -79
  210. package/dist/data/data-ref.d.ts.map +0 -1
  211. package/dist/data/data-ref.js +0 -130
  212. package/dist/data/vite-plugin-data.d.ts +0 -79
  213. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  214. package/dist/data/vite-plugin-data.js +0 -217
  215. package/dist/dev/console-bridge.d.ts +0 -22
  216. package/dist/dev/console-bridge.d.ts.map +0 -1
  217. package/dist/dev/console-bridge.js +0 -71
  218. package/dist/dev/debug-draw.d.ts +0 -24
  219. package/dist/dev/debug-draw.d.ts.map +0 -1
  220. package/dist/dev/debug-draw.js +0 -73
  221. package/dist/dev/logger.d.ts +0 -30
  222. package/dist/dev/logger.d.ts.map +0 -1
  223. package/dist/dev/logger.js +0 -90
  224. package/dist/ecs/component-manager.d.ts +0 -189
  225. package/dist/ecs/component-manager.d.ts.map +0 -1
  226. package/dist/ecs/component-manager.js +0 -676
  227. package/dist/ecs/game-component.d.ts +0 -97
  228. package/dist/ecs/game-component.d.ts.map +0 -1
  229. package/dist/ecs/game-component.js +0 -80
  230. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  231. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  232. package/dist/ecs/hmr-swap-report.js +0 -55
  233. package/dist/index.d.ts +0 -37
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -30
  236. package/dist/input/input-manager.d.ts +0 -596
  237. package/dist/input/input-manager.d.ts.map +0 -1
  238. package/dist/input/input-manager.js +0 -1564
  239. package/dist/input/input-types.d.ts +0 -171
  240. package/dist/input/input-types.d.ts.map +0 -1
  241. package/dist/input/input-types.js +0 -1
  242. package/dist/input/prompt-labels.d.ts +0 -21
  243. package/dist/input/prompt-labels.d.ts.map +0 -1
  244. package/dist/input/prompt-labels.js +0 -121
  245. package/dist/input/rebind-controller.d.ts +0 -59
  246. package/dist/input/rebind-controller.d.ts.map +0 -1
  247. package/dist/input/rebind-controller.js +0 -85
  248. package/dist/input/schema.d.ts +0 -16
  249. package/dist/input/schema.d.ts.map +0 -1
  250. package/dist/input/schema.js +0 -228
  251. package/dist/loader.d.ts +0 -43
  252. package/dist/loader.d.ts.map +0 -1
  253. package/dist/loader.js +0 -59
  254. package/dist/manifest/index.d.ts +0 -5
  255. package/dist/manifest/index.d.ts.map +0 -1
  256. package/dist/manifest/index.js +0 -8
  257. package/dist/manifest/load-file.d.ts +0 -4
  258. package/dist/manifest/load-file.d.ts.map +0 -1
  259. package/dist/manifest/load-file.js +0 -14
  260. package/dist/manifest/load.d.ts +0 -117
  261. package/dist/manifest/load.d.ts.map +0 -1
  262. package/dist/manifest/load.js +0 -255
  263. package/dist/manifest/schema.d.ts +0 -173
  264. package/dist/manifest/schema.d.ts.map +0 -1
  265. package/dist/manifest/schema.js +0 -302
  266. package/dist/physics/collision-system.d.ts +0 -41
  267. package/dist/physics/collision-system.d.ts.map +0 -1
  268. package/dist/physics/collision-system.js +0 -64
  269. package/dist/physics/physics-registry.d.ts +0 -45
  270. package/dist/physics/physics-registry.d.ts.map +0 -1
  271. package/dist/physics/physics-registry.js +0 -65
  272. package/dist/physics/transform-writer.d.ts +0 -16
  273. package/dist/physics/transform-writer.d.ts.map +0 -1
  274. package/dist/physics/transform-writer.js +0 -38
  275. package/dist/physics/trigger-dispatch.d.ts +0 -24
  276. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  277. package/dist/physics/trigger-dispatch.js +0 -80
  278. package/dist/react/game-state.d.ts +0 -105
  279. package/dist/react/game-state.d.ts.map +0 -1
  280. package/dist/react/game-state.js +0 -144
  281. package/dist/react/use-data.d.ts +0 -60
  282. package/dist/react/use-data.d.ts.map +0 -1
  283. package/dist/react/use-data.js +0 -96
  284. package/dist/react/use-selection.d.ts +0 -75
  285. package/dist/react/use-selection.d.ts.map +0 -1
  286. package/dist/react/use-selection.js +0 -90
  287. package/dist/render/auto-batcher.d.ts +0 -34
  288. package/dist/render/auto-batcher.d.ts.map +0 -1
  289. package/dist/render/auto-batcher.js +0 -140
  290. package/dist/render/render-batch-system.d.ts +0 -33
  291. package/dist/render/render-batch-system.d.ts.map +0 -1
  292. package/dist/render/render-batch-system.js +0 -230
  293. package/dist/render/render-features.d.ts +0 -47
  294. package/dist/render/render-features.d.ts.map +0 -1
  295. package/dist/render/render-features.js +0 -105
  296. package/dist/render/render-settings.d.ts +0 -36
  297. package/dist/render/render-settings.d.ts.map +0 -1
  298. package/dist/render/render-settings.js +0 -51
  299. package/dist/runtime/create-runtime.d.ts +0 -280
  300. package/dist/runtime/create-runtime.d.ts.map +0 -1
  301. package/dist/runtime/create-runtime.js +0 -795
  302. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  303. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  304. package/dist/runtime/frame-selector-cache.js +0 -65
  305. package/dist/runtime/game.d.ts +0 -433
  306. package/dist/runtime/game.d.ts.map +0 -1
  307. package/dist/runtime/game.js +0 -569
  308. package/dist/runtime/input-router.d.ts +0 -78
  309. package/dist/runtime/input-router.d.ts.map +0 -1
  310. package/dist/runtime/input-router.js +0 -171
  311. package/dist/runtime/mount-game.d.ts +0 -129
  312. package/dist/runtime/mount-game.d.ts.map +0 -1
  313. package/dist/runtime/mount-game.js +0 -152
  314. package/dist/runtime/mount-manifest.d.ts +0 -119
  315. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  316. package/dist/runtime/mount-manifest.js +0 -204
  317. package/dist/runtime/render-audio-control.d.ts +0 -110
  318. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  319. package/dist/runtime/render-audio-control.js +0 -111
  320. package/dist/runtime/render-control.d.ts +0 -291
  321. package/dist/runtime/render-control.d.ts.map +0 -1
  322. package/dist/runtime/render-control.js +0 -264
  323. package/dist/runtime/render-seed.d.ts +0 -57
  324. package/dist/runtime/render-seed.d.ts.map +0 -1
  325. package/dist/runtime/render-seed.js +0 -74
  326. package/dist/runtime/scene-ui-bridge.d.ts +0 -69
  327. package/dist/runtime/scene-ui-bridge.d.ts.map +0 -1
  328. package/dist/runtime/scene-ui-bridge.js +0 -23
  329. package/dist/runtime/scene-ui-data.d.ts +0 -13
  330. package/dist/runtime/scene-ui-data.d.ts.map +0 -1
  331. package/dist/runtime/scene-ui-data.js +0 -92
  332. package/dist/runtime/state-bridge.d.ts +0 -47
  333. package/dist/runtime/state-bridge.d.ts.map +0 -1
  334. package/dist/runtime/state-bridge.js +0 -53
  335. package/dist/runtime/types.d.ts +0 -179
  336. package/dist/runtime/types.d.ts.map +0 -1
  337. package/dist/runtime/types.js +0 -1
  338. package/dist/scene/asset-loaders.d.ts +0 -79
  339. package/dist/scene/asset-loaders.d.ts.map +0 -1
  340. package/dist/scene/asset-loaders.js +0 -141
  341. package/dist/scene/asset-paths.d.ts +0 -11
  342. package/dist/scene/asset-paths.d.ts.map +0 -1
  343. package/dist/scene/asset-paths.js +0 -108
  344. package/dist/scene/asset-ref-check.d.ts +0 -88
  345. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  346. package/dist/scene/asset-ref-check.js +0 -214
  347. package/dist/scene/asset-registry.d.ts +0 -30
  348. package/dist/scene/asset-registry.d.ts.map +0 -1
  349. package/dist/scene/asset-registry.js +0 -50
  350. package/dist/scene/collider-dimensions.d.ts +0 -63
  351. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  352. package/dist/scene/collider-dimensions.js +0 -98
  353. package/dist/scene/component-registry.d.ts +0 -17
  354. package/dist/scene/component-registry.d.ts.map +0 -1
  355. package/dist/scene/component-registry.js +0 -28
  356. package/dist/scene/defaults.d.ts +0 -252
  357. package/dist/scene/defaults.d.ts.map +0 -1
  358. package/dist/scene/defaults.js +0 -151
  359. package/dist/scene/geometries/index.d.ts +0 -8
  360. package/dist/scene/geometries/index.d.ts.map +0 -1
  361. package/dist/scene/geometries/index.js +0 -7
  362. package/dist/scene/geometries/terrain.d.ts +0 -2
  363. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  364. package/dist/scene/geometries/terrain.js +0 -37
  365. package/dist/scene/geometry-registry.d.ts +0 -24
  366. package/dist/scene/geometry-registry.d.ts.map +0 -1
  367. package/dist/scene/geometry-registry.js +0 -20
  368. package/dist/scene/instance-registry.d.ts +0 -36
  369. package/dist/scene/instance-registry.d.ts.map +0 -1
  370. package/dist/scene/instance-registry.js +0 -55
  371. package/dist/scene/instancers/grid.d.ts +0 -2
  372. package/dist/scene/instancers/grid.d.ts.map +0 -1
  373. package/dist/scene/instancers/grid.js +0 -36
  374. package/dist/scene/instancers/index.d.ts +0 -8
  375. package/dist/scene/instancers/index.d.ts.map +0 -1
  376. package/dist/scene/instancers/index.js +0 -7
  377. package/dist/scene/light-camera-factory.d.ts +0 -23
  378. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  379. package/dist/scene/light-camera-factory.js +0 -68
  380. package/dist/scene/material-factory.d.ts +0 -17
  381. package/dist/scene/material-factory.d.ts.map +0 -1
  382. package/dist/scene/material-factory.js +0 -197
  383. package/dist/scene/material-registry.d.ts +0 -40
  384. package/dist/scene/material-registry.d.ts.map +0 -1
  385. package/dist/scene/material-registry.js +0 -44
  386. package/dist/scene/materials/index.d.ts +0 -8
  387. package/dist/scene/materials/index.d.ts.map +0 -1
  388. package/dist/scene/materials/index.js +0 -7
  389. package/dist/scene/materials/water.d.ts +0 -2
  390. package/dist/scene/materials/water.d.ts.map +0 -1
  391. package/dist/scene/materials/water.js +0 -54
  392. package/dist/scene/parse.d.ts +0 -23
  393. package/dist/scene/parse.d.ts.map +0 -1
  394. package/dist/scene/parse.js +0 -179
  395. package/dist/scene/particles-factory.d.ts +0 -33
  396. package/dist/scene/particles-factory.d.ts.map +0 -1
  397. package/dist/scene/particles-factory.js +0 -282
  398. package/dist/scene/scene-apply.d.ts +0 -109
  399. package/dist/scene/scene-apply.d.ts.map +0 -1
  400. package/dist/scene/scene-apply.js +0 -326
  401. package/dist/scene/scene-diff-schema.d.ts +0 -285
  402. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  403. package/dist/scene/scene-diff-schema.js +0 -92
  404. package/dist/scene/scene-diff-types.d.ts +0 -40
  405. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  406. package/dist/scene/scene-diff-types.js +0 -14
  407. package/dist/scene/scene-loader.d.ts +0 -177
  408. package/dist/scene/scene-loader.d.ts.map +0 -1
  409. package/dist/scene/scene-loader.js +0 -1213
  410. package/dist/scene/scene-query.d.ts +0 -11
  411. package/dist/scene/scene-query.d.ts.map +0 -1
  412. package/dist/scene/scene-query.js +0 -63
  413. package/dist/scene/scene-types.d.ts +0 -10
  414. package/dist/scene/scene-types.d.ts.map +0 -1
  415. package/dist/scene/scene-types.js +0 -8
  416. package/dist/scene/scene-version.d.ts +0 -26
  417. package/dist/scene/scene-version.d.ts.map +0 -1
  418. package/dist/scene/scene-version.js +0 -34
  419. package/dist/scene/schema/animation.d.ts +0 -8
  420. package/dist/scene/schema/animation.d.ts.map +0 -1
  421. package/dist/scene/schema/animation.js +0 -42
  422. package/dist/scene/schema/audio.d.ts +0 -13
  423. package/dist/scene/schema/audio.d.ts.map +0 -1
  424. package/dist/scene/schema/audio.js +0 -22
  425. package/dist/scene/schema/camera.d.ts +0 -28
  426. package/dist/scene/schema/camera.d.ts.map +0 -1
  427. package/dist/scene/schema/camera.js +0 -17
  428. package/dist/scene/schema/collider.d.ts +0 -40
  429. package/dist/scene/schema/collider.d.ts.map +0 -1
  430. package/dist/scene/schema/collider.js +0 -55
  431. package/dist/scene/schema/entity-ref.d.ts +0 -31
  432. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  433. package/dist/scene/schema/entity-ref.js +0 -61
  434. package/dist/scene/schema/entity.d.ts +0 -1036
  435. package/dist/scene/schema/entity.d.ts.map +0 -1
  436. package/dist/scene/schema/entity.js +0 -153
  437. package/dist/scene/schema/environment.d.ts +0 -425
  438. package/dist/scene/schema/environment.d.ts.map +0 -1
  439. package/dist/scene/schema/environment.js +0 -357
  440. package/dist/scene/schema/index.d.ts +0 -39
  441. package/dist/scene/schema/index.d.ts.map +0 -1
  442. package/dist/scene/schema/index.js +0 -20
  443. package/dist/scene/schema/instances.d.ts +0 -14
  444. package/dist/scene/schema/instances.d.ts.map +0 -1
  445. package/dist/scene/schema/instances.js +0 -28
  446. package/dist/scene/schema/joint.d.ts +0 -23
  447. package/dist/scene/schema/joint.d.ts.map +0 -1
  448. package/dist/scene/schema/joint.js +0 -23
  449. package/dist/scene/schema/light.d.ts +0 -38
  450. package/dist/scene/schema/light.d.ts.map +0 -1
  451. package/dist/scene/schema/light.js +0 -26
  452. package/dist/scene/schema/material.d.ts +0 -199
  453. package/dist/scene/schema/material.d.ts.map +0 -1
  454. package/dist/scene/schema/material.js +0 -99
  455. package/dist/scene/schema/mesh.d.ts +0 -48
  456. package/dist/scene/schema/mesh.d.ts.map +0 -1
  457. package/dist/scene/schema/mesh.js +0 -82
  458. package/dist/scene/schema/particles.d.ts +0 -2178
  459. package/dist/scene/schema/particles.d.ts.map +0 -1
  460. package/dist/scene/schema/particles.js +0 -321
  461. package/dist/scene/schema/physics.d.ts +0 -56
  462. package/dist/scene/schema/physics.d.ts.map +0 -1
  463. package/dist/scene/schema/physics.js +0 -37
  464. package/dist/scene/schema/scene-file.d.ts +0 -304
  465. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  466. package/dist/scene/schema/scene-file.js +0 -262
  467. package/dist/scene/schema/shadow.d.ts +0 -28
  468. package/dist/scene/schema/shadow.d.ts.map +0 -1
  469. package/dist/scene/schema/shadow.js +0 -20
  470. package/dist/scene/schema/spline.d.ts +0 -25
  471. package/dist/scene/schema/spline.d.ts.map +0 -1
  472. package/dist/scene/schema/spline.js +0 -15
  473. package/dist/scene/schema/tuples.d.ts +0 -12
  474. package/dist/scene/schema/tuples.d.ts.map +0 -1
  475. package/dist/scene/schema/tuples.js +0 -14
  476. package/dist/scene/schema/ui.d.ts +0 -880
  477. package/dist/scene/schema/ui.d.ts.map +0 -1
  478. package/dist/scene/schema/ui.js +0 -506
  479. package/dist/scene/user-data.d.ts +0 -171
  480. package/dist/scene/user-data.d.ts.map +0 -1
  481. package/dist/scene/user-data.js +0 -137
  482. package/dist/setup/setup-audio.d.ts +0 -20
  483. package/dist/setup/setup-audio.d.ts.map +0 -1
  484. package/dist/setup/setup-audio.js +0 -41
  485. package/dist/setup/setup-particles.d.ts +0 -17
  486. package/dist/setup/setup-particles.d.ts.map +0 -1
  487. package/dist/setup/setup-particles.js +0 -16
  488. package/dist/setup/setup-physics.d.ts +0 -25
  489. package/dist/setup/setup-physics.d.ts.map +0 -1
  490. package/dist/setup/setup-physics.js +0 -51
  491. package/dist/setup/setup-renderer.d.ts +0 -69
  492. package/dist/setup/setup-renderer.d.ts.map +0 -1
  493. package/dist/setup/setup-renderer.js +0 -363
  494. package/dist/tools/define-tool.d.ts +0 -105
  495. package/dist/tools/define-tool.d.ts.map +0 -1
  496. package/dist/tools/define-tool.js +0 -82
  497. package/dist/world2d/authoring-2d.d.ts +0 -76
  498. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  499. package/dist/world2d/authoring-2d.js +0 -176
  500. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  501. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  502. package/dist/world2d/capture-to-scene2d.js +0 -49
  503. package/dist/world2d/collision-2d.d.ts +0 -52
  504. package/dist/world2d/collision-2d.d.ts.map +0 -1
  505. package/dist/world2d/collision-2d.js +0 -70
  506. package/dist/world2d/components-2d.d.ts +0 -47
  507. package/dist/world2d/components-2d.d.ts.map +0 -1
  508. package/dist/world2d/components-2d.js +0 -77
  509. package/dist/world2d/index.d.ts +0 -34
  510. package/dist/world2d/index.d.ts.map +0 -1
  511. package/dist/world2d/index.js +0 -32
  512. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  513. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  514. package/dist/world2d/ingest-iframe-2d.js +0 -166
  515. package/dist/world2d/ingest2d.d.ts +0 -97
  516. package/dist/world2d/ingest2d.d.ts.map +0 -1
  517. package/dist/world2d/ingest2d.js +0 -40
  518. package/dist/world2d/physics2d-registry.d.ts +0 -24
  519. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  520. package/dist/world2d/physics2d-registry.js +0 -38
  521. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  522. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  523. package/dist/world2d/pixi-game-adapter.js +0 -211
  524. package/dist/world2d/pixi-surface.d.ts +0 -39
  525. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  526. package/dist/world2d/pixi-surface.js +0 -47
  527. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  528. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  529. package/dist/world2d/scene-capture-2d.js +0 -92
  530. package/dist/world2d/scene2d-loader.d.ts +0 -27
  531. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  532. package/dist/world2d/scene2d-loader.js +0 -274
  533. package/dist/world2d/schema/entity2d.d.ts +0 -102
  534. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  535. package/dist/world2d/schema/entity2d.js +0 -119
  536. package/dist/world2d/schema/physics2d.d.ts +0 -46
  537. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  538. package/dist/world2d/schema/physics2d.js +0 -45
  539. package/dist/world2d/schema/sprite.d.ts +0 -42
  540. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  541. package/dist/world2d/schema/sprite.js +0 -63
  542. package/dist/world2d/schema/tilemap.d.ts +0 -15
  543. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  544. package/dist/world2d/schema/tilemap.js +0 -19
  545. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  546. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  547. package/dist/world2d/schema/tuples2d.js +0 -19
  548. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  549. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  550. package/dist/world2d/system-adapters-2d.js +0 -37
  551. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  552. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  553. package/dist/world2d/transform-writer-2d.js +0 -22
  554. package/dist/world2d/types.d.ts +0 -53
  555. package/dist/world2d/types.d.ts.map +0 -1
  556. package/dist/world2d/types.js +0 -1
  557. package/src/runtime/scene-ui-bridge.ts +0 -86
  558. package/src/runtime/scene-ui-data.ts +0 -119
  559. package/src/scene/schema/ui.ts +0 -602
@@ -1,255 +0,0 @@
1
- // T3.1 slice 1 — the game manifest loader/validator (docs/GAME-MANIFEST-DESIGN.md §5).
2
- //
3
- // Pure data-in/data-out: `loadGameManifest(raw)` parses `raw` against
4
- // `GameManifestSchema`, runs the cross-field checks §3 promises beyond what
5
- // Zod alone can express, resolves every optional/derivable field, and
6
- // returns a `ResolvedGameManifest` with nothing left implicit. This is the
7
- // schema's runtime reader (T4.1 policy) — every described field in
8
- // `schema.ts` either drives a check here or is carried into the resolved
9
- // output explicitly (see the per-field comments below and
10
- // `packages/engine/test/schema-consumption-map.ts`'s `manifest.*` entries).
11
- //
12
- // No `fs` import here on purpose — `load-file.ts` is the thin Node-only
13
- // wrapper that reads a path and calls this function, so browser bundles that
14
- // only need `loadGameManifest` never pull in `node:fs`.
15
- import { GameManifestSchema, } from './schema';
16
- // ---------------------------------------------------------------------------
17
- // §4 — the per-context ceiling table (named + exported: the tier-table doc
18
- // test in slice 2 pins docs/CAPABILITY-TIERS.md's rows against this).
19
- // ---------------------------------------------------------------------------
20
- /**
21
- * Ceiling (maximum legal declared `Tier`) per adapter type and delivery
22
- * context. `default` worlds are always first-party in both contexts (D6/§2 —
23
- * a first-party world is fully vgai-native everywhere). `ingest` worlds are
24
- * ceilinged by their own capture `strategy`: locally the local CLI's Vite
25
- * pipeline gives bundler dedupe, so every strategy reaches its own natural
26
- * rung; hosted has no bundler (esbuild-wasm + externals only), and a
27
- * `deduped` world is DEFINED by being source built through our pipeline — no
28
- * prebuilt bundle exists to fall back to an iframe rung, and nothing
29
- * implements a hosted build for it, so hosted is `unsupported` (honesty over
30
- * optimism; if the hosted esbuild-wasm path ever proves capable, raising
31
- * this ceiling is a non-breaking widening). `shared`/`iframe-reachable`/
32
- * `opaque-embed` don't depend on a bundler either way, so they carry through
33
- * unchanged. `module` adapters have no derivable ceiling ("a custom
34
- * adapter's reach is not derivable", §4) — modeled here as `first-party`
35
- * (the top rank), i.e. no ceiling actually constrains a module adapter's
36
- * declared tier; the loader instead requires the tier to be declared
37
- * explicitly for module worlds (see `resolveCapabilities`), since there is no
38
- * default to derive.
39
- */
40
- export const CAPABILITY_CEILINGS = {
41
- default: { local: 'first-party', hosted: 'first-party' },
42
- ingest: {
43
- shared: { local: 'shared', hosted: 'shared' },
44
- deduped: { local: 'deduped', hosted: 'unsupported' },
45
- 'iframe-reachable': { local: 'iframe-reachable', hosted: 'iframe-reachable' },
46
- 'opaque-embed': { local: 'opaque-embed', hosted: 'opaque-embed' },
47
- },
48
- module: { local: 'first-party', hosted: 'first-party' },
49
- };
50
- /** Total order over `Tier` (§4: `first-party > shared ≈ deduped > iframe-reachable > opaque-embed > unsupported`). */
51
- const TIER_RANK = {
52
- 'first-party': 5,
53
- shared: 4,
54
- deduped: 4,
55
- 'iframe-reachable': 3,
56
- 'opaque-embed': 2,
57
- unsupported: 1,
58
- };
59
- /** Default relative path for `server.module` when omitted (§3) — the scaffolded Colyseus bootstrap. */
60
- export const DEFAULT_SERVER_MODULE = 'server/colyseus-setup.ts';
61
- const SEMVER_RE = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/;
62
- // ---------------------------------------------------------------------------
63
- // Adapter shape guards
64
- // ---------------------------------------------------------------------------
65
- function isModuleAdapter(adapter) {
66
- return typeof adapter === 'object' && 'module' in adapter;
67
- }
68
- function isIngestAdapter(adapter) {
69
- return typeof adapter === 'object' && 'ingest' in adapter;
70
- }
71
- // ---------------------------------------------------------------------------
72
- // Cross-field checks (§3 — beyond what Zod alone enforces)
73
- // ---------------------------------------------------------------------------
74
- //
75
- // D-V6 (docs/WAVE5-MULTIWORLD-INGEST-DESIGN.md): world-id uniqueness used to
76
- // be a cross-field check HERE (`checkUniqueWorldIds`, removed) — it moved
77
- // INTO `GameManifestSchema`'s `worlds` `superRefine` (schema.ts) instead, so
78
- // the generated JSON Schema and any other schema consumer see the same
79
- // constraint the loader always enforced. `parseManifest` below catches that
80
- // one recognizable schema-level issue and rethrows it as a clean, single
81
- // `Error` — the exact message shape `checkUniqueWorldIds` used to throw
82
- // directly — rather than a raw multi-issue `ZodError` dump, so existing
83
- // callers/tests that pattern-match the message text are unaffected by the
84
- // enforcement moving one layer down.
85
- function checkAdapterSceneEntryRules(world) {
86
- const { adapter } = world;
87
- if (adapter === 'default' && !world.scene && !world.entry) {
88
- throw new Error(`Game manifest: world "${world.id}" uses the 'default' adapter but declares neither ` +
89
- '`scene` nor `entry` — a default-adapter world requires one of the two (§3).');
90
- }
91
- if (isIngestAdapter(adapter) && world.scene !== undefined) {
92
- throw new Error(`Game manifest: world "${world.id}" uses an { ingest } adapter but declares \`scene\` — ` +
93
- 'ingest adapters forbid `scene` (adapt-never-migrate: ingested games keep their own ' +
94
- "formats; overlay persistence is T3.2's) (§3).");
95
- }
96
- }
97
- // Historical note (Track N, N1): this file used to reject EVERY `kind:
98
- // 'react'` + `{ ingest }` world outright here (`checkReactAdapterRestriction`,
99
- // citing "no react ingest program is un-parked"). Track N un-parks exactly
100
- // that program (docs/REACT-INGEST-LANDING-DESIGN.md) — react+ingest is now a
101
- // structurally legal combination, resolved to the `'ingest-react'` identity
102
- // by `resolveAdapter` below like any other ingest world. There is nothing
103
- // left to reject at THIS layer: `checkAdapterSceneEntryRules` above already
104
- // forbids `scene` on any `{ ingest }`-adapter world (kind-agnostic), and the
105
- // v1 "deduped strategy only" restriction is an editor-resolver concern
106
- // (D-N3), not a manifest-shape concern — see the `ResolvedAdapter` type's
107
- // comment above.
108
- // ---------------------------------------------------------------------------
109
- // Resolution (§5)
110
- // ---------------------------------------------------------------------------
111
- function resolveAdapter(world) {
112
- const { adapter, kind } = world;
113
- if (adapter === 'default') {
114
- const identity = kind === 'threejs' ? 'default-three' : kind === 'pixijs' ? 'default-pixi' : 'default-react';
115
- return { type: 'default', identity };
116
- }
117
- if (isModuleAdapter(adapter)) {
118
- return { type: 'module', identity: 'module', module: adapter.module };
119
- }
120
- // isIngestAdapter (Track N, N1: 'ingest-react' joins 'ingest-three'/
121
- // 'ingest-pixi' — see the `ResolvedAdapter` type's comment above for why
122
- // this stays strategy-agnostic here).
123
- const identity = kind === 'threejs' ? 'ingest-three' : kind === 'pixijs' ? 'ingest-pixi' : 'ingest-react';
124
- const ingest = adapter.ingest;
125
- return {
126
- type: 'ingest',
127
- identity,
128
- strategy: ingest.strategy,
129
- entryHtml: ingest.entryHtml,
130
- assets: ingest.assets,
131
- domStubs: ingest.domStubs,
132
- captureTimeoutMs: ingest.captureTimeoutMs,
133
- bundleUrl: ingest.bundleUrl,
134
- baseHref: ingest.baseHref,
135
- assetBaseUrl: ingest.assetBaseUrl,
136
- extraDeps: ingest.extraDeps,
137
- pixiModuleUrl: ingest.pixiModuleUrl,
138
- bodyHtml: ingest.bodyHtml,
139
- };
140
- }
141
- function ceilingFor(adapter, context) {
142
- if (adapter === 'default')
143
- return CAPABILITY_CEILINGS.default[context];
144
- if (isModuleAdapter(adapter))
145
- return CAPABILITY_CEILINGS.module[context];
146
- return CAPABILITY_CEILINGS.ingest[adapter.ingest.strategy][context];
147
- }
148
- function resolveCapabilities(world) {
149
- const contexts = ['local', 'hosted'];
150
- const result = {};
151
- for (const context of contexts) {
152
- const declared = world.capabilities?.[context];
153
- if (declared !== undefined) {
154
- const ceiling = ceilingFor(world.adapter, context);
155
- if (TIER_RANK[declared] > TIER_RANK[ceiling]) {
156
- throw new Error(`Game manifest: world "${world.id}": declared capabilities.${context} tier "${declared}" ` +
157
- `exceeds the "${ceiling}" ceiling for this adapter in the ${context} context (§4). ` +
158
- 'Under-claiming (including `unsupported`) is legal; over-claiming is not.');
159
- }
160
- result[context] = declared;
161
- continue;
162
- }
163
- // Omitted -> derive.
164
- if (world.adapter === 'default') {
165
- result[context] = 'first-party';
166
- }
167
- else if (isModuleAdapter(world.adapter)) {
168
- throw new Error(`Game manifest: world "${world.id}": { module } adapter requires an explicit ` +
169
- `capabilities.${context} declaration — a custom adapter's reach is not derivable (§4).`);
170
- }
171
- else {
172
- result[context] = CAPABILITY_CEILINGS.ingest[world.adapter.ingest.strategy][context];
173
- }
174
- }
175
- return result;
176
- }
177
- function checkEngineVersionPin(version) {
178
- if (!SEMVER_RE.test(version)) {
179
- throw new Error(`Game manifest: engine.version "${version}" is not a valid exact semver string (e.g. ` +
180
- '"0.1.0") — §1.5 requires an exact identity pin, not a range.');
181
- }
182
- }
183
- /**
184
- * Resolve one already-Zod-validated world entry into its `ResolvedWorldEntry`
185
- * (adapter identity, capabilities, and a pass-through of every other field).
186
- * Every `WorldEntry` field participates here or in a check above:
187
- * `id`/`kind` drive adapter resolution + uniqueness; `adapter` (incl. its
188
- * `module`/`ingest.*` sub-fields) drives identity + capability-ceiling
189
- * resolution; `scene`/`entry` drive the scene/entry cross-field rule and are
190
- * carried through; `zOrder` drives the final sort; `pausable`/`loop` are
191
- * carried through as-is (their consumers are the runtime/CLI, T3.2/T3.3);
192
- * `capabilities.{local,hosted}` drive tier resolution; `description` (T3.3
193
- * slice 3) is carried through as-is — its consumer today is
194
- * `resolveIngestDescriptor` (packages/editor/src/adapter-resolver.ts), which
195
- * threads an ingest-three world's description into `IngestGame.description`.
196
- */
197
- function resolveWorld(world) {
198
- checkAdapterSceneEntryRules(world);
199
- return {
200
- id: world.id,
201
- kind: world.kind,
202
- description: world.description,
203
- adapter: resolveAdapter(world),
204
- scene: world.scene,
205
- entry: world.entry,
206
- zOrder: world.zOrder,
207
- pausable: world.pausable,
208
- loop: world.loop,
209
- capabilities: resolveCapabilities(world),
210
- };
211
- }
212
- // ---------------------------------------------------------------------------
213
- // Entry point
214
- // ---------------------------------------------------------------------------
215
- /**
216
- * Parse + validate + resolve a raw manifest value into a `ResolvedGameManifest`.
217
- * Pure data-in/data-out (no `fs`) — see `load-file.ts` for the Node path-based
218
- * wrapper. Throws a descriptive `Error` (naming the offending world/field) on
219
- * any Zod validation failure or cross-field rule violation.
220
- */
221
- export function loadGameManifest(raw) {
222
- const parsed = GameManifestSchema.safeParse(raw);
223
- if (!parsed.success) {
224
- // D-V6: the `worlds` `superRefine`'s duplicate-id issue is the one
225
- // schema-level violation this loader still surfaces as a clean, single
226
- // `Error` (matching `checkUniqueWorldIds`'s pre-D-V6 message shape) —
227
- // every other schema violation keeps propagating as the raw `ZodError`
228
- // it always has (unchanged behavior, e.g. the iframe-reachable
229
- // field-exclusivity / manifestVersion checks).
230
- const dupIssue = parsed.error.issues.find((issue) => issue.message.startsWith('Game manifest: duplicate world id'));
231
- if (dupIssue)
232
- throw new Error(dupIssue.message);
233
- throw parsed.error;
234
- }
235
- const manifest = parsed.data;
236
- checkEngineVersionPin(manifest.engine.version);
237
- const resolvedWithIndex = manifest.worlds.map((world, index) => ({
238
- world: resolveWorld(world),
239
- index,
240
- }));
241
- resolvedWithIndex.sort((a, b) => a.world.zOrder - b.world.zOrder || a.index - b.index);
242
- const worlds = resolvedWithIndex.map(({ world }) => world);
243
- const server = manifest.server
244
- ? { room: manifest.server.room, module: manifest.server.module ?? DEFAULT_SERVER_MODULE }
245
- : undefined;
246
- return {
247
- manifestVersion: manifest.manifestVersion,
248
- name: manifest.name,
249
- version: manifest.version,
250
- engine: { version: manifest.engine.version },
251
- worlds,
252
- server,
253
- resolution: manifest.resolution,
254
- };
255
- }
@@ -1,173 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const IngestStrategySchema: z.ZodEnum<{
3
- shared: "shared";
4
- deduped: "deduped";
5
- "iframe-reachable": "iframe-reachable";
6
- "opaque-embed": "opaque-embed";
7
- }>;
8
- export type IngestStrategy = z.infer<typeof IngestStrategySchema>;
9
- export declare const TierSchema: z.ZodEnum<{
10
- shared: "shared";
11
- deduped: "deduped";
12
- "iframe-reachable": "iframe-reachable";
13
- "opaque-embed": "opaque-embed";
14
- "first-party": "first-party";
15
- unsupported: "unsupported";
16
- }>;
17
- export type Tier = z.infer<typeof TierSchema>;
18
- export declare const WorldAdapterSchema: z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
19
- module: z.ZodString;
20
- }, z.core.$strip>, z.ZodObject<{
21
- ingest: z.ZodObject<{
22
- strategy: z.ZodEnum<{
23
- shared: "shared";
24
- deduped: "deduped";
25
- "iframe-reachable": "iframe-reachable";
26
- "opaque-embed": "opaque-embed";
27
- }>;
28
- entryHtml: z.ZodOptional<z.ZodString>;
29
- assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
30
- domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
- captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
32
- bundleUrl: z.ZodOptional<z.ZodString>;
33
- baseHref: z.ZodOptional<z.ZodString>;
34
- assetBaseUrl: z.ZodOptional<z.ZodString>;
35
- extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
- pixiModuleUrl: z.ZodOptional<z.ZodString>;
37
- bodyHtml: z.ZodOptional<z.ZodString>;
38
- }, z.core.$strip>;
39
- }, z.core.$strip>]>;
40
- export type WorldAdapter = z.infer<typeof WorldAdapterSchema>;
41
- export declare const WorldEntrySchema: z.ZodObject<{
42
- id: z.ZodString;
43
- kind: z.ZodEnum<{
44
- threejs: "threejs";
45
- pixijs: "pixijs";
46
- react: "react";
47
- }>;
48
- description: z.ZodOptional<z.ZodString>;
49
- adapter: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
50
- module: z.ZodString;
51
- }, z.core.$strip>, z.ZodObject<{
52
- ingest: z.ZodObject<{
53
- strategy: z.ZodEnum<{
54
- shared: "shared";
55
- deduped: "deduped";
56
- "iframe-reachable": "iframe-reachable";
57
- "opaque-embed": "opaque-embed";
58
- }>;
59
- entryHtml: z.ZodOptional<z.ZodString>;
60
- assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
61
- domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
62
- captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
63
- bundleUrl: z.ZodOptional<z.ZodString>;
64
- baseHref: z.ZodOptional<z.ZodString>;
65
- assetBaseUrl: z.ZodOptional<z.ZodString>;
66
- extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
- pixiModuleUrl: z.ZodOptional<z.ZodString>;
68
- bodyHtml: z.ZodOptional<z.ZodString>;
69
- }, z.core.$strip>;
70
- }, z.core.$strip>]>>;
71
- scene: z.ZodOptional<z.ZodString>;
72
- entry: z.ZodOptional<z.ZodString>;
73
- zOrder: z.ZodDefault<z.ZodNumber>;
74
- pausable: z.ZodDefault<z.ZodBoolean>;
75
- loop: z.ZodDefault<z.ZodEnum<{
76
- gated: "gated";
77
- "self-driven": "self-driven";
78
- }>>;
79
- capabilities: z.ZodOptional<z.ZodObject<{
80
- local: z.ZodOptional<z.ZodEnum<{
81
- shared: "shared";
82
- deduped: "deduped";
83
- "iframe-reachable": "iframe-reachable";
84
- "opaque-embed": "opaque-embed";
85
- "first-party": "first-party";
86
- unsupported: "unsupported";
87
- }>>;
88
- hosted: z.ZodOptional<z.ZodEnum<{
89
- shared: "shared";
90
- deduped: "deduped";
91
- "iframe-reachable": "iframe-reachable";
92
- "opaque-embed": "opaque-embed";
93
- "first-party": "first-party";
94
- unsupported: "unsupported";
95
- }>>;
96
- }, z.core.$strip>>;
97
- }, z.core.$strip>;
98
- export type WorldEntry = z.infer<typeof WorldEntrySchema>;
99
- export declare const GameManifestSchema: z.ZodObject<{
100
- manifestVersion: z.ZodLiteral<1>;
101
- name: z.ZodString;
102
- version: z.ZodString;
103
- engine: z.ZodObject<{
104
- version: z.ZodString;
105
- }, z.core.$strip>;
106
- worlds: z.ZodArray<z.ZodObject<{
107
- id: z.ZodString;
108
- kind: z.ZodEnum<{
109
- threejs: "threejs";
110
- pixijs: "pixijs";
111
- react: "react";
112
- }>;
113
- description: z.ZodOptional<z.ZodString>;
114
- adapter: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
115
- module: z.ZodString;
116
- }, z.core.$strip>, z.ZodObject<{
117
- ingest: z.ZodObject<{
118
- strategy: z.ZodEnum<{
119
- shared: "shared";
120
- deduped: "deduped";
121
- "iframe-reachable": "iframe-reachable";
122
- "opaque-embed": "opaque-embed";
123
- }>;
124
- entryHtml: z.ZodOptional<z.ZodString>;
125
- assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
126
- domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
127
- captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
128
- bundleUrl: z.ZodOptional<z.ZodString>;
129
- baseHref: z.ZodOptional<z.ZodString>;
130
- assetBaseUrl: z.ZodOptional<z.ZodString>;
131
- extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
132
- pixiModuleUrl: z.ZodOptional<z.ZodString>;
133
- bodyHtml: z.ZodOptional<z.ZodString>;
134
- }, z.core.$strip>;
135
- }, z.core.$strip>]>>;
136
- scene: z.ZodOptional<z.ZodString>;
137
- entry: z.ZodOptional<z.ZodString>;
138
- zOrder: z.ZodDefault<z.ZodNumber>;
139
- pausable: z.ZodDefault<z.ZodBoolean>;
140
- loop: z.ZodDefault<z.ZodEnum<{
141
- gated: "gated";
142
- "self-driven": "self-driven";
143
- }>>;
144
- capabilities: z.ZodOptional<z.ZodObject<{
145
- local: z.ZodOptional<z.ZodEnum<{
146
- shared: "shared";
147
- deduped: "deduped";
148
- "iframe-reachable": "iframe-reachable";
149
- "opaque-embed": "opaque-embed";
150
- "first-party": "first-party";
151
- unsupported: "unsupported";
152
- }>>;
153
- hosted: z.ZodOptional<z.ZodEnum<{
154
- shared: "shared";
155
- deduped: "deduped";
156
- "iframe-reachable": "iframe-reachable";
157
- "opaque-embed": "opaque-embed";
158
- "first-party": "first-party";
159
- unsupported: "unsupported";
160
- }>>;
161
- }, z.core.$strip>>;
162
- }, z.core.$strip>>;
163
- server: z.ZodOptional<z.ZodObject<{
164
- room: z.ZodString;
165
- module: z.ZodOptional<z.ZodString>;
166
- }, z.core.$strip>>;
167
- resolution: z.ZodOptional<z.ZodObject<{
168
- width: z.ZodNumber;
169
- height: z.ZodNumber;
170
- }, z.core.$strip>>;
171
- }, z.core.$strip>;
172
- export type GameManifest = z.infer<typeof GameManifestSchema>;
173
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,eAAO,MAAM,UAAU;;;;;;;EAOrB,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAS9C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;mBA8K5B,CAAC;AACJ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6D3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+D2D,CAAC;AAE3F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}