@overlayed/app 1.3.14 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sand.d.ts ADDED
@@ -0,0 +1,1423 @@
1
+ //#region ../utils/dist/index.d.ts
2
+ //#endregion
3
+ //#region src/brand.d.ts
4
+ /**
5
+ * A `Brand` is a type that takes at minimum two type parameters. Given a base
6
+ * type `Base` and some unique and arbitrary branding type `Branding`, it
7
+ * produces a type based on but distinct from `Base`. The resulting branded
8
+ * type is not directly assignable from the base type, and not mutually
9
+ * assignable with another branded type derived from the same base type.
10
+ *
11
+ * Take care that the branding type is unique. Two branded types that share the
12
+ * same base type and branding type are considered the same type! There are two
13
+ * ways to avoid this.
14
+ *
15
+ * The first way is to supply a third type parameter, `ReservedName`, with a
16
+ * string literal type that is not `__type__`, which is the default.
17
+ *
18
+ * The second way is to define a branded type in terms of its surrounding
19
+ * interface, thereby forming a recursive type. This is possible because there
20
+ * are no constraints on what the branding type must be. It does not have to
21
+ * be a string literal type, even though it often is.
22
+ *
23
+ * @example
24
+ * ```
25
+ * type Path = Brand<string, 'path'>;
26
+ * type UserId = Brand<number, 'user'>;
27
+ * type DifferentUserId = Brand<number, 'user', '__kind__'>;
28
+ * interface Post { id: Brand<number, Post> }
29
+ * ```
30
+ */
31
+ type Brand<Base, Branding, ReservedName extends string = "__type__"> = Base & { [K in ReservedName]: Branding } & {
32
+ __witness__: Base;
33
+ };
34
+ /**
35
+ * An `AnyBrand` is a branded type based on any base type branded with any
36
+ * branding type. By itself it is not useful, but it can act as type constraint
37
+ * when manipulating branded types in general.
38
+ */
39
+ type AnyBrand = Brand<unknown, any>;
40
+ /**
41
+ * `BaseOf` is a type that takes any branded type `B` and yields its base type.
42
+ */
43
+ type BaseOf<B extends AnyBrand> = B["__witness__"];
44
+ /**
45
+ * A `Brander` is a function that takes a value of some base type and casts
46
+ * that value to a branded type derived from said base type. It can be thought
47
+ * of as the type of a "constructor", in the functional programming sense of
48
+ * the word.
49
+ *
50
+ * @example
51
+ * ```
52
+ * type UserId = Brand<number, 'user'>;
53
+ * // A Brander<UserId> would take a number and return a UserId
54
+ * ```
55
+ */
56
+ type Brander<B extends AnyBrand> = (underlying: BaseOf<B>) => B;
57
+ /**
58
+ * A generic function that, when given some branded type, can take a value with
59
+ * the base type of the branded type, and cast that value to the branded type.
60
+ * It fulfills the contract of a `Brander`.
61
+ *
62
+ * At runtime, this function simply returns the value as-is.
63
+ *
64
+ * @param underlying The value with a base type, to be casted
65
+ * @return The same underlying value, but casted
66
+ * @example
67
+ * ```
68
+ * type UserId = Brand<number, 'user'>;
69
+ * const UserId: Brander<UserId> = identity;
70
+ * ```
71
+ */
72
+ //#endregion
73
+ //#region ../games/sand/dist/index.d.ts
74
+ //#region src/consts.d.ts
75
+ declare const SAND_GAME_STATES: readonly ["menu", "waiting_for_players", "matchmaking", "match_found", "in_progress", "loot_division", "extracted", "all_left", "aborted", "failed", "decayed", "invalid"];
76
+ type SandGameState = (typeof SAND_GAME_STATES)[number] | (string & {});
77
+ declare const SandGameStateSchema: import("arktype/internal/variants/string.ts").StringType<SandGameState, {}>;
78
+ declare const SAND_GAME_MODES: readonly ["storm_dive", "voyage", "invalid"];
79
+ type SandGameMode = (typeof SAND_GAME_MODES)[number] | (string & {});
80
+ declare const SandGameModeSchema: import("arktype/internal/variants/string.ts").StringType<SandGameMode, {}>;
81
+ declare const SAND_STORM_STATES: readonly ["idle", "delay", "moving", "invalid"];
82
+ type SandStormState = (typeof SAND_STORM_STATES)[number] | (string & {});
83
+ declare const SandStormStateSchema: import("arktype/internal/variants/string.ts").StringType<SandStormState, {}>; //#endregion
84
+ //#region src/brands.d.ts
85
+ type SandAccountId = Brand<string, "sandAccountId">;
86
+ declare const SandAccountId: Brander<SandAccountId>;
87
+ type SandPlayerId = Brand<number, "sandPlayerId">;
88
+ declare const SandPlayerId: Brander<SandPlayerId>;
89
+ type SandPlatformId = Brand<string, "sandPlatformId">;
90
+ declare const SandPlatformId: Brander<SandPlatformId>;
91
+ type SandPlayfabId = Brand<string, "sandPlayfabId">;
92
+ declare const SandPlayfabId: Brander<SandPlayfabId>;
93
+ type SandMatchId = Brand<number, "sandMatchId">;
94
+ declare const SandMatchId: Brander<SandMatchId>;
95
+ type SandExtractionId = Brand<number, "sandExtractionId">;
96
+ declare const SandExtractionId: Brander<SandExtractionId>;
97
+ type SandLandmarkId = Brand<string, "sandLandmarkId">;
98
+ declare const SandLandmarkId: Brander<SandLandmarkId>;
99
+ type SandCharacterId = Brand<number, "sandCharacterId">;
100
+ declare const SandCharacterId: Brander<SandCharacterId>;
101
+ type SandPartyJoinCode = Brand<string, "sandPartyJoinCode">;
102
+ declare const SandPartyJoinCode: Brander<SandPartyJoinCode>;
103
+ type SandItemDefinition = Brand<string, "sandItemDefinition">;
104
+ declare const SandItemDefinition: Brander<SandItemDefinition>;
105
+ type SandTechNodeId = Brand<string, "sandTechNodeId">;
106
+ declare const SandTechNodeId: Brander<SandTechNodeId>;
107
+ type SandWalkerId = Brand<number, "sandWalkerId">;
108
+ declare const SandWalkerId: Brander<SandWalkerId>;
109
+ type SandBlueprintId = Brand<string, "sandBlueprintId">;
110
+ declare const SandBlueprintId: Brander<SandBlueprintId>;
111
+ type SandTramplerId = Brand<number, "sandTramplerId">;
112
+ declare const SandTramplerId: Brander<SandTramplerId>; //#endregion
113
+ //#region src/module.d.ts
114
+ declare function module(): {
115
+ readonly key: "sand";
116
+ readonly events: import("arktype").Module<{
117
+ event: {
118
+ game: "sand";
119
+ type: "logged_in";
120
+ creation_time: number;
121
+ content: {
122
+ account_id: SandAccountId;
123
+ display_name: string;
124
+ platform_id: SandPlatformId;
125
+ playfab_id: SandPlayfabId;
126
+ };
127
+ } | {
128
+ game: "sand";
129
+ type: "game_state_changed";
130
+ creation_time: number;
131
+ content: {
132
+ state: "aborted" | "all_left" | "decayed" | "extracted" | "failed" | "in_progress" | "invalid" | "loot_division" | "match_found" | "matchmaking" | "menu" | "waiting_for_players" | (string & {});
133
+ };
134
+ } | {
135
+ game: "sand";
136
+ type: "party_changed";
137
+ creation_time: number;
138
+ content: {
139
+ join_code: SandPartyJoinCode;
140
+ };
141
+ } | {
142
+ game: "sand";
143
+ type: "party_member_joined";
144
+ creation_time: number;
145
+ content: {
146
+ account_id: SandAccountId;
147
+ display_name: string;
148
+ platform_id: SandPlatformId;
149
+ playfab_id: SandPlayfabId;
150
+ character_id: SandCharacterId;
151
+ is_captain: boolean;
152
+ };
153
+ } | {
154
+ game: "sand";
155
+ type: "party_member_left";
156
+ creation_time: number;
157
+ content: {
158
+ account_id: SandAccountId;
159
+ };
160
+ } | {
161
+ game: "sand";
162
+ type: "inventory_changed";
163
+ creation_time: number;
164
+ content: {
165
+ slots_used: number;
166
+ slots_total: number;
167
+ crowns: number;
168
+ mechanical_parts: number;
169
+ pneumatic_parts: number;
170
+ computing_modules: number;
171
+ items: {
172
+ definition: SandItemDefinition;
173
+ amount: number;
174
+ }[];
175
+ };
176
+ } | {
177
+ game: "sand";
178
+ type: "inventory_item_changed";
179
+ creation_time: number;
180
+ content: {
181
+ definition: SandItemDefinition;
182
+ amount: number;
183
+ delta: number;
184
+ };
185
+ } | {
186
+ game: "sand";
187
+ type: "tech_tree_changed";
188
+ creation_time: number;
189
+ content: {
190
+ unlocked: number;
191
+ total: number;
192
+ nodes: {
193
+ id: SandTechNodeId;
194
+ name: string;
195
+ tier: number;
196
+ is_unlocked: boolean;
197
+ is_available: boolean;
198
+ }[];
199
+ };
200
+ } | {
201
+ game: "sand";
202
+ type: "tech_tree_item_unlocked";
203
+ creation_time: number;
204
+ content: {
205
+ id: SandTechNodeId;
206
+ name: string;
207
+ tier: number;
208
+ };
209
+ } | {
210
+ game: "sand";
211
+ type: "walker_changed";
212
+ creation_time: number;
213
+ content: {
214
+ walker_id: SandWalkerId;
215
+ blueprint_unique_id: SandBlueprintId;
216
+ blueprint_file: string;
217
+ first_name_index: number;
218
+ second_name_index: number;
219
+ };
220
+ } | {
221
+ game: "sand";
222
+ type: "match_started";
223
+ creation_time: number;
224
+ content: {
225
+ match_id: SandMatchId;
226
+ game_mode: "invalid" | "storm_dive" | "voyage" | (string & {});
227
+ seed: number;
228
+ server_start_time: number;
229
+ world_bounds: {
230
+ min_x: number;
231
+ min_z: number;
232
+ max_x: number;
233
+ max_z: number;
234
+ };
235
+ landmarks: {
236
+ id: SandLandmarkId;
237
+ name: string;
238
+ position: {
239
+ x: number;
240
+ y: number;
241
+ z: number;
242
+ };
243
+ }[];
244
+ };
245
+ } | {
246
+ game: "sand";
247
+ type: "match_ended";
248
+ creation_time: number;
249
+ } | {
250
+ game: "sand";
251
+ type: "world_time_changed";
252
+ creation_time: number;
253
+ content: {
254
+ hour: number;
255
+ };
256
+ } | {
257
+ game: "sand";
258
+ type: "player_joined";
259
+ creation_time: number;
260
+ content: {
261
+ player_id: SandPlayerId;
262
+ username: string;
263
+ platform_id: SandPlatformId;
264
+ playfab_id: SandPlayfabId;
265
+ };
266
+ } | {
267
+ game: "sand";
268
+ type: "extraction_added";
269
+ creation_time: number;
270
+ content: {
271
+ extraction_id: SandExtractionId;
272
+ radius: number;
273
+ position: {
274
+ x: number;
275
+ y: number;
276
+ z: number;
277
+ };
278
+ };
279
+ } | {
280
+ game: "sand";
281
+ type: "extraction_removed";
282
+ creation_time: number;
283
+ content: {
284
+ extraction_id: SandExtractionId;
285
+ };
286
+ } | {
287
+ game: "sand";
288
+ type: "storm_changed";
289
+ creation_time: number;
290
+ content: {
291
+ stage: number;
292
+ total_stages: number;
293
+ state: "delay" | "idle" | "invalid" | "moving" | (string & {});
294
+ end_time: number;
295
+ radius: number;
296
+ center: {
297
+ x: number;
298
+ y: number;
299
+ z: number;
300
+ };
301
+ next_radius: number;
302
+ next_center: {
303
+ x: number;
304
+ y: number;
305
+ z: number;
306
+ };
307
+ };
308
+ } | {
309
+ game: "sand";
310
+ type: "trampler_acquired";
311
+ creation_time: number;
312
+ content: {
313
+ trampler_id: SandTramplerId;
314
+ master_server_id: SandWalkerId;
315
+ blueprint: string;
316
+ creator_account_id: SandPlayerId;
317
+ first_name_index: number;
318
+ second_name_index: number;
319
+ };
320
+ } | {
321
+ game: "sand";
322
+ type: "trampler_changed";
323
+ creation_time: number;
324
+ content: {
325
+ trampler_id: SandTramplerId;
326
+ position: {
327
+ x: number;
328
+ y: number;
329
+ z: number;
330
+ };
331
+ yaw: number;
332
+ speed: number;
333
+ velocity: {
334
+ x: number;
335
+ y: number;
336
+ z: number;
337
+ };
338
+ };
339
+ } | {
340
+ game: "sand";
341
+ type: "trampler_lost";
342
+ creation_time: number;
343
+ content: {
344
+ trampler_id: SandTramplerId;
345
+ };
346
+ };
347
+ extraction_added: {
348
+ game: "sand";
349
+ type: "extraction_added";
350
+ creation_time: number;
351
+ content: {
352
+ extraction_id: SandExtractionId;
353
+ radius: number;
354
+ position: {
355
+ x: number;
356
+ y: number;
357
+ z: number;
358
+ };
359
+ };
360
+ };
361
+ extraction_removed: {
362
+ game: "sand";
363
+ type: "extraction_removed";
364
+ creation_time: number;
365
+ content: {
366
+ extraction_id: SandExtractionId;
367
+ };
368
+ };
369
+ game_state_changed: {
370
+ game: "sand";
371
+ type: "game_state_changed";
372
+ creation_time: number;
373
+ content: {
374
+ state: "aborted" | "all_left" | "decayed" | "extracted" | "failed" | "in_progress" | "invalid" | "loot_division" | "match_found" | "matchmaking" | "menu" | "waiting_for_players" | (string & {});
375
+ };
376
+ };
377
+ inventory_changed: {
378
+ game: "sand";
379
+ type: "inventory_changed";
380
+ creation_time: number;
381
+ content: {
382
+ slots_used: number;
383
+ slots_total: number;
384
+ crowns: number;
385
+ mechanical_parts: number;
386
+ pneumatic_parts: number;
387
+ computing_modules: number;
388
+ items: {
389
+ definition: SandItemDefinition;
390
+ amount: number;
391
+ }[];
392
+ };
393
+ };
394
+ inventory_item_changed: {
395
+ game: "sand";
396
+ type: "inventory_item_changed";
397
+ creation_time: number;
398
+ content: {
399
+ definition: SandItemDefinition;
400
+ amount: number;
401
+ delta: number;
402
+ };
403
+ };
404
+ logged_in: {
405
+ game: "sand";
406
+ type: "logged_in";
407
+ creation_time: number;
408
+ content: {
409
+ account_id: SandAccountId;
410
+ display_name: string;
411
+ platform_id: SandPlatformId;
412
+ playfab_id: SandPlayfabId;
413
+ };
414
+ };
415
+ match_ended: {
416
+ game: "sand";
417
+ type: "match_ended";
418
+ creation_time: number;
419
+ };
420
+ match_started: {
421
+ game: "sand";
422
+ type: "match_started";
423
+ creation_time: number;
424
+ content: {
425
+ match_id: SandMatchId;
426
+ game_mode: "invalid" | "storm_dive" | "voyage" | (string & {});
427
+ seed: number;
428
+ server_start_time: number;
429
+ world_bounds: {
430
+ min_x: number;
431
+ min_z: number;
432
+ max_x: number;
433
+ max_z: number;
434
+ };
435
+ landmarks: {
436
+ id: SandLandmarkId;
437
+ name: string;
438
+ position: {
439
+ x: number;
440
+ y: number;
441
+ z: number;
442
+ };
443
+ }[];
444
+ };
445
+ };
446
+ party_changed: {
447
+ game: "sand";
448
+ type: "party_changed";
449
+ creation_time: number;
450
+ content: {
451
+ join_code: SandPartyJoinCode;
452
+ };
453
+ };
454
+ party_member_joined: {
455
+ game: "sand";
456
+ type: "party_member_joined";
457
+ creation_time: number;
458
+ content: {
459
+ account_id: SandAccountId;
460
+ display_name: string;
461
+ platform_id: SandPlatformId;
462
+ playfab_id: SandPlayfabId;
463
+ character_id: SandCharacterId;
464
+ is_captain: boolean;
465
+ };
466
+ };
467
+ party_member_left: {
468
+ game: "sand";
469
+ type: "party_member_left";
470
+ creation_time: number;
471
+ content: {
472
+ account_id: SandAccountId;
473
+ };
474
+ };
475
+ player_joined: {
476
+ game: "sand";
477
+ type: "player_joined";
478
+ creation_time: number;
479
+ content: {
480
+ player_id: SandPlayerId;
481
+ username: string;
482
+ platform_id: SandPlatformId;
483
+ playfab_id: SandPlayfabId;
484
+ };
485
+ };
486
+ storm_changed: {
487
+ game: "sand";
488
+ type: "storm_changed";
489
+ creation_time: number;
490
+ content: {
491
+ stage: number;
492
+ total_stages: number;
493
+ state: "delay" | "idle" | "invalid" | "moving" | (string & {});
494
+ end_time: number;
495
+ radius: number;
496
+ center: {
497
+ x: number;
498
+ y: number;
499
+ z: number;
500
+ };
501
+ next_radius: number;
502
+ next_center: {
503
+ x: number;
504
+ y: number;
505
+ z: number;
506
+ };
507
+ };
508
+ };
509
+ tech_tree_changed: {
510
+ game: "sand";
511
+ type: "tech_tree_changed";
512
+ creation_time: number;
513
+ content: {
514
+ unlocked: number;
515
+ total: number;
516
+ nodes: {
517
+ id: SandTechNodeId;
518
+ name: string;
519
+ tier: number;
520
+ is_unlocked: boolean;
521
+ is_available: boolean;
522
+ }[];
523
+ };
524
+ };
525
+ tech_tree_item_unlocked: {
526
+ game: "sand";
527
+ type: "tech_tree_item_unlocked";
528
+ creation_time: number;
529
+ content: {
530
+ id: SandTechNodeId;
531
+ name: string;
532
+ tier: number;
533
+ };
534
+ };
535
+ trampler_acquired: {
536
+ game: "sand";
537
+ type: "trampler_acquired";
538
+ creation_time: number;
539
+ content: {
540
+ trampler_id: SandTramplerId;
541
+ master_server_id: SandWalkerId;
542
+ blueprint: string;
543
+ creator_account_id: SandPlayerId;
544
+ first_name_index: number;
545
+ second_name_index: number;
546
+ };
547
+ };
548
+ trampler_changed: {
549
+ game: "sand";
550
+ type: "trampler_changed";
551
+ creation_time: number;
552
+ content: {
553
+ trampler_id: SandTramplerId;
554
+ position: {
555
+ x: number;
556
+ y: number;
557
+ z: number;
558
+ };
559
+ yaw: number;
560
+ speed: number;
561
+ velocity: {
562
+ x: number;
563
+ y: number;
564
+ z: number;
565
+ };
566
+ };
567
+ };
568
+ trampler_lost: {
569
+ game: "sand";
570
+ type: "trampler_lost";
571
+ creation_time: number;
572
+ content: {
573
+ trampler_id: SandTramplerId;
574
+ };
575
+ };
576
+ walker_changed: {
577
+ game: "sand";
578
+ type: "walker_changed";
579
+ creation_time: number;
580
+ content: {
581
+ walker_id: SandWalkerId;
582
+ blueprint_unique_id: SandBlueprintId;
583
+ blueprint_file: string;
584
+ first_name_index: number;
585
+ second_name_index: number;
586
+ };
587
+ };
588
+ world_time_changed: {
589
+ game: "sand";
590
+ type: "world_time_changed";
591
+ creation_time: number;
592
+ content: {
593
+ hour: number;
594
+ };
595
+ };
596
+ }>;
597
+ }; //#endregion
598
+ //#region src/utils.d.ts
599
+ declare const BaseEvent: import("arktype/internal/variants/object.ts").ObjectType<{
600
+ game: string;
601
+ type: string;
602
+ creation_time: number;
603
+ }, {}>;
604
+ type BaseEvent = typeof BaseEvent.infer; //#endregion
605
+ //#region src/schemas.d.ts
606
+ declare const PositionSchema: import("arktype/internal/variants/object.ts").ObjectType<{
607
+ x: number;
608
+ y: number;
609
+ z: number;
610
+ }, {}>;
611
+ type Position = typeof PositionSchema.infer;
612
+ declare const WorldBoundsSchema: import("arktype/internal/variants/object.ts").ObjectType<{
613
+ min_x: number;
614
+ min_z: number;
615
+ max_x: number;
616
+ max_z: number;
617
+ }, {}>;
618
+ type WorldBounds = typeof WorldBoundsSchema.infer;
619
+ declare const LandmarkSchema: import("arktype/internal/variants/object.ts").ObjectType<{
620
+ id: SandLandmarkId;
621
+ name: string;
622
+ position: {
623
+ x: number;
624
+ y: number;
625
+ z: number;
626
+ };
627
+ }, {}>;
628
+ type Landmark = typeof LandmarkSchema.infer;
629
+ declare const AccountIdentitySchema: import("arktype/internal/variants/object.ts").ObjectType<{
630
+ account_id: SandAccountId;
631
+ display_name: string;
632
+ platform_id: SandPlatformId;
633
+ playfab_id: SandPlayfabId;
634
+ }, {}>;
635
+ type AccountIdentity = typeof AccountIdentitySchema.infer;
636
+ declare const InventoryItemSchema: import("arktype/internal/variants/object.ts").ObjectType<{
637
+ definition: SandItemDefinition;
638
+ amount: number;
639
+ }, {}>;
640
+ type InventoryItem = typeof InventoryItemSchema.infer;
641
+ declare const TechTreeNodeSchema: import("arktype/internal/variants/object.ts").ObjectType<{
642
+ id: SandTechNodeId;
643
+ name: string;
644
+ tier: number;
645
+ is_unlocked: boolean;
646
+ is_available: boolean;
647
+ }, {}>;
648
+ type TechTreeNode = typeof TechTreeNodeSchema.infer; //#endregion
649
+ //#region src/events/loggedIn.d.ts
650
+ declare const LoggedIn: import("arktype/internal/variants/object.ts").ObjectType<{
651
+ game: "sand";
652
+ type: "logged_in";
653
+ creation_time: number;
654
+ content: {
655
+ account_id: SandAccountId;
656
+ display_name: string;
657
+ platform_id: SandPlatformId;
658
+ playfab_id: SandPlayfabId;
659
+ };
660
+ }, {}>;
661
+ type LoggedInEvent = typeof LoggedIn.infer; //#endregion
662
+ //#region src/events/gameStateChanged.d.ts
663
+ declare const GameStateChanged: import("arktype/internal/variants/object.ts").ObjectType<{
664
+ game: "sand";
665
+ type: "game_state_changed";
666
+ creation_time: number;
667
+ content: {
668
+ state: "aborted" | "all_left" | "decayed" | "extracted" | "failed" | "in_progress" | "invalid" | "loot_division" | "match_found" | "matchmaking" | "menu" | "waiting_for_players" | (string & {});
669
+ };
670
+ }, {}>;
671
+ type GameStateChangedEvent = typeof GameStateChanged.infer; //#endregion
672
+ //#region src/events/partyChanged.d.ts
673
+ declare const PartyChanged: import("arktype/internal/variants/object.ts").ObjectType<{
674
+ game: "sand";
675
+ type: "party_changed";
676
+ creation_time: number;
677
+ content: {
678
+ join_code: SandPartyJoinCode;
679
+ };
680
+ }, {}>;
681
+ type PartyChangedEvent = typeof PartyChanged.infer; //#endregion
682
+ //#region src/events/partyMemberJoined.d.ts
683
+ declare const PartyMemberJoined: import("arktype/internal/variants/object.ts").ObjectType<{
684
+ game: "sand";
685
+ type: "party_member_joined";
686
+ creation_time: number;
687
+ content: {
688
+ account_id: SandAccountId;
689
+ display_name: string;
690
+ platform_id: SandPlatformId;
691
+ playfab_id: SandPlayfabId;
692
+ character_id: SandCharacterId;
693
+ is_captain: boolean;
694
+ };
695
+ }, {}>;
696
+ type PartyMemberJoinedEvent = typeof PartyMemberJoined.infer; //#endregion
697
+ //#region src/events/partyMemberLeft.d.ts
698
+ declare const PartyMemberLeft: import("arktype/internal/variants/object.ts").ObjectType<{
699
+ game: "sand";
700
+ type: "party_member_left";
701
+ creation_time: number;
702
+ content: {
703
+ account_id: SandAccountId;
704
+ };
705
+ }, {}>;
706
+ type PartyMemberLeftEvent = typeof PartyMemberLeft.infer; //#endregion
707
+ //#region src/events/inventoryChanged.d.ts
708
+ declare const InventoryChanged: import("arktype/internal/variants/object.ts").ObjectType<{
709
+ game: "sand";
710
+ type: "inventory_changed";
711
+ creation_time: number;
712
+ content: {
713
+ slots_used: number;
714
+ slots_total: number;
715
+ crowns: number;
716
+ mechanical_parts: number;
717
+ pneumatic_parts: number;
718
+ computing_modules: number;
719
+ items: {
720
+ definition: SandItemDefinition;
721
+ amount: number;
722
+ }[];
723
+ };
724
+ }, {}>;
725
+ type InventoryChangedEvent = typeof InventoryChanged.infer; //#endregion
726
+ //#region src/events/inventoryItemChanged.d.ts
727
+ declare const InventoryItemChanged: import("arktype/internal/variants/object.ts").ObjectType<{
728
+ game: "sand";
729
+ type: "inventory_item_changed";
730
+ creation_time: number;
731
+ content: {
732
+ definition: SandItemDefinition;
733
+ amount: number;
734
+ delta: number;
735
+ };
736
+ }, {}>;
737
+ type InventoryItemChangedEvent = typeof InventoryItemChanged.infer; //#endregion
738
+ //#region src/events/techTreeChanged.d.ts
739
+ declare const TechTreeChanged: import("arktype/internal/variants/object.ts").ObjectType<{
740
+ game: "sand";
741
+ type: "tech_tree_changed";
742
+ creation_time: number;
743
+ content: {
744
+ unlocked: number;
745
+ total: number;
746
+ nodes: {
747
+ id: SandTechNodeId;
748
+ name: string;
749
+ tier: number;
750
+ is_unlocked: boolean;
751
+ is_available: boolean;
752
+ }[];
753
+ };
754
+ }, {}>;
755
+ type TechTreeChangedEvent = typeof TechTreeChanged.infer; //#endregion
756
+ //#region src/events/techTreeItemUnlocked.d.ts
757
+ declare const TechTreeItemUnlocked: import("arktype/internal/variants/object.ts").ObjectType<{
758
+ game: "sand";
759
+ type: "tech_tree_item_unlocked";
760
+ creation_time: number;
761
+ content: {
762
+ id: SandTechNodeId;
763
+ name: string;
764
+ tier: number;
765
+ };
766
+ }, {}>;
767
+ type TechTreeItemUnlockedEvent = typeof TechTreeItemUnlocked.infer; //#endregion
768
+ //#region src/events/walkerChanged.d.ts
769
+ declare const WalkerChanged: import("arktype/internal/variants/object.ts").ObjectType<{
770
+ game: "sand";
771
+ type: "walker_changed";
772
+ creation_time: number;
773
+ content: {
774
+ walker_id: SandWalkerId;
775
+ blueprint_unique_id: SandBlueprintId;
776
+ blueprint_file: string;
777
+ first_name_index: number;
778
+ second_name_index: number;
779
+ };
780
+ }, {}>;
781
+ type WalkerChangedEvent = typeof WalkerChanged.infer; //#endregion
782
+ //#region src/events/matchStarted.d.ts
783
+ declare const MatchStarted: import("arktype/internal/variants/object.ts").ObjectType<{
784
+ game: "sand";
785
+ type: "match_started";
786
+ creation_time: number;
787
+ content: {
788
+ match_id: SandMatchId;
789
+ game_mode: "invalid" | "storm_dive" | "voyage" | (string & {});
790
+ seed: number;
791
+ server_start_time: number;
792
+ world_bounds: {
793
+ min_x: number;
794
+ min_z: number;
795
+ max_x: number;
796
+ max_z: number;
797
+ };
798
+ landmarks: {
799
+ id: SandLandmarkId;
800
+ name: string;
801
+ position: {
802
+ x: number;
803
+ y: number;
804
+ z: number;
805
+ };
806
+ }[];
807
+ };
808
+ }, {}>;
809
+ type MatchStartedEvent = typeof MatchStarted.infer; //#endregion
810
+ //#region src/events/matchEnded.d.ts
811
+ declare const MatchEnded: import("arktype/internal/variants/object.ts").ObjectType<{
812
+ game: "sand";
813
+ type: "match_ended";
814
+ creation_time: number;
815
+ }, {}>;
816
+ type MatchEndedEvent = typeof MatchEnded.infer; //#endregion
817
+ //#region src/events/worldTimeChanged.d.ts
818
+ declare const WorldTimeChanged: import("arktype/internal/variants/object.ts").ObjectType<{
819
+ game: "sand";
820
+ type: "world_time_changed";
821
+ creation_time: number;
822
+ content: {
823
+ hour: number;
824
+ };
825
+ }, {}>;
826
+ type WorldTimeChangedEvent = typeof WorldTimeChanged.infer; //#endregion
827
+ //#region src/events/playerJoined.d.ts
828
+ declare const PlayerJoined: import("arktype/internal/variants/object.ts").ObjectType<{
829
+ game: "sand";
830
+ type: "player_joined";
831
+ creation_time: number;
832
+ content: {
833
+ player_id: SandPlayerId;
834
+ username: string;
835
+ platform_id: SandPlatformId;
836
+ playfab_id: SandPlayfabId;
837
+ };
838
+ }, {}>;
839
+ type PlayerJoinedEvent = typeof PlayerJoined.infer; //#endregion
840
+ //#region src/events/extractionAdded.d.ts
841
+ declare const ExtractionAdded: import("arktype/internal/variants/object.ts").ObjectType<{
842
+ game: "sand";
843
+ type: "extraction_added";
844
+ creation_time: number;
845
+ content: {
846
+ extraction_id: SandExtractionId;
847
+ radius: number;
848
+ position: {
849
+ x: number;
850
+ y: number;
851
+ z: number;
852
+ };
853
+ };
854
+ }, {}>;
855
+ type ExtractionAddedEvent = typeof ExtractionAdded.infer; //#endregion
856
+ //#region src/events/extractionRemoved.d.ts
857
+ declare const ExtractionRemoved: import("arktype/internal/variants/object.ts").ObjectType<{
858
+ game: "sand";
859
+ type: "extraction_removed";
860
+ creation_time: number;
861
+ content: {
862
+ extraction_id: SandExtractionId;
863
+ };
864
+ }, {}>;
865
+ type ExtractionRemovedEvent = typeof ExtractionRemoved.infer; //#endregion
866
+ //#region src/events/stormChanged.d.ts
867
+ declare const StormChanged: import("arktype/internal/variants/object.ts").ObjectType<{
868
+ game: "sand";
869
+ type: "storm_changed";
870
+ creation_time: number;
871
+ content: {
872
+ stage: number;
873
+ total_stages: number;
874
+ state: "delay" | "idle" | "invalid" | "moving" | (string & {});
875
+ end_time: number;
876
+ radius: number;
877
+ center: {
878
+ x: number;
879
+ y: number;
880
+ z: number;
881
+ };
882
+ next_radius: number;
883
+ next_center: {
884
+ x: number;
885
+ y: number;
886
+ z: number;
887
+ };
888
+ };
889
+ }, {}>;
890
+ type StormChangedEvent = typeof StormChanged.infer; //#endregion
891
+ //#region src/events/tramplerAcquired.d.ts
892
+ declare const TramplerAcquired: import("arktype/internal/variants/object.ts").ObjectType<{
893
+ game: "sand";
894
+ type: "trampler_acquired";
895
+ creation_time: number;
896
+ content: {
897
+ trampler_id: SandTramplerId;
898
+ master_server_id: SandWalkerId;
899
+ blueprint: string;
900
+ creator_account_id: SandPlayerId;
901
+ first_name_index: number;
902
+ second_name_index: number;
903
+ };
904
+ }, {}>;
905
+ type TramplerAcquiredEvent = typeof TramplerAcquired.infer; //#endregion
906
+ //#region src/events/tramplerChanged.d.ts
907
+ declare const TramplerChanged: import("arktype/internal/variants/object.ts").ObjectType<{
908
+ game: "sand";
909
+ type: "trampler_changed";
910
+ creation_time: number;
911
+ content: {
912
+ trampler_id: SandTramplerId;
913
+ position: {
914
+ x: number;
915
+ y: number;
916
+ z: number;
917
+ };
918
+ yaw: number;
919
+ speed: number;
920
+ velocity: {
921
+ x: number;
922
+ y: number;
923
+ z: number;
924
+ };
925
+ };
926
+ }, {}>;
927
+ type TramplerChangedEvent = typeof TramplerChanged.infer; //#endregion
928
+ //#region src/events/tramplerLost.d.ts
929
+ declare const TramplerLost: import("arktype/internal/variants/object.ts").ObjectType<{
930
+ game: "sand";
931
+ type: "trampler_lost";
932
+ creation_time: number;
933
+ content: {
934
+ trampler_id: SandTramplerId;
935
+ };
936
+ }, {}>;
937
+ type TramplerLostEvent = typeof TramplerLost.infer; //#endregion
938
+ //#region src/events/index.d.ts
939
+ declare const sandEvents: import("arktype").Module<{
940
+ event: {
941
+ game: "sand";
942
+ type: "logged_in";
943
+ creation_time: number;
944
+ content: {
945
+ account_id: SandAccountId;
946
+ display_name: string;
947
+ platform_id: SandPlatformId;
948
+ playfab_id: SandPlayfabId;
949
+ };
950
+ } | {
951
+ game: "sand";
952
+ type: "game_state_changed";
953
+ creation_time: number;
954
+ content: {
955
+ state: "aborted" | "all_left" | "decayed" | "extracted" | "failed" | "in_progress" | "invalid" | "loot_division" | "match_found" | "matchmaking" | "menu" | "waiting_for_players" | (string & {});
956
+ };
957
+ } | {
958
+ game: "sand";
959
+ type: "party_changed";
960
+ creation_time: number;
961
+ content: {
962
+ join_code: SandPartyJoinCode;
963
+ };
964
+ } | {
965
+ game: "sand";
966
+ type: "party_member_joined";
967
+ creation_time: number;
968
+ content: {
969
+ account_id: SandAccountId;
970
+ display_name: string;
971
+ platform_id: SandPlatformId;
972
+ playfab_id: SandPlayfabId;
973
+ character_id: SandCharacterId;
974
+ is_captain: boolean;
975
+ };
976
+ } | {
977
+ game: "sand";
978
+ type: "party_member_left";
979
+ creation_time: number;
980
+ content: {
981
+ account_id: SandAccountId;
982
+ };
983
+ } | {
984
+ game: "sand";
985
+ type: "inventory_changed";
986
+ creation_time: number;
987
+ content: {
988
+ slots_used: number;
989
+ slots_total: number;
990
+ crowns: number;
991
+ mechanical_parts: number;
992
+ pneumatic_parts: number;
993
+ computing_modules: number;
994
+ items: {
995
+ definition: SandItemDefinition;
996
+ amount: number;
997
+ }[];
998
+ };
999
+ } | {
1000
+ game: "sand";
1001
+ type: "inventory_item_changed";
1002
+ creation_time: number;
1003
+ content: {
1004
+ definition: SandItemDefinition;
1005
+ amount: number;
1006
+ delta: number;
1007
+ };
1008
+ } | {
1009
+ game: "sand";
1010
+ type: "tech_tree_changed";
1011
+ creation_time: number;
1012
+ content: {
1013
+ unlocked: number;
1014
+ total: number;
1015
+ nodes: {
1016
+ id: SandTechNodeId;
1017
+ name: string;
1018
+ tier: number;
1019
+ is_unlocked: boolean;
1020
+ is_available: boolean;
1021
+ }[];
1022
+ };
1023
+ } | {
1024
+ game: "sand";
1025
+ type: "tech_tree_item_unlocked";
1026
+ creation_time: number;
1027
+ content: {
1028
+ id: SandTechNodeId;
1029
+ name: string;
1030
+ tier: number;
1031
+ };
1032
+ } | {
1033
+ game: "sand";
1034
+ type: "walker_changed";
1035
+ creation_time: number;
1036
+ content: {
1037
+ walker_id: SandWalkerId;
1038
+ blueprint_unique_id: SandBlueprintId;
1039
+ blueprint_file: string;
1040
+ first_name_index: number;
1041
+ second_name_index: number;
1042
+ };
1043
+ } | {
1044
+ game: "sand";
1045
+ type: "match_started";
1046
+ creation_time: number;
1047
+ content: {
1048
+ match_id: SandMatchId;
1049
+ game_mode: "invalid" | "storm_dive" | "voyage" | (string & {});
1050
+ seed: number;
1051
+ server_start_time: number;
1052
+ world_bounds: {
1053
+ min_x: number;
1054
+ min_z: number;
1055
+ max_x: number;
1056
+ max_z: number;
1057
+ };
1058
+ landmarks: {
1059
+ id: SandLandmarkId;
1060
+ name: string;
1061
+ position: {
1062
+ x: number;
1063
+ y: number;
1064
+ z: number;
1065
+ };
1066
+ }[];
1067
+ };
1068
+ } | {
1069
+ game: "sand";
1070
+ type: "match_ended";
1071
+ creation_time: number;
1072
+ } | {
1073
+ game: "sand";
1074
+ type: "world_time_changed";
1075
+ creation_time: number;
1076
+ content: {
1077
+ hour: number;
1078
+ };
1079
+ } | {
1080
+ game: "sand";
1081
+ type: "player_joined";
1082
+ creation_time: number;
1083
+ content: {
1084
+ player_id: SandPlayerId;
1085
+ username: string;
1086
+ platform_id: SandPlatformId;
1087
+ playfab_id: SandPlayfabId;
1088
+ };
1089
+ } | {
1090
+ game: "sand";
1091
+ type: "extraction_added";
1092
+ creation_time: number;
1093
+ content: {
1094
+ extraction_id: SandExtractionId;
1095
+ radius: number;
1096
+ position: {
1097
+ x: number;
1098
+ y: number;
1099
+ z: number;
1100
+ };
1101
+ };
1102
+ } | {
1103
+ game: "sand";
1104
+ type: "extraction_removed";
1105
+ creation_time: number;
1106
+ content: {
1107
+ extraction_id: SandExtractionId;
1108
+ };
1109
+ } | {
1110
+ game: "sand";
1111
+ type: "storm_changed";
1112
+ creation_time: number;
1113
+ content: {
1114
+ stage: number;
1115
+ total_stages: number;
1116
+ state: "delay" | "idle" | "invalid" | "moving" | (string & {});
1117
+ end_time: number;
1118
+ radius: number;
1119
+ center: {
1120
+ x: number;
1121
+ y: number;
1122
+ z: number;
1123
+ };
1124
+ next_radius: number;
1125
+ next_center: {
1126
+ x: number;
1127
+ y: number;
1128
+ z: number;
1129
+ };
1130
+ };
1131
+ } | {
1132
+ game: "sand";
1133
+ type: "trampler_acquired";
1134
+ creation_time: number;
1135
+ content: {
1136
+ trampler_id: SandTramplerId;
1137
+ master_server_id: SandWalkerId;
1138
+ blueprint: string;
1139
+ creator_account_id: SandPlayerId;
1140
+ first_name_index: number;
1141
+ second_name_index: number;
1142
+ };
1143
+ } | {
1144
+ game: "sand";
1145
+ type: "trampler_changed";
1146
+ creation_time: number;
1147
+ content: {
1148
+ trampler_id: SandTramplerId;
1149
+ position: {
1150
+ x: number;
1151
+ y: number;
1152
+ z: number;
1153
+ };
1154
+ yaw: number;
1155
+ speed: number;
1156
+ velocity: {
1157
+ x: number;
1158
+ y: number;
1159
+ z: number;
1160
+ };
1161
+ };
1162
+ } | {
1163
+ game: "sand";
1164
+ type: "trampler_lost";
1165
+ creation_time: number;
1166
+ content: {
1167
+ trampler_id: SandTramplerId;
1168
+ };
1169
+ };
1170
+ extraction_added: {
1171
+ game: "sand";
1172
+ type: "extraction_added";
1173
+ creation_time: number;
1174
+ content: {
1175
+ extraction_id: SandExtractionId;
1176
+ radius: number;
1177
+ position: {
1178
+ x: number;
1179
+ y: number;
1180
+ z: number;
1181
+ };
1182
+ };
1183
+ };
1184
+ extraction_removed: {
1185
+ game: "sand";
1186
+ type: "extraction_removed";
1187
+ creation_time: number;
1188
+ content: {
1189
+ extraction_id: SandExtractionId;
1190
+ };
1191
+ };
1192
+ game_state_changed: {
1193
+ game: "sand";
1194
+ type: "game_state_changed";
1195
+ creation_time: number;
1196
+ content: {
1197
+ state: "aborted" | "all_left" | "decayed" | "extracted" | "failed" | "in_progress" | "invalid" | "loot_division" | "match_found" | "matchmaking" | "menu" | "waiting_for_players" | (string & {});
1198
+ };
1199
+ };
1200
+ inventory_changed: {
1201
+ game: "sand";
1202
+ type: "inventory_changed";
1203
+ creation_time: number;
1204
+ content: {
1205
+ slots_used: number;
1206
+ slots_total: number;
1207
+ crowns: number;
1208
+ mechanical_parts: number;
1209
+ pneumatic_parts: number;
1210
+ computing_modules: number;
1211
+ items: {
1212
+ definition: SandItemDefinition;
1213
+ amount: number;
1214
+ }[];
1215
+ };
1216
+ };
1217
+ inventory_item_changed: {
1218
+ game: "sand";
1219
+ type: "inventory_item_changed";
1220
+ creation_time: number;
1221
+ content: {
1222
+ definition: SandItemDefinition;
1223
+ amount: number;
1224
+ delta: number;
1225
+ };
1226
+ };
1227
+ logged_in: {
1228
+ game: "sand";
1229
+ type: "logged_in";
1230
+ creation_time: number;
1231
+ content: {
1232
+ account_id: SandAccountId;
1233
+ display_name: string;
1234
+ platform_id: SandPlatformId;
1235
+ playfab_id: SandPlayfabId;
1236
+ };
1237
+ };
1238
+ match_ended: {
1239
+ game: "sand";
1240
+ type: "match_ended";
1241
+ creation_time: number;
1242
+ };
1243
+ match_started: {
1244
+ game: "sand";
1245
+ type: "match_started";
1246
+ creation_time: number;
1247
+ content: {
1248
+ match_id: SandMatchId;
1249
+ game_mode: "invalid" | "storm_dive" | "voyage" | (string & {});
1250
+ seed: number;
1251
+ server_start_time: number;
1252
+ world_bounds: {
1253
+ min_x: number;
1254
+ min_z: number;
1255
+ max_x: number;
1256
+ max_z: number;
1257
+ };
1258
+ landmarks: {
1259
+ id: SandLandmarkId;
1260
+ name: string;
1261
+ position: {
1262
+ x: number;
1263
+ y: number;
1264
+ z: number;
1265
+ };
1266
+ }[];
1267
+ };
1268
+ };
1269
+ party_changed: {
1270
+ game: "sand";
1271
+ type: "party_changed";
1272
+ creation_time: number;
1273
+ content: {
1274
+ join_code: SandPartyJoinCode;
1275
+ };
1276
+ };
1277
+ party_member_joined: {
1278
+ game: "sand";
1279
+ type: "party_member_joined";
1280
+ creation_time: number;
1281
+ content: {
1282
+ account_id: SandAccountId;
1283
+ display_name: string;
1284
+ platform_id: SandPlatformId;
1285
+ playfab_id: SandPlayfabId;
1286
+ character_id: SandCharacterId;
1287
+ is_captain: boolean;
1288
+ };
1289
+ };
1290
+ party_member_left: {
1291
+ game: "sand";
1292
+ type: "party_member_left";
1293
+ creation_time: number;
1294
+ content: {
1295
+ account_id: SandAccountId;
1296
+ };
1297
+ };
1298
+ player_joined: {
1299
+ game: "sand";
1300
+ type: "player_joined";
1301
+ creation_time: number;
1302
+ content: {
1303
+ player_id: SandPlayerId;
1304
+ username: string;
1305
+ platform_id: SandPlatformId;
1306
+ playfab_id: SandPlayfabId;
1307
+ };
1308
+ };
1309
+ storm_changed: {
1310
+ game: "sand";
1311
+ type: "storm_changed";
1312
+ creation_time: number;
1313
+ content: {
1314
+ stage: number;
1315
+ total_stages: number;
1316
+ state: "delay" | "idle" | "invalid" | "moving" | (string & {});
1317
+ end_time: number;
1318
+ radius: number;
1319
+ center: {
1320
+ x: number;
1321
+ y: number;
1322
+ z: number;
1323
+ };
1324
+ next_radius: number;
1325
+ next_center: {
1326
+ x: number;
1327
+ y: number;
1328
+ z: number;
1329
+ };
1330
+ };
1331
+ };
1332
+ tech_tree_changed: {
1333
+ game: "sand";
1334
+ type: "tech_tree_changed";
1335
+ creation_time: number;
1336
+ content: {
1337
+ unlocked: number;
1338
+ total: number;
1339
+ nodes: {
1340
+ id: SandTechNodeId;
1341
+ name: string;
1342
+ tier: number;
1343
+ is_unlocked: boolean;
1344
+ is_available: boolean;
1345
+ }[];
1346
+ };
1347
+ };
1348
+ tech_tree_item_unlocked: {
1349
+ game: "sand";
1350
+ type: "tech_tree_item_unlocked";
1351
+ creation_time: number;
1352
+ content: {
1353
+ id: SandTechNodeId;
1354
+ name: string;
1355
+ tier: number;
1356
+ };
1357
+ };
1358
+ trampler_acquired: {
1359
+ game: "sand";
1360
+ type: "trampler_acquired";
1361
+ creation_time: number;
1362
+ content: {
1363
+ trampler_id: SandTramplerId;
1364
+ master_server_id: SandWalkerId;
1365
+ blueprint: string;
1366
+ creator_account_id: SandPlayerId;
1367
+ first_name_index: number;
1368
+ second_name_index: number;
1369
+ };
1370
+ };
1371
+ trampler_changed: {
1372
+ game: "sand";
1373
+ type: "trampler_changed";
1374
+ creation_time: number;
1375
+ content: {
1376
+ trampler_id: SandTramplerId;
1377
+ position: {
1378
+ x: number;
1379
+ y: number;
1380
+ z: number;
1381
+ };
1382
+ yaw: number;
1383
+ speed: number;
1384
+ velocity: {
1385
+ x: number;
1386
+ y: number;
1387
+ z: number;
1388
+ };
1389
+ };
1390
+ };
1391
+ trampler_lost: {
1392
+ game: "sand";
1393
+ type: "trampler_lost";
1394
+ creation_time: number;
1395
+ content: {
1396
+ trampler_id: SandTramplerId;
1397
+ };
1398
+ };
1399
+ walker_changed: {
1400
+ game: "sand";
1401
+ type: "walker_changed";
1402
+ creation_time: number;
1403
+ content: {
1404
+ walker_id: SandWalkerId;
1405
+ blueprint_unique_id: SandBlueprintId;
1406
+ blueprint_file: string;
1407
+ first_name_index: number;
1408
+ second_name_index: number;
1409
+ };
1410
+ };
1411
+ world_time_changed: {
1412
+ game: "sand";
1413
+ type: "world_time_changed";
1414
+ creation_time: number;
1415
+ content: {
1416
+ hour: number;
1417
+ };
1418
+ };
1419
+ }>;
1420
+ type SandEvent = typeof sandEvents.event.infer;
1421
+ type SandEventType = SandEvent["type"]; //#endregion
1422
+ //#endregion
1423
+ export { type AccountIdentity, type AccountIdentitySchema, BaseEvent, type ExtractionAddedEvent, type ExtractionRemovedEvent, type GameStateChangedEvent, type InventoryChangedEvent, type InventoryItem, type InventoryItemChangedEvent, type InventoryItemSchema, type Landmark, type LandmarkSchema, type LoggedInEvent, type MatchEndedEvent, type MatchStartedEvent, type PartyChangedEvent, type PartyMemberJoinedEvent, type PartyMemberLeftEvent, type PlayerJoinedEvent, type Position, type PositionSchema, SAND_GAME_MODES, SAND_GAME_STATES, SAND_STORM_STATES, SandAccountId, SandBlueprintId, SandCharacterId, type SandEvent, type SandEventType, SandExtractionId, SandGameMode, SandGameModeSchema, SandGameState, SandGameStateSchema, SandItemDefinition, SandLandmarkId, SandMatchId, SandPartyJoinCode, SandPlatformId, SandPlayerId, SandPlayfabId, SandStormState, SandStormStateSchema, SandTechNodeId, SandTramplerId, SandWalkerId, type StormChangedEvent, type TechTreeChangedEvent, type TechTreeItemUnlockedEvent, type TechTreeNode, type TechTreeNodeSchema, type TramplerAcquiredEvent, type TramplerChangedEvent, type TramplerLostEvent, type WalkerChangedEvent, type WorldBounds, type WorldBoundsSchema, type WorldTimeChangedEvent, module, type sandEvents };