@vgai/engine 0.5.15 → 0.5.16

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 (174) hide show
  1. package/dist/adapter/adapter-module.d.ts +228 -17
  2. package/dist/adapter/adapter-module.d.ts.map +1 -1
  3. package/dist/adapter/adapter-module.js +224 -42
  4. package/dist/adapter/authoring-seam-contract.d.ts +530 -0
  5. package/dist/adapter/authoring-seam-contract.d.ts.map +1 -0
  6. package/dist/adapter/authoring-seam-contract.js +162 -0
  7. package/dist/adapter/authoring.d.ts +237 -50
  8. package/dist/adapter/authoring.d.ts.map +1 -1
  9. package/dist/adapter/authoring.js +2 -1
  10. package/dist/adapter/entrypoint-selection-source.d.ts +35 -0
  11. package/dist/adapter/entrypoint-selection-source.d.ts.map +1 -0
  12. package/dist/adapter/entrypoint-selection-source.js +151 -0
  13. package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts +7 -1
  14. package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -1
  15. package/dist/adapter/finders/scenes-from-entrypoint-selection.js +142 -21
  16. package/dist/adapter/first-party-systems.d.ts +13 -3
  17. package/dist/adapter/first-party-systems.d.ts.map +1 -1
  18. package/dist/adapter/first-party-systems.js +10 -3
  19. package/dist/adapter/index.d.ts +7 -2
  20. package/dist/adapter/index.d.ts.map +1 -1
  21. package/dist/adapter/index.js +4 -0
  22. package/dist/adapter/ingest/contract-system-adapters.d.ts +1 -1
  23. package/dist/adapter/ingest/contract-system-adapters.d.ts.map +1 -1
  24. package/dist/adapter/ingest/contract-system-adapters.js +13 -25
  25. package/dist/adapter/ingest/game-contract-seams.d.ts +214 -0
  26. package/dist/adapter/ingest/game-contract-seams.d.ts.map +1 -0
  27. package/dist/adapter/ingest/game-contract-seams.js +62 -0
  28. package/dist/adapter/ingest/game-contract.d.ts +5 -3
  29. package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
  30. package/dist/adapter/ingest/game-contract.js +4 -1
  31. package/dist/adapter/ingest/merge-debug-adapters.d.ts +52 -0
  32. package/dist/adapter/ingest/merge-debug-adapters.d.ts.map +1 -0
  33. package/dist/adapter/ingest/merge-debug-adapters.js +141 -0
  34. package/dist/adapter/ingest/observation-debug-adapter.d.ts +56 -0
  35. package/dist/adapter/ingest/observation-debug-adapter.d.ts.map +1 -0
  36. package/dist/adapter/ingest/observation-debug-adapter.js +131 -0
  37. package/dist/adapter/ingest/scene-capture.d.ts +38 -13
  38. package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
  39. package/dist/adapter/ingest/scene-capture.js +101 -24
  40. package/dist/adapter/ingest/visible-capture-window.d.ts +22 -5
  41. package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -1
  42. package/dist/adapter/ingest/visible-capture-window.js +46 -7
  43. package/dist/adapter/native-debug-module.d.ts +43 -0
  44. package/dist/adapter/native-debug-module.d.ts.map +1 -0
  45. package/dist/adapter/native-debug-module.js +230 -0
  46. package/dist/adapter/object3d-authoring-subject.d.ts +32 -0
  47. package/dist/adapter/object3d-authoring-subject.d.ts.map +1 -0
  48. package/dist/adapter/object3d-authoring-subject.js +25 -0
  49. package/dist/adapter/root-adapter.d.ts +21 -56
  50. package/dist/adapter/root-adapter.d.ts.map +1 -1
  51. package/dist/adapter/root-adapter.js +4 -20
  52. package/dist/adapter/root-seam-contract.d.ts +124 -0
  53. package/dist/adapter/root-seam-contract.d.ts.map +1 -0
  54. package/dist/adapter/root-seam-contract.js +36 -0
  55. package/dist/adapter/seam-evidence.d.ts +118 -0
  56. package/dist/adapter/seam-evidence.d.ts.map +1 -0
  57. package/dist/adapter/seam-evidence.js +231 -0
  58. package/dist/adapter/setup-three-root-adapter.d.ts +2 -3
  59. package/dist/adapter/setup-three-root-adapter.d.ts.map +1 -1
  60. package/dist/adapter/setup-three-root-adapter.js +2 -3
  61. package/dist/adapter/system-adapter.d.ts +6 -1
  62. package/dist/adapter/system-adapter.d.ts.map +1 -1
  63. package/dist/adapter/system-seam-contract.d.ts +354 -0
  64. package/dist/adapter/system-seam-contract.d.ts.map +1 -0
  65. package/dist/adapter/system-seam-contract.js +95 -0
  66. package/dist/animation/xstate-animation-binding.d.ts +6 -0
  67. package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
  68. package/dist/animation/xstate-animation-binding.js +142 -4
  69. package/dist/asset-formats/collider.d.ts +1 -1
  70. package/dist/asset-formats/mesh.d.ts +2 -2
  71. package/dist/asset-formats/particles.d.ts +1 -1
  72. package/dist/canvas-react/engine-bridge.d.ts +6 -6
  73. package/dist/canvas-react/engine-bridge.d.ts.map +1 -1
  74. package/dist/canvas-react/engine-bridge.js +2 -2
  75. package/dist/canvas-react/index.d.ts +2 -2
  76. package/dist/canvas-react/index.d.ts.map +1 -1
  77. package/dist/canvas-react/index.js +1 -1
  78. package/dist/canvas-react/pixi-react-adapter.d.ts +15 -9
  79. package/dist/canvas-react/pixi-react-adapter.d.ts.map +1 -1
  80. package/dist/canvas-react/pixi-react-adapter.js +43 -29
  81. package/dist/canvas-react/pixi-react-root-factory.d.ts.map +1 -1
  82. package/dist/canvas-react/pixi-react-root-factory.js +4 -0
  83. package/dist/canvas-react/world-context.d.ts +22 -12
  84. package/dist/canvas-react/world-context.d.ts.map +1 -1
  85. package/dist/canvas-react/world-context.js +12 -51
  86. package/dist/ecs/user-data.d.ts +5 -0
  87. package/dist/ecs/user-data.d.ts.map +1 -1
  88. package/dist/ecs/user-data.js +3 -0
  89. package/dist/input/input-manager.d.ts +49 -0
  90. package/dist/input/input-manager.d.ts.map +1 -1
  91. package/dist/input/input-manager.js +127 -0
  92. package/dist/manifest/schema.d.ts +9 -9
  93. package/dist/pixi/authoring.d.ts.map +1 -1
  94. package/dist/pixi/authoring.js +220 -1
  95. package/dist/pixi/ingest.d.ts +2 -1
  96. package/dist/pixi/ingest.d.ts.map +1 -1
  97. package/dist/pixi/ingest.js +4 -2
  98. package/dist/pixi/scene-capture.d.ts +9 -1
  99. package/dist/pixi/scene-capture.d.ts.map +1 -1
  100. package/dist/pixi/scene-capture.js +9 -6
  101. package/dist/render/particles-factory.d.ts +13 -6
  102. package/dist/render/particles-factory.d.ts.map +1 -1
  103. package/dist/render/particles-factory.js +6 -3
  104. package/dist/runtime/create-runtime.d.ts +23 -46
  105. package/dist/runtime/create-runtime.d.ts.map +1 -1
  106. package/dist/runtime/create-runtime.js +22 -67
  107. package/dist/runtime/game.d.ts +29 -71
  108. package/dist/runtime/game.d.ts.map +1 -1
  109. package/dist/runtime/game.js +15 -54
  110. package/dist/runtime/mount-game.d.ts.map +1 -1
  111. package/dist/runtime/mount-game.js +12 -1
  112. package/dist/runtime/mount-manifest.d.ts.map +1 -1
  113. package/dist/runtime/mount-manifest.js +4 -5
  114. package/dist/runtime/types.d.ts +18 -0
  115. package/dist/runtime/types.d.ts.map +1 -1
  116. package/dist/setup/setup-renderer.d.ts +3 -4
  117. package/dist/setup/setup-renderer.d.ts.map +1 -1
  118. package/dist/setup/setup-renderer.js +3 -4
  119. package/dist/world3d-react/engine-bridge.d.ts +1 -1
  120. package/dist/world3d-react/engine-bridge.js +1 -1
  121. package/dist/world3d-react/r3f-adapter.d.ts +7 -0
  122. package/dist/world3d-react/r3f-adapter.d.ts.map +1 -1
  123. package/dist/world3d-react/r3f-adapter.js +50 -21
  124. package/dist/world3d-react/r3f-root-factory.d.ts.map +1 -1
  125. package/dist/world3d-react/r3f-root-factory.js +4 -0
  126. package/dist/world3d-react/world-context.d.ts +9 -3
  127. package/dist/world3d-react/world-context.d.ts.map +1 -1
  128. package/dist/world3d-react/world-context.js +5 -18
  129. package/package.json +1 -1
  130. package/schemas/engine-capabilities.json +7 -7
  131. package/src/adapter/adapter-module.ts +407 -50
  132. package/src/adapter/authoring-seam-contract.ts +211 -0
  133. package/src/adapter/authoring.ts +242 -50
  134. package/src/adapter/entrypoint-selection-source.ts +159 -0
  135. package/src/adapter/finders/scenes-from-entrypoint-selection.ts +159 -28
  136. package/src/adapter/first-party-systems.ts +17 -3
  137. package/src/adapter/index.ts +51 -1
  138. package/src/adapter/ingest/contract-system-adapters.ts +26 -30
  139. package/src/adapter/ingest/game-contract-seams.ts +85 -0
  140. package/src/adapter/ingest/game-contract.ts +9 -4
  141. package/src/adapter/ingest/merge-debug-adapters.ts +193 -0
  142. package/src/adapter/ingest/observation-debug-adapter.ts +158 -0
  143. package/src/adapter/ingest/scene-capture.ts +126 -23
  144. package/src/adapter/ingest/visible-capture-window.ts +63 -9
  145. package/src/adapter/native-debug-module.ts +307 -0
  146. package/src/adapter/object3d-authoring-subject.ts +50 -0
  147. package/src/adapter/root-adapter.ts +21 -56
  148. package/src/adapter/root-seam-contract.ts +56 -0
  149. package/src/adapter/seam-evidence.ts +336 -0
  150. package/src/adapter/setup-three-root-adapter.ts +4 -6
  151. package/src/adapter/system-adapter.ts +6 -1
  152. package/src/adapter/system-seam-contract.ts +121 -0
  153. package/src/animation/xstate-animation-binding.ts +151 -4
  154. package/src/canvas-react/engine-bridge.ts +6 -6
  155. package/src/canvas-react/index.ts +2 -1
  156. package/src/canvas-react/pixi-react-adapter.tsx +55 -34
  157. package/src/canvas-react/pixi-react-root-factory.tsx +4 -0
  158. package/src/canvas-react/world-context.ts +26 -101
  159. package/src/ecs/user-data.ts +5 -0
  160. package/src/input/input-manager.ts +122 -0
  161. package/src/pixi/authoring.ts +236 -1
  162. package/src/pixi/ingest.ts +9 -2
  163. package/src/pixi/scene-capture.ts +20 -5
  164. package/src/render/particles-factory.ts +16 -6
  165. package/src/runtime/create-runtime.ts +41 -106
  166. package/src/runtime/game.ts +41 -111
  167. package/src/runtime/mount-game.ts +19 -1
  168. package/src/runtime/mount-manifest.ts +4 -5
  169. package/src/runtime/types.ts +22 -0
  170. package/src/setup/setup-renderer.ts +3 -4
  171. package/src/world3d-react/engine-bridge.ts +1 -1
  172. package/src/world3d-react/r3f-adapter.tsx +64 -24
  173. package/src/world3d-react/r3f-root-factory.tsx +4 -0
  174. package/src/world3d-react/world-context.ts +11 -36
@@ -150,6 +150,50 @@ export interface AdapterRegion {
150
150
  * how a declaration slot turns back into a language.
151
151
  */
152
152
  readonly include?: readonly string[];
153
+ /**
154
+ * Surfaces this root mounts BESIDE {@link AdapterRegion.surface}, each with
155
+ * the source files that render on it. Together with `surface` — the manifest
156
+ * root's own adapter, which is always the PRIMARY — this states the root's
157
+ * FULL mounted surface set (decision, 2026-08-16; ARCHITECTURE-CORE §The
158
+ * editor protocol).
159
+ *
160
+ * A root is not always one surface. The shipped case is an R3F game whose
161
+ * `three` root mounts a canvas AND adopts a DOM HUD beside it
162
+ * (`adoptGameDomRoot` already adopts the pair together): its HUD modules
163
+ * render react-dom host elements, and `userData-oid` on a `<div>` is a prop
164
+ * react-dom does not recognize, so the editor must know they are the `dom`
165
+ * half. Before this slot there was nowhere to say so — `id` names the
166
+ * manifest root this region grades, so a second `dom` region for such a root
167
+ * would either name a root the host would try to MOUNT (fabrication, which
168
+ * the anti-shim rule forbids) or name no root at all.
169
+ *
170
+ * Each mount's `include` is REQUIRED and carries the same glob vocabulary as
171
+ * {@link AdapterRegion.include} (`**`, `*`, `?`). A mount with no files would
172
+ * declare a surface without saying which source renders on it, which answers
173
+ * no question any reader asks.
174
+ *
175
+ * READER: the same one — `resolveFileRegion`'s rung 1. A file claimed by a
176
+ * region's own `include` AND by a mount is a contradiction in the game's own
177
+ * declaration and settles nothing, exactly as two regions claiming one file
178
+ * do; it falls through to reach, and failing that to the caller's loud
179
+ * ambiguous path.
180
+ *
181
+ * {@link regionsFromManifestRoots} emits none: the manifest states one
182
+ * adapter per root and NOTHING infers a second surface from source text.
183
+ * Where the declaration and what a file renders disagree, the disagreement is
184
+ * reported as drift (the editor's `OID003`), never resolved by reading bytes.
185
+ */
186
+ readonly mounts?: readonly AdapterRegionMount[];
187
+ }
188
+ /**
189
+ * One ADDITIONAL surface a root mounts, and the source files that render on it.
190
+ * See {@link AdapterRegion.mounts}.
191
+ */
192
+ export interface AdapterRegionMount {
193
+ /** The surface this part of the root mounts on. */
194
+ readonly surface: AdapterSurface;
195
+ /** Project-relative globs (`**`, `*`, `?`) naming the files that render here. */
196
+ readonly include: readonly string[];
153
197
  }
154
198
  /**
155
199
  * How a definition supplies its regions: the RULE `'manifest-roots'` (the
@@ -158,6 +202,19 @@ export interface AdapterRegion {
158
202
  * with novel bindings states outright.
159
203
  */
160
204
  export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
205
+ /**
206
+ * The per-region PARAMETERS the `'manifest-roots'` rule takes — see
207
+ * {@link AdapterDefinition.regionIncludes}. Exactly the two fields of an
208
+ * {@link AdapterRegion} the mechanical derivation cannot produce, because
209
+ * neither is a fact the manifest states: which files a region owns beyond
210
+ * its entry's reach, and which surfaces its root mounts beside its own.
211
+ */
212
+ export interface AdapterRegionOverlay {
213
+ /** See {@link AdapterRegion.include}. */
214
+ readonly include?: readonly string[];
215
+ /** See {@link AdapterRegion.mounts}. */
216
+ readonly mounts?: readonly AdapterRegionMount[];
217
+ }
161
218
  /**
162
219
  * The MECHANICAL derivation behind the `'manifest-roots'` rule: one region per
163
220
  * declared root, its surface and adapter identity read straight off the
@@ -166,13 +223,20 @@ export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
166
223
  *
167
224
  * The per-surface library table below is an ENGINE fact, stated once:
168
225
  *
169
- * | root `adapter` | projector | dialect | anchors |
170
- * |-----------------------|-----------|---------------|------------------------------------|
171
- * | `three` | `three` | `r3f` | source-prop, construction-literal |
172
- * | `canvas` | `pixi` | `pixi-react` | source-prop, construction-literal |
173
- * | `dom` | `dom` | `jsx` | source-prop |
174
- * | `{module,surface}` | (surface) | `null` | live-only |
175
- * | `{ingest,surface}` | (surface) | `null` | live-only |
226
+ * | root `adapter` | projector | dialect | anchors |
227
+ * |-----------------------|-----------|---------------|------------------------------------------------------|
228
+ * | `three` | `three` | `r3f` | source-prop, source-structure, construction-literal |
229
+ * | `canvas` | `pixi` | `pixi-react` | source-prop, source-structure, construction-literal |
230
+ * | `dom` | `dom` | `jsx` | source-prop, source-structure |
231
+ * | `{module,surface}` | (surface) | `null` | live-only |
232
+ * | `{ingest,surface}` | (surface) | `null` | live-only |
233
+ *
234
+ * `source-structure` rides with every first-party dialect because all three
235
+ * write through the SAME structural door (`/__ui-source/struct`) — a region
236
+ * that can rewrite a JSX attribute in a file can rewrite that file's element
237
+ * tree. It is listed separately rather than folded into `source-prop` because
238
+ * they are different doors: a lane could lose one and keep the other, and the
239
+ * matrix has to be able to say so.
176
240
  *
177
241
  * A module/ingest root's truth is the game's own source, which no first-party
178
242
  * dialect writer authors — so it declares `live-only` rather than implying a
@@ -182,8 +246,22 @@ export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
182
246
  * Every derived region carries {@link NATIVE_REGION_BASIS} outright, so the
183
247
  * editor's ground plane READS a declaration on the native path too — the
184
248
  * default is published, never assumed at the read site.
249
+ *
250
+ * It DERIVES no {@link AdapterRegion.include} and no {@link AdapterRegion.mounts},
251
+ * and there is no derivation that could: the manifest states ONE adapter per
252
+ * root and names only its entry, so a root's extra owned files and its second
253
+ * mounted surface are facts only the game can state. It states them as
254
+ * `regionIncludes` PARAMETERS, which this function merges onto the region it
255
+ * derives for that root — the rule stays selected, the parameters are declared
256
+ * (ARCHITECTURE-CORE §The editor protocol, "Declared includes LAYER onto the
257
+ * manifest-roots rule"). A key naming no declared root merges onto nothing;
258
+ * the LOADER reports that, because only it can see both sides.
185
259
  */
186
- export declare function regionsFromManifestRoots(roots: readonly ResolvedAdapterRoot[]): AdapterRegion[];
260
+ export declare function regionsFromManifestRoots(roots: readonly ResolvedAdapterRoot[], regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>): AdapterRegion[];
261
+ /** Region ids an overlay names that no declared root answers to. A typo here
262
+ * would otherwise be a declaration that silently does nothing, which is the
263
+ * failure class the whole declaration lane exists to end. */
264
+ export declare function unmatchedRegionIncludeIds(roots: readonly ResolvedAdapterRoot[], regionIncludes: Readonly<Record<string, AdapterRegionOverlay>>): string[];
187
265
  /**
188
266
  * The rule form of a finder's region targeting: every region the host mounts
189
267
  * from an exported composition (a root with an `entry`) that is not a declared
@@ -242,17 +320,50 @@ export type SceneReach =
242
320
  {
243
321
  readonly kind: 'root-mount';
244
322
  }
245
- /** The entrypoint's own selection table reaches it under `key`. */
323
+ /**
324
+ * The entrypoint's own selection table reaches it under `key`.
325
+ *
326
+ * `active` is the SECOND load-bearing fact about the same slot: the
327
+ * entrypoint indexes its table with one key right now (`scenes[activeScene]`),
328
+ * and that key's composition is literally what mounting the region renders.
329
+ * So an active entry is the region's own standing document — it NAMES that
330
+ * document rather than earning a second one beside it, exactly as
331
+ * `root-mount` does. Absent means "not known to be the one at the slot",
332
+ * which is the honest answer whenever the key cannot be read statically; it
333
+ * is never a guess, and it is per-entry because two regions each have their
334
+ * own slot with its own occupant.
335
+ */
246
336
  | {
247
337
  readonly kind: 'entrypoint-selection';
248
338
  readonly selection: string;
249
339
  readonly key: string;
340
+ readonly active?: boolean;
250
341
  }
251
342
  /** A portable story mounts it in isolation. */
252
343
  | {
253
344
  readonly kind: 'story';
254
345
  readonly storyId: string;
255
346
  }
347
+ /**
348
+ * The RUNNING game's own published scenes contract reaches it, under
349
+ * `sceneId` (`adapter/ingest/game-contract.ts`'s `scenes.list()` ids).
350
+ *
351
+ * This is the LIVE reach: opening it while playing means asking the game to
352
+ * navigate, the way its own buttons do. An authorable entry that also names
353
+ * `source` can independently own an Edit isolation document; reach never
354
+ * decides whether a source composition can be mounted as a piece.
355
+ *
356
+ * A DECLARATION, never an inference: the host does not sniff a mapping
357
+ * between a table entry and a contract id, and it does not assume the two
358
+ * vocabularies coincide. The adapter states which contract id this entry is,
359
+ * and the host validates that id against the game's OWN `list()` at the
360
+ * moment it navigates — so a game that stops publishing the scene refuses by
361
+ * name instead of navigating somewhere else.
362
+ */
363
+ | {
364
+ readonly kind: 'game-contract';
365
+ readonly sceneId: string;
366
+ }
256
367
  /** Declared, with no code path that opens it. */
257
368
  | {
258
369
  readonly kind: 'none';
@@ -285,6 +396,10 @@ export interface SceneEntry {
285
396
  readonly authorable: boolean;
286
397
  readonly reach: SceneReach;
287
398
  readonly source?: SceneSource;
399
+ /** Optional adapter-declared prerequisite run before `source` is constructed
400
+ * in Edit isolation. The export is a zero-argument function; the host never
401
+ * infers setup from neighboring filenames or game globals. */
402
+ readonly isolationSetup?: SceneSource;
288
403
  /** Which finder produced it; absent = the adapter stated it outright. */
289
404
  readonly finder?: FinderName;
290
405
  }
@@ -302,41 +417,98 @@ export interface AdapterSceneTable {
302
417
  */
303
418
  readonly default?: string;
304
419
  }
420
+ /**
421
+ * The two faces a declaration projects onto. They are exactly the two
422
+ * `DebugAdapter` halves (`adapter/system-adapter.ts`): `state` becomes a
423
+ * provider (`providers()` / `state(name)`), `command` becomes a verb
424
+ * (`commands()` / `invoke(name, args)`). There is deliberately no third kind —
425
+ * see {@link OBSERVATION_KIND_REFUSAL}.
426
+ */
427
+ export declare const OBSERVATION_KINDS: readonly ["command", "state"];
428
+ export type ObservationKind = (typeof OBSERVATION_KINDS)[number];
305
429
  /**
306
430
  * One statically declared observation slot. Declaring a slot and ANSWERING it
307
431
  * live are separate facts (the two-state rule): a slot declared here whose
308
- * `answer` throws or whose game never booted reads as broken, never as
309
- * "the game has none".
432
+ * `answer` throws, whose `answer` is absent, or whose game never booted reads as
433
+ * broken, never as "the game has none". The projector
434
+ * (`adapter/ingest/observation-debug-adapter.ts`) keeps that distinction: an
435
+ * unanswerable slot is still LISTED, and refuses by name when read.
310
436
  */
311
437
  export interface ObservationDeclaration {
312
438
  readonly id: string;
313
- readonly kind: 'system' | 'command' | 'state';
439
+ readonly kind: ObservationKind;
440
+ readonly description?: string | undefined;
441
+ /** Command execution side; omitted means a local app-owned command. */
442
+ readonly locus?: 'client' | 'server' | undefined;
314
443
  /**
315
444
  * Lazily evaluated against the mounted game. The field may be a closure; the
316
445
  * TABLE around it stays statically readable, which is the whole discipline.
446
+ *
447
+ * What `game` IS is the host's to hand over and is stated at the projector:
448
+ * for an ingest mount it is the REALM the game's own modules ran in, because
449
+ * a foreign game's public handles are the only thing the host can honestly
450
+ * pass (`observation-debug-adapter.ts`).
317
451
  */
318
- readonly answer?: (game: unknown) => unknown;
452
+ readonly answer?: (game: unknown, ...args: unknown[]) => unknown;
453
+ }
454
+ /** The action value shapes the session input door already speaks. */
455
+ export declare const ADAPTER_INPUT_VALUE_TYPES: readonly ["digital", "scalar", "vector2", "pointerDelta", "pointerPosition"];
456
+ export type AdapterInputValueType = (typeof ADAPTER_INPUT_VALUE_TYPES)[number];
457
+ export type AdapterInputValue = boolean | number | {
458
+ readonly x: number;
459
+ readonly y: number;
460
+ };
461
+ /** One action in an app-owned input store. */
462
+ export interface AdapterInputAction {
463
+ readonly name: string;
464
+ readonly valueType: AdapterInputValueType;
465
+ }
466
+ /**
467
+ * Adapter-side binding from the universal session input door to a game's
468
+ * ordinary input store. The game owns both its physical-device listeners and
469
+ * its state; this table only tells the host how to drive that same state for a
470
+ * bot or live REPL session. No component imports this contract.
471
+ */
472
+ export interface AdapterInputBinding {
473
+ /** Manifest root whose native scheduler consumes these actions. */
474
+ readonly root: string;
475
+ /** Current action vocabulary. A closure permits an app-owned dynamic map. */
476
+ readonly actions: (game: unknown) => readonly AdapterInputAction[];
477
+ /** Apply one action through the app's own input-store write path. */
478
+ readonly set: (game: unknown, action: string, value: AdapterInputValue) => void;
479
+ /** Release every app-owned virtual action. */
480
+ readonly clear: (game: unknown) => void;
319
481
  }
320
482
  /** The adapter module's default export, after {@link defineAdapter}. */
321
483
  export interface AdapterDefinition {
322
484
  readonly regions: RegionBinding;
485
+ /**
486
+ * Per-region parameters for the `'manifest-roots'` RULE, keyed by manifest
487
+ * root id — the `include` globs and `mounts` surfaces the mechanical
488
+ * derivation cannot produce. {@link regionsFromManifestRoots} merges them;
489
+ * an explicit `regions` LIST carries its own and rejects these by name.
490
+ */
491
+ readonly regionIncludes: Readonly<Record<string, AdapterRegionOverlay>>;
323
492
  readonly scenes: AdapterSceneTable;
324
493
  readonly observation: readonly ObservationDeclaration[];
494
+ readonly input?: AdapterInputBinding | undefined;
325
495
  }
326
496
  /** What a game writes. Every field optional — the near-empty adapter is the
327
497
  * first-party case, and an adapter's SIZE measures the game's distance from
328
498
  * native. */
329
499
  export interface AdapterDefinitionInput {
330
500
  readonly regions?: RegionBinding;
501
+ readonly regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>;
331
502
  readonly scenes?: AdapterSceneTable;
332
503
  readonly observation?: readonly ObservationDeclaration[];
504
+ readonly input?: AdapterInputBinding | undefined;
333
505
  }
334
506
  export declare const AdapterDefinitionSchema: z.ZodObject<{
335
507
  regions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"manifest-roots">, z.ZodArray<z.ZodObject<{
336
508
  id: z.ZodString;
337
509
  surface: z.ZodEnum<{
338
- canvas: "canvas";
339
510
  three: "three";
511
+ canvas: "canvas";
340
512
  dom: "dom";
341
513
  }>;
342
514
  dev: z.ZodBoolean;
@@ -348,6 +520,7 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
348
520
  dialect: z.ZodNullable<z.ZodString>;
349
521
  anchors: z.ZodArray<z.ZodEnum<{
350
522
  "source-prop": "source-prop";
523
+ "source-structure": "source-structure";
351
524
  "construction-literal": "construction-literal";
352
525
  "physics-binding": "physics-binding";
353
526
  "data-record": "data-record";
@@ -361,7 +534,26 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
361
534
  groundHeight: z.ZodNumber;
362
535
  }, z.core.$strict>>;
363
536
  include: z.ZodOptional<z.ZodArray<z.ZodString>>;
537
+ mounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
538
+ surface: z.ZodEnum<{
539
+ three: "three";
540
+ canvas: "canvas";
541
+ dom: "dom";
542
+ }>;
543
+ include: z.ZodArray<z.ZodString>;
544
+ }, z.core.$strict>>>;
364
545
  }, z.core.$strict>>]>>;
546
+ regionIncludes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
547
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
548
+ mounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
549
+ surface: z.ZodEnum<{
550
+ three: "three";
551
+ canvas: "canvas";
552
+ dom: "dom";
553
+ }>;
554
+ include: z.ZodArray<z.ZodString>;
555
+ }, z.core.$strict>>>;
556
+ }, z.core.$strict>>>;
365
557
  scenes: z.ZodOptional<z.ZodObject<{
366
558
  entries: z.ZodOptional<z.ZodArray<z.ZodObject<{
367
559
  id: z.ZodString;
@@ -378,9 +570,13 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
378
570
  kind: z.ZodLiteral<"entrypoint-selection">;
379
571
  selection: z.ZodString;
380
572
  key: z.ZodString;
573
+ active: z.ZodOptional<z.ZodBoolean>;
381
574
  }, z.core.$strict>, z.ZodObject<{
382
575
  kind: z.ZodLiteral<"story">;
383
576
  storyId: z.ZodString;
577
+ }, z.core.$strict>, z.ZodObject<{
578
+ kind: z.ZodLiteral<"game-contract">;
579
+ sceneId: z.ZodString;
384
580
  }, z.core.$strict>, z.ZodObject<{
385
581
  kind: z.ZodLiteral<"none">;
386
582
  reason: z.ZodString;
@@ -389,6 +585,10 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
389
585
  path: z.ZodString;
390
586
  export: z.ZodOptional<z.ZodString>;
391
587
  }, z.core.$strict>>;
588
+ isolationSetup: z.ZodOptional<z.ZodObject<{
589
+ path: z.ZodString;
590
+ export: z.ZodOptional<z.ZodString>;
591
+ }, z.core.$strict>>;
392
592
  finder: z.ZodOptional<z.ZodEnum<{
393
593
  scenesFromEntrypointSelection: "scenesFromEntrypointSelection";
394
594
  prefabsFromStories: "prefabsFromStories";
@@ -408,10 +608,20 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
408
608
  kind: z.ZodEnum<{
409
609
  command: "command";
410
610
  state: "state";
411
- system: "system";
412
611
  }>;
612
+ description: z.ZodOptional<z.ZodString>;
613
+ locus: z.ZodOptional<z.ZodEnum<{
614
+ server: "server";
615
+ client: "client";
616
+ }>>;
413
617
  answer: z.ZodOptional<z.ZodCustom<(game: unknown) => unknown, (game: unknown) => unknown>>;
414
618
  }, z.core.$strict>>>;
619
+ input: z.ZodOptional<z.ZodObject<{
620
+ root: z.ZodString;
621
+ actions: z.ZodCustom<(game: unknown) => readonly AdapterInputAction[], (game: unknown) => readonly AdapterInputAction[]>;
622
+ set: z.ZodCustom<(game: unknown, action: string, value: AdapterInputValue) => void, (game: unknown, action: string, value: AdapterInputValue) => void>;
623
+ clear: z.ZodCustom<(game: unknown) => void, (game: unknown) => void>;
624
+ }, z.core.$strict>>;
415
625
  }, z.core.$strict>;
416
626
  /**
417
627
  * Validate and freeze a game's binding table.
@@ -427,8 +637,9 @@ export declare function defineAdapter(input?: AdapterDefinitionInput): AdapterDe
427
637
  export interface NativeAdapterOptions {
428
638
  /** Scene-table entries this game states outright, beside what the finders find. */
429
639
  readonly scenes?: readonly SceneEntry[];
430
- /** Observation slots this game declares. */
431
- readonly observation?: readonly ObservationDeclaration[];
640
+ /** Per-region `include`/`mounts` parameters for the derivation — see
641
+ * {@link AdapterDefinition.regionIncludes}. */
642
+ readonly regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>;
432
643
  }
433
644
  /**
434
645
  * THE NATIVE DEFAULT — regions derived mechanically from the manifest's
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-module.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAMvE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mCAAoC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAGhC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AA6CD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,SAAS,aAAa,EAAE,CAAC;AAOxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,aAAa,EAAE,CAuC/F;AAMD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,4BAA4B,CAAC;IAC1E;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,mCAAmC,GAAG,wBAAwB,CAAC;AAE7F,+EAA+E;AAC/E,eAAO,MAAM,YAAY,kEAAmE,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAoCvD;;;;GAIG;AACH,MAAM,MAAM,UAAU;AACpB,kFAAkF;AAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACjC,mEAAmE;GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAC7F,+CAA+C;GAC7C;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD,iDAAiD;GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAevD,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B;AAeD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CAC9C;AAkBD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD;AAED;;cAEc;AACd,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA3Bf,OAAO,KAAK,OAAO,SAAnB,OAAO,KAAK,OAAO;;kBAiC7B,CAAC;AAEZ;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,sBAA2B,GAAG,iBAAiB,CAcnF;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,iBAAiB,CAYnF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAQxE"}
1
+ {"version":3,"file":"adapter-module.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAMvE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mCAAoC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAGhC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAoED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,SAAS,aAAa,EAAE,CAAC;AAOxE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AAuDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,cAAc,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAM,GAClE,aAAa,EAAE,CAKjB;AAYD;;8DAE8D;AAC9D,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAC7D,MAAM,EAAE,CAGV;AA8CD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,4BAA4B,CAAC;IAC1E;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,mCAAmC,GAAG,wBAAwB,CAAC;AAE7F,+EAA+E;AAC/E,eAAO,MAAM,YAAY,kEAAmE,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAoCvD;;;;GAIG;AACH,MAAM,MAAM,UAAU;AACpB,kFAAkF;AAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACjC;;;;;;;;;;;;GAYG;GACD;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AACH,+CAA+C;GAC7C;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD;;;;;;;;;;;;;;;GAeG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC9D,iDAAiD;GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAiBvD,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;mEAE+D;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;IACtC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B;AAgBD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,+BAAgC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAmBjE;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAClE;AAwBD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,8EAM5B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,kBAAkB,EAAE,CAAC;IACnE,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChF,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAqBD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAClD;AAED;;cAEc;AACd,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAClD;AAcD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA1Gf,OAAO,KAAK,OAAO,SAAnB,OAAO,KAAK,OAAO;;;;oCA0Cb,OAAO,KAAK,SAAS,kBAAkB,EAAE,SAAzC,OAAO,KAAK,SAAS,kBAAkB,EAAE;gCAE7C,OAAO,UAAU,MAAM,SAAS,iBAAiB,KAAK,IAAI,SAA1D,OAAO,UAAU,MAAM,SAAS,iBAAiB,KAAK,IAAI;kCAExD,OAAO,KAAK,IAAI,SAAhB,OAAO,KAAK,IAAI;;kBA+EtC,CAAC;AAEJ;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,sBAA2B,GAAG,iBAAiB,CAgBnF;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC;oDACgD;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CAC1E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,iBAAiB,CAYnF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAQxE"}