@seamapi/types 1.309.0 → 1.310.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.
@@ -975,10 +975,16 @@ declare const acs_entrance: z.ZodObject<{
975
975
  }>>;
976
976
  dormakaba_community_metadata: z.ZodOptional<z.ZodObject<{
977
977
  access_point_name: z.ZodString;
978
+ common_area_number: z.ZodOptional<z.ZodNumber>;
979
+ inner_access_points_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
978
980
  }, "strip", z.ZodTypeAny, {
979
981
  access_point_name: string;
982
+ common_area_number?: number | undefined;
983
+ inner_access_points_names?: string[] | undefined;
980
984
  }, {
981
985
  access_point_name: string;
986
+ common_area_number?: number | undefined;
987
+ inner_access_points_names?: string[] | undefined;
982
988
  }>>;
983
989
  assa_abloy_vostio_metadata: z.ZodOptional<z.ZodObject<{
984
990
  door_type: z.ZodEnum<["CommonDoor", "EntranceDoor", "GuestDoor", "Elevator"]>;
@@ -999,6 +1005,19 @@ declare const acs_entrance: z.ZodObject<{
999
1005
  stand_open?: boolean | undefined;
1000
1006
  pms_id?: string | undefined;
1001
1007
  }>>;
1008
+ salto_space_metadata: z.ZodOptional<z.ZodObject<{
1009
+ door_name: z.ZodString;
1010
+ ext_door_id: z.ZodString;
1011
+ door_description: z.ZodOptional<z.ZodString>;
1012
+ }, "strip", z.ZodTypeAny, {
1013
+ door_name: string;
1014
+ ext_door_id: string;
1015
+ door_description?: string | undefined;
1016
+ }, {
1017
+ door_name: string;
1018
+ ext_door_id: string;
1019
+ door_description?: string | undefined;
1020
+ }>>;
1002
1021
  }, "strip", z.ZodTypeAny, {
1003
1022
  created_at: string;
1004
1023
  errors: {
@@ -1041,6 +1060,13 @@ declare const acs_entrance: z.ZodObject<{
1041
1060
  } | undefined;
1042
1061
  dormakaba_community_metadata?: {
1043
1062
  access_point_name: string;
1063
+ common_area_number?: number | undefined;
1064
+ inner_access_points_names?: string[] | undefined;
1065
+ } | undefined;
1066
+ salto_space_metadata?: {
1067
+ door_name: string;
1068
+ ext_door_id: string;
1069
+ door_description?: string | undefined;
1044
1070
  } | undefined;
1045
1071
  }, {
1046
1072
  created_at: string;
@@ -1084,6 +1110,13 @@ declare const acs_entrance: z.ZodObject<{
1084
1110
  } | undefined;
1085
1111
  dormakaba_community_metadata?: {
1086
1112
  access_point_name: string;
1113
+ common_area_number?: number | undefined;
1114
+ inner_access_points_names?: string[] | undefined;
1115
+ } | undefined;
1116
+ salto_space_metadata?: {
1117
+ door_name: string;
1118
+ ext_door_id: string;
1119
+ door_description?: string | undefined;
1087
1120
  } | undefined;
1088
1121
  }>;
1089
1122
  type AcsEntrance = z.infer<typeof acs_entrance>;
@@ -13193,6 +13226,16 @@ declare const _default: {
13193
13226
  access_point_name: {
13194
13227
  type: string;
13195
13228
  };
13229
+ common_area_number: {
13230
+ format: string;
13231
+ type: string;
13232
+ };
13233
+ inner_access_points_names: {
13234
+ items: {
13235
+ type: string;
13236
+ };
13237
+ type: string;
13238
+ };
13196
13239
  };
13197
13240
  required: string[];
13198
13241
  type: string;
@@ -13260,6 +13303,21 @@ declare const _default: {
13260
13303
  required: string[];
13261
13304
  type: string;
13262
13305
  };
13306
+ salto_space_metadata: {
13307
+ properties: {
13308
+ door_description: {
13309
+ type: string;
13310
+ };
13311
+ door_name: {
13312
+ type: string;
13313
+ };
13314
+ ext_door_id: {
13315
+ type: string;
13316
+ };
13317
+ };
13318
+ required: string[];
13319
+ type: string;
13320
+ };
13263
13321
  visionline_metadata: {
13264
13322
  properties: {
13265
13323
  door_category: {
@@ -37786,6 +37844,8 @@ interface Routes {
37786
37844
  } | undefined;
37787
37845
  dormakaba_community_metadata?: {
37788
37846
  access_point_name: string;
37847
+ common_area_number?: number | undefined;
37848
+ inner_access_points_names?: string[] | undefined;
37789
37849
  } | undefined;
37790
37850
  assa_abloy_vostio_metadata?: {
37791
37851
  door_type: 'CommonDoor' | 'EntranceDoor' | 'GuestDoor' | 'Elevator';
@@ -37794,6 +37854,11 @@ interface Routes {
37794
37854
  stand_open?: boolean | undefined;
37795
37855
  pms_id?: string | undefined;
37796
37856
  } | undefined;
37857
+ salto_space_metadata?: {
37858
+ door_name: string;
37859
+ ext_door_id: string;
37860
+ door_description?: string | undefined;
37861
+ } | undefined;
37797
37862
  }>;
37798
37863
  };
37799
37864
  };
@@ -38666,6 +38731,8 @@ interface Routes {
38666
38731
  } | undefined;
38667
38732
  dormakaba_community_metadata?: {
38668
38733
  access_point_name: string;
38734
+ common_area_number?: number | undefined;
38735
+ inner_access_points_names?: string[] | undefined;
38669
38736
  } | undefined;
38670
38737
  assa_abloy_vostio_metadata?: {
38671
38738
  door_type: 'CommonDoor' | 'EntranceDoor' | 'GuestDoor' | 'Elevator';
@@ -38674,6 +38741,11 @@ interface Routes {
38674
38741
  stand_open?: boolean | undefined;
38675
38742
  pms_id?: string | undefined;
38676
38743
  } | undefined;
38744
+ salto_space_metadata?: {
38745
+ door_name: string;
38746
+ ext_door_id: string;
38747
+ door_description?: string | undefined;
38748
+ } | undefined;
38677
38749
  }>;
38678
38750
  };
38679
38751
  };
@@ -40942,6 +41014,8 @@ interface Routes {
40942
41014
  } | undefined;
40943
41015
  dormakaba_community_metadata?: {
40944
41016
  access_point_name: string;
41017
+ common_area_number?: number | undefined;
41018
+ inner_access_points_names?: string[] | undefined;
40945
41019
  } | undefined;
40946
41020
  assa_abloy_vostio_metadata?: {
40947
41021
  door_type: 'CommonDoor' | 'EntranceDoor' | 'GuestDoor' | 'Elevator';
@@ -40950,6 +41024,11 @@ interface Routes {
40950
41024
  stand_open?: boolean | undefined;
40951
41025
  pms_id?: string | undefined;
40952
41026
  } | undefined;
41027
+ salto_space_metadata?: {
41028
+ door_name: string;
41029
+ ext_door_id: string;
41030
+ door_description?: string | undefined;
41031
+ } | undefined;
40953
41032
  };
40954
41033
  };
40955
41034
  };
@@ -41015,6 +41094,8 @@ interface Routes {
41015
41094
  } | undefined;
41016
41095
  dormakaba_community_metadata?: {
41017
41096
  access_point_name: string;
41097
+ common_area_number?: number | undefined;
41098
+ inner_access_points_names?: string[] | undefined;
41018
41099
  } | undefined;
41019
41100
  assa_abloy_vostio_metadata?: {
41020
41101
  door_type: 'CommonDoor' | 'EntranceDoor' | 'GuestDoor' | 'Elevator';
@@ -41023,6 +41104,11 @@ interface Routes {
41023
41104
  stand_open?: boolean | undefined;
41024
41105
  pms_id?: string | undefined;
41025
41106
  } | undefined;
41107
+ salto_space_metadata?: {
41108
+ door_name: string;
41109
+ ext_door_id: string;
41110
+ door_description?: string | undefined;
41111
+ } | undefined;
41026
41112
  }>;
41027
41113
  };
41028
41114
  };
@@ -41909,6 +41995,8 @@ interface Routes {
41909
41995
  } | undefined;
41910
41996
  dormakaba_community_metadata?: {
41911
41997
  access_point_name: string;
41998
+ common_area_number?: number | undefined;
41999
+ inner_access_points_names?: string[] | undefined;
41912
42000
  } | undefined;
41913
42001
  assa_abloy_vostio_metadata?: {
41914
42002
  door_type: 'CommonDoor' | 'EntranceDoor' | 'GuestDoor' | 'Elevator';
@@ -41917,6 +42005,11 @@ interface Routes {
41917
42005
  stand_open?: boolean | undefined;
41918
42006
  pms_id?: string | undefined;
41919
42007
  } | undefined;
42008
+ salto_space_metadata?: {
42009
+ door_name: string;
42010
+ ext_door_id: string;
42011
+ door_description?: string | undefined;
42012
+ } | undefined;
41920
42013
  }>;
41921
42014
  };
41922
42015
  };
@@ -88,10 +88,16 @@ export declare const acs_entrance: z.ZodObject<{
88
88
  }>>;
89
89
  dormakaba_community_metadata: z.ZodOptional<z.ZodObject<{
90
90
  access_point_name: z.ZodString;
91
+ common_area_number: z.ZodOptional<z.ZodNumber>;
92
+ inner_access_points_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
91
93
  }, "strip", z.ZodTypeAny, {
92
94
  access_point_name: string;
95
+ common_area_number?: number | undefined;
96
+ inner_access_points_names?: string[] | undefined;
93
97
  }, {
94
98
  access_point_name: string;
99
+ common_area_number?: number | undefined;
100
+ inner_access_points_names?: string[] | undefined;
95
101
  }>>;
96
102
  assa_abloy_vostio_metadata: z.ZodOptional<z.ZodObject<{
97
103
  door_type: z.ZodEnum<["CommonDoor", "EntranceDoor", "GuestDoor", "Elevator"]>;
@@ -112,6 +118,19 @@ export declare const acs_entrance: z.ZodObject<{
112
118
  stand_open?: boolean | undefined;
113
119
  pms_id?: string | undefined;
114
120
  }>>;
121
+ salto_space_metadata: z.ZodOptional<z.ZodObject<{
122
+ door_name: z.ZodString;
123
+ ext_door_id: z.ZodString;
124
+ door_description: z.ZodOptional<z.ZodString>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ door_name: string;
127
+ ext_door_id: string;
128
+ door_description?: string | undefined;
129
+ }, {
130
+ door_name: string;
131
+ ext_door_id: string;
132
+ door_description?: string | undefined;
133
+ }>>;
115
134
  }, "strip", z.ZodTypeAny, {
116
135
  created_at: string;
117
136
  errors: {
@@ -154,6 +173,13 @@ export declare const acs_entrance: z.ZodObject<{
154
173
  } | undefined;
155
174
  dormakaba_community_metadata?: {
156
175
  access_point_name: string;
176
+ common_area_number?: number | undefined;
177
+ inner_access_points_names?: string[] | undefined;
178
+ } | undefined;
179
+ salto_space_metadata?: {
180
+ door_name: string;
181
+ ext_door_id: string;
182
+ door_description?: string | undefined;
157
183
  } | undefined;
158
184
  }, {
159
185
  created_at: string;
@@ -197,6 +223,13 @@ export declare const acs_entrance: z.ZodObject<{
197
223
  } | undefined;
198
224
  dormakaba_community_metadata?: {
199
225
  access_point_name: string;
226
+ common_area_number?: number | undefined;
227
+ inner_access_points_names?: string[] | undefined;
228
+ } | undefined;
229
+ salto_space_metadata?: {
230
+ door_name: string;
231
+ ext_door_id: string;
232
+ door_description?: string | undefined;
200
233
  } | undefined;
201
234
  }>;
202
235
  export type AcsEntrance = z.infer<typeof acs_entrance>;
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { acs_entrance_assa_abloy_vostio_metadata, acs_entrance_dormakaba_community_metadata, acs_entrance_latch_metadata, acs_entrance_salto_ks_metadata, acs_entrance_visionline_metadata, } from './metadata/index.js';
3
+ import { acs_entrance_salto_space_metadata } from './metadata/salto-space.js';
3
4
  export const acs_entrance = z
4
5
  .object({
5
6
  acs_system_id: z
@@ -21,6 +22,7 @@ export const acs_entrance = z
21
22
  salto_ks_metadata: acs_entrance_salto_ks_metadata.optional(),
22
23
  dormakaba_community_metadata: acs_entrance_dormakaba_community_metadata.optional(),
23
24
  assa_abloy_vostio_metadata: acs_entrance_assa_abloy_vostio_metadata.optional(),
25
+ salto_space_metadata: acs_entrance_salto_space_metadata.optional(),
24
26
  })
25
27
  .describe('Represents an [entrance](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).');
26
28
  //# sourceMappingURL=acs-entrance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acs-entrance.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/acs/acs-entrance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,uCAAuC,EACvC,yCAAyC,EACzC,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,qBAAqB,CAAA;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH;IACD,cAAc,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACtD,mBAAmB,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IAChE,iBAAiB,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IAC5D,4BAA4B,EAC1B,yCAAyC,CAAC,QAAQ,EAAE;IACtD,0BAA0B,EACxB,uCAAuC,CAAC,QAAQ,EAAE;CACrD,CAAC;KACD,QAAQ,CACP,qNAAqN,CACtN,CAAA"}
1
+ {"version":3,"file":"acs-entrance.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/acs/acs-entrance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,uCAAuC,EACvC,yCAAyC,EACzC,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAA;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH;IACD,cAAc,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACtD,mBAAmB,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IAChE,iBAAiB,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IAC5D,4BAA4B,EAC1B,yCAAyC,CAAC,QAAQ,EAAE;IACtD,0BAA0B,EACxB,uCAAuC,CAAC,QAAQ,EAAE;IACpD,oBAAoB,EAAE,iCAAiC,CAAC,QAAQ,EAAE;CACnE,CAAC;KACD,QAAQ,CACP,qNAAqN,CACtN,CAAA"}
@@ -1,9 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  export declare const acs_entrance_dormakaba_community_metadata: z.ZodObject<{
3
3
  access_point_name: z.ZodString;
4
+ common_area_number: z.ZodOptional<z.ZodNumber>;
5
+ inner_access_points_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4
6
  }, "strip", z.ZodTypeAny, {
5
7
  access_point_name: string;
8
+ common_area_number?: number | undefined;
9
+ inner_access_points_names?: string[] | undefined;
6
10
  }, {
7
11
  access_point_name: string;
12
+ common_area_number?: number | undefined;
13
+ inner_access_points_names?: string[] | undefined;
8
14
  }>;
9
15
  export type AcsEntranceDormakabaCommunityMetadata = z.infer<typeof acs_entrance_dormakaba_community_metadata>;
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export const acs_entrance_dormakaba_community_metadata = z.object({
3
3
  access_point_name: z.string(),
4
+ common_area_number: z.number().optional(),
5
+ inner_access_points_names: z.array(z.string()).optional(),
4
6
  });
5
7
  //# sourceMappingURL=dormakaba-community.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dormakaba-community.js","sourceRoot":"","sources":["../../../../../../src/lib/seam/connect/models/acs/metadata/dormakaba-community.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9B,CAAC,CAAA"}
1
+ {"version":3,"file":"dormakaba-community.js","sourceRoot":"","sources":["../../../../../../src/lib/seam/connect/models/acs/metadata/dormakaba-community.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const acs_entrance_salto_space_metadata: z.ZodObject<{
3
+ door_name: z.ZodString;
4
+ ext_door_id: z.ZodString;
5
+ door_description: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ door_name: string;
8
+ ext_door_id: string;
9
+ door_description?: string | undefined;
10
+ }, {
11
+ door_name: string;
12
+ ext_door_id: string;
13
+ door_description?: string | undefined;
14
+ }>;
15
+ export type AcsEntranceSaltoSpaceMetadata = z.infer<typeof acs_entrance_salto_space_metadata>;
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export const acs_entrance_salto_space_metadata = z.object({
3
+ door_name: z.string(),
4
+ ext_door_id: z.string(),
5
+ door_description: z.string().optional(),
6
+ });
7
+ //# sourceMappingURL=salto-space.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salto-space.js","sourceRoot":"","sources":["../../../../../../src/lib/seam/connect/models/acs/metadata/salto-space.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAA"}
@@ -533,6 +533,16 @@ declare const _default: {
533
533
  access_point_name: {
534
534
  type: string;
535
535
  };
536
+ common_area_number: {
537
+ format: string;
538
+ type: string;
539
+ };
540
+ inner_access_points_names: {
541
+ items: {
542
+ type: string;
543
+ };
544
+ type: string;
545
+ };
536
546
  };
537
547
  required: string[];
538
548
  type: string;
@@ -600,6 +610,21 @@ declare const _default: {
600
610
  required: string[];
601
611
  type: string;
602
612
  };
613
+ salto_space_metadata: {
614
+ properties: {
615
+ door_description: {
616
+ type: string;
617
+ };
618
+ door_name: {
619
+ type: string;
620
+ };
621
+ ext_door_id: {
622
+ type: string;
623
+ };
624
+ };
625
+ required: string[];
626
+ type: string;
627
+ };
603
628
  visionline_metadata: {
604
629
  properties: {
605
630
  door_category: {
@@ -554,7 +554,14 @@ export default {
554
554
  type: 'string',
555
555
  },
556
556
  dormakaba_community_metadata: {
557
- properties: { access_point_name: { type: 'string' } },
557
+ properties: {
558
+ access_point_name: { type: 'string' },
559
+ common_area_number: { format: 'float', type: 'number' },
560
+ inner_access_points_names: {
561
+ items: { type: 'string' },
562
+ type: 'array',
563
+ },
564
+ },
558
565
  required: ['access_point_name'],
559
566
  type: 'object',
560
567
  },
@@ -603,6 +610,15 @@ export default {
603
610
  ],
604
611
  type: 'object',
605
612
  },
613
+ salto_space_metadata: {
614
+ properties: {
615
+ door_description: { type: 'string' },
616
+ door_name: { type: 'string' },
617
+ ext_door_id: { type: 'string' },
618
+ },
619
+ required: ['door_name', 'ext_door_id'],
620
+ type: 'object',
621
+ },
606
622
  visionline_metadata: {
607
623
  properties: {
608
624
  door_category: {