@zylem/game-lib 0.7.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +15 -1
  2. package/dist/actions.d.ts +71 -8
  3. package/dist/actions.js +1 -1
  4. package/dist/api/game-lib.api.json +55350 -0
  5. package/dist/api/game-lib.api.md +4608 -0
  6. package/dist/api/game-lib.d.ts +8447 -0
  7. package/dist/api/game-lib.typedoc.json +352456 -0
  8. package/dist/audio.js +1 -1
  9. package/dist/{base-node-life-cycle-CnJ-7zX-.d.ts → base-node-life-cycle-BK9xebT9.d.ts} +18 -4
  10. package/dist/behavior.d.ts +2 -3
  11. package/dist/behavior.js +1 -1
  12. package/dist/blueprints-TbGY-h53.d.ts +162 -0
  13. package/dist/chunk-3PRBSSTS.js +24 -0
  14. package/dist/chunk-47DG7I7M.js +1 -0
  15. package/dist/chunk-7GYFZKK7.js +1 -0
  16. package/dist/chunk-7QF6YTEZ.js +1 -0
  17. package/dist/chunk-7WRQ2UAN.js +1 -0
  18. package/dist/chunk-BH53MBAZ.js +1 -0
  19. package/dist/chunk-BIGH6D34.js +0 -0
  20. package/dist/chunk-CD7ZOZ35.js +1 -0
  21. package/dist/chunk-CFVRRRZZ.js +1 -0
  22. package/dist/chunk-CM5YRNBJ.js +19 -0
  23. package/dist/chunk-COM6HJ2L.js +1 -0
  24. package/dist/chunk-D2PATZCC.js +1 -0
  25. package/dist/chunk-DFLI7ICU.js +0 -0
  26. package/dist/chunk-EVYHPR3J.js +1 -0
  27. package/dist/chunk-IPWUDOV5.js +1 -0
  28. package/dist/chunk-JNFFTNMH.js +1 -0
  29. package/dist/chunk-JQKS42G4.js +1 -0
  30. package/dist/chunk-KVSJE4XD.js +1 -0
  31. package/dist/chunk-MZZCDXFB.js +1 -0
  32. package/dist/chunk-ORIDWL3T.js +0 -0
  33. package/dist/{chunk-RXDTAWI2.js → chunk-PCFF4LLO.js} +1 -1
  34. package/dist/chunk-QB3NL7VQ.js +1 -0
  35. package/dist/chunk-TAUWDQZF.js +9 -0
  36. package/dist/chunk-UG22Z42P.js +1 -0
  37. package/dist/chunk-VS2D4B3W.js +1 -0
  38. package/dist/chunk-WQ3WMMZD.js +1 -0
  39. package/dist/chunk-XK63E4SX.js +1 -0
  40. package/dist/chunk-YAOXFYOD.js +1 -0
  41. package/dist/chunk-ZRT3ZQVH.js +1 -0
  42. package/dist/collision-builder-B_tm8OVy.d.ts +49 -0
  43. package/dist/core.d.ts +45 -30
  44. package/dist/core.js +1 -24
  45. package/dist/debug-state-DRoeasG2.d.ts +17 -0
  46. package/dist/debug.d.ts +71 -19
  47. package/dist/debug.js +1 -1
  48. package/dist/{default-controls-BGc61yYl.d.ts → default-controls-CAKJ5zlo.d.ts} +3 -3
  49. package/dist/entity-B9yZeBm4.d.ts +34 -0
  50. package/dist/{entity-DNkYKfdp.d.ts → entity-BGEq1yfC.d.ts} +91 -444
  51. package/dist/{entity-type-map-C94h2TDW.d.ts → entity-type-map-CW6RHQkx.d.ts} +153 -6
  52. package/dist/entity.d.ts +15 -10
  53. package/dist/entity.js +1 -1
  54. package/dist/events.d.ts +10 -1
  55. package/dist/events.js +1 -1
  56. package/dist/{game-Cuj5gy7U.d.ts → game-DbqBQiFC.d.ts} +460 -135
  57. package/dist/game-default-6AZZCNST.js +1 -0
  58. package/dist/{game-interfaces-tfpM5NBk.d.ts → game-interfaces-vF5sRi1n.d.ts} +8 -2
  59. package/dist/globals.d.ts +12 -1
  60. package/dist/globals.js +1 -1
  61. package/dist/graphics.d.ts +16 -46
  62. package/dist/graphics.js +1 -1
  63. package/dist/input-ui.d.ts +5 -4
  64. package/dist/input-ui.js +1 -1
  65. package/dist/input.d.ts +48 -4
  66. package/dist/input.js +1 -1
  67. package/dist/{material-Wz83vTTp.d.ts → material-DbSuZBbP.d.ts} +25 -50
  68. package/dist/public.d.ts +38 -0
  69. package/dist/public.js +1 -0
  70. package/dist/runtime.d.ts +7 -381
  71. package/dist/runtime.js +1 -1
  72. package/dist/schema/entity.schema.json +244 -0
  73. package/dist/schema/game-config.schema.json +643 -0
  74. package/dist/schema/input-config.schema.json +517 -0
  75. package/dist/schema/stage-config.schema.json +93 -0
  76. package/dist/schema/stage.schema.json +271 -0
  77. package/dist/schema.d.ts +550 -0
  78. package/dist/schema.js +1 -0
  79. package/dist/stage-transition-CmGpV4tc.d.ts +46 -0
  80. package/dist/vector-DN6zlPoE.d.ts +161 -0
  81. package/dist/web-components.d.ts +15 -12
  82. package/dist/web-components.js +1 -9
  83. package/dist/{zylem-stage-runtime-Cs-UDEVU.d.ts → zylem-camera-Du2UPW9O.d.ts} +74 -264
  84. package/package.json +28 -20
  85. package/dist/chunk-73VZQZUL.js +0 -1
  86. package/dist/chunk-A34ZG3L4.js +0 -1
  87. package/dist/chunk-CDPY4VOQ.js +0 -1
  88. package/dist/chunk-DR6XXZE7.js +0 -19
  89. package/dist/chunk-FM5TBEPO.js +0 -1
  90. package/dist/chunk-G2IIMSUH.js +0 -1
  91. package/dist/chunk-MSC2BEO5.js +0 -1
  92. package/dist/chunk-NIH5CONO.js +0 -1
  93. package/dist/chunk-ONWXGBWB.js +0 -1
  94. package/dist/chunk-QEDQDR27.js +0 -1
  95. package/dist/chunk-WKHW2QO2.js +0 -1
  96. package/dist/chunk-YHKXQ2ZN.js +0 -1
  97. package/dist/game-default-PZLLHYL7.js +0 -1
  98. package/dist/world-C9zdyl5d.d.ts +0 -103
@@ -0,0 +1,550 @@
1
+ export { f as EntityBlueprint, j as EntityJson, d as EntityJsonSchema, E as EntitySchema, i as LineEntityData, L as LineEntityDataSchema, h as SpriteEntityData, b as SpriteEntityDataSchema, S as StageBlueprint, k as StageJson, e as StageJsonSchema, c as StageSchema, g as TextEntityData, T as TextEntityDataSchema, V as Vector2Schema, a as Vector3TupleSchema } from './blueprints-TbGY-h53.js';
2
+ import * as _sinclair_typebox from '@sinclair/typebox';
3
+ import { Static } from '@sinclair/typebox';
4
+
5
+ /** Keyboard action → key-code list mapping. */
6
+ declare const KeyboardMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>;
7
+ /** Mouse action → input-property list mapping. */
8
+ declare const MouseMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>;
9
+ /** CSS-like style bag for virtual touch controls. */
10
+ declare const VirtualTouchStyleSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
11
+ /** Absolute/relative position for a virtual touch control. */
12
+ declare const VirtualTouchPositionSchema: _sinclair_typebox.TObject<{
13
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
14
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
15
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
16
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
17
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
18
+ }>;
19
+ /** Virtual touch button configuration. */
20
+ declare const VirtualTouchButtonConfigSchema: _sinclair_typebox.TObject<{
21
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
22
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
23
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
24
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
25
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
26
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
27
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
28
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
29
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
30
+ }>>;
31
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
32
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
33
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
34
+ }>;
35
+ /** Virtual touch joystick configuration. */
36
+ declare const VirtualTouchJoystickConfigSchema: _sinclair_typebox.TObject<{
37
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
38
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
39
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
40
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
41
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
42
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
43
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
44
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
45
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
46
+ }>>;
47
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
48
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
49
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
50
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
51
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
52
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
53
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
54
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
55
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
56
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
57
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
58
+ }>>;
59
+ }>;
60
+ /**
61
+ * Virtual touch buttons map (slot → config or `false` to disable).
62
+ * Uses a string-keyed record so published JSON Schema stays compact
63
+ * (explicit per-slot properties would inline the button schema 14×).
64
+ */
65
+ declare const VirtualTouchButtonsConfigSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
66
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
67
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
68
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
69
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
70
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
71
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
72
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
73
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
74
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
75
+ }>>;
76
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
77
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
78
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
79
+ }>, _sinclair_typebox.TLiteral<false>]>>;
80
+ /** Virtual touch joysticks map. */
81
+ declare const VirtualTouchJoysticksConfigSchema: _sinclair_typebox.TObject<{
82
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
83
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
84
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
85
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
86
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
87
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
88
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
89
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
90
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
91
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
92
+ }>>;
93
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
94
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
95
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
96
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
97
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
98
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
99
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
100
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
101
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
102
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
103
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
104
+ }>>;
105
+ }>, _sinclair_typebox.TLiteral<false>]>>;
106
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
107
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
108
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
109
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
110
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
111
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
112
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
113
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
114
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
115
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
116
+ }>>;
117
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
118
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
119
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
120
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
121
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
122
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
123
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
124
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
125
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
126
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
127
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
128
+ }>>;
129
+ }>, _sinclair_typebox.TLiteral<false>]>>;
130
+ }>;
131
+ /** Virtual touch input configuration. */
132
+ declare const VirtualTouchConfigSchema: _sinclair_typebox.TObject<{
133
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
134
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
135
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
136
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
137
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
138
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
139
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
140
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
141
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
142
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
143
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
144
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
145
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
146
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
147
+ }>>;
148
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
149
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
150
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
151
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
152
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
153
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
154
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
155
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
156
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
157
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
158
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
159
+ }>>;
160
+ }>, _sinclair_typebox.TLiteral<false>]>>;
161
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
162
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
163
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
164
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
165
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
166
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
167
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
168
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
169
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
170
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
171
+ }>>;
172
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
173
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
174
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
175
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
176
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
177
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
178
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
179
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
180
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
181
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
182
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
183
+ }>>;
184
+ }>, _sinclair_typebox.TLiteral<false>]>>;
185
+ }>, _sinclair_typebox.TLiteral<false>]>>;
186
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
187
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
188
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
189
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
190
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
191
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
192
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
193
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
194
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
195
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
196
+ }>>;
197
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
198
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
199
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
200
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
201
+ }>;
202
+ /** Mouse input configuration. */
203
+ declare const MouseConfigSchema: _sinclair_typebox.TObject<{
204
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
205
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
206
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
207
+ lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
208
+ maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
209
+ lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
210
+ }>;
211
+ /** Per-player input configuration. */
212
+ declare const GameInputPlayerConfigSchema: _sinclair_typebox.TObject<{
213
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
214
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
215
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
216
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
217
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
218
+ lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
219
+ maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
220
+ lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
221
+ }>>;
222
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
223
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
224
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
225
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
226
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
227
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
228
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
229
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
230
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
231
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
232
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
233
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
234
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
235
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
236
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
237
+ }>>;
238
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
239
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
240
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
241
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
242
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
243
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
244
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
245
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
246
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
247
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
248
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
249
+ }>>;
250
+ }>, _sinclair_typebox.TLiteral<false>]>>;
251
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
252
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
253
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
254
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
255
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
256
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
257
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
258
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
259
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
260
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
261
+ }>>;
262
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
263
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
264
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
265
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
266
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
267
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
268
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
269
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
270
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
271
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
272
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
273
+ }>>;
274
+ }>, _sinclair_typebox.TLiteral<false>]>>;
275
+ }>, _sinclair_typebox.TLiteral<false>]>>;
276
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
277
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
278
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
279
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
280
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
281
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
282
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
283
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
284
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
285
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
286
+ }>>;
287
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
288
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
289
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
290
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
291
+ }>>;
292
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
293
+ }>;
294
+ /**
295
+ * Top-level game input configuration (p1–p8).
296
+ * Uses a string-keyed record so published JSON Schema does not inline the
297
+ * player config eight times.
298
+ */
299
+ declare const GameInputConfigSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TObject<{
300
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
301
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
302
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
303
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
304
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
305
+ lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
306
+ maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
307
+ lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
308
+ }>>;
309
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
310
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
311
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
312
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
313
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
314
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
315
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
316
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
317
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
318
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
319
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
320
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
321
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
322
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
323
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
324
+ }>>;
325
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
326
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
327
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
328
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
329
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
330
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
331
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
332
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
333
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
334
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
335
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
336
+ }>>;
337
+ }>, _sinclair_typebox.TLiteral<false>]>>;
338
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
339
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
340
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
341
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
342
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
343
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
344
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
345
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
346
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
347
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
348
+ }>>;
349
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
350
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
351
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
352
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
353
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
354
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
355
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
356
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
357
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
358
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
359
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
360
+ }>>;
361
+ }>, _sinclair_typebox.TLiteral<false>]>>;
362
+ }>, _sinclair_typebox.TLiteral<false>]>>;
363
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
364
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
365
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
366
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
367
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
368
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
369
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
370
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
371
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
372
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
373
+ }>>;
374
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
375
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
376
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
377
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
378
+ }>>;
379
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
380
+ }>>;
381
+ type GameInputConfigJson = Static<typeof GameInputConfigSchema>;
382
+
383
+ /** RGB(A) color as a CSS string or numeric hex. */
384
+ declare const ColorJsonSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>;
385
+ /** Gravity as `[x, y, z]` components (JSON-serializable). */
386
+ declare const Vec3ComponentsSchema: _sinclair_typebox.TTuple<[_sinclair_typebox.TNumber, _sinclair_typebox.TNumber, _sinclair_typebox.TNumber]>;
387
+ /** GLTF loader options that are JSON-serializable. */
388
+ declare const StageGLTFAssetLoaderConfigSchema: _sinclair_typebox.TObject<{
389
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
390
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
391
+ }>;
392
+ /** Stage asset loader configuration (JSON subset). */
393
+ declare const StageAssetLoaderConfigSchema: _sinclair_typebox.TObject<{
394
+ gltf: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
395
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
396
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
397
+ }>>;
398
+ }>;
399
+ /**
400
+ * JSON-serializable subset of {@link StageConfigLike}.
401
+ * Excludes live objects (shaders, runtime adapters, post-effects, wasm builders).
402
+ */
403
+ declare const StageConfigJsonSchema: _sinclair_typebox.TObject<{
404
+ inputs: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
405
+ backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
406
+ backgroundImage: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>>;
407
+ gravity: _sinclair_typebox.TOptional<_sinclair_typebox.TTuple<[_sinclair_typebox.TNumber, _sinclair_typebox.TNumber, _sinclair_typebox.TNumber]>>;
408
+ variables: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnknown>>;
409
+ physicsRate: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
410
+ assetLoaders: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
411
+ gltf: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
412
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
413
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
414
+ }>>;
415
+ }>>;
416
+ defaultLighting: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
417
+ }>;
418
+ type StageConfigJson = Static<typeof StageConfigJsonSchema>;
419
+
420
+ /** Resolution as `"WxH"`, a retro preset name, `{ width, height }`, or `"native"`. */
421
+ declare const ResolutionInputSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
422
+ width: _sinclair_typebox.TNumber;
423
+ height: _sinclair_typebox.TNumber;
424
+ }>, _sinclair_typebox.TLiteral<"native">]>;
425
+ /** Per-device (e.g. mobile) aspect / resolution overrides. */
426
+ declare const GameDeviceConfigJsonSchema: _sinclair_typebox.TObject<{
427
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
428
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
429
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
430
+ width: _sinclair_typebox.TNumber;
431
+ height: _sinclair_typebox.TNumber;
432
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
433
+ /** `true` enables default touch controls; object form is editor-extended later. */
434
+ controls: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
435
+ }>;
436
+ /**
437
+ * JSON-serializable subset of {@link GameConfigLike}.
438
+ * Excludes DOM nodes (`container`, `canvas`) and live stage instances.
439
+ */
440
+ declare const GameConfigJsonSchema: _sinclair_typebox.TObject<{
441
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
442
+ globals: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnknown>>;
443
+ debug: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
444
+ time: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
445
+ input: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TObject<{
446
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
447
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
448
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
449
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
450
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
451
+ lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
452
+ maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
453
+ lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
454
+ }>>;
455
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
456
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
457
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
458
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
459
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
460
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
461
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
462
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
463
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
464
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
465
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
466
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
467
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
468
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
469
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
470
+ }>>;
471
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
472
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
473
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
474
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
475
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
476
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
477
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
478
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
479
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
480
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
481
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
482
+ }>>;
483
+ }>, _sinclair_typebox.TLiteral<false>]>>;
484
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
485
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
486
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
487
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
488
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
489
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
490
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
491
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
492
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
493
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
494
+ }>>;
495
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
496
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
497
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
498
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
499
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
500
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
501
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
502
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
503
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
504
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
505
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
506
+ }>>;
507
+ }>, _sinclair_typebox.TLiteral<false>]>>;
508
+ }>, _sinclair_typebox.TLiteral<false>]>>;
509
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
510
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
511
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
512
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
513
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
514
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
515
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
516
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
517
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
518
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
519
+ }>>;
520
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
521
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
522
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
523
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
524
+ }>>;
525
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
526
+ }>>>;
527
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
528
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
529
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
530
+ width: _sinclair_typebox.TNumber;
531
+ height: _sinclair_typebox.TNumber;
532
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
533
+ mobile: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
534
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
535
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
536
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
537
+ width: _sinclair_typebox.TNumber;
538
+ height: _sinclair_typebox.TNumber;
539
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
540
+ /** `true` enables default touch controls; object form is editor-extended later. */
541
+ controls: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
542
+ }>>;
543
+ fullscreen: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
544
+ bodyBackground: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
545
+ containerId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
546
+ }>;
547
+ type GameConfigJson = Static<typeof GameConfigJsonSchema>;
548
+ type GameDeviceConfigJson = Static<typeof GameDeviceConfigJsonSchema>;
549
+
550
+ export { ColorJsonSchema, type GameConfigJson, GameConfigJsonSchema, type GameDeviceConfigJson, GameDeviceConfigJsonSchema, type GameInputConfigJson, GameInputConfigSchema, GameInputPlayerConfigSchema, KeyboardMappingSchema, MouseConfigSchema, MouseMappingSchema, ResolutionInputSchema, StageAssetLoaderConfigSchema, type StageConfigJson, StageConfigJsonSchema, StageGLTFAssetLoaderConfigSchema, Vec3ComponentsSchema, VirtualTouchButtonConfigSchema, VirtualTouchButtonsConfigSchema, VirtualTouchConfigSchema, VirtualTouchJoystickConfigSchema, VirtualTouchJoysticksConfigSchema, VirtualTouchPositionSchema, VirtualTouchStyleSchema };
package/dist/schema.js ADDED
@@ -0,0 +1 @@
1
+ import{A,B,C,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-JNFFTNMH.js";export{v as ColorJsonSchema,h as EntityJsonSchema,b as EntitySchema,C as GameConfigJsonSchema,B as GameDeviceConfigJsonSchema,u as GameInputConfigSchema,t as GameInputPlayerConfigSchema,j as KeyboardMappingSchema,f as LineEntityDataSchema,s as MouseConfigSchema,k as MouseMappingSchema,A as ResolutionInputSchema,g as SpriteEntityDataSchema,y as StageAssetLoaderConfigSchema,z as StageConfigJsonSchema,x as StageGLTFAssetLoaderConfigSchema,i as StageJsonSchema,c as StageSchema,d as TextEntityDataSchema,w as Vec3ComponentsSchema,a as Vector2Schema,e as Vector3TupleSchema,n as VirtualTouchButtonConfigSchema,p as VirtualTouchButtonsConfigSchema,r as VirtualTouchConfigSchema,o as VirtualTouchJoystickConfigSchema,q as VirtualTouchJoysticksConfigSchema,m as VirtualTouchPositionSchema,l as VirtualTouchStyleSchema};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A stage transition shader: receives the outgoing frame node (`fromNode`),
3
+ * the incoming frame node (`toNode`), and a float `progress` uniform node
4
+ * (0 = fully outgoing, 1 = fully incoming); returns the blended color node.
5
+ *
6
+ * Structurally compatible with `ZylemTransitionShader` from `@zylem/shaders`.
7
+ */
8
+ type ZylemTransitionShader = (ctx: {
9
+ fromNode: any;
10
+ toNode: any;
11
+ progress: any;
12
+ }) => any;
13
+ /** Named easing curves for transition progress. */
14
+ type StageTransitionEasing = 'linear' | 'easeInOut';
15
+ /**
16
+ * Configuration for a stage transition, passed as
17
+ * `game.nextStage({ transition: { ... } })`. All fields are optional;
18
+ * `{ transition: {} }` yields a 0.8s eased crossfade.
19
+ */
20
+ interface StageTransitionConfig {
21
+ /** Transition length in seconds (default `0.8`). */
22
+ duration?: number;
23
+ /**
24
+ * The blend shader (e.g. `createStageTransition({ pattern: 'noise' }).shader`
25
+ * from `@zylem/shaders`, or a `ZylemStageTransition` object directly).
26
+ * Defaults to a plain crossfade.
27
+ */
28
+ shader?: ZylemTransitionShader | {
29
+ shader: ZylemTransitionShader;
30
+ };
31
+ /** Easing applied to progress (default `'easeInOut'`). */
32
+ easing?: StageTransitionEasing | ((t: number) => number);
33
+ /** Invoked once the transition completes. */
34
+ onComplete?: () => void;
35
+ }
36
+ /** `StageTransitionConfig` with all defaults applied. */
37
+ interface ResolvedStageTransition {
38
+ duration: number;
39
+ shader: ZylemTransitionShader;
40
+ easing: (t: number) => number;
41
+ onComplete?: () => void;
42
+ }
43
+ /** Default blend: plain crossfade between the two frames. */
44
+ declare const crossfadeTransitionShader: ZylemTransitionShader;
45
+
46
+ export { type ResolvedStageTransition as R, type StageTransitionConfig as S, type ZylemTransitionShader as Z, type StageTransitionEasing as a, crossfadeTransitionShader as c };