@series-inc/rundot-game-sdk 5.0.4 → 5.0.8-beta.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/README.md CHANGED
@@ -1,33 +1,33 @@
1
- # RUN.game SDK API
2
-
3
- Build connected HTML5 games that integrate deeply with the RUN.game platform. This package provides the client SDK used by hosted games as well as the local mock environment for development.
4
-
5
- ## Highlights
6
-
7
- - Typed APIs for RUN.game platform services (simulation, rooms, analytics, ads, and more)
8
- - Host-aware tooling including lifecycle hooks, safe-area utilities, and asset loading helpers
9
-
10
- ## Quick Start
11
-
12
- ### Installation
13
-
14
- ```bash
15
- npm install @series-inc/rundot-game-sdk@latest
16
- ```
17
-
18
- ### Initialize
19
-
20
- ```typescript
21
- import { default as RundotGameAPI } from '@series-inc/rundot-game-sdk/api'
22
-
23
- // Initialize the API
24
- await RundotGameAPI.initializeAsync()
25
- ```
26
-
27
- ## Documentation
28
-
29
- The complete RUN.game SDK manuals live on [Run.game Docs](https://series-1.gitbook.io/getreel-docs). Start there for setup guides, API references, tutorials, and best practices.
30
-
31
- ## Support & Links
32
-
1
+ # RUN.game SDK API
2
+
3
+ Build connected HTML5 games that integrate deeply with the RUN.game platform. This package provides the client SDK used by hosted games as well as the local mock environment for development.
4
+
5
+ ## Highlights
6
+
7
+ - Typed APIs for RUN.game platform services (simulation, rooms, analytics, ads, and more)
8
+ - Host-aware tooling including lifecycle hooks, safe-area utilities, and asset loading helpers
9
+
10
+ ## Quick Start
11
+
12
+ ### Installation
13
+
14
+ ```bash
15
+ npm install @series-inc/rundot-game-sdk@latest
16
+ ```
17
+
18
+ ### Initialize
19
+
20
+ ```typescript
21
+ import { default as RundotGameAPI } from '@series-inc/rundot-game-sdk/api'
22
+
23
+ // Initialize the API
24
+ await RundotGameAPI.initializeAsync()
25
+ ```
26
+
27
+ ## Documentation
28
+
29
+ The complete RUN.game SDK manuals live on [Run.game Docs](https://series-1.gitbook.io/getreel-docs). Start there for setup guides, API references, tutorials, and best practices.
30
+
31
+ ## Support & Links
32
+
33
33
  - [Join our Discord!](https://discord.gg/NcjhKQHx)
@@ -7,7 +7,7 @@ interface RpcRequest {
7
7
  type: 'rpc-request';
8
8
  id: string;
9
9
  method: string;
10
- args?: any[];
10
+ args?: unknown;
11
11
  }
12
12
 
13
13
  interface RpcResponse {
@@ -50,9 +50,10 @@ declare class RpcClient {
50
50
  start(transport: RpcTransport): void;
51
51
  stop(): void;
52
52
  onNotification<TPayload>(id: string, callback: (payload: TPayload) => void): Subscription;
53
- callT<TArgs, TResult>(method: string, args: TArgs, timeout?: number): Promise<TResult>;
54
- call<TResponse>(method: string, args?: any, timeout?: number): Promise<TResponse>;
53
+ callT<TArgs, TResult>(method: string, args?: TArgs, timeout?: number): Promise<TResult>;
54
+ call<TResponse>(method: string, args?: unknown, timeout?: number): Promise<TResponse>;
55
55
  private hasPendingCall;
56
+ private safeStringifyArgs;
56
57
  private addPendingCall;
57
58
  private removePendingCall;
58
59
  private getPendingCall;
@@ -433,6 +434,7 @@ interface ExecuteRecipeOptions {
433
434
  batchAmount?: number;
434
435
  allowPartialBatch?: boolean;
435
436
  entity?: string;
437
+ requestId?: string;
436
438
  }
437
439
  interface GetActiveRunsOptions {
438
440
  roomId?: string;
@@ -447,6 +449,7 @@ interface GetAvailableRecipesOptions {
447
449
  interface Recipe {
448
450
  recipeId: string;
449
451
  entity?: string;
452
+ requestId?: string;
450
453
  batchAmount?: number;
451
454
  }
452
455
  interface TriggerRecipeChainOptions {
@@ -845,7 +848,8 @@ interface RundotGameMessage {
845
848
  type: string;
846
849
  direction: string;
847
850
  data?: {
848
- requestId?: string;
851
+ /** Internal RPC correlation ID - do not confuse with user-provided requestId for idempotency */
852
+ _rpcId?: string;
849
853
  success?: boolean;
850
854
  value?: any;
851
855
  data?: any;
@@ -954,10 +958,16 @@ interface LoadEmbeddedAssetsResponse {
954
958
  interface SpendCurrencyOptions {
955
959
  screenName?: string;
956
960
  }
961
+ interface OpenStoreResult {
962
+ /** Whether a purchase was completed during the store session */
963
+ purchased: boolean;
964
+ /** The updated balance after the store closed (saves a refetch) */
965
+ newBalance: number;
966
+ }
957
967
  interface IapApi {
958
968
  getHardCurrencyBalance(): Promise<number>;
959
969
  spendCurrency(productId: string, amount: number, options?: SpendCurrencyOptions): Promise<void>;
960
- openStore(): Promise<void>;
970
+ openStore(): Promise<OpenStoreResult>;
961
971
  getCurrencyIcon(): Promise<LoadEmbeddedAssetsResponse>;
962
972
  }
963
973
 
@@ -1092,6 +1102,136 @@ interface LeaderboardApi {
1092
1102
  getPodiumScores(options?: GetPodiumScoresOptions): Promise<PodiumScoresResponse>;
1093
1103
  }
1094
1104
 
1105
+ /**
1106
+ * UGC (User-Generated Content) API
1107
+ *
1108
+ * Provides CRUD operations for user-generated content within H5 apps.
1109
+ * Content is scoped per-app and persists across game versions.
1110
+ */
1111
+ interface UgcEntry {
1112
+ id: string;
1113
+ appId: string;
1114
+ authorId: string;
1115
+ authorName: string;
1116
+ authorAvatarUrl: string | null;
1117
+ contentType: string;
1118
+ data: Record<string, unknown>;
1119
+ createdAt: number;
1120
+ updatedAt: number;
1121
+ isPublic: boolean;
1122
+ title?: string;
1123
+ tags?: string[];
1124
+ useCount?: number;
1125
+ likeCount?: number;
1126
+ }
1127
+ interface UgcCreateParams {
1128
+ contentType: string;
1129
+ data: Record<string, unknown>;
1130
+ isPublic?: boolean;
1131
+ title?: string;
1132
+ tags?: string[];
1133
+ }
1134
+ interface UgcUpdateParams {
1135
+ id: string;
1136
+ data?: Record<string, unknown>;
1137
+ isPublic?: boolean;
1138
+ title?: string;
1139
+ tags?: string[];
1140
+ }
1141
+ interface UgcListParams {
1142
+ contentType?: string;
1143
+ cursor?: string;
1144
+ limit?: number;
1145
+ }
1146
+ interface UgcBrowseParams {
1147
+ contentType?: string;
1148
+ cursor?: string;
1149
+ limit?: number;
1150
+ sortBy?: 'recent' | 'mostLiked' | 'mostUsed';
1151
+ }
1152
+ interface UgcListResponse {
1153
+ entries: UgcEntry[];
1154
+ nextCursor?: string;
1155
+ }
1156
+ interface UgcBrowseResponse {
1157
+ entries: Array<UgcEntry & {
1158
+ isLikedByMe?: boolean;
1159
+ }>;
1160
+ nextCursor?: string;
1161
+ }
1162
+ interface UgcReportParams {
1163
+ id: string;
1164
+ reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
1165
+ details?: string;
1166
+ }
1167
+ interface UgcApi {
1168
+ /**
1169
+ * Create new user-generated content
1170
+ * @param params Content creation parameters
1171
+ * @returns The created entry
1172
+ */
1173
+ create(params: UgcCreateParams): Promise<UgcEntry>;
1174
+ /**
1175
+ * Update existing content (must be author)
1176
+ * @param params Update parameters including entry ID
1177
+ * @returns The updated entry
1178
+ */
1179
+ update(params: UgcUpdateParams): Promise<UgcEntry>;
1180
+ /**
1181
+ * Delete content (must be author)
1182
+ * @param id Entry ID to delete
1183
+ */
1184
+ delete(id: string): Promise<void>;
1185
+ /**
1186
+ * Get a single entry by ID
1187
+ * @param id Entry ID
1188
+ * @returns The entry or null if not found
1189
+ */
1190
+ get(id: string): Promise<UgcEntry | null>;
1191
+ /**
1192
+ * List the current user's content
1193
+ * @param params List parameters (optional filtering and pagination)
1194
+ * @returns Paginated list of entries
1195
+ */
1196
+ listMine(params?: UgcListParams): Promise<UgcListResponse>;
1197
+ /**
1198
+ * Browse community content (public entries only)
1199
+ * @param params Browse parameters (optional filtering, pagination, sorting)
1200
+ * @returns Paginated list of entries with isLikedByMe status
1201
+ */
1202
+ browse(params?: UgcBrowseParams): Promise<UgcBrowseResponse>;
1203
+ /**
1204
+ * Like an entry
1205
+ * @param id Entry ID to like
1206
+ * @returns Updated like count
1207
+ */
1208
+ like(id: string): Promise<{
1209
+ likeCount: number;
1210
+ }>;
1211
+ /**
1212
+ * Unlike an entry
1213
+ * @param id Entry ID to unlike
1214
+ * @returns Updated like count
1215
+ */
1216
+ unlike(id: string): Promise<{
1217
+ likeCount: number;
1218
+ }>;
1219
+ /**
1220
+ * Record a use of an entry (e.g., user imported/used this content)
1221
+ * Rate limited per user per entry per day
1222
+ * @param id Entry ID
1223
+ * @returns Updated use count
1224
+ */
1225
+ recordUse(id: string): Promise<{
1226
+ useCount: number;
1227
+ }>;
1228
+ /**
1229
+ * Report an entry for moderation review
1230
+ * @param params Report parameters
1231
+ */
1232
+ report(params: UgcReportParams): Promise<void>;
1233
+ }
1234
+
1095
1235
  interface PreloaderApi {
1096
1236
  showLoadScreen(): Promise<void>;
1097
1237
  hideLoadScreen(): Promise<void>;
@@ -1168,6 +1308,21 @@ interface SocialApi {
1168
1308
  }): Promise<QRCodeResult>;
1169
1309
  }
1170
1310
 
1311
+ interface ImageGenParams {
1312
+ prompt: string;
1313
+ negativePrompt?: string;
1314
+ aspectRatio?: '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '4:5' | '5:4' | '9:16' | '16:9' | '21:9';
1315
+ referenceImages?: string[];
1316
+ seed?: number;
1317
+ }
1318
+ interface ImageGenResult {
1319
+ imageUrl: string;
1320
+ prompt: string;
1321
+ }
1322
+ interface ImageGenApi {
1323
+ generate(params: ImageGenParams): Promise<ImageGenResult>;
1324
+ }
1325
+
1171
1326
  /**
1172
1327
  * Safe area insets representing padding needed to avoid device notches and host UI.
1173
1328
  * Includes toolbar/feedHeader height + device safe areas.
@@ -1222,8 +1377,10 @@ interface Host {
1222
1377
  readonly rooms: RoomsApi;
1223
1378
  readonly logging: LoggingApi;
1224
1379
  readonly leaderboard: LeaderboardApi;
1380
+ readonly ugc: UgcApi;
1225
1381
  readonly preloader: PreloaderApi;
1226
1382
  readonly social: SocialApi;
1383
+ readonly imageGen: ImageGenApi;
1227
1384
  readonly isInitialized: boolean;
1228
1385
  readonly iap: IapApi;
1229
1386
  readonly context?: InitializationContext;
@@ -1532,6 +1689,7 @@ interface RundotGameAPI {
1532
1689
  initializeAsync(options?: InitializationOptions): Promise<InitializationContext>;
1533
1690
  simulation: SimulationApi;
1534
1691
  leaderboard: LeaderboardApi;
1692
+ ugc: UgcApi;
1535
1693
  log(message: string, ...args: any[]): void;
1536
1694
  error(message: string, ...args: any[]): void;
1537
1695
  isAvailable(): boolean;
@@ -1679,6 +1837,7 @@ interface RundotGameAPI {
1679
1837
  notifications: NotificationsApi;
1680
1838
  lifecycles: LifecycleApi;
1681
1839
  social: SocialApi;
1840
+ imageGen: ImageGenApi;
1682
1841
  context: InitializationContext;
1683
1842
  }
1684
1843
 
@@ -1696,4 +1855,4 @@ interface AdsApi {
1696
1855
  showInterstitialAd(options?: ShowInterstitialAdOptions): Promise<boolean>;
1697
1856
  }
1698
1857
 
1699
- export { type AiChatCompletionRequest as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type ScheduleLocalNotification as C, type ScheduleNotificationOptions as D, type PopupsApi as E, type ShowToastOptions as F, type ShowInterstitialAdOptions as G, type Host as H, type ShowRewardedAdOptions as I, type ProfileApi as J, type DeviceApi as K, type DeviceInfo as L, type EnvironmentApi as M, type NavigationApi as N, type EnvironmentInfo as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationRunSummary as S, type SystemApi as T, type SafeArea as U, type CdnApi as V, type FetchFromCdnOptions as W, type TimeApi as X, type ServerTimeData as Y, type GetFutureTimeOptions as Z, type AiApi as _, type RecipeRequirementResult as a, type PlayerRankOptions as a$, type AiChatCompletionData as a0, type HapticsApi as a1, HapticFeedbackStyle as a2, type FeaturesApi as a3, type Experiment as a4, type LifecycleApi as a5, type SleepCallback as a6, type Subscription as a7, type AwakeCallback as a8, type PauseCallback as a9, type RoomMessageEvent as aA, type ProposedMoveEvent as aB, RundotGameTransport as aC, type RoomsApi as aD, type CreateRoomOptions as aE, type JoinOrCreateRoomOptions as aF, type JoinOrCreateResult as aG, type ListRoomsOptions as aH, type UpdateRoomDataOptions as aI, type RoomMessageRequest as aJ, type StartRoomGameOptions as aK, type ProposeMoveRequest as aL, type ProposeMoveResult as aM, type ValidateMoveVerdict as aN, type ValidateMoveResult as aO, type RoomSubscriptionOptions as aP, type LoggingApi as aQ, type IapApi as aR, type SpendCurrencyOptions as aS, type LoadEmbeddedAssetsResponse as aT, type SharedAssetsApi as aU, type LeaderboardApi as aV, type ScoreToken as aW, type SubmitScoreParams as aX, type SubmitScoreResult as aY, type GetPagedScoresOptions as aZ, type PagedScoresResponse as a_, type ResumeCallback as aa, type QuitCallback as ab, type SimulationApi as ac, type SimulationSlotValidationResult as ad, type SimulationBatchOperation as ae, type SimulationBatchOperationsResult as af, type SimulationAvailableItem as ag, type SimulationPowerPreview as ah, type SimulationSlotMutationResult as ai, type SimulationSlotContainer as aj, type SimulationAssignment as ak, type SimulationState as al, type ExecuteRecipeOptions as am, type ExecuteRecipeResponse as an, type CollectRecipeResult as ao, type ResetStateOptions as ap, type ResetStateResult as aq, type GetActiveRunsOptions as ar, type ExecuteScopedRecipeOptions as as, type ExecuteScopedRecipeResult as at, type GetAvailableRecipesOptions as au, type GetAvailableRecipesResult as av, type Recipe as aw, type GetBatchRecipeRequirements as ax, type TriggerRecipeChainOptions as ay, type RoomDataUpdate as az, type RundotGameSimulationStateResponse as b, type PlayerRankResult as b0, type GetPodiumScoresOptions as b1, type PodiumScoresResponse as b2, type PreloaderApi as b3, type SocialApi as b4, type ShareMetadata as b5, type ShareLinkResult as b6, type SocialQRCodeOptions as b7, type QRCodeResult as b8, type Avatar3dApi as b9, type RundotGameRoomCustomMetadata as bA, type RundotGameRoomPayload as bB, type RoomEnvelopeResponse as bC, type RoomsEnvelopeResponse as bD, type JoinOrCreateRoomEnvelopeResponse as bE, type RecipeInfo as bF, type SimulationPersonalState as bG, type SimulationRoomActiveRecipe as bH, type SimulationRoomState as bI, type SimulationBatchOperationAssign as bJ, type SimulationBatchOperationRemove as bK, type SimulationBatchOperationResult as bL, RpcSharedAssetsApi as bM, type LoadEmbeddedAssetsRequest as bN, type LeaderboardModeConfig as bO, type LeaderboardPeriodType as bP, type LeaderboardPeriodConfig as bQ, type LeaderboardAntiCheatConfig as bR, type LeaderboardDisplaySettings as bS, type LeaderboardConfig as bT, type LeaderboardEntry as bU, type PodiumScoresContext as bV, type HudInsets as bW, createHost as bX, type AssetManifest as ba, type Avatar3dConfig as bb, type ShowEditorOptions as bc, type Avatar3dEdits as bd, type AdsApi as be, type InitializationContext as bf, type InitializationOptions as bg, type AiMessage as bh, type Asset as bi, type Category as bj, MockAvatarApi as bk, type SubPath as bl, type TimeIntervalTriggerInput as bm, type NotificationTriggerInput as bn, type OnRequestCallback as bo, type OnResponseCallback as bp, type OnNotificationCallback as bq, type RpcTransport as br, type JoinRoomMatchCriteria as bs, type RoomMessageEventType as bt, type RoomMessagePayload as bu, type ProposedMovePayload as bv, ROOM_GAME_PHASES as bw, type RoomGamePhase as bx, type RundotGameRoomRulesGameState as by, type RundotGameRoomRules as bz, type SimulationUpdateType as c, type SimulationEntityUpdate as d, type SimulationActiveRunsUpdate as e, type SimulationSnapshotUpdate as f, type SimulationUpdateData as g, type SimulationSubscribeOptions as h, type RundotGameSimulationEffect as i, type RundotGameSimulationRecipe as j, type RundotGameSimulationConfig as k, type RecipeRequirementQuery as l, type RundotGameExecuteRecipeOptions as m, type RundotGameExecuteScopedRecipeOptions as n, type RundotGameAvailableRecipe as o, type RundotGameCollectRecipeResult as p, type RundotGameExecuteRecipeResult as q, RundotGameRoom as r, type RpcRequest as s, type RpcResponse as t, type RpcNotification as u, RpcClient as v, type StorageApi as w, type NavigationStackInfo as x, type PushAppOptions as y, type NotificationsApi as z };
1858
+ export { type AiChatCompletionRequest as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type ScheduleLocalNotification as C, type ScheduleNotificationOptions as D, type PopupsApi as E, type ShowToastOptions as F, type ShowInterstitialAdOptions as G, type Host as H, type ShowRewardedAdOptions as I, type ProfileApi as J, type DeviceApi as K, type DeviceInfo as L, type EnvironmentApi as M, type NavigationApi as N, type EnvironmentInfo as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationRunSummary as S, type SystemApi as T, type SafeArea as U, type CdnApi as V, type FetchFromCdnOptions as W, type TimeApi as X, type ServerTimeData as Y, type GetFutureTimeOptions as Z, type AiApi as _, type RecipeRequirementResult as a, type PagedScoresResponse as a$, type AiChatCompletionData as a0, type HapticsApi as a1, HapticFeedbackStyle as a2, type FeaturesApi as a3, type Experiment as a4, type LifecycleApi as a5, type SleepCallback as a6, type Subscription as a7, type AwakeCallback as a8, type PauseCallback as a9, type RoomMessageEvent as aA, type ProposedMoveEvent as aB, RundotGameTransport as aC, type RoomsApi as aD, type CreateRoomOptions as aE, type JoinOrCreateRoomOptions as aF, type JoinOrCreateResult as aG, type ListRoomsOptions as aH, type UpdateRoomDataOptions as aI, type RoomMessageRequest as aJ, type StartRoomGameOptions as aK, type ProposeMoveRequest as aL, type ProposeMoveResult as aM, type ValidateMoveVerdict as aN, type ValidateMoveResult as aO, type RoomSubscriptionOptions as aP, type LoggingApi as aQ, type IapApi as aR, type SpendCurrencyOptions as aS, type OpenStoreResult as aT, type LoadEmbeddedAssetsResponse as aU, type SharedAssetsApi as aV, type LeaderboardApi as aW, type ScoreToken as aX, type SubmitScoreParams as aY, type SubmitScoreResult as aZ, type GetPagedScoresOptions as a_, type ResumeCallback as aa, type QuitCallback as ab, type SimulationApi as ac, type SimulationSlotValidationResult as ad, type SimulationBatchOperation as ae, type SimulationBatchOperationsResult as af, type SimulationAvailableItem as ag, type SimulationPowerPreview as ah, type SimulationSlotMutationResult as ai, type SimulationSlotContainer as aj, type SimulationAssignment as ak, type SimulationState as al, type ExecuteRecipeOptions as am, type ExecuteRecipeResponse as an, type CollectRecipeResult as ao, type ResetStateOptions as ap, type ResetStateResult as aq, type GetActiveRunsOptions as ar, type ExecuteScopedRecipeOptions as as, type ExecuteScopedRecipeResult as at, type GetAvailableRecipesOptions as au, type GetAvailableRecipesResult as av, type Recipe as aw, type GetBatchRecipeRequirements as ax, type TriggerRecipeChainOptions as ay, type RoomDataUpdate as az, type RundotGameSimulationStateResponse as b, type HudInsets as b$, type PlayerRankOptions as b0, type PlayerRankResult as b1, type GetPodiumScoresOptions as b2, type PodiumScoresResponse as b3, type PreloaderApi as b4, type SocialApi as b5, type ShareMetadata as b6, type ShareLinkResult as b7, type SocialQRCodeOptions as b8, type QRCodeResult as b9, type ProposedMovePayload as bA, ROOM_GAME_PHASES as bB, type RoomGamePhase as bC, type RundotGameRoomRulesGameState as bD, type RundotGameRoomRules as bE, type RundotGameRoomCustomMetadata as bF, type RundotGameRoomPayload as bG, type RoomEnvelopeResponse as bH, type RoomsEnvelopeResponse as bI, type JoinOrCreateRoomEnvelopeResponse as bJ, type RecipeInfo as bK, type SimulationPersonalState as bL, type SimulationRoomActiveRecipe as bM, type SimulationRoomState as bN, type SimulationBatchOperationAssign as bO, type SimulationBatchOperationRemove as bP, type SimulationBatchOperationResult as bQ, RpcSharedAssetsApi as bR, type LoadEmbeddedAssetsRequest as bS, type LeaderboardModeConfig as bT, type LeaderboardPeriodType as bU, type LeaderboardPeriodConfig as bV, type LeaderboardAntiCheatConfig as bW, type LeaderboardDisplaySettings as bX, type LeaderboardConfig as bY, type LeaderboardEntry as bZ, type PodiumScoresContext as b_, type Avatar3dApi as ba, type AssetManifest as bb, type Avatar3dConfig as bc, type ShowEditorOptions as bd, type Avatar3dEdits as be, type AdsApi as bf, type ImageGenApi as bg, type ImageGenParams as bh, type ImageGenResult as bi, type UgcApi as bj, type InitializationContext as bk, type InitializationOptions as bl, type AiMessage as bm, type Asset as bn, type Category as bo, MockAvatarApi as bp, type SubPath as bq, type TimeIntervalTriggerInput as br, type NotificationTriggerInput as bs, type OnRequestCallback as bt, type OnResponseCallback as bu, type OnNotificationCallback as bv, type RpcTransport as bw, type JoinRoomMatchCriteria as bx, type RoomMessageEventType as by, type RoomMessagePayload as bz, type SimulationUpdateType as c, createHost as c0, type SimulationEntityUpdate as d, type SimulationActiveRunsUpdate as e, type SimulationSnapshotUpdate as f, type SimulationUpdateData as g, type SimulationSubscribeOptions as h, type RundotGameSimulationEffect as i, type RundotGameSimulationRecipe as j, type RundotGameSimulationConfig as k, type RecipeRequirementQuery as l, type RundotGameExecuteRecipeOptions as m, type RundotGameExecuteScopedRecipeOptions as n, type RundotGameAvailableRecipe as o, type RundotGameCollectRecipeResult as p, type RundotGameExecuteRecipeResult as q, RundotGameRoom as r, type RpcRequest as s, type RpcResponse as t, type RpcNotification as u, RpcClient as v, type StorageApi as w, type NavigationStackInfo as x, type PushAppOptions as y, type NotificationsApi as z };