@agent-play/sdk 3.4.1 → 3.4.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.
@@ -444,6 +444,16 @@ declare const MINIMUM_PLAY_WORLD_BOUNDS: WorldBounds;
444
444
  * Shorter on Y than {@link MINIMUM_PLAY_WORLD_BOUNDS}: three vertical strips across span X = 20, height 3.
445
445
  */
446
446
  declare const MINIMUM_STREET_LAYOUT_BOUNDS: WorldBounds;
447
+ /** Height in grid rows of the three-column street band at the bottom of the map. */
448
+ declare const COLUMN_STREET_ROW_HEIGHT = 3;
449
+ /** Height in grid rows of the single-zone parking street band above column streets. */
450
+ declare const PARKING_STREET_ROW_HEIGHT = 4;
451
+ /** Empty grid rows between column street signs and the parking asphalt band. */
452
+ declare const PARKING_COLUMN_GAP_ROWS = 2.5;
453
+ declare const parkingZoneMinYFromColumnBase: (columnMinY: number) => number;
454
+ declare const parkingZoneMaxYFromColumnBase: (columnMinY: number) => number;
455
+ /** Default bounds: column streets (Y 0–2), gap, parking row (Y 6–9). */
456
+ declare const DEFAULT_LAYOUT_BOUNDS_WITH_PARKING: WorldBounds;
447
457
  declare function expandBoundsToMinimumPlayArea(bounds: WorldBounds): WorldBounds;
448
458
  /**
449
459
  * Clamps a point to lie inside `bounds` along both axes.
@@ -565,7 +575,7 @@ type StreetPoolEntry = {
565
575
  declare const STREET_NAME_POOL: readonly StreetPoolEntry[];
566
576
  declare function getStreetPoolEntryById(id: string): StreetPoolEntry | undefined;
567
577
 
568
- type OccupantGroup = "agent" | "space" | "arcade";
578
+ type OccupantGroup = "agent" | "space" | "arcade" | "parking";
569
579
  type Street = {
570
580
  id: string;
571
581
  label: string;
@@ -623,10 +633,14 @@ declare function isSpaceAnchorOccupancyPointAvailableInZone(input: {
623
633
  structureMinDistance: number;
624
634
  }): boolean;
625
635
  type WorldLayoutBoundsField = "minX" | "minY" | "maxX" | "maxY";
636
+ declare function layoutHasParkingZone(layout: WorldLayout): boolean;
626
637
  declare function migrateWorldLayoutBounds(input: {
627
638
  layout: WorldLayout;
628
639
  bounds: WorldBounds;
629
640
  }): WorldLayout;
641
+ declare function layoutNeedsParkingColumnGapMigration(layout: WorldLayout): boolean;
642
+ declare function migrateLayoutToParkingColumnGap(layout: WorldLayout): WorldLayout;
643
+ declare function migrateLayoutToParkingRow(layout: WorldLayout): WorldLayout;
630
644
  declare function applyBoundsFieldUpdateToLayout(input: {
631
645
  layout: WorldLayout;
632
646
  field: WorldLayoutBoundsField;
@@ -636,6 +650,15 @@ declare function createVerticalStripSeedLayout(input: {
636
650
  bounds: WorldBounds;
637
651
  streets: readonly [StreetPoolEntry, StreetPoolEntry, StreetPoolEntry];
638
652
  }): WorldLayout;
653
+ declare function createWorldLayoutWithParkingRow(input: {
654
+ bounds: WorldBounds;
655
+ streets: readonly [
656
+ StreetPoolEntry,
657
+ StreetPoolEntry,
658
+ StreetPoolEntry,
659
+ StreetPoolEntry
660
+ ];
661
+ }): WorldLayout;
639
662
 
640
663
  /**
641
664
  * @packageDocumentation
@@ -831,7 +854,7 @@ declare const SupermarketItemSchema: z.ZodObject<{
831
854
  soldAt?: string | undefined;
832
855
  };
833
856
  row: 1 | 2 | 3 | 4;
834
- column: 1 | 2 | 5 | 3 | 4;
857
+ column: 1 | 2 | 3 | 4 | 5;
835
858
  }, {
836
859
  id: string;
837
860
  spaceId: string;
@@ -845,7 +868,7 @@ declare const SupermarketItemSchema: z.ZodObject<{
845
868
  soldAt?: string | undefined;
846
869
  };
847
870
  row: 1 | 2 | 3 | 4;
848
- column: 1 | 2 | 5 | 3 | 4;
871
+ column: 1 | 2 | 3 | 4 | 5;
849
872
  }>;
850
873
  /** Runtime type for {@link SupermarketItemSchema}. @public */
851
874
  type SupermarketItem = z.infer<typeof SupermarketItemSchema>;
@@ -908,7 +931,7 @@ declare const CarWashCarSchema: z.ZodObject<{
908
931
  soldToPlayerId?: string | undefined;
909
932
  soldAt?: string | undefined;
910
933
  };
911
- slot: 8 | 7 | 1 | 6 | 2 | 5 | 3 | 4 | 9;
934
+ slot: 8 | 7 | 1 | 6 | 2 | 3 | 4 | 5 | 9;
912
935
  model: string;
913
936
  year: number;
914
937
  colorHex: string;
@@ -923,7 +946,7 @@ declare const CarWashCarSchema: z.ZodObject<{
923
946
  soldToPlayerId?: string | undefined;
924
947
  soldAt?: string | undefined;
925
948
  };
926
- slot: 8 | 7 | 1 | 6 | 2 | 5 | 3 | 4 | 9;
949
+ slot: 8 | 7 | 1 | 6 | 2 | 3 | 4 | 5 | 9;
927
950
  model: string;
928
951
  year: number;
929
952
  colorHex: string;
@@ -1009,16 +1032,16 @@ declare const PurchaseRecordSchema: z.ZodObject<{
1009
1032
  id: z.ZodString;
1010
1033
  playerId: z.ZodString;
1011
1034
  spaceId: z.ZodString;
1012
- amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
1035
+ amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "parking", "house", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
1013
1036
  itemRef: z.ZodObject<{
1014
- kind: z.ZodEnum<["shop", "supermarket", "carwash", "game", "apu", "talk", "bundle"]>;
1037
+ kind: z.ZodEnum<["shop", "supermarket", "carwash", "parking", "house", "game", "apu", "talk", "bundle"]>;
1015
1038
  id: z.ZodString;
1016
1039
  }, "strip", z.ZodTypeAny, {
1017
1040
  id: string;
1018
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1041
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1019
1042
  }, {
1020
1043
  id: string;
1021
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1044
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1022
1045
  }>;
1023
1046
  priceUsd: z.ZodOptional<z.ZodNumber>;
1024
1047
  at: z.ZodString;
@@ -1035,10 +1058,10 @@ declare const PurchaseRecordSchema: z.ZodObject<{
1035
1058
  id: string;
1036
1059
  spaceId: string;
1037
1060
  playerId: string;
1038
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1061
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1039
1062
  itemRef: {
1040
1063
  id: string;
1041
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1064
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1042
1065
  };
1043
1066
  priceUsd?: number | undefined;
1044
1067
  detail?: string | undefined;
@@ -1054,10 +1077,10 @@ declare const PurchaseRecordSchema: z.ZodObject<{
1054
1077
  id: string;
1055
1078
  spaceId: string;
1056
1079
  playerId: string;
1057
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1080
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1058
1081
  itemRef: {
1059
1082
  id: string;
1060
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1083
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1061
1084
  };
1062
1085
  priceUsd?: number | undefined;
1063
1086
  detail?: string | undefined;
@@ -1122,6 +1145,445 @@ type SpaceContentItem = ShopItem | SupermarketItem | CarWashCar;
1122
1145
  */
1123
1146
  declare function desaturateColor(hex: number): number;
1124
1147
 
1148
+ declare const MAX_TIMED_PARKING_SLOTS_PER_NODE = 2;
1149
+ declare const MAX_SLOTS_WITH_FOREVER = 1;
1150
+ type ParkingDurationTier = "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1151
+ type ParkingOccupancyRef = {
1152
+ readonly nodeId: string;
1153
+ readonly tier: ParkingDurationTier;
1154
+ readonly expiresAt: string | null;
1155
+ };
1156
+ type ParkingOwnershipError = "PARKING_OWNERSHIP_LIMIT" | "PARKING_FOREVER_LIMIT";
1157
+ declare const canNodeAcquireParkingSpot: (input: {
1158
+ nodeId: string;
1159
+ tier: ParkingDurationTier;
1160
+ active: ReadonlyArray<ParkingOccupancyRef>;
1161
+ }) => {
1162
+ ok: true;
1163
+ } | {
1164
+ ok: false;
1165
+ error: ParkingOwnershipError;
1166
+ };
1167
+
1168
+ declare const ParkingDurationTierSchema: z.ZodEnum<["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"]>;
1169
+ declare const ParkingOccupantSchema: z.ZodObject<{
1170
+ nodeId: z.ZodString;
1171
+ carPurchaseId: z.ZodString;
1172
+ displayNick: z.ZodString;
1173
+ colorHex: z.ZodString;
1174
+ model: z.ZodString;
1175
+ tier: z.ZodEnum<["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"]>;
1176
+ purchasedAt: z.ZodString;
1177
+ expiresAt: z.ZodNullable<z.ZodString>;
1178
+ }, "strip", z.ZodTypeAny, {
1179
+ model: string;
1180
+ colorHex: string;
1181
+ nodeId: string;
1182
+ carPurchaseId: string;
1183
+ displayNick: string;
1184
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1185
+ purchasedAt: string;
1186
+ expiresAt: string | null;
1187
+ }, {
1188
+ model: string;
1189
+ colorHex: string;
1190
+ nodeId: string;
1191
+ carPurchaseId: string;
1192
+ displayNick: string;
1193
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1194
+ purchasedAt: string;
1195
+ expiresAt: string | null;
1196
+ }>;
1197
+ declare const ParkingSpotSchema: z.ZodObject<{
1198
+ id: z.ZodString;
1199
+ bay: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1200
+ layer: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1201
+ occupant: z.ZodNullable<z.ZodObject<{
1202
+ nodeId: z.ZodString;
1203
+ carPurchaseId: z.ZodString;
1204
+ displayNick: z.ZodString;
1205
+ colorHex: z.ZodString;
1206
+ model: z.ZodString;
1207
+ tier: z.ZodEnum<["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"]>;
1208
+ purchasedAt: z.ZodString;
1209
+ expiresAt: z.ZodNullable<z.ZodString>;
1210
+ }, "strip", z.ZodTypeAny, {
1211
+ model: string;
1212
+ colorHex: string;
1213
+ nodeId: string;
1214
+ carPurchaseId: string;
1215
+ displayNick: string;
1216
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1217
+ purchasedAt: string;
1218
+ expiresAt: string | null;
1219
+ }, {
1220
+ model: string;
1221
+ colorHex: string;
1222
+ nodeId: string;
1223
+ carPurchaseId: string;
1224
+ displayNick: string;
1225
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1226
+ purchasedAt: string;
1227
+ expiresAt: string | null;
1228
+ }>>;
1229
+ }, "strip", z.ZodTypeAny, {
1230
+ occupant: {
1231
+ model: string;
1232
+ colorHex: string;
1233
+ nodeId: string;
1234
+ carPurchaseId: string;
1235
+ displayNick: string;
1236
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1237
+ purchasedAt: string;
1238
+ expiresAt: string | null;
1239
+ } | null;
1240
+ id: string;
1241
+ bay: 1 | 2 | 3 | 4;
1242
+ layer: 1 | 2;
1243
+ }, {
1244
+ occupant: {
1245
+ model: string;
1246
+ colorHex: string;
1247
+ nodeId: string;
1248
+ carPurchaseId: string;
1249
+ displayNick: string;
1250
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1251
+ purchasedAt: string;
1252
+ expiresAt: string | null;
1253
+ } | null;
1254
+ id: string;
1255
+ bay: 1 | 2 | 3 | 4;
1256
+ layer: 1 | 2;
1257
+ }>;
1258
+ declare const ParkingStreetContentSchema: z.ZodObject<{
1259
+ spots: z.ZodArray<z.ZodObject<{
1260
+ id: z.ZodString;
1261
+ bay: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1262
+ layer: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1263
+ occupant: z.ZodNullable<z.ZodObject<{
1264
+ nodeId: z.ZodString;
1265
+ carPurchaseId: z.ZodString;
1266
+ displayNick: z.ZodString;
1267
+ colorHex: z.ZodString;
1268
+ model: z.ZodString;
1269
+ tier: z.ZodEnum<["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"]>;
1270
+ purchasedAt: z.ZodString;
1271
+ expiresAt: z.ZodNullable<z.ZodString>;
1272
+ }, "strip", z.ZodTypeAny, {
1273
+ model: string;
1274
+ colorHex: string;
1275
+ nodeId: string;
1276
+ carPurchaseId: string;
1277
+ displayNick: string;
1278
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1279
+ purchasedAt: string;
1280
+ expiresAt: string | null;
1281
+ }, {
1282
+ model: string;
1283
+ colorHex: string;
1284
+ nodeId: string;
1285
+ carPurchaseId: string;
1286
+ displayNick: string;
1287
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1288
+ purchasedAt: string;
1289
+ expiresAt: string | null;
1290
+ }>>;
1291
+ }, "strip", z.ZodTypeAny, {
1292
+ occupant: {
1293
+ model: string;
1294
+ colorHex: string;
1295
+ nodeId: string;
1296
+ carPurchaseId: string;
1297
+ displayNick: string;
1298
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1299
+ purchasedAt: string;
1300
+ expiresAt: string | null;
1301
+ } | null;
1302
+ id: string;
1303
+ bay: 1 | 2 | 3 | 4;
1304
+ layer: 1 | 2;
1305
+ }, {
1306
+ occupant: {
1307
+ model: string;
1308
+ colorHex: string;
1309
+ nodeId: string;
1310
+ carPurchaseId: string;
1311
+ displayNick: string;
1312
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1313
+ purchasedAt: string;
1314
+ expiresAt: string | null;
1315
+ } | null;
1316
+ id: string;
1317
+ bay: 1 | 2 | 3 | 4;
1318
+ layer: 1 | 2;
1319
+ }>, "many">;
1320
+ rates: z.ZodRecord<z.ZodEnum<["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"]>, z.ZodNumber>;
1321
+ }, "strip", z.ZodTypeAny, {
1322
+ spots: {
1323
+ occupant: {
1324
+ model: string;
1325
+ colorHex: string;
1326
+ nodeId: string;
1327
+ carPurchaseId: string;
1328
+ displayNick: string;
1329
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1330
+ purchasedAt: string;
1331
+ expiresAt: string | null;
1332
+ } | null;
1333
+ id: string;
1334
+ bay: 1 | 2 | 3 | 4;
1335
+ layer: 1 | 2;
1336
+ }[];
1337
+ rates: Partial<Record<"1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever", number>>;
1338
+ }, {
1339
+ spots: {
1340
+ occupant: {
1341
+ model: string;
1342
+ colorHex: string;
1343
+ nodeId: string;
1344
+ carPurchaseId: string;
1345
+ displayNick: string;
1346
+ tier: "1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever";
1347
+ purchasedAt: string;
1348
+ expiresAt: string | null;
1349
+ } | null;
1350
+ id: string;
1351
+ bay: 1 | 2 | 3 | 4;
1352
+ layer: 1 | 2;
1353
+ }[];
1354
+ rates: Partial<Record<"1h" | "12h" | "1d" | "3d" | "7d" | "1mo" | "3mo" | "1y" | "forever", number>>;
1355
+ }>;
1356
+ type ParkingSpot = z.infer<typeof ParkingSpotSchema>;
1357
+ type ParkingOccupant = z.infer<typeof ParkingOccupantSchema>;
1358
+ type ParkingStreetContent = z.infer<typeof ParkingStreetContentSchema>;
1359
+ declare const PARKING_BAY_COUNT = 4;
1360
+ declare const PARKING_LAYERS_PER_BAY = 2;
1361
+ declare const PARKING_SPOT_COUNT: number;
1362
+ declare const createEmptyParkingStreetContent: () => ParkingStreetContent;
1363
+ declare const listActiveParkingOccupancies: (content: ParkingStreetContent, nowIso: string) => Array<{
1364
+ nodeId: string;
1365
+ tier: ParkingDurationTier;
1366
+ expiresAt: string | null;
1367
+ }>;
1368
+ declare const findParkingSpot: (content: ParkingStreetContent, bay: ParkingSpot["bay"], layer: ParkingSpot["layer"]) => ParkingSpot | undefined;
1369
+
1370
+ declare const HOUSE_WORLD_X: readonly [3, 8, 13, 18];
1371
+ declare const HouseIdSchema: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1372
+ declare const HOUSE_CATALOG: readonly [{
1373
+ readonly houseId: 1;
1374
+ readonly bay: 1;
1375
+ readonly priceUsd: 1299.99;
1376
+ readonly layoutLabel: "Studio layout";
1377
+ }, {
1378
+ readonly houseId: 2;
1379
+ readonly bay: 2;
1380
+ readonly priceUsd: 2199.99;
1381
+ readonly layoutLabel: "Split room";
1382
+ }, {
1383
+ readonly houseId: 3;
1384
+ readonly bay: 3;
1385
+ readonly priceUsd: 3499.99;
1386
+ readonly layoutLabel: "L-shaped";
1387
+ }, {
1388
+ readonly houseId: 4;
1389
+ readonly bay: 4;
1390
+ readonly priceUsd: 5999.99;
1391
+ readonly layoutLabel: "Loft";
1392
+ }];
1393
+ declare const HouseSlotSchema: z.ZodObject<{
1394
+ id: z.ZodString;
1395
+ houseId: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1396
+ bay: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1397
+ worldX: z.ZodNumber;
1398
+ priceUsd: z.ZodNumber;
1399
+ layoutId: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1400
+ layoutLabel: z.ZodString;
1401
+ ownerNodeId: z.ZodNullable<z.ZodString>;
1402
+ ownerDisplayName: z.ZodNullable<z.ZodString>;
1403
+ ownerName: z.ZodNullable<z.ZodString>;
1404
+ ownerSignature: z.ZodNullable<z.ZodString>;
1405
+ purchasedAt: z.ZodNullable<z.ZodString>;
1406
+ }, "strip", z.ZodTypeAny, {
1407
+ id: string;
1408
+ priceUsd: number;
1409
+ purchasedAt: string | null;
1410
+ bay: 1 | 2 | 3 | 4;
1411
+ houseId: 1 | 2 | 3 | 4;
1412
+ worldX: number;
1413
+ layoutId: 1 | 2 | 3 | 4;
1414
+ layoutLabel: string;
1415
+ ownerNodeId: string | null;
1416
+ ownerDisplayName: string | null;
1417
+ ownerName: string | null;
1418
+ ownerSignature: string | null;
1419
+ }, {
1420
+ id: string;
1421
+ priceUsd: number;
1422
+ purchasedAt: string | null;
1423
+ bay: 1 | 2 | 3 | 4;
1424
+ houseId: 1 | 2 | 3 | 4;
1425
+ worldX: number;
1426
+ layoutId: 1 | 2 | 3 | 4;
1427
+ layoutLabel: string;
1428
+ ownerNodeId: string | null;
1429
+ ownerDisplayName: string | null;
1430
+ ownerName: string | null;
1431
+ ownerSignature: string | null;
1432
+ }>;
1433
+ declare const HouseStreetContentSchema: z.ZodObject<{
1434
+ houses: z.ZodArray<z.ZodObject<{
1435
+ id: z.ZodString;
1436
+ houseId: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1437
+ bay: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1438
+ worldX: z.ZodNumber;
1439
+ priceUsd: z.ZodNumber;
1440
+ layoutId: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
1441
+ layoutLabel: z.ZodString;
1442
+ ownerNodeId: z.ZodNullable<z.ZodString>;
1443
+ ownerDisplayName: z.ZodNullable<z.ZodString>;
1444
+ ownerName: z.ZodNullable<z.ZodString>;
1445
+ ownerSignature: z.ZodNullable<z.ZodString>;
1446
+ purchasedAt: z.ZodNullable<z.ZodString>;
1447
+ }, "strip", z.ZodTypeAny, {
1448
+ id: string;
1449
+ priceUsd: number;
1450
+ purchasedAt: string | null;
1451
+ bay: 1 | 2 | 3 | 4;
1452
+ houseId: 1 | 2 | 3 | 4;
1453
+ worldX: number;
1454
+ layoutId: 1 | 2 | 3 | 4;
1455
+ layoutLabel: string;
1456
+ ownerNodeId: string | null;
1457
+ ownerDisplayName: string | null;
1458
+ ownerName: string | null;
1459
+ ownerSignature: string | null;
1460
+ }, {
1461
+ id: string;
1462
+ priceUsd: number;
1463
+ purchasedAt: string | null;
1464
+ bay: 1 | 2 | 3 | 4;
1465
+ houseId: 1 | 2 | 3 | 4;
1466
+ worldX: number;
1467
+ layoutId: 1 | 2 | 3 | 4;
1468
+ layoutLabel: string;
1469
+ ownerNodeId: string | null;
1470
+ ownerDisplayName: string | null;
1471
+ ownerName: string | null;
1472
+ ownerSignature: string | null;
1473
+ }>, "many">;
1474
+ }, "strip", z.ZodTypeAny, {
1475
+ houses: {
1476
+ id: string;
1477
+ priceUsd: number;
1478
+ purchasedAt: string | null;
1479
+ bay: 1 | 2 | 3 | 4;
1480
+ houseId: 1 | 2 | 3 | 4;
1481
+ worldX: number;
1482
+ layoutId: 1 | 2 | 3 | 4;
1483
+ layoutLabel: string;
1484
+ ownerNodeId: string | null;
1485
+ ownerDisplayName: string | null;
1486
+ ownerName: string | null;
1487
+ ownerSignature: string | null;
1488
+ }[];
1489
+ }, {
1490
+ houses: {
1491
+ id: string;
1492
+ priceUsd: number;
1493
+ purchasedAt: string | null;
1494
+ bay: 1 | 2 | 3 | 4;
1495
+ houseId: 1 | 2 | 3 | 4;
1496
+ worldX: number;
1497
+ layoutId: 1 | 2 | 3 | 4;
1498
+ layoutLabel: string;
1499
+ ownerNodeId: string | null;
1500
+ ownerDisplayName: string | null;
1501
+ ownerName: string | null;
1502
+ ownerSignature: string | null;
1503
+ }[];
1504
+ }>;
1505
+ type HouseId = z.infer<typeof HouseIdSchema>;
1506
+ type HouseSlot = z.infer<typeof HouseSlotSchema>;
1507
+ type HouseStreetContent = z.infer<typeof HouseStreetContentSchema>;
1508
+ declare const PARKING_HOUSE_COUNT = 4;
1509
+ declare const createEmptyHouseStreetContent: () => HouseStreetContent;
1510
+ declare const findHouseSlot: (content: HouseStreetContent, houseId: HouseId) => HouseSlot | undefined;
1511
+ declare const isHouseOwned: (house: HouseSlot) => boolean;
1512
+ declare const housePurchaseDetail: (house: HouseSlot) => string;
1513
+ declare const formatHouseOwnerDisplayName: (input: {
1514
+ name: string;
1515
+ signature: string;
1516
+ }) => string;
1517
+ declare const buildHouseOwnershipPanelLines: (house: HouseSlot) => readonly string[];
1518
+
1519
+ type HouseStageBounds = {
1520
+ readonly minX: number;
1521
+ readonly minY: number;
1522
+ readonly maxX: number;
1523
+ readonly maxY: number;
1524
+ };
1525
+ type HouseFixtureKind = "bed" | "wardrobe" | "mirror" | "window";
1526
+ type HouseFixtureSlot = {
1527
+ readonly kind: HouseFixtureKind;
1528
+ readonly variant: string;
1529
+ readonly x: number;
1530
+ readonly y: number;
1531
+ readonly rotation?: 0 | 90 | 180 | 270;
1532
+ };
1533
+ type HouseBlueprint = {
1534
+ readonly houseId: HouseId;
1535
+ readonly label: string;
1536
+ readonly bounds: HouseStageBounds;
1537
+ readonly floor: {
1538
+ readonly color: number;
1539
+ readonly pattern: "planks" | "tiles" | "carpet";
1540
+ };
1541
+ readonly exteriorPalette: {
1542
+ readonly wall: number;
1543
+ readonly roof: number;
1544
+ readonly door: number;
1545
+ readonly window: number;
1546
+ readonly trim: number;
1547
+ };
1548
+ readonly fixtures: ReadonlyArray<{
1549
+ readonly kind: HouseFixtureKind;
1550
+ readonly variant: string;
1551
+ readonly x: number;
1552
+ readonly y: number;
1553
+ readonly rotation?: 0 | 90 | 180 | 270;
1554
+ }>;
1555
+ readonly spawn: {
1556
+ readonly x: number;
1557
+ readonly y: number;
1558
+ };
1559
+ };
1560
+ declare const HOUSE_BLUEPRINTS: readonly HouseBlueprint[];
1561
+ declare const getHouseBlueprint: (houseId: HouseId) => HouseBlueprint;
1562
+ declare const layoutHouseFixtures: (blueprint: HouseBlueprint) => HouseFixtureSlot[];
1563
+ declare const houseSpawnPosition: (blueprint: HouseBlueprint) => {
1564
+ x: number;
1565
+ y: number;
1566
+ };
1567
+ declare const clampHousePosition: (blueprint: HouseBlueprint, pos: {
1568
+ x: number;
1569
+ y: number;
1570
+ }) => {
1571
+ x: number;
1572
+ y: number;
1573
+ };
1574
+
1575
+ declare const PARKING_DURATION_TIERS: readonly ["1h", "12h", "1d", "3d", "7d", "1mo", "3mo", "1y", "forever"];
1576
+ declare const DEFAULT_PARKING_RATES_USD: Record<ParkingDurationTier, number>;
1577
+ declare const effectiveHourlyRateUsd: (tier: ParkingDurationTier) => number;
1578
+ declare const computeParkingExpiresAt: (input: {
1579
+ tier: ParkingDurationTier;
1580
+ purchasedAtIso: string;
1581
+ }) => string | null;
1582
+ declare const isParkingOccupantActive: (input: {
1583
+ expiresAt: string | null;
1584
+ nowIso: string;
1585
+ }) => boolean;
1586
+
1125
1587
  /**
1126
1588
  * Token name for redeemable power-up units (Agent Play Units).
1127
1589
  *
@@ -1487,16 +1949,16 @@ declare const ScannerTxRecordSchema: z.ZodObject<{
1487
1949
  id: z.ZodString;
1488
1950
  playerId: z.ZodString;
1489
1951
  spaceId: z.ZodString;
1490
- amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
1952
+ amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "parking", "house", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
1491
1953
  itemRef: z.ZodObject<{
1492
- kind: z.ZodEnum<["shop", "supermarket", "carwash", "game", "apu", "talk", "bundle"]>;
1954
+ kind: z.ZodEnum<["shop", "supermarket", "carwash", "parking", "house", "game", "apu", "talk", "bundle"]>;
1493
1955
  id: z.ZodString;
1494
1956
  }, "strip", z.ZodTypeAny, {
1495
1957
  id: string;
1496
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1958
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1497
1959
  }, {
1498
1960
  id: string;
1499
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1961
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1500
1962
  }>;
1501
1963
  priceUsd: z.ZodOptional<z.ZodNumber>;
1502
1964
  at: z.ZodString;
@@ -1519,10 +1981,10 @@ declare const ScannerTxRecordSchema: z.ZodObject<{
1519
1981
  id: string;
1520
1982
  spaceId: string;
1521
1983
  playerId: string;
1522
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1984
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1523
1985
  itemRef: {
1524
1986
  id: string;
1525
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
1987
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1526
1988
  };
1527
1989
  hostId: string;
1528
1990
  indexedAt: string;
@@ -1543,10 +2005,10 @@ declare const ScannerTxRecordSchema: z.ZodObject<{
1543
2005
  id: string;
1544
2006
  spaceId: string;
1545
2007
  playerId: string;
1546
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2008
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1547
2009
  itemRef: {
1548
2010
  id: string;
1549
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2011
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1550
2012
  };
1551
2013
  hostId: string;
1552
2014
  indexedAt: string;
@@ -1614,15 +2076,15 @@ declare const ScannerMigrationStateSchema: z.ZodObject<{
1614
2076
  cursor: string;
1615
2077
  totalIndexed: number;
1616
2078
  startedAt: string;
1617
- completedAt?: string | undefined;
1618
2079
  error?: string | undefined;
2080
+ completedAt?: string | undefined;
1619
2081
  }, {
1620
2082
  status: "pending" | "running" | "completed" | "failed";
1621
2083
  cursor: string;
1622
2084
  totalIndexed: number;
1623
2085
  startedAt: string;
1624
- completedAt?: string | undefined;
1625
2086
  error?: string | undefined;
2087
+ completedAt?: string | undefined;
1626
2088
  }>;
1627
2089
  type ScannerMigrationState = z.infer<typeof ScannerMigrationStateSchema>;
1628
2090
  /**
@@ -1758,16 +2220,16 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
1758
2220
  id: z.ZodString;
1759
2221
  playerId: z.ZodString;
1760
2222
  spaceId: z.ZodString;
1761
- amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
2223
+ amenityKind: z.ZodEnum<["shop", "supermarket", "car_wash", "parking", "house", "talk_time", "wallet_bundle", "apu_credit", "apu_debit"]>;
1762
2224
  itemRef: z.ZodObject<{
1763
- kind: z.ZodEnum<["shop", "supermarket", "carwash", "game", "apu", "talk", "bundle"]>;
2225
+ kind: z.ZodEnum<["shop", "supermarket", "carwash", "parking", "house", "game", "apu", "talk", "bundle"]>;
1764
2226
  id: z.ZodString;
1765
2227
  }, "strip", z.ZodTypeAny, {
1766
2228
  id: string;
1767
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2229
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1768
2230
  }, {
1769
2231
  id: string;
1770
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2232
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1771
2233
  }>;
1772
2234
  priceUsd: z.ZodOptional<z.ZodNumber>;
1773
2235
  at: z.ZodString;
@@ -1790,10 +2252,10 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
1790
2252
  id: string;
1791
2253
  spaceId: string;
1792
2254
  playerId: string;
1793
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2255
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1794
2256
  itemRef: {
1795
2257
  id: string;
1796
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2258
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1797
2259
  };
1798
2260
  hostId: string;
1799
2261
  indexedAt: string;
@@ -1814,10 +2276,10 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
1814
2276
  id: string;
1815
2277
  spaceId: string;
1816
2278
  playerId: string;
1817
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2279
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1818
2280
  itemRef: {
1819
2281
  id: string;
1820
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2282
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1821
2283
  };
1822
2284
  hostId: string;
1823
2285
  indexedAt: string;
@@ -1926,8 +2388,8 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
1926
2388
  traits: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
1927
2389
  }, "strip", z.ZodTypeAny, {
1928
2390
  kind: "agent" | "unknown" | "main";
1929
- generatedAt: string;
1930
2391
  nodeId: string;
2392
+ generatedAt: string;
1931
2393
  wallet: {
1932
2394
  balanceUsd: number;
1933
2395
  currency: "USD";
@@ -1954,10 +2416,10 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
1954
2416
  id: string;
1955
2417
  spaceId: string;
1956
2418
  playerId: string;
1957
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2419
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
1958
2420
  itemRef: {
1959
2421
  id: string;
1960
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2422
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
1961
2423
  };
1962
2424
  hostId: string;
1963
2425
  indexedAt: string;
@@ -2006,8 +2468,8 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
2006
2468
  traits: Record<string, string | number | boolean | null>;
2007
2469
  }, {
2008
2470
  kind: "agent" | "unknown" | "main";
2009
- generatedAt: string;
2010
2471
  nodeId: string;
2472
+ generatedAt: string;
2011
2473
  wallet: {
2012
2474
  balanceUsd: number;
2013
2475
  currency: "USD";
@@ -2034,10 +2496,10 @@ declare const ScannerNodeProfileSchema: z.ZodObject<{
2034
2496
  id: string;
2035
2497
  spaceId: string;
2036
2498
  playerId: string;
2037
- amenityKind: "supermarket" | "shop" | "car_wash" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2499
+ amenityKind: "supermarket" | "shop" | "car_wash" | "parking" | "house" | "talk_time" | "wallet_bundle" | "apu_credit" | "apu_debit";
2038
2500
  itemRef: {
2039
2501
  id: string;
2040
- kind: "supermarket" | "shop" | "carwash" | "game" | "apu" | "talk" | "bundle";
2502
+ kind: "supermarket" | "shop" | "parking" | "house" | "carwash" | "game" | "apu" | "talk" | "bundle";
2041
2503
  };
2042
2504
  hostId: string;
2043
2505
  indexedAt: string;
@@ -2190,15 +2652,15 @@ declare const AnalyticsMigrationStateSchema: z.ZodObject<{
2190
2652
  cursor: string;
2191
2653
  totalIndexed: number;
2192
2654
  startedAt: string;
2193
- completedAt?: string | undefined;
2194
2655
  error?: string | undefined;
2656
+ completedAt?: string | undefined;
2195
2657
  }, {
2196
2658
  status: "pending" | "running" | "completed" | "failed";
2197
2659
  cursor: string;
2198
2660
  totalIndexed: number;
2199
2661
  startedAt: string;
2200
- completedAt?: string | undefined;
2201
2662
  error?: string | undefined;
2663
+ completedAt?: string | undefined;
2202
2664
  }>;
2203
2665
  type AnalyticsMigrationState = z.infer<typeof AnalyticsMigrationStateSchema>;
2204
2666
  declare const ANALYTICS_EVENT_NAMES: {
@@ -2234,4 +2696,4 @@ declare function mergeSnapshotWithPlayerChainNode(snapshot: AgentPlaySnapshot, n
2234
2696
  declare const PLAYER_CHAIN_GENESIS_STABLE_KEY: "__genesis__";
2235
2697
  declare const PLAYER_CHAIN_HEADER_STABLE_KEY: "__header__";
2236
2698
 
2237
- export { MINIMUM_STREET_LAYOUT_BOUNDS as $, type AgentPlaySnapshot as A, type AssistToolParameterSpec as B, type AssistToolSpec as C, CONTINUOUS_RENDER_OFFSET as D, type CarWashCar as E, CarWashCarSchema as F, type ComputeTalkAgentPowerUpsEarnedInput as G, DAILY_GAME_PU_CAP as H, DEFAULT_AGENT_SPAWN_MIN_DISTANCE as I, type Journey as J, DEFAULT_PLAYER_WALLET_BALANCE_USD as K, type LangChainAgentRegistration as L, type DestinationJourneyStep as M, GAME_CABINET_CATALOG as N, type GameCabinetEntry as O, type PlayerChainNodeResponse as P, type GameEvent as Q, type RemotePlayWorldInitAudioOptions as R, GameEventSchema as S, type GameId as T, type GamePerTitleStats as U, GamePerTitleStatsSchema as V, type WorldInteractionRole as W, type GameStats as X, GameStatsSchema as Y, type JourneyStep as Z, MINIMUM_PLAY_WORLD_BOUNDS as _, type AddAgentInput as a, type WalletBundleOffer as a$, OCCUPANCY_POINT_MULTIPLIER as a0, type OccupancyGridPoint as a1, type OccupantGroup as a2, type OriginJourneyStep as a3, type P2aEnableFlag as a4, PLAYABLE_GAME_IDS as a5, PLAYER_CHAIN_GENESIS_STABLE_KEY as a6, PLAYER_CHAIN_HEADER_STABLE_KEY as a7, type PlatformAgentInformation as a8, type PlayAgentInformation as a9, type ScannerMigrationState as aA, ScannerMigrationStateSchema as aB, type ScannerMigrationStatus as aC, ScannerMigrationStatusSchema as aD, type ScannerNodeProfile as aE, ScannerNodeProfileSchema as aF, type ScannerTxOp as aG, ScannerTxOpSchema as aH, type ScannerTxRecord as aI, ScannerTxRecordSchema as aJ, type ScannerWalletSnapshot as aK, ScannerWalletSnapshotSchema as aL, type ShopItem as aM, ShopItemSchema as aN, type SpaceContentItem as aO, type Street as aP, type StreetPoolEntry as aQ, type StructureJourneyStep as aR, type SupermarketItem as aS, SupermarketItemSchema as aT, TALK_AGENT_PU_BILLED_SECONDS_PER_UNIT as aU, TALK_AGENT_PU_MAX_PER_LEG as aV, TALK_PRICE_PER_60S_USD as aW, TALK_PRICE_PER_SECOND_USD as aX, TALK_TICK_SECONDS as aY, WALLET_BUNDLE_OFFERS as aZ, type WalletBundleId as a_, type PlayerChainFanoutNotify as aa, type PlayerChainGenesisNode as ab, type PlayerChainHeaderNode as ac, type PlayerChainNotifyNodeRef as ad, type PlayerChainOccupantPresentNode as ae, type PlayerChainOccupantRemovedNode as af, type PlayerWallet as ag, PlayerWalletSchema as ah, type PositionedStep as ai, type PurchaseRecord as aj, PurchaseRecordSchema as ak, type RealtimeWebrtcClientSecret as al, type RegisteredAgentSummary as am, type RemotePlayWorldOpenAiAudioOptions as an, SPACE_STRUCTURE_ANCHOR_MIN_DISTANCE as ao, SPATIAL_ZONE_INDEX_AGENTS as ap, SPATIAL_ZONE_INDEX_SPACES as aq, STREAK_BONUS_PU as ar, STREAK_BONUS_THRESHOLD_DAYS as as, STREET_NAME_POOL as at, type SaleState as au, SaleStateSchema as av, type ScannerBlockRecord as aw, ScannerBlockRecordSchema as ax, type ScannerHead as ay, ScannerHeadSchema as az, type RegisteredPlayer as b, sortNodeRefsForSerializedFetch as b$, type WorldBounds as b0, type WorldJourneyUpdate as b1, type WorldLayout as b2, type WorldLayoutBoundsField as b3, type YieldEventInfo as b4, type Zone as b5, type ZoneEventInfo as b6, applyBoundsFieldUpdateToLayout as b7, availableCellsForZone as b8, boundingWorldRectForOccupancyPoints as b9, getWalletBundleById as bA, isAgentSpawnOccupancyPointAvailable as bB, isAgentSpawnOccupancyPointAvailableInRect as bC, isAgentSpawnOccupancyPointAvailableInZone as bD, isGameId as bE, isItemAvailableForPurchase as bF, isSpaceAnchorOccupancyPointAvailable as bG, isSpaceAnchorOccupancyPointAvailableInRect as bH, isSpaceAnchorOccupancyPointAvailableInZone as bI, listAllowedOccupancyPoints as bJ, listOccupancyPointsForSpatialZone as bK, listOccupancyPointsForZone as bL, listOccupancyPointsInRect as bM, mergeSnapshotWithPlayerChainNode as bN, migrateWorldLayoutBounds as bO, nextStreetFromPool as bP, occupancyKeyForPosition as bQ, occupancyPointsGroupedBySpatialZone as bR, occupancyPointsGroupedByZones as bS, parsePlayerChainFanoutNotify as bT, parsePlayerChainFanoutNotifyFromSsePayload as bU, parsePlayerChainNodeRpcBody as bV, pickZoneForGroup as bW, pointCellInRect as bX, pointCellInSpatialZone as bY, pointCellInZone as bZ, primaryZoneForGroup as b_, boundsContain as ba, buildAmenityPurchaseApuFields as bb, buildApuWalletTransaction as bc, buildRankedOccupancyPoints as bd, buildRankedOccupancyPointsForSpatialZone as be, buildRankedOccupancyPointsForZone as bf, buildRankedOccupancyPointsInRect as bg, buildWalletBundleApuFields as bh, cellsForZone as bi, centerOfZone as bj, clampWorldPosition as bk, computeEventPuDelta as bl, computeRoundPuDelta as bm, computeTalkAgentPowerUpsEarned as bn, costForSeconds as bo, createEmptyGameStats as bp, createInitialAgentRewardWallet as bq, createInitialPlayerWallet as br, createVerticalStripSeedLayout as bs, desaturateColor as bt, enumerateIntegerCellsInRect as bu, expandBoundsToMinimumPlayArea as bv, featuredGameIdForUtcDate as bw, getGameCabinetByGameId as bx, getGameCabinetById as by, getStreetPoolEntryById as bz, type AddPlayerInput as c, spatialZoneBounds as c0, spatialZoneCenter as c1, streetFromPoolEntry as c2, utcDateKey as c3, zonesForGroup as c4, type RecordInteractionInput as d, ANALYTICS_EVENT_NAMES as e, APU_TOKEN as f, type AgentPlayWorldLayout as g, type AgentPlayWorldLayoutZone as h, type AgentPlayWorldMap as i, type AgentPlayWorldMapAgentOccupant as j, type AgentPlayWorldMapBounds as k, type AgentPlayWorldMapMcpOccupant as l, type AnalyticsContext as m, AnalyticsContextSchema as n, type AnalyticsEvent as o, type AnalyticsEventName as p, AnalyticsEventSchema as q, type AnalyticsMigrationState as r, AnalyticsMigrationStateSchema as s, type AnalyticsPropertyValue as t, AnalyticsPropertyValueSchema as u, type AnalyticsTraits as v, AnalyticsTraitsSchema as w, type ApplyGameOutcomeInput as x, ApplyGameOutcomeInputSchema as y, type AssistToolFieldType as z };
2699
+ export { GameStatsSchema as $, type AgentPlaySnapshot as A, type AssistToolParameterSpec as B, type AssistToolSpec as C, COLUMN_STREET_ROW_HEIGHT as D, CONTINUOUS_RENDER_OFFSET as E, type CarWashCar as F, CarWashCarSchema as G, type ComputeTalkAgentPowerUpsEarnedInput as H, DAILY_GAME_PU_CAP as I, type Journey as J, DEFAULT_AGENT_SPAWN_MIN_DISTANCE as K, type LangChainAgentRegistration as L, DEFAULT_LAYOUT_BOUNDS_WITH_PARKING as M, DEFAULT_PARKING_RATES_USD as N, DEFAULT_PLAYER_WALLET_BALANCE_USD as O, type PlayerChainNodeResponse as P, type DestinationJourneyStep as Q, type RemotePlayWorldInitAudioOptions as R, GAME_CABINET_CATALOG as S, type GameCabinetEntry as T, type GameEvent as U, GameEventSchema as V, type WorldInteractionRole as W, type GameId as X, type GamePerTitleStats as Y, GamePerTitleStatsSchema as Z, type GameStats as _, type AddAgentInput as a, STREET_NAME_POOL as a$, HOUSE_BLUEPRINTS as a0, HOUSE_CATALOG as a1, HOUSE_WORLD_X as a2, type HouseBlueprint as a3, type HouseFixtureKind as a4, type HouseFixtureSlot as a5, type HouseId as a6, HouseIdSchema as a7, type HouseSlot as a8, HouseSlotSchema as a9, type ParkingOccupant as aA, type ParkingOwnershipError as aB, type ParkingSpot as aC, ParkingSpotSchema as aD, type ParkingStreetContent as aE, ParkingStreetContentSchema as aF, type PlatformAgentInformation as aG, type PlayAgentInformation as aH, type PlayerChainFanoutNotify as aI, type PlayerChainGenesisNode as aJ, type PlayerChainHeaderNode as aK, type PlayerChainNotifyNodeRef as aL, type PlayerChainOccupantPresentNode as aM, type PlayerChainOccupantRemovedNode as aN, type PlayerWallet as aO, PlayerWalletSchema as aP, type PositionedStep as aQ, type PurchaseRecord as aR, PurchaseRecordSchema as aS, type RealtimeWebrtcClientSecret as aT, type RegisteredAgentSummary as aU, type RemotePlayWorldOpenAiAudioOptions as aV, SPACE_STRUCTURE_ANCHOR_MIN_DISTANCE as aW, SPATIAL_ZONE_INDEX_AGENTS as aX, SPATIAL_ZONE_INDEX_SPACES as aY, STREAK_BONUS_PU as aZ, STREAK_BONUS_THRESHOLD_DAYS as a_, type HouseStageBounds as aa, type HouseStreetContent as ab, HouseStreetContentSchema as ac, type JourneyStep as ad, MAX_SLOTS_WITH_FOREVER as ae, MAX_TIMED_PARKING_SLOTS_PER_NODE as af, MINIMUM_PLAY_WORLD_BOUNDS as ag, MINIMUM_STREET_LAYOUT_BOUNDS as ah, OCCUPANCY_POINT_MULTIPLIER as ai, type OccupancyGridPoint as aj, type OccupantGroup as ak, type OriginJourneyStep as al, type P2aEnableFlag as am, PARKING_BAY_COUNT as an, PARKING_COLUMN_GAP_ROWS as ao, PARKING_DURATION_TIERS as ap, PARKING_HOUSE_COUNT as aq, PARKING_LAYERS_PER_BAY as ar, PARKING_SPOT_COUNT as as, PARKING_STREET_ROW_HEIGHT as at, PLAYABLE_GAME_IDS as au, PLAYER_CHAIN_GENESIS_STABLE_KEY as av, PLAYER_CHAIN_HEADER_STABLE_KEY as aw, type ParkingDurationTier as ax, ParkingDurationTierSchema as ay, type ParkingOccupancyRef as az, type RegisteredPlayer as b, createEmptyGameStats as b$, type SaleState as b0, SaleStateSchema as b1, type ScannerBlockRecord as b2, ScannerBlockRecordSchema as b3, type ScannerHead as b4, ScannerHeadSchema as b5, type ScannerMigrationState as b6, ScannerMigrationStateSchema as b7, type ScannerMigrationStatus as b8, ScannerMigrationStatusSchema as b9, type WorldLayout as bA, type WorldLayoutBoundsField as bB, type YieldEventInfo as bC, type Zone as bD, type ZoneEventInfo as bE, applyBoundsFieldUpdateToLayout as bF, availableCellsForZone as bG, boundingWorldRectForOccupancyPoints as bH, boundsContain as bI, buildAmenityPurchaseApuFields as bJ, buildApuWalletTransaction as bK, buildHouseOwnershipPanelLines as bL, buildRankedOccupancyPoints as bM, buildRankedOccupancyPointsForSpatialZone as bN, buildRankedOccupancyPointsForZone as bO, buildRankedOccupancyPointsInRect as bP, buildWalletBundleApuFields as bQ, canNodeAcquireParkingSpot as bR, cellsForZone as bS, centerOfZone as bT, clampHousePosition as bU, clampWorldPosition as bV, computeEventPuDelta as bW, computeParkingExpiresAt as bX, computeRoundPuDelta as bY, computeTalkAgentPowerUpsEarned as bZ, costForSeconds as b_, type ScannerNodeProfile as ba, ScannerNodeProfileSchema as bb, type ScannerTxOp as bc, ScannerTxOpSchema as bd, type ScannerTxRecord as be, ScannerTxRecordSchema as bf, type ScannerWalletSnapshot as bg, ScannerWalletSnapshotSchema as bh, type ShopItem as bi, ShopItemSchema as bj, type SpaceContentItem as bk, type Street as bl, type StreetPoolEntry as bm, type StructureJourneyStep as bn, type SupermarketItem as bo, SupermarketItemSchema as bp, TALK_AGENT_PU_BILLED_SECONDS_PER_UNIT as bq, TALK_AGENT_PU_MAX_PER_LEG as br, TALK_PRICE_PER_60S_USD as bs, TALK_PRICE_PER_SECOND_USD as bt, TALK_TICK_SECONDS as bu, WALLET_BUNDLE_OFFERS as bv, type WalletBundleId as bw, type WalletBundleOffer as bx, type WorldBounds as by, type WorldJourneyUpdate as bz, type AddPlayerInput as c, createEmptyHouseStreetContent as c0, createEmptyParkingStreetContent as c1, createInitialAgentRewardWallet as c2, createInitialPlayerWallet as c3, createVerticalStripSeedLayout as c4, createWorldLayoutWithParkingRow as c5, desaturateColor as c6, effectiveHourlyRateUsd as c7, enumerateIntegerCellsInRect as c8, expandBoundsToMinimumPlayArea as c9, listOccupancyPointsForSpatialZone as cA, listOccupancyPointsForZone as cB, listOccupancyPointsInRect as cC, mergeSnapshotWithPlayerChainNode as cD, migrateLayoutToParkingColumnGap as cE, migrateLayoutToParkingRow as cF, migrateWorldLayoutBounds as cG, nextStreetFromPool as cH, occupancyKeyForPosition as cI, occupancyPointsGroupedBySpatialZone as cJ, occupancyPointsGroupedByZones as cK, parkingZoneMaxYFromColumnBase as cL, parkingZoneMinYFromColumnBase as cM, parsePlayerChainFanoutNotify as cN, parsePlayerChainFanoutNotifyFromSsePayload as cO, parsePlayerChainNodeRpcBody as cP, pickZoneForGroup as cQ, pointCellInRect as cR, pointCellInSpatialZone as cS, pointCellInZone as cT, primaryZoneForGroup as cU, sortNodeRefsForSerializedFetch as cV, spatialZoneBounds as cW, spatialZoneCenter as cX, streetFromPoolEntry as cY, utcDateKey as cZ, zonesForGroup as c_, featuredGameIdForUtcDate as ca, findHouseSlot as cb, findParkingSpot as cc, formatHouseOwnerDisplayName as cd, getGameCabinetByGameId as ce, getGameCabinetById as cf, getHouseBlueprint as cg, getStreetPoolEntryById as ch, getWalletBundleById as ci, housePurchaseDetail as cj, houseSpawnPosition as ck, isAgentSpawnOccupancyPointAvailable as cl, isAgentSpawnOccupancyPointAvailableInRect as cm, isAgentSpawnOccupancyPointAvailableInZone as cn, isGameId as co, isHouseOwned as cp, isItemAvailableForPurchase as cq, isParkingOccupantActive as cr, isSpaceAnchorOccupancyPointAvailable as cs, isSpaceAnchorOccupancyPointAvailableInRect as ct, isSpaceAnchorOccupancyPointAvailableInZone as cu, layoutHasParkingZone as cv, layoutHouseFixtures as cw, layoutNeedsParkingColumnGapMigration as cx, listActiveParkingOccupancies as cy, listAllowedOccupancyPoints as cz, type RecordInteractionInput as d, ANALYTICS_EVENT_NAMES as e, APU_TOKEN as f, type AgentPlayWorldLayout as g, type AgentPlayWorldLayoutZone as h, type AgentPlayWorldMap as i, type AgentPlayWorldMapAgentOccupant as j, type AgentPlayWorldMapBounds as k, type AgentPlayWorldMapMcpOccupant as l, type AnalyticsContext as m, AnalyticsContextSchema as n, type AnalyticsEvent as o, type AnalyticsEventName as p, AnalyticsEventSchema as q, type AnalyticsMigrationState as r, AnalyticsMigrationStateSchema as s, type AnalyticsPropertyValue as t, AnalyticsPropertyValueSchema as u, type AnalyticsTraits as v, AnalyticsTraitsSchema as w, type ApplyGameOutcomeInput as x, ApplyGameOutcomeInputSchema as y, type AssistToolFieldType as z };