@ue-shed/protocol 0.2.0 → 0.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.
@@ -5919,10 +5919,11 @@
5919
5919
  "properties": {
5920
5920
  "major": {
5921
5921
  "type": "number",
5922
- "enum": [1]
5922
+ "enum": [2]
5923
5923
  },
5924
5924
  "minor": {
5925
- "type": "integer"
5925
+ "type": "number",
5926
+ "enum": [0]
5926
5927
  }
5927
5928
  },
5928
5929
  "required": ["major", "minor"],
@@ -5972,6 +5973,29 @@
5972
5973
  "actorPath": {
5973
5974
  "type": "string"
5974
5975
  },
5976
+ "attachment": {
5977
+ "type": "object",
5978
+ "properties": {
5979
+ "componentPath": {
5980
+ "type": "string",
5981
+ "allOf": [
5982
+ {
5983
+ "minLength": 1
5984
+ }
5985
+ ]
5986
+ },
5987
+ "parentComponentPath": {
5988
+ "type": "string",
5989
+ "allOf": [
5990
+ {
5991
+ "minLength": 1
5992
+ }
5993
+ ]
5994
+ }
5995
+ },
5996
+ "required": ["componentPath", "parentComponentPath"],
5997
+ "additionalProperties": false
5998
+ },
5975
5999
  "classPath": {
5976
6000
  "type": "string"
5977
6001
  },
@@ -5981,7 +6005,7 @@
5981
6005
  "packageName": {
5982
6006
  "type": "string"
5983
6007
  },
5984
- "position": {
6008
+ "transform": {
5985
6009
  "anyOf": [
5986
6010
  {
5987
6011
  "type": "object",
@@ -5998,7 +6022,12 @@
5998
6022
  "type": "object",
5999
6023
  "properties": {
6000
6024
  "parentPath": {
6001
- "type": "string"
6025
+ "type": "string",
6026
+ "allOf": [
6027
+ {
6028
+ "minLength": 1
6029
+ }
6030
+ ]
6002
6031
  },
6003
6032
  "status": {
6004
6033
  "type": "string",
@@ -6012,7 +6041,12 @@
6012
6041
  "type": "object",
6013
6042
  "properties": {
6014
6043
  "componentPath": {
6015
- "type": "string"
6044
+ "type": "string",
6045
+ "allOf": [
6046
+ {
6047
+ "minLength": 1
6048
+ }
6049
+ ]
6016
6050
  },
6017
6051
  "status": {
6018
6052
  "type": "string",
@@ -6026,7 +6060,12 @@
6026
6060
  "type": "object",
6027
6061
  "properties": {
6028
6062
  "componentPath": {
6029
- "type": "string"
6063
+ "type": "string",
6064
+ "allOf": [
6065
+ {
6066
+ "minLength": 1
6067
+ }
6068
+ ]
6030
6069
  },
6031
6070
  "status": {
6032
6071
  "type": "string",
@@ -6040,7 +6079,12 @@
6040
6079
  "type": "object",
6041
6080
  "properties": {
6042
6081
  "componentPath": {
6043
- "type": "string"
6082
+ "type": "string",
6083
+ "allOf": [
6084
+ {
6085
+ "minLength": 1
6086
+ }
6087
+ ]
6044
6088
  },
6045
6089
  "status": {
6046
6090
  "type": "string",
@@ -6050,6 +6094,25 @@
6050
6094
  "required": ["componentPath", "status"],
6051
6095
  "additionalProperties": false
6052
6096
  },
6097
+ {
6098
+ "type": "object",
6099
+ "properties": {
6100
+ "componentPath": {
6101
+ "type": "string",
6102
+ "allOf": [
6103
+ {
6104
+ "minLength": 1
6105
+ }
6106
+ ]
6107
+ },
6108
+ "status": {
6109
+ "type": "string",
6110
+ "enum": ["non_finite_transform"]
6111
+ }
6112
+ },
6113
+ "required": ["componentPath", "status"],
6114
+ "additionalProperties": false
6115
+ },
6053
6116
  {
6054
6117
  "type": "object",
6055
6118
  "properties": {
@@ -6057,61 +6120,48 @@
6057
6120
  "type": "object",
6058
6121
  "properties": {
6059
6122
  "x": {
6060
- "anyOf": [
6061
- {
6062
- "type": "number"
6063
- },
6064
- {
6065
- "type": "string",
6066
- "enum": ["NaN"]
6067
- },
6068
- {
6069
- "type": "string",
6070
- "enum": ["Infinity"]
6071
- },
6072
- {
6073
- "type": "string",
6074
- "enum": ["-Infinity"]
6075
- }
6076
- ]
6123
+ "type": "number"
6077
6124
  },
6078
6125
  "y": {
6079
- "anyOf": [
6080
- {
6081
- "type": "number"
6082
- },
6083
- {
6084
- "type": "string",
6085
- "enum": ["NaN"]
6086
- },
6087
- {
6088
- "type": "string",
6089
- "enum": ["Infinity"]
6090
- },
6091
- {
6092
- "type": "string",
6093
- "enum": ["-Infinity"]
6094
- }
6095
- ]
6126
+ "type": "number"
6096
6127
  },
6097
6128
  "z": {
6098
- "anyOf": [
6099
- {
6100
- "type": "number"
6101
- },
6102
- {
6103
- "type": "string",
6104
- "enum": ["NaN"]
6105
- },
6106
- {
6107
- "type": "string",
6108
- "enum": ["Infinity"]
6109
- },
6110
- {
6111
- "type": "string",
6112
- "enum": ["-Infinity"]
6113
- }
6114
- ]
6129
+ "type": "number"
6130
+ }
6131
+ },
6132
+ "required": ["x", "y", "z"],
6133
+ "additionalProperties": false
6134
+ },
6135
+ "rotation": {
6136
+ "type": "object",
6137
+ "properties": {
6138
+ "w": {
6139
+ "type": "number"
6140
+ },
6141
+ "x": {
6142
+ "type": "number"
6143
+ },
6144
+ "y": {
6145
+ "type": "number"
6146
+ },
6147
+ "z": {
6148
+ "type": "number"
6149
+ }
6150
+ },
6151
+ "required": ["w", "x", "y", "z"],
6152
+ "additionalProperties": false
6153
+ },
6154
+ "scale": {
6155
+ "type": "object",
6156
+ "properties": {
6157
+ "x": {
6158
+ "type": "number"
6159
+ },
6160
+ "y": {
6161
+ "type": "number"
6162
+ },
6163
+ "z": {
6164
+ "type": "number"
6115
6165
  }
6116
6166
  },
6117
6167
  "required": ["x", "y", "z"],
@@ -6122,13 +6172,13 @@
6122
6172
  "enum": ["resolved"]
6123
6173
  }
6124
6174
  },
6125
- "required": ["location", "status"],
6175
+ "required": ["location", "rotation", "scale", "status"],
6126
6176
  "additionalProperties": false
6127
6177
  }
6128
6178
  ]
6129
6179
  }
6130
6180
  },
6131
- "required": ["actorPath", "classPath", "packageName", "position"],
6181
+ "required": ["actorPath", "classPath", "packageName", "transform"],
6132
6182
  "additionalProperties": false
6133
6183
  }
6134
6184
  },
@@ -10,17 +10,33 @@
10
10
  "completeness": "complete",
11
11
  "contract": {
12
12
  "name": "unreal-saved-world",
13
- "version": { "major": 1, "minor": 0 }
13
+ "version": { "major": 2, "minor": 0 }
14
14
  },
15
15
  "diagnostics": [],
16
16
  "mapPath": "Content/Maps/Example.umap",
17
17
  "sourceKind": "level",
18
- "actors": [],
18
+ "actors": [
19
+ {
20
+ "actorPath": "/Game/Maps/Example.Example:PersistentLevel.Child",
21
+ "attachment": {
22
+ "componentPath": "/Game/Maps/Example.Example:PersistentLevel.Child.Root",
23
+ "parentComponentPath": "/Game/Maps/Example.Example:PersistentLevel.Parent.Root"
24
+ },
25
+ "classPath": "/Script/Engine.StaticMeshActor",
26
+ "packageName": "/Game/Maps/Example",
27
+ "transform": {
28
+ "location": { "x": 125.5, "y": -42.25, "z": 0 },
29
+ "rotation": { "w": 1, "x": 0, "y": 0, "z": 0 },
30
+ "scale": { "x": 1, "y": 1, "z": 1 },
31
+ "status": "resolved"
32
+ }
33
+ }
34
+ ],
19
35
  "summary": {
20
36
  "failedPackages": 0,
21
37
  "partialPackages": 0,
22
- "resolvedActors": 0,
23
- "scannedPackages": 0
38
+ "resolvedActors": 1,
39
+ "scannedPackages": 1
24
40
  }
25
41
  }
26
42
  }
@@ -1,33 +1,60 @@
1
1
  import { Schema } from "effect";
2
2
  export declare const SavedWorldVector: Schema.Struct<{
3
- readonly x: Schema.Number;
4
- readonly y: Schema.Number;
5
- readonly z: Schema.Number;
3
+ readonly x: Schema.Finite;
4
+ readonly y: Schema.Finite;
5
+ readonly z: Schema.Finite;
6
6
  }>;
7
7
  export type SavedWorldVector = Schema.Schema.Type<typeof SavedWorldVector>;
8
- export declare const SavedWorldPosition: Schema.Union<readonly [Schema.Struct<{
8
+ export declare const SavedWorldQuaternion: Schema.Struct<{
9
+ readonly w: Schema.Finite;
10
+ readonly x: Schema.Finite;
11
+ readonly y: Schema.Finite;
12
+ readonly z: Schema.Finite;
13
+ }>;
14
+ export type SavedWorldQuaternion = Schema.Schema.Type<typeof SavedWorldQuaternion>;
15
+ /** A direct saved root-component attachment. It deliberately does not infer parent actor ownership. */
16
+ export declare const SavedWorldAttachment: Schema.Struct<{
17
+ readonly componentPath: Schema.NonEmptyString;
18
+ readonly parentComponentPath: Schema.NonEmptyString;
19
+ }>;
20
+ export type SavedWorldAttachment = Schema.Schema.Type<typeof SavedWorldAttachment>;
21
+ export declare const SavedWorldTransform: Schema.Union<readonly [Schema.Struct<{
9
22
  readonly status: Schema.Literal<"missing_root_component">;
10
23
  }>, Schema.Struct<{
11
- readonly parentPath: Schema.String;
24
+ readonly parentPath: Schema.NonEmptyString;
12
25
  readonly status: Schema.Literal<"missing_attachment_parent">;
13
26
  }>, Schema.Struct<{
14
- readonly componentPath: Schema.String;
27
+ readonly componentPath: Schema.NonEmptyString;
15
28
  readonly status: Schema.Literal<"attachment_cycle">;
16
29
  }>, Schema.Struct<{
17
- readonly componentPath: Schema.String;
30
+ readonly componentPath: Schema.NonEmptyString;
18
31
  readonly status: Schema.Literal<"ambiguous_component_path">;
19
32
  }>, Schema.Struct<{
20
- readonly componentPath: Schema.String;
33
+ readonly componentPath: Schema.NonEmptyString;
21
34
  readonly status: Schema.Literal<"unsupported_absolute_transform">;
35
+ }>, Schema.Struct<{
36
+ readonly componentPath: Schema.NonEmptyString;
37
+ readonly status: Schema.Literal<"non_finite_transform">;
22
38
  }>, Schema.Struct<{
23
39
  readonly location: Schema.Struct<{
24
- readonly x: Schema.Number;
25
- readonly y: Schema.Number;
26
- readonly z: Schema.Number;
40
+ readonly x: Schema.Finite;
41
+ readonly y: Schema.Finite;
42
+ readonly z: Schema.Finite;
43
+ }>;
44
+ readonly rotation: Schema.Struct<{
45
+ readonly w: Schema.Finite;
46
+ readonly x: Schema.Finite;
47
+ readonly y: Schema.Finite;
48
+ readonly z: Schema.Finite;
49
+ }>;
50
+ readonly scale: Schema.Struct<{
51
+ readonly x: Schema.Finite;
52
+ readonly y: Schema.Finite;
53
+ readonly z: Schema.Finite;
27
54
  }>;
28
55
  readonly status: Schema.Literal<"resolved">;
29
56
  }>]>;
30
- export type SavedWorldPosition = Schema.Schema.Type<typeof SavedWorldPosition>;
57
+ export type SavedWorldTransform = Schema.Schema.Type<typeof SavedWorldTransform>;
31
58
  /** A configured map the offline viewer may load. Its path is always project-relative or absolute. */
32
59
  export declare const SavedWorldMap: Schema.Struct<{
33
60
  readonly label: Schema.NonEmptyString;
@@ -37,28 +64,46 @@ export type SavedWorldMap = Schema.Schema.Type<typeof SavedWorldMap>;
37
64
  export declare const SavedWorldActor: Schema.Struct<{
38
65
  readonly actorGuid: Schema.optionalKey<Schema.String>;
39
66
  readonly actorPath: Schema.String;
67
+ readonly attachment: Schema.optionalKey<Schema.Struct<{
68
+ readonly componentPath: Schema.NonEmptyString;
69
+ readonly parentComponentPath: Schema.NonEmptyString;
70
+ }>>;
40
71
  readonly classPath: Schema.String;
41
72
  readonly label: Schema.optionalKey<Schema.String>;
42
73
  readonly packageName: Schema.String;
43
- readonly position: Schema.Union<readonly [Schema.Struct<{
74
+ readonly transform: Schema.Union<readonly [Schema.Struct<{
44
75
  readonly status: Schema.Literal<"missing_root_component">;
45
76
  }>, Schema.Struct<{
46
- readonly parentPath: Schema.String;
77
+ readonly parentPath: Schema.NonEmptyString;
47
78
  readonly status: Schema.Literal<"missing_attachment_parent">;
48
79
  }>, Schema.Struct<{
49
- readonly componentPath: Schema.String;
80
+ readonly componentPath: Schema.NonEmptyString;
50
81
  readonly status: Schema.Literal<"attachment_cycle">;
51
82
  }>, Schema.Struct<{
52
- readonly componentPath: Schema.String;
83
+ readonly componentPath: Schema.NonEmptyString;
53
84
  readonly status: Schema.Literal<"ambiguous_component_path">;
54
85
  }>, Schema.Struct<{
55
- readonly componentPath: Schema.String;
86
+ readonly componentPath: Schema.NonEmptyString;
56
87
  readonly status: Schema.Literal<"unsupported_absolute_transform">;
88
+ }>, Schema.Struct<{
89
+ readonly componentPath: Schema.NonEmptyString;
90
+ readonly status: Schema.Literal<"non_finite_transform">;
57
91
  }>, Schema.Struct<{
58
92
  readonly location: Schema.Struct<{
59
- readonly x: Schema.Number;
60
- readonly y: Schema.Number;
61
- readonly z: Schema.Number;
93
+ readonly x: Schema.Finite;
94
+ readonly y: Schema.Finite;
95
+ readonly z: Schema.Finite;
96
+ }>;
97
+ readonly rotation: Schema.Struct<{
98
+ readonly w: Schema.Finite;
99
+ readonly x: Schema.Finite;
100
+ readonly y: Schema.Finite;
101
+ readonly z: Schema.Finite;
102
+ }>;
103
+ readonly scale: Schema.Struct<{
104
+ readonly x: Schema.Finite;
105
+ readonly y: Schema.Finite;
106
+ readonly z: Schema.Finite;
62
107
  }>;
63
108
  readonly status: Schema.Literal<"resolved">;
64
109
  }>]>;
@@ -106,8 +151,8 @@ export declare const SavedWorld: Schema.Struct<{
106
151
  readonly contract: Schema.Struct<{
107
152
  readonly name: Schema.Literal<"unreal-saved-world">;
108
153
  readonly version: Schema.Struct<{
109
- readonly major: Schema.Literal<1>;
110
- readonly minor: Schema.Int;
154
+ readonly major: Schema.Literal<2>;
155
+ readonly minor: Schema.Literal<0>;
111
156
  }>;
112
157
  }>;
113
158
  readonly diagnostics: Schema.$Array<Schema.Struct<{
@@ -122,28 +167,46 @@ export declare const SavedWorld: Schema.Struct<{
122
167
  readonly actors: Schema.$Array<Schema.Struct<{
123
168
  readonly actorGuid: Schema.optionalKey<Schema.String>;
124
169
  readonly actorPath: Schema.String;
170
+ readonly attachment: Schema.optionalKey<Schema.Struct<{
171
+ readonly componentPath: Schema.NonEmptyString;
172
+ readonly parentComponentPath: Schema.NonEmptyString;
173
+ }>>;
125
174
  readonly classPath: Schema.String;
126
175
  readonly label: Schema.optionalKey<Schema.String>;
127
176
  readonly packageName: Schema.String;
128
- readonly position: Schema.Union<readonly [Schema.Struct<{
177
+ readonly transform: Schema.Union<readonly [Schema.Struct<{
129
178
  readonly status: Schema.Literal<"missing_root_component">;
130
179
  }>, Schema.Struct<{
131
- readonly parentPath: Schema.String;
180
+ readonly parentPath: Schema.NonEmptyString;
132
181
  readonly status: Schema.Literal<"missing_attachment_parent">;
133
182
  }>, Schema.Struct<{
134
- readonly componentPath: Schema.String;
183
+ readonly componentPath: Schema.NonEmptyString;
135
184
  readonly status: Schema.Literal<"attachment_cycle">;
136
185
  }>, Schema.Struct<{
137
- readonly componentPath: Schema.String;
186
+ readonly componentPath: Schema.NonEmptyString;
138
187
  readonly status: Schema.Literal<"ambiguous_component_path">;
139
188
  }>, Schema.Struct<{
140
- readonly componentPath: Schema.String;
189
+ readonly componentPath: Schema.NonEmptyString;
141
190
  readonly status: Schema.Literal<"unsupported_absolute_transform">;
191
+ }>, Schema.Struct<{
192
+ readonly componentPath: Schema.NonEmptyString;
193
+ readonly status: Schema.Literal<"non_finite_transform">;
142
194
  }>, Schema.Struct<{
143
195
  readonly location: Schema.Struct<{
144
- readonly x: Schema.Number;
145
- readonly y: Schema.Number;
146
- readonly z: Schema.Number;
196
+ readonly x: Schema.Finite;
197
+ readonly y: Schema.Finite;
198
+ readonly z: Schema.Finite;
199
+ }>;
200
+ readonly rotation: Schema.Struct<{
201
+ readonly w: Schema.Finite;
202
+ readonly x: Schema.Finite;
203
+ readonly y: Schema.Finite;
204
+ readonly z: Schema.Finite;
205
+ }>;
206
+ readonly scale: Schema.Struct<{
207
+ readonly x: Schema.Finite;
208
+ readonly y: Schema.Finite;
209
+ readonly z: Schema.Finite;
147
210
  }>;
148
211
  readonly status: Schema.Literal<"resolved">;
149
212
  }>]>;
@@ -167,8 +230,8 @@ export declare const decodeSavedWorld: (input: unknown, options?: import("effect
167
230
  readonly contract: Schema.Struct.ReadonlySide<{
168
231
  readonly name: Schema.Literal<"unreal-saved-world">;
169
232
  readonly version: Schema.Struct<{
170
- readonly major: Schema.Literal<1>;
171
- readonly minor: Schema.Int;
233
+ readonly major: Schema.Literal<2>;
234
+ readonly minor: Schema.Literal<0>;
172
235
  }>;
173
236
  }, "Type">;
174
237
  readonly completeness: "complete" | "partial";
@@ -187,30 +250,48 @@ export declare const decodeSavedWorld: (input: unknown, options?: import("effect
187
250
  readonly packageName: string;
188
251
  readonly classPath: string;
189
252
  readonly actorPath: string;
190
- readonly position: Schema.Struct.ReadonlySide<{
253
+ readonly transform: Schema.Struct.ReadonlySide<{
191
254
  readonly status: Schema.Literal<"missing_root_component">;
192
255
  }, "Type"> | Schema.Struct.ReadonlySide<{
193
- readonly parentPath: Schema.String;
256
+ readonly parentPath: Schema.NonEmptyString;
194
257
  readonly status: Schema.Literal<"missing_attachment_parent">;
195
258
  }, "Type"> | Schema.Struct.ReadonlySide<{
196
- readonly componentPath: Schema.String;
259
+ readonly componentPath: Schema.NonEmptyString;
197
260
  readonly status: Schema.Literal<"attachment_cycle">;
198
261
  }, "Type"> | Schema.Struct.ReadonlySide<{
199
- readonly componentPath: Schema.String;
262
+ readonly componentPath: Schema.NonEmptyString;
200
263
  readonly status: Schema.Literal<"ambiguous_component_path">;
201
264
  }, "Type"> | Schema.Struct.ReadonlySide<{
202
- readonly componentPath: Schema.String;
265
+ readonly componentPath: Schema.NonEmptyString;
203
266
  readonly status: Schema.Literal<"unsupported_absolute_transform">;
267
+ }, "Type"> | Schema.Struct.ReadonlySide<{
268
+ readonly componentPath: Schema.NonEmptyString;
269
+ readonly status: Schema.Literal<"non_finite_transform">;
204
270
  }, "Type"> | Schema.Struct.ReadonlySide<{
205
271
  readonly location: Schema.Struct<{
206
- readonly x: Schema.Number;
207
- readonly y: Schema.Number;
208
- readonly z: Schema.Number;
272
+ readonly x: Schema.Finite;
273
+ readonly y: Schema.Finite;
274
+ readonly z: Schema.Finite;
275
+ }>;
276
+ readonly rotation: Schema.Struct<{
277
+ readonly w: Schema.Finite;
278
+ readonly x: Schema.Finite;
279
+ readonly y: Schema.Finite;
280
+ readonly z: Schema.Finite;
281
+ }>;
282
+ readonly scale: Schema.Struct<{
283
+ readonly x: Schema.Finite;
284
+ readonly y: Schema.Finite;
285
+ readonly z: Schema.Finite;
209
286
  }>;
210
287
  readonly status: Schema.Literal<"resolved">;
211
288
  }, "Type">;
212
289
  readonly label?: string;
213
290
  readonly actorGuid?: string;
291
+ readonly attachment?: Schema.Struct.ReadonlySide<{
292
+ readonly componentPath: Schema.NonEmptyString;
293
+ readonly parentComponentPath: Schema.NonEmptyString;
294
+ }, "Type">;
214
295
  }[];
215
296
  readonly summary: Schema.Struct.ReadonlySide<{
216
297
  readonly failedPackages: Schema.Int;
@@ -1 +1 @@
1
- {"version":3,"file":"saved-world.d.ts","sourceRoot":"","sources":["../src/saved-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;IAgB7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/E,qGAAqG;AACrG,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;AAErE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;AAEzE,uFAAuF;AACvF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;IAa3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;sCAA+C,CAAC;AAEnF,yFAAyF;AACzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;IAUtB,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhD,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE/D,eAAO,MAAM,kBAAkB;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAyC,CAAC"}
1
+ {"version":3,"file":"saved-world.d.ts","sourceRoot":"","sources":["../src/saved-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE3E,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnF,uGAAuG;AACvG,eAAO,MAAM,oBAAoB;;;EAG/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4B9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEjF,qGAAqG;AACrG,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;AAErE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;AAEzE,uFAAuF;AACvF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;IAa3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;sCAA+C,CAAC;AAEnF,yFAAyF;AACzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;IAUtB,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhD,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE/D,eAAO,MAAM,kBAAkB;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAyC,CAAC"}
@@ -1,26 +1,49 @@
1
1
  import { Schema } from "effect";
2
2
  const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
3
3
  export const SavedWorldVector = Schema.Struct({
4
- x: Schema.Number,
5
- y: Schema.Number,
6
- z: Schema.Number
4
+ x: Schema.Finite,
5
+ y: Schema.Finite,
6
+ z: Schema.Finite
7
7
  });
8
- export const SavedWorldPosition = Schema.Union([
8
+ export const SavedWorldQuaternion = Schema.Struct({
9
+ w: Schema.Finite,
10
+ x: Schema.Finite,
11
+ y: Schema.Finite,
12
+ z: Schema.Finite
13
+ });
14
+ /** A direct saved root-component attachment. It deliberately does not infer parent actor ownership. */
15
+ export const SavedWorldAttachment = Schema.Struct({
16
+ componentPath: Schema.NonEmptyString,
17
+ parentComponentPath: Schema.NonEmptyString
18
+ });
19
+ export const SavedWorldTransform = Schema.Union([
9
20
  Schema.Struct({ status: Schema.Literal("missing_root_component") }),
10
21
  Schema.Struct({
11
- parentPath: Schema.String,
22
+ parentPath: Schema.NonEmptyString,
12
23
  status: Schema.Literal("missing_attachment_parent")
13
24
  }),
14
- Schema.Struct({ componentPath: Schema.String, status: Schema.Literal("attachment_cycle") }),
15
25
  Schema.Struct({
16
- componentPath: Schema.String,
26
+ componentPath: Schema.NonEmptyString,
27
+ status: Schema.Literal("attachment_cycle")
28
+ }),
29
+ Schema.Struct({
30
+ componentPath: Schema.NonEmptyString,
17
31
  status: Schema.Literal("ambiguous_component_path")
18
32
  }),
19
33
  Schema.Struct({
20
- componentPath: Schema.String,
34
+ componentPath: Schema.NonEmptyString,
21
35
  status: Schema.Literal("unsupported_absolute_transform")
22
36
  }),
23
- Schema.Struct({ location: SavedWorldVector, status: Schema.Literal("resolved") })
37
+ Schema.Struct({
38
+ componentPath: Schema.NonEmptyString,
39
+ status: Schema.Literal("non_finite_transform")
40
+ }),
41
+ Schema.Struct({
42
+ location: SavedWorldVector,
43
+ rotation: SavedWorldQuaternion,
44
+ scale: SavedWorldVector,
45
+ status: Schema.Literal("resolved")
46
+ })
24
47
  ]);
25
48
  /** A configured map the offline viewer may load. Its path is always project-relative or absolute. */
26
49
  export const SavedWorldMap = Schema.Struct({
@@ -30,10 +53,11 @@ export const SavedWorldMap = Schema.Struct({
30
53
  export const SavedWorldActor = Schema.Struct({
31
54
  actorGuid: Schema.optionalKey(Schema.String),
32
55
  actorPath: Schema.String,
56
+ attachment: Schema.optionalKey(SavedWorldAttachment),
33
57
  classPath: Schema.String,
34
58
  label: Schema.optionalKey(Schema.String),
35
59
  packageName: Schema.String,
36
- position: SavedWorldPosition
60
+ transform: SavedWorldTransform
37
61
  });
38
62
  /** The outcome of choosing an in-app project and reading its discovered saved maps. */
39
63
  export const SavedWorldChoice = Schema.Union([
@@ -57,7 +81,7 @@ export const SavedWorld = Schema.Struct({
57
81
  completeness: Schema.Literals(["complete", "partial"]),
58
82
  contract: Schema.Struct({
59
83
  name: Schema.Literal("unreal-saved-world"),
60
- version: Schema.Struct({ major: Schema.Literal(1), minor: Schema.Int })
84
+ version: Schema.Struct({ major: Schema.Literal(2), minor: Schema.Literal(0) })
61
85
  }),
62
86
  diagnostics: Schema.Array(Schema.Struct({ code: Schema.String, message: Schema.String, retrySafe: Schema.Boolean })),
63
87
  /** Present only when the map stores its actors as World Partition external packages. */
@@ -1 +1 @@
1
- {"version":3,"file":"saved-world.js","sourceRoot":"","sources":["../src/saved-world.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saved-world.js","sourceRoot":"","sources":["../src/saved-world.ts"],"names":[],"mappings":"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"}