@cobotar/protocol 0.17.8 → 0.17.10

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,7 +1,7 @@
1
1
  # CobotAR-Protocol
2
2
  A collection of protobuf messages for the CobotAR-project
3
3
 
4
- Current version: 0.17.8
4
+ Current version: 0.17.10
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -8,6 +8,8 @@ import type { ActorAssignment, ActorRef } from "./actor_pb.ts";
8
8
  import { file_assembly_v1_actor } from "./actor_pb.ts";
9
9
  import type { CustomProperties, EstimatedDuration } from "./common_pb.ts";
10
10
  import { file_assembly_v1_common } from "./common_pb.ts";
11
+ import type { VariantConfiguration } from "./variant_pb.ts";
12
+ import { file_assembly_v1_variant } from "./variant_pb.ts";
11
13
  import type { LocalizedPose } from "../../geometry/v1/pose_pb.ts";
12
14
  import { file_geometry_v1_pose } from "../../geometry/v1/pose_pb.ts";
13
15
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
@@ -18,29 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
18
20
  * Describes the file assembly/v1/execution.proto.
19
21
  */
20
22
  export const file_assembly_v1_execution: GenFile = /*@__PURE__*/
21
- fileDesc("Chthc3NlbWJseS92MS9leGVjdXRpb24ucHJvdG8SC2Fzc2VtYmx5LnYxIjQKEFZhcmlhbnRTZWxlY3Rpb24SEQoJZGltZW5zaW9uGAEgASgJEg0KBXZhbHVlGAIgASgJIioKDFJ1blBhcmFtZXRlchILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAki1gQKClByb2Nlc3NSdW4SCgoCaWQYASABKAkSEQoJcmVjaXBlX2lkGAIgASgJEhAKCG9yZGVyX2lkGAMgASgJEhIKCnN0YXRpb25faWQYBCABKAkSDwoHY2VsbF9pZBgFIAEoCRIpCgVmcmFtZRgGIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USHAoUcm9vdF9zZXF1ZW5jZV9ydW5faWQYByABKAkSKwoJc2VxdWVuY2VzGAggAygLMhguYXNzZW1ibHkudjEuU2VxdWVuY2VSdW4SIwoFdGFza3MYCSADKAsyFC5hc3NlbWJseS52MS5UYXNrUnVuEisKBXN0YXRlGAogASgOMhwuYXNzZW1ibHkudjEuUHJvY2Vzc1J1blN0YXRlEjAKDGluaXRpYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC2Fzc2lnbm1lbnRzGA0gAygLMhwuYXNzZW1ibHkudjEuQWN0b3JBc3NpZ25tZW50Ei0KBmN1c3RvbRgOIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMSOQoScHJvZHVjdF9zZWxlY3Rpb25zGA8gAygLMh0uYXNzZW1ibHkudjEuVmFyaWFudFNlbGVjdGlvbhItCgpwYXJhbWV0ZXJzGBAgAygLMhkuYXNzZW1ibHkudjEuUnVuUGFyYW1ldGVyIqcCCgtTZXF1ZW5jZVJ1bhIKCgJpZBgBIAEoCRIeChZzZXF1ZW5jZV9kZWZpbml0aW9uX2lkGAIgASgJEh4KFnBhcmVudF9zZXF1ZW5jZV9ydW5faWQYAyABKAkSHgoWY2hpbGRfc2VxdWVuY2VfcnVuX2lkcxgEIAMoCRIaChJjaGlsZF90YXNrX3J1bl9pZHMYBSADKAkSLAoFc3RhdGUYBiABKA4yHS5hc3NlbWJseS52MS5TZXF1ZW5jZVJ1blN0YXRlEhcKD2NvbXBsZXRlZF90YXNrcxgHIAEoBRIZChFjYW5fYnVsa19jb21wbGV0ZRgIIAEoCBIuCg9hc3NpZ25lZF9hY3RvcnMYCSADKAsyFS5hc3NlbWJseS52MS5BY3RvclJlZiLBBAoHVGFza1J1bhIKCgJpZBgBIAEoCRIaChJ0YXNrX2RlZmluaXRpb25faWQYAiABKAkSHgoWcGFyZW50X3NlcXVlbmNlX3J1bl9pZBgDIAEoCRIoCgVzdGF0ZRgEIAEoDjIZLmFzc2VtYmx5LnYxLlRhc2tSdW5TdGF0ZRIvChBjYW5kaWRhdGVfYWN0b3JzGAUgAygLMhUuYXNzZW1ibHkudjEuQWN0b3JSZWYSLQoOYXNzaWduZWRfYWN0b3IYBiABKAsyFS5hc3NlbWJseS52MS5BY3RvclJlZhIOCgZjYW5fZG8YByABKAgSEAoIY2FuX3VuZG8YCCABKAgSGAoQd29ya2FibGVfaG9yaXpvbhgJIAEoBRI6ChJlc3RpbWF0ZWRfZHVyYXRpb24YCiABKAsyHi5hc3NlbWJseS52MS5Fc3RpbWF0ZWREdXJhdGlvbhIuCgpzdGFydGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmVycm9yX2NvZGUYDSABKAkSFQoNZXJyb3JfbWVzc2FnZRgOIAEoCRIwCghldmlkZW5jZRgPIAMoCzIeLmFzc2VtYmx5LnYxLkV4ZWN1dGlvbkV2aWRlbmNlEi0KBmN1c3RvbRgQIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMiOAoMRXZpZGVuY2VGYWN0EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIMCgR1bml0GAMgASgJIrEBChFFeGVjdXRpb25FdmlkZW5jZRIKCgJpZBgBIAEoCRITCgt0YXNrX3J1bl9pZBgCIAEoCRIOCgZzb3VyY2UYAyABKAkSLwoLcmVjb3JkZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEigKBWZhY3RzGAUgAygLMhkuYXNzZW1ibHkudjEuRXZpZGVuY2VGYWN0EhAKCGJsb2JfdXJpGAYgASgJKrYBCg9Qcm9jZXNzUnVuU3RhdGUSIQodUFJPQ0VTU19SVU5fU1RBVEVfVU5TUEVDSUZJRUQQABIdChlQUk9DRVNTX1JVTl9TVEFURV9XQUlUSU5HEAESIQodUFJPQ0VTU19SVU5fU1RBVEVfSU5fUFJPR1JFU1MQAhIfChtQUk9DRVNTX1JVTl9TVEFURV9DT01QTEVURUQQAxIdChlQUk9DRVNTX1JVTl9TVEFURV9BQk9SVEVEEAQq6QEKEFNlcXVlbmNlUnVuU3RhdGUSIgoeU0VRVUVOQ0VfUlVOX1NUQVRFX1VOU1BFQ0lGSUVEEAASKwonU0VRVUVOQ0VfUlVOX1NUQVRFX01JU1NJTkdfUFJFQ09ORElUSU9OEAESHgoaU0VRVUVOQ0VfUlVOX1NUQVRFX1dBSVRJTkcQAhIiCh5TRVFVRU5DRV9SVU5fU1RBVEVfSU5fUFJPR1JFU1MQAxIgChxTRVFVRU5DRV9SVU5fU1RBVEVfQ09NUExFVEVEEAQSHgoaU0VRVUVOQ0VfUlVOX1NUQVRFX0FCT1JURUQQBSrnAQoMVGFza1J1blN0YXRlEh4KGlRBU0tfUlVOX1NUQVRFX1VOU1BFQ0lGSUVEEAASJwojVEFTS19SVU5fU1RBVEVfTUlTU0lOR19QUkVDT05ESVRJT04QARIaChZUQVNLX1JVTl9TVEFURV9XQUlUSU5HEAISHgoaVEFTS19SVU5fU1RBVEVfSU5fUFJPR1JFU1MQAxIcChhUQVNLX1JVTl9TVEFURV9DT01QTEVURUQQBBIYChRUQVNLX1JVTl9TVEFURV9FUlJPUhAFEhoKFlRBU0tfUlVOX1NUQVRFX0FCT1JURUQQBkK0AQoPY29tLmFzc2VtYmx5LnYxQg5FeGVjdXRpb25Qcm90b1ABWjtnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXNzZW1ibHkvdjE7YXNzZW1ibHl2MaICA0FYWKoCFE1lc3NhZ2VzLkFzc2VtYmx5LlYxygILQXNzZW1ibHlcVjHiAhdBc3NlbWJseVxWMVxHUEJNZXRhZGF0YeoCDEFzc2VtYmx5OjpWMWIGcHJvdG8z", [file_assembly_v1_actor, file_assembly_v1_common, file_geometry_v1_pose, file_google_protobuf_timestamp]);
22
-
23
- /**
24
- * @generated from message assembly.v1.VariantSelection
25
- */
26
- export type VariantSelection = Message<"assembly.v1.VariantSelection"> & {
27
- /**
28
- * @generated from field: string dimension = 1;
29
- */
30
- dimension: string;
31
-
32
- /**
33
- * @generated from field: string value = 2;
34
- */
35
- value: string;
36
- };
37
-
38
- /**
39
- * Describes the message assembly.v1.VariantSelection.
40
- * Use `create(VariantSelectionSchema)` to create a new message.
41
- */
42
- export const VariantSelectionSchema: GenMessage<VariantSelection> = /*@__PURE__*/
43
- messageDesc(file_assembly_v1_execution, 0);
23
+ fileDesc("Chthc3NlbWJseS92MS9leGVjdXRpb24ucHJvdG8SC2Fzc2VtYmx5LnYxIioKDFJ1blBhcmFtZXRlchILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAki3QQKClByb2Nlc3NSdW4SCgoCaWQYASABKAkSEQoJcmVjaXBlX2lkGAIgASgJEhAKCG9yZGVyX2lkGAMgASgJEhIKCnN0YXRpb25faWQYBCABKAkSDwoHY2VsbF9pZBgFIAEoCRIpCgVmcmFtZRgGIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USHAoUcm9vdF9zZXF1ZW5jZV9ydW5faWQYByABKAkSKwoJc2VxdWVuY2VzGAggAygLMhguYXNzZW1ibHkudjEuU2VxdWVuY2VSdW4SIwoFdGFza3MYCSADKAsyFC5hc3NlbWJseS52MS5UYXNrUnVuEisKBXN0YXRlGAogASgOMhwuYXNzZW1ibHkudjEuUHJvY2Vzc1J1blN0YXRlEjAKDGluaXRpYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC2Fzc2lnbm1lbnRzGA0gAygLMhwuYXNzZW1ibHkudjEuQWN0b3JBc3NpZ25tZW50Ei0KBmN1c3RvbRgOIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMSQAoVdmFyaWFudF9jb25maWd1cmF0aW9uGA8gASgLMiEuYXNzZW1ibHkudjEuVmFyaWFudENvbmZpZ3VyYXRpb24SLQoKcGFyYW1ldGVycxgQIAMoCzIZLmFzc2VtYmx5LnYxLlJ1blBhcmFtZXRlciKnAgoLU2VxdWVuY2VSdW4SCgoCaWQYASABKAkSHgoWc2VxdWVuY2VfZGVmaW5pdGlvbl9pZBgCIAEoCRIeChZwYXJlbnRfc2VxdWVuY2VfcnVuX2lkGAMgASgJEh4KFmNoaWxkX3NlcXVlbmNlX3J1bl9pZHMYBCADKAkSGgoSY2hpbGRfdGFza19ydW5faWRzGAUgAygJEiwKBXN0YXRlGAYgASgOMh0uYXNzZW1ibHkudjEuU2VxdWVuY2VSdW5TdGF0ZRIXCg9jb21wbGV0ZWRfdGFza3MYByABKAUSGQoRY2FuX2J1bGtfY29tcGxldGUYCCABKAgSLgoPYXNzaWduZWRfYWN0b3JzGAkgAygLMhUuYXNzZW1ibHkudjEuQWN0b3JSZWYiwQQKB1Rhc2tSdW4SCgoCaWQYASABKAkSGgoSdGFza19kZWZpbml0aW9uX2lkGAIgASgJEh4KFnBhcmVudF9zZXF1ZW5jZV9ydW5faWQYAyABKAkSKAoFc3RhdGUYBCABKA4yGS5hc3NlbWJseS52MS5UYXNrUnVuU3RhdGUSLwoQY2FuZGlkYXRlX2FjdG9ycxgFIAMoCzIVLmFzc2VtYmx5LnYxLkFjdG9yUmVmEi0KDmFzc2lnbmVkX2FjdG9yGAYgASgLMhUuYXNzZW1ibHkudjEuQWN0b3JSZWYSDgoGY2FuX2RvGAcgASgIEhAKCGNhbl91bmRvGAggASgIEhgKEHdvcmthYmxlX2hvcml6b24YCSABKAUSOgoSZXN0aW1hdGVkX2R1cmF0aW9uGAogASgLMh4uYXNzZW1ibHkudjEuRXN0aW1hdGVkRHVyYXRpb24SLgoKc3RhcnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgplcnJvcl9jb2RlGA0gASgJEhUKDWVycm9yX21lc3NhZ2UYDiABKAkSMAoIZXZpZGVuY2UYDyADKAsyHi5hc3NlbWJseS52MS5FeGVjdXRpb25FdmlkZW5jZRItCgZjdXN0b20YECABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIjgKDEV2aWRlbmNlRmFjdBILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSDAoEdW5pdBgDIAEoCSKxAQoRRXhlY3V0aW9uRXZpZGVuY2USCgoCaWQYASABKAkSEwoLdGFza19ydW5faWQYAiABKAkSDgoGc291cmNlGAMgASgJEi8KC3JlY29yZGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIoCgVmYWN0cxgFIAMoCzIZLmFzc2VtYmx5LnYxLkV2aWRlbmNlRmFjdBIQCghibG9iX3VyaRgGIAEoCSq2AQoPUHJvY2Vzc1J1blN0YXRlEiEKHVBST0NFU1NfUlVOX1NUQVRFX1VOU1BFQ0lGSUVEEAASHQoZUFJPQ0VTU19SVU5fU1RBVEVfV0FJVElORxABEiEKHVBST0NFU1NfUlVOX1NUQVRFX0lOX1BST0dSRVNTEAISHwobUFJPQ0VTU19SVU5fU1RBVEVfQ09NUExFVEVEEAMSHQoZUFJPQ0VTU19SVU5fU1RBVEVfQUJPUlRFRBAEKukBChBTZXF1ZW5jZVJ1blN0YXRlEiIKHlNFUVVFTkNFX1JVTl9TVEFURV9VTlNQRUNJRklFRBAAEisKJ1NFUVVFTkNFX1JVTl9TVEFURV9NSVNTSU5HX1BSRUNPTkRJVElPThABEh4KGlNFUVVFTkNFX1JVTl9TVEFURV9XQUlUSU5HEAISIgoeU0VRVUVOQ0VfUlVOX1NUQVRFX0lOX1BST0dSRVNTEAMSIAocU0VRVUVOQ0VfUlVOX1NUQVRFX0NPTVBMRVRFRBAEEh4KGlNFUVVFTkNFX1JVTl9TVEFURV9BQk9SVEVEEAUq5wEKDFRhc2tSdW5TdGF0ZRIeChpUQVNLX1JVTl9TVEFURV9VTlNQRUNJRklFRBAAEicKI1RBU0tfUlVOX1NUQVRFX01JU1NJTkdfUFJFQ09ORElUSU9OEAESGgoWVEFTS19SVU5fU1RBVEVfV0FJVElORxACEh4KGlRBU0tfUlVOX1NUQVRFX0lOX1BST0dSRVNTEAMSHAoYVEFTS19SVU5fU1RBVEVfQ09NUExFVEVEEAQSGAoUVEFTS19SVU5fU1RBVEVfRVJST1IQBRIaChZUQVNLX1JVTl9TVEFURV9BQk9SVEVEEAZCtAEKD2NvbS5hc3NlbWJseS52MUIORXhlY3V0aW9uUHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw", [file_assembly_v1_actor, file_assembly_v1_common, file_assembly_v1_variant, file_geometry_v1_pose, file_google_protobuf_timestamp]);
44
24
 
45
25
  /**
46
26
  * @generated from message assembly.v1.RunParameter
@@ -64,7 +44,7 @@ export type RunParameter = Message<"assembly.v1.RunParameter"> & {
64
44
  * Use `create(RunParameterSchema)` to create a new message.
65
45
  */
66
46
  export const RunParameterSchema: GenMessage<RunParameter> = /*@__PURE__*/
67
- messageDesc(file_assembly_v1_execution, 1);
47
+ messageDesc(file_assembly_v1_execution, 0);
68
48
 
69
49
  /**
70
50
  * ProcessRun is only created when a concrete cell can currently satisfy it.
@@ -144,9 +124,9 @@ export type ProcessRun = Message<"assembly.v1.ProcessRun"> & {
144
124
  custom?: CustomProperties;
145
125
 
146
126
  /**
147
- * @generated from field: repeated assembly.v1.VariantSelection product_selections = 15;
127
+ * @generated from field: assembly.v1.VariantConfiguration variant_configuration = 15;
148
128
  */
149
- productSelections: VariantSelection[];
129
+ variantConfiguration?: VariantConfiguration;
150
130
 
151
131
  /**
152
132
  * @generated from field: repeated assembly.v1.RunParameter parameters = 16;
@@ -159,7 +139,7 @@ export type ProcessRun = Message<"assembly.v1.ProcessRun"> & {
159
139
  * Use `create(ProcessRunSchema)` to create a new message.
160
140
  */
161
141
  export const ProcessRunSchema: GenMessage<ProcessRun> = /*@__PURE__*/
162
- messageDesc(file_assembly_v1_execution, 2);
142
+ messageDesc(file_assembly_v1_execution, 1);
163
143
 
164
144
  /**
165
145
  * @generated from message assembly.v1.SequenceRun
@@ -216,7 +196,7 @@ export type SequenceRun = Message<"assembly.v1.SequenceRun"> & {
216
196
  * Use `create(SequenceRunSchema)` to create a new message.
217
197
  */
218
198
  export const SequenceRunSchema: GenMessage<SequenceRun> = /*@__PURE__*/
219
- messageDesc(file_assembly_v1_execution, 3);
199
+ messageDesc(file_assembly_v1_execution, 2);
220
200
 
221
201
  /**
222
202
  * @generated from message assembly.v1.TaskRun
@@ -310,7 +290,7 @@ export type TaskRun = Message<"assembly.v1.TaskRun"> & {
310
290
  * Use `create(TaskRunSchema)` to create a new message.
311
291
  */
312
292
  export const TaskRunSchema: GenMessage<TaskRun> = /*@__PURE__*/
313
- messageDesc(file_assembly_v1_execution, 4);
293
+ messageDesc(file_assembly_v1_execution, 3);
314
294
 
315
295
  /**
316
296
  * @generated from message assembly.v1.EvidenceFact
@@ -337,7 +317,7 @@ export type EvidenceFact = Message<"assembly.v1.EvidenceFact"> & {
337
317
  * Use `create(EvidenceFactSchema)` to create a new message.
338
318
  */
339
319
  export const EvidenceFactSchema: GenMessage<EvidenceFact> = /*@__PURE__*/
340
- messageDesc(file_assembly_v1_execution, 5);
320
+ messageDesc(file_assembly_v1_execution, 4);
341
321
 
342
322
  /**
343
323
  * @generated from message assembly.v1.ExecutionEvidence
@@ -381,7 +361,7 @@ export type ExecutionEvidence = Message<"assembly.v1.ExecutionEvidence"> & {
381
361
  * Use `create(ExecutionEvidenceSchema)` to create a new message.
382
362
  */
383
363
  export const ExecutionEvidenceSchema: GenMessage<ExecutionEvidence> = /*@__PURE__*/
384
- messageDesc(file_assembly_v1_execution, 6);
364
+ messageDesc(file_assembly_v1_execution, 5);
385
365
 
386
366
  /**
387
367
  * @generated from enum assembly.v1.ProcessRunState
@@ -6,12 +6,12 @@ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { CustomProperties, EstimatedDuration, ExternalReference, KeyValueConstraint, LocalTarget, SafetyRelevance } from "./common_pb.ts";
8
8
  import { file_assembly_v1_common } from "./common_pb.ts";
9
- import type { VariantCondition } from "./product_pb.ts";
10
- import { file_assembly_v1_product } from "./product_pb.ts";
11
9
  import type { ContainerSlotRef } from "./resources_pb.ts";
12
10
  import { file_assembly_v1_resources } from "./resources_pb.ts";
13
11
  import type { ActorConstraint, SkillLevel, SkillRequirement, ToolRequirement } from "./skill_pb.ts";
14
12
  import { file_assembly_v1_skill } from "./skill_pb.ts";
13
+ import type { VariantRule } from "./variant_pb.ts";
14
+ import { file_assembly_v1_variant } from "./variant_pb.ts";
15
15
  import type { Vector3 } from "../../geometry/v1/vector3_pb.ts";
16
16
  import { file_geometry_v1_vector3 } from "../../geometry/v1/vector3_pb.ts";
17
17
  import type { Message } from "@bufbuild/protobuf";
@@ -20,21 +20,25 @@ import type { Message } from "@bufbuild/protobuf";
20
20
  * Describes the file assembly/v1/process.proto.
21
21
  */
22
22
  export const file_assembly_v1_process: GenFile = /*@__PURE__*/
23
- fileDesc("Chlhc3NlbWJseS92MS9wcm9jZXNzLnByb3RvEgthc3NlbWJseS52MSJ3ChNSZWNpcGVBcHBsaWNhYmlsaXR5Ei8KCHJlcXVpcmVkGAEgAygLMh0uYXNzZW1ibHkudjEuVmFyaWFudENvbmRpdGlvbhIvCghleGNsdWRlZBgCIAMoCzIdLmFzc2VtYmx5LnYxLlZhcmlhbnRDb25kaXRpb24i3gMKDVByb2Nlc3NSZWNpcGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiYKBHR5cGUYBSABKA4yGC5hc3NlbWJseS52MS5Qcm9jZXNzVHlwZRIdChVwcm9kdWN0X2RlZmluaXRpb25faWQYBiABKAkSNwoNYXBwbGljYWJpbGl0eRgHIAEoCzIgLmFzc2VtYmx5LnYxLlJlY2lwZUFwcGxpY2FiaWxpdHkSGAoQcm9vdF9zZXF1ZW5jZV9pZBgIIAEoCRIyCglzZXF1ZW5jZXMYCSADKAsyHy5hc3NlbWJseS52MS5TZXF1ZW5jZURlZmluaXRpb24SKgoFdGFza3MYCiADKAsyGy5hc3NlbWJseS52MS5UYXNrRGVmaW5pdGlvbhIqCiJzdXBwb3J0ZWRfY29udGFpbmVyX2RlZmluaXRpb25faWRzGAsgAygJEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYDCADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIvcCChJTZXF1ZW5jZURlZmluaXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhcKD3NlcXVlbmNlX251bWJlchgFIAEoBRIaChJwYXJlbnRfc2VxdWVuY2VfaWQYBiABKAkSLwoIb3BlcmF0b3IYByABKA4yHS5hc3NlbWJseS52MS5TZXF1ZW5jZU9wZXJhdG9yEhoKEmNoaWxkX3NlcXVlbmNlX2lkcxgIIAMoCRIWCg5jaGlsZF90YXNrX2lkcxgJIAMoCRIuCgxsb2NhbF90YXJnZXQYCiABKAsyGC5hc3NlbWJseS52MS5Mb2NhbFRhcmdldBIQCghvcHRpb25hbBgLIAEoCBIZChFjYW5fYnVsa19jb21wbGV0ZRgMIAEoCBItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIpECCgpUYXNrVGFyZ2V0EhYKDnRhcmdldF9ub2RlX2lkGAEgASgJEiEKGXRhcmdldF9wYXJ0X2RlZmluaXRpb25faWQYAiABKAkSLgoMbG9jYWxfdGFyZ2V0GAMgASgLMhguYXNzZW1ibHkudjEuTG9jYWxUYXJnZXQSGQoRYXNzZXRfaW5zdGFuY2VfaWQYBCABKAkSGQoRcm9ib3RfaW5zdGFuY2VfaWQYBSABKAkSEgoKc3RhdGlvbl9pZBgGIAEoCRIdChVjb250YWluZXJfaW5zdGFuY2VfaWQYByABKAkSLwoIbG9jYXRpb24YCCABKAsyHS5hc3NlbWJseS52MS5Db250YWluZXJTbG90UmVmIu0BChVWYWxpZGF0aW9uUmVxdWlyZW1lbnQSHQoVcmVxdWlyZV90b29sX2ZlZWRiYWNrGAEgASgIEhwKFHJlcXVpcmVfdmlzaW9uX2NoZWNrGAIgASgIEiEKGWFsbG93X21hbnVhbF9jb25maXJtYXRpb24YAyABKAgSPgodbWFudWFsX2NvbmZpcm1hdGlvbl9taW5fbGV2ZWwYBCABKA4yFy5hc3NlbWJseS52MS5Ta2lsbExldmVsEjQKC2NvbnN0cmFpbnRzGAUgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IocCChNUYXNrRXhlY3V0aW9uUG9saWN5EkQKFWFzc2lnbm1lbnRfcHJlZmVyZW5jZRgBIAEoDjIlLmFzc2VtYmx5LnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI2ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMhwuYXNzZW1ibHkudjEuQWN0b3JDb25zdHJhaW50EhQKDGNhbl9yZWFzc2lnbhgDIAEoCBIOCgZjYW5fZG8YBCABKAgSEAoIY2FuX3VuZG8YBSABKAgSOgoSZXN0aW1hdGVkX2R1cmF0aW9uGAYgASgLMh4uYXNzZW1ibHkudjEuRXN0aW1hdGVkRHVyYXRpb24i9AUKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBpbnN0cnVjdGlvbl90ZXh0GAUgASgJEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBRIoCgl0YXNrX3R5cGUYByABKA4yFS5hc3NlbWJseS52MS5UYXNrVHlwZRInCgZ0YXJnZXQYCCABKAsyFy5hc3NlbWJseS52MS5UYXNrVGFyZ2V0EiYKCGFwcHJvYWNoGAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxI3ChF0b29sX3JlcXVpcmVtZW50cxgMIAMoCzIcLmFzc2VtYmx5LnYxLlRvb2xSZXF1aXJlbWVudBI5ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHS5hc3NlbWJseS52MS5Ta2lsbFJlcXVpcmVtZW50EjYKCnZhbGlkYXRpb24YDiABKAsyIi5hc3NlbWJseS52MS5WYWxpZGF0aW9uUmVxdWlyZW1lbnQSOgoQZXhlY3V0aW9uX3BvbGljeRgPIAEoCzIgLmFzc2VtYmx5LnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNgoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIcLmFzc2VtYmx5LnYxLlNhZmV0eVJlbGV2YW5jZRIWCg5zb3VyY2Vfbm9kZV9pZBgRIAEoCRIbChNkZXN0aW5hdGlvbl9ub2RlX2lkGBIgASgJEjYKD3NvdXJjZV9sb2NhdGlvbhgTIAEoCzIdLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RSZWYSOwoUZGVzdGluYXRpb25fbG9jYXRpb24YFCABKAsyHS5hc3NlbWJseS52MS5Db250YWluZXJTbG90UmVmEi0KBmN1c3RvbRgVIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMq1QEKC1Byb2Nlc3NUeXBlEhwKGFBST0NFU1NfVFlQRV9VTlNQRUNJRklFRBAAEhkKFVBST0NFU1NfVFlQRV9BU1NFTUJMWRABEhwKGFBST0NFU1NfVFlQRV9ESVNBU1NFTUJMWRACEhsKF1BST0NFU1NfVFlQRV9JTlNQRUNUSU9OEAMSGgoWUFJPQ0VTU19UWVBFX0NIRUNLTElTVBAEEhgKFFBST0NFU1NfVFlQRV9LSVRUSU5HEAUSHAoYUFJPQ0VTU19UWVBFX01BSU5URU5BTkNFEAYqogEKEFNlcXVlbmNlT3BlcmF0b3ISIQodU0VRVUVOQ0VfT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIlCiFTRVFVRU5DRV9PUEVSQVRPUl9BTExfT0ZfQ0hJTERSRU4QARIlCiFTRVFVRU5DRV9PUEVSQVRPUl9PTkVfT0ZfQ0hJTERSRU4QAhIdChlTRVFVRU5DRV9PUEVSQVRPUl9PUkRFUkVEEAMqvwMKCFRhc2tUeXBlEhkKFVRBU0tfVFlQRV9VTlNQRUNJRklFRBAAEhUKEVRBU0tfVFlQRV9JTlNQRUNUEAESFAoQVEFTS19UWVBFX0ZBU1RFThACEhYKElRBU0tfVFlQRV9VTkZBU1RFThADEhMKD1RBU0tfVFlQRV9NT1VOVBAEEhUKEVRBU0tfVFlQRV9VTk1PVU5UEAUSEgoOVEFTS19UWVBFX01PVkUQBhIUChBUQVNLX1RZUEVfUkVNT1ZFEAcSEwoPVEFTS19UWVBFX0FQUExZEAgSEgoOVEFTS19UWVBFX1dJUEUQCRITCg9UQVNLX1RZUEVfQUxJR04QChIUChBUQVNLX1RZUEVfSU5TRVJUEAsSEgoOVEFTS19UWVBFX0hPTEQQDBIUChBUQVNLX1RZUEVfVkVSSUZZEA0SEgoOVEFTS19UWVBFX1BJQ0sQDhITCg9UQVNLX1RZUEVfUExBQ0UQDxISCg5UQVNLX1RZUEVfU0NBThAQEhIKDlRBU0tfVFlQRV9XQUlUEBESEwoPVEFTS19UWVBFX0NIRUNLEBISGQoVVEFTS19UWVBFX0FDS05PV0xFREdFEBMqnQIKGFRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRIqCiZUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9VTlNQRUNJRklFRBAAEisKJ1RBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1BSRUZFUl9IVU1BThABEikKJVRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX09OTFlfSFVNQU4QAhIrCidUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9QUkVGRVJfUk9CT1QQAxIpCiVUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9PTkxZX1JPQk9UEAQSJQohVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfRUlUSEVSEAVCsgEKD2NvbS5hc3NlbWJseS52MUIMUHJvY2Vzc1Byb3RvUAFaO2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hc3NlbWJseS92MTthc3NlbWJseXYxogIDQVhYqgIUTWVzc2FnZXMuQXNzZW1ibHkuVjHKAgtBc3NlbWJseVxWMeICF0Fzc2VtYmx5XFYxXEdQQk1ldGFkYXRh6gIMQXNzZW1ibHk6OlYxYgZwcm90bzM", [file_assembly_v1_common, file_assembly_v1_product, file_assembly_v1_resources, file_assembly_v1_skill, file_geometry_v1_vector3]);
23
+ fileDesc("Chlhc3NlbWJseS92MS9wcm9jZXNzLnByb3RvEgthc3NlbWJseS52MSJrChNSZWNpcGVBcHBsaWNhYmlsaXR5EikKB2luY2x1ZGUYASADKAsyGC5hc3NlbWJseS52MS5WYXJpYW50UnVsZRIpCgdleGNsdWRlGAIgAygLMhguYXNzZW1ibHkudjEuVmFyaWFudFJ1bGUi3gMKDVByb2Nlc3NSZWNpcGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiYKBHR5cGUYBSABKA4yGC5hc3NlbWJseS52MS5Qcm9jZXNzVHlwZRIdChVwcm9kdWN0X2RlZmluaXRpb25faWQYBiABKAkSNwoNYXBwbGljYWJpbGl0eRgHIAEoCzIgLmFzc2VtYmx5LnYxLlJlY2lwZUFwcGxpY2FiaWxpdHkSGAoQcm9vdF9zZXF1ZW5jZV9pZBgIIAEoCRIyCglzZXF1ZW5jZXMYCSADKAsyHy5hc3NlbWJseS52MS5TZXF1ZW5jZURlZmluaXRpb24SKgoFdGFza3MYCiADKAsyGy5hc3NlbWJseS52MS5UYXNrRGVmaW5pdGlvbhIqCiJzdXBwb3J0ZWRfY29udGFpbmVyX2RlZmluaXRpb25faWRzGAsgAygJEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYDCADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIvcCChJTZXF1ZW5jZURlZmluaXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhcKD3NlcXVlbmNlX251bWJlchgFIAEoBRIaChJwYXJlbnRfc2VxdWVuY2VfaWQYBiABKAkSLwoIb3BlcmF0b3IYByABKA4yHS5hc3NlbWJseS52MS5TZXF1ZW5jZU9wZXJhdG9yEhoKEmNoaWxkX3NlcXVlbmNlX2lkcxgIIAMoCRIWCg5jaGlsZF90YXNrX2lkcxgJIAMoCRIuCgxsb2NhbF90YXJnZXQYCiABKAsyGC5hc3NlbWJseS52MS5Mb2NhbFRhcmdldBIQCghvcHRpb25hbBgLIAEoCBIZChFjYW5fYnVsa19jb21wbGV0ZRgMIAEoCBItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIpECCgpUYXNrVGFyZ2V0EhYKDnRhcmdldF9ub2RlX2lkGAEgASgJEiEKGXRhcmdldF9wYXJ0X2RlZmluaXRpb25faWQYAiABKAkSLgoMbG9jYWxfdGFyZ2V0GAMgASgLMhguYXNzZW1ibHkudjEuTG9jYWxUYXJnZXQSGQoRYXNzZXRfaW5zdGFuY2VfaWQYBCABKAkSGQoRcm9ib3RfaW5zdGFuY2VfaWQYBSABKAkSEgoKc3RhdGlvbl9pZBgGIAEoCRIdChVjb250YWluZXJfaW5zdGFuY2VfaWQYByABKAkSLwoIbG9jYXRpb24YCCABKAsyHS5hc3NlbWJseS52MS5Db250YWluZXJTbG90UmVmIu0BChVWYWxpZGF0aW9uUmVxdWlyZW1lbnQSHQoVcmVxdWlyZV90b29sX2ZlZWRiYWNrGAEgASgIEhwKFHJlcXVpcmVfdmlzaW9uX2NoZWNrGAIgASgIEiEKGWFsbG93X21hbnVhbF9jb25maXJtYXRpb24YAyABKAgSPgodbWFudWFsX2NvbmZpcm1hdGlvbl9taW5fbGV2ZWwYBCABKA4yFy5hc3NlbWJseS52MS5Ta2lsbExldmVsEjQKC2NvbnN0cmFpbnRzGAUgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IocCChNUYXNrRXhlY3V0aW9uUG9saWN5EkQKFWFzc2lnbm1lbnRfcHJlZmVyZW5jZRgBIAEoDjIlLmFzc2VtYmx5LnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI2ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMhwuYXNzZW1ibHkudjEuQWN0b3JDb25zdHJhaW50EhQKDGNhbl9yZWFzc2lnbhgDIAEoCBIOCgZjYW5fZG8YBCABKAgSEAoIY2FuX3VuZG8YBSABKAgSOgoSZXN0aW1hdGVkX2R1cmF0aW9uGAYgASgLMh4uYXNzZW1ibHkudjEuRXN0aW1hdGVkRHVyYXRpb24ikAEKDFRhc2tPdmVycmlkZRImCgR3aGVuGAEgAygLMhguYXNzZW1ibHkudjEuVmFyaWFudFJ1bGUSGAoQaW5zdHJ1Y3Rpb25fdGV4dBgCIAEoCRIWCg50YXJnZXRfbm9kZV9pZBgDIAEoCRImCghhcHByb2FjaBgEIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMi0wYKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBpbnN0cnVjdGlvbl90ZXh0GAUgASgJEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBRIoCgl0YXNrX3R5cGUYByABKA4yFS5hc3NlbWJseS52MS5UYXNrVHlwZRInCgZ0YXJnZXQYCCABKAsyFy5hc3NlbWJseS52MS5UYXNrVGFyZ2V0EiYKCGFwcHJvYWNoGAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxI3ChF0b29sX3JlcXVpcmVtZW50cxgMIAMoCzIcLmFzc2VtYmx5LnYxLlRvb2xSZXF1aXJlbWVudBI5ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHS5hc3NlbWJseS52MS5Ta2lsbFJlcXVpcmVtZW50EjYKCnZhbGlkYXRpb24YDiABKAsyIi5hc3NlbWJseS52MS5WYWxpZGF0aW9uUmVxdWlyZW1lbnQSOgoQZXhlY3V0aW9uX3BvbGljeRgPIAEoCzIgLmFzc2VtYmx5LnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNgoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIcLmFzc2VtYmx5LnYxLlNhZmV0eVJlbGV2YW5jZRIWCg5zb3VyY2Vfbm9kZV9pZBgRIAEoCRIbChNkZXN0aW5hdGlvbl9ub2RlX2lkGBIgASgJEjYKD3NvdXJjZV9sb2NhdGlvbhgTIAEoCzIdLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RSZWYSOwoUZGVzdGluYXRpb25fbG9jYXRpb24YFCABKAsyHS5hc3NlbWJseS52MS5Db250YWluZXJTbG90UmVmEi0KBmN1c3RvbRgVIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMSLwoNYXBwbGljYWJpbGl0eRgWIAMoCzIYLmFzc2VtYmx5LnYxLlZhcmlhbnRSdWxlEiwKCW92ZXJyaWRlcxgXIAMoCzIZLmFzc2VtYmx5LnYxLlRhc2tPdmVycmlkZSrVAQoLUHJvY2Vzc1R5cGUSHAoYUFJPQ0VTU19UWVBFX1VOU1BFQ0lGSUVEEAASGQoVUFJPQ0VTU19UWVBFX0FTU0VNQkxZEAESHAoYUFJPQ0VTU19UWVBFX0RJU0FTU0VNQkxZEAISGwoXUFJPQ0VTU19UWVBFX0lOU1BFQ1RJT04QAxIaChZQUk9DRVNTX1RZUEVfQ0hFQ0tMSVNUEAQSGAoUUFJPQ0VTU19UWVBFX0tJVFRJTkcQBRIcChhQUk9DRVNTX1RZUEVfTUFJTlRFTkFOQ0UQBiqiAQoQU2VxdWVuY2VPcGVyYXRvchIhCh1TRVFVRU5DRV9PUEVSQVRPUl9VTlNQRUNJRklFRBAAEiUKIVNFUVVFTkNFX09QRVJBVE9SX0FMTF9PRl9DSElMRFJFThABEiUKIVNFUVVFTkNFX09QRVJBVE9SX09ORV9PRl9DSElMRFJFThACEh0KGVNFUVVFTkNFX09QRVJBVE9SX09SREVSRUQQAyq/AwoIVGFza1R5cGUSGQoVVEFTS19UWVBFX1VOU1BFQ0lGSUVEEAASFQoRVEFTS19UWVBFX0lOU1BFQ1QQARIUChBUQVNLX1RZUEVfRkFTVEVOEAISFgoSVEFTS19UWVBFX1VORkFTVEVOEAMSEwoPVEFTS19UWVBFX01PVU5UEAQSFQoRVEFTS19UWVBFX1VOTU9VTlQQBRISCg5UQVNLX1RZUEVfTU9WRRAGEhQKEFRBU0tfVFlQRV9SRU1PVkUQBxITCg9UQVNLX1RZUEVfQVBQTFkQCBISCg5UQVNLX1RZUEVfV0lQRRAJEhMKD1RBU0tfVFlQRV9BTElHThAKEhQKEFRBU0tfVFlQRV9JTlNFUlQQCxISCg5UQVNLX1RZUEVfSE9MRBAMEhQKEFRBU0tfVFlQRV9WRVJJRlkQDRISCg5UQVNLX1RZUEVfUElDSxAOEhMKD1RBU0tfVFlQRV9QTEFDRRAPEhIKDlRBU0tfVFlQRV9TQ0FOEBASEgoOVEFTS19UWVBFX1dBSVQQERITCg9UQVNLX1RZUEVfQ0hFQ0sQEhIZChVUQVNLX1RZUEVfQUNLTk9XTEVER0UQEyqdAgoYVGFza0Fzc2lnbm1lbnRQcmVmZXJlbmNlEioKJlRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1VOU1BFQ0lGSUVEEAASKwonVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfUFJFRkVSX0hVTUFOEAESKQolVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfT05MWV9IVU1BThACEisKJ1RBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1BSRUZFUl9ST0JPVBADEikKJVRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX09OTFlfUk9CT1QQBBIlCiFUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9FSVRIRVIQBUKyAQoPY29tLmFzc2VtYmx5LnYxQgxQcm9jZXNzUHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw", [file_assembly_v1_common, file_assembly_v1_resources, file_assembly_v1_skill, file_assembly_v1_variant, file_geometry_v1_vector3]);
24
24
 
25
25
  /**
26
26
  * @generated from message assembly.v1.RecipeApplicability
27
27
  */
28
28
  export type RecipeApplicability = Message<"assembly.v1.RecipeApplicability"> & {
29
29
  /**
30
- * @generated from field: repeated assembly.v1.VariantCondition required = 1;
30
+ * Recipe applies if any include rule matches. Empty means generally applicable.
31
+ *
32
+ * @generated from field: repeated assembly.v1.VariantRule include = 1;
31
33
  */
32
- required: VariantCondition[];
34
+ include: VariantRule[];
33
35
 
34
36
  /**
35
- * @generated from field: repeated assembly.v1.VariantCondition excluded = 2;
37
+ * Recipe is rejected if any exclude rule matches.
38
+ *
39
+ * @generated from field: repeated assembly.v1.VariantRule exclude = 2;
36
40
  */
37
- excluded: VariantCondition[];
41
+ exclude: VariantRule[];
38
42
  };
39
43
 
40
44
  /**
@@ -363,6 +367,38 @@ export type TaskExecutionPolicy = Message<"assembly.v1.TaskExecutionPolicy"> & {
363
367
  export const TaskExecutionPolicySchema: GenMessage<TaskExecutionPolicy> = /*@__PURE__*/
364
368
  messageDesc(file_assembly_v1_process, 5);
365
369
 
370
+ /**
371
+ * @generated from message assembly.v1.TaskOverride
372
+ */
373
+ export type TaskOverride = Message<"assembly.v1.TaskOverride"> & {
374
+ /**
375
+ * @generated from field: repeated assembly.v1.VariantRule when = 1;
376
+ */
377
+ when: VariantRule[];
378
+
379
+ /**
380
+ * @generated from field: string instruction_text = 2;
381
+ */
382
+ instructionText: string;
383
+
384
+ /**
385
+ * @generated from field: string target_node_id = 3;
386
+ */
387
+ targetNodeId: string;
388
+
389
+ /**
390
+ * @generated from field: geometry.v1.Vector3 approach = 4;
391
+ */
392
+ approach?: Vector3;
393
+ };
394
+
395
+ /**
396
+ * Describes the message assembly.v1.TaskOverride.
397
+ * Use `create(TaskOverrideSchema)` to create a new message.
398
+ */
399
+ export const TaskOverrideSchema: GenMessage<TaskOverride> = /*@__PURE__*/
400
+ messageDesc(file_assembly_v1_process, 6);
401
+
366
402
  /**
367
403
  * @generated from message assembly.v1.TaskDefinition
368
404
  */
@@ -492,6 +528,18 @@ export type TaskDefinition = Message<"assembly.v1.TaskDefinition"> & {
492
528
  * @generated from field: assembly.v1.CustomProperties custom = 21;
493
529
  */
494
530
  custom?: CustomProperties;
531
+
532
+ /**
533
+ * Applies if any rule matches. Empty means always applicable.
534
+ *
535
+ * @generated from field: repeated assembly.v1.VariantRule applicability = 22;
536
+ */
537
+ applicability: VariantRule[];
538
+
539
+ /**
540
+ * @generated from field: repeated assembly.v1.TaskOverride overrides = 23;
541
+ */
542
+ overrides: TaskOverride[];
495
543
  };
496
544
 
497
545
  /**
@@ -499,7 +547,7 @@ export type TaskDefinition = Message<"assembly.v1.TaskDefinition"> & {
499
547
  * Use `create(TaskDefinitionSchema)` to create a new message.
500
548
  */
501
549
  export const TaskDefinitionSchema: GenMessage<TaskDefinition> = /*@__PURE__*/
502
- messageDesc(file_assembly_v1_process, 6);
550
+ messageDesc(file_assembly_v1_process, 7);
503
551
 
504
552
  /**
505
553
  * @generated from enum assembly.v1.ProcessType
@@ -6,13 +6,15 @@ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { ProcessRun } from "./execution_pb.ts";
8
8
  import { file_assembly_v1_execution } from "./execution_pb.ts";
9
+ import type { VariantConfiguration } from "./variant_pb.ts";
10
+ import { file_assembly_v1_variant } from "./variant_pb.ts";
9
11
  import type { Message } from "@bufbuild/protobuf";
10
12
 
11
13
  /**
12
14
  * Describes the file assembly/v1/process_requests.proto.
13
15
  */
14
16
  export const file_assembly_v1_process_requests: GenFile = /*@__PURE__*/
15
- fileDesc("CiJhc3NlbWJseS92MS9wcm9jZXNzX3JlcXVlc3RzLnByb3RvEgthc3NlbWJseS52MSJYChJQcm9jZXNzTG9hZFJlcXVlc3QSGQoRcHJvY2Vzc19yZWNpcGVfaWQYASABKAkSFgoOdGFyZ2V0X2xpbmVfaWQYAiABKAkSDwoHZHJ5X3J1bhgDIAEoCCLBAwoPUHJvY2Vzc1J1bklzc3VlEjAKB2ZhaWx1cmUYASABKA4yHy5hc3NlbWJseS52MS5Qcm9jZXNzTG9hZEZhaWx1cmUSDwoHbWVzc2FnZRgCIAEoCRI2CghzZXZlcml0eRgDIAEoDjIkLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW5Jc3N1ZVNldmVyaXR5EhkKEXByb2Nlc3NfcmVjaXBlX2lkGAQgASgJEh4KFnNlcXVlbmNlX2RlZmluaXRpb25faWQYBSABKAkSGgoSdGFza19kZWZpbml0aW9uX2lkGAYgASgJEhoKEnJlcXVpcmVkX3Rvb2xfcm9sZRgHIAEoCRIZChFyZXF1aXJlZF9za2lsbF9pZBgIIAEoCRIdChVmaXh0dXJlX2RlZmluaXRpb25faWQYCSABKAkSEgoKc3RhdGlvbl9pZBgKIAEoCRIQCghhY3Rvcl9pZBgLIAEoCRITCgtyZXNvdXJjZV9pZBgMIAEoCRITCgtyZW1lZGlhdGlvbhgNIAEoCRI2CgppbXBvcnRhbmNlGA4gASgOMiIuYXNzZW1ibHkudjEuUmVxdWlyZW1lbnRJbXBvcnRhbmNlIv0BCg9UYXNrRmVhc2liaWxpdHkSGgoSdGFza19kZWZpbml0aW9uX2lkGAEgASgJEhAKCGZlYXNpYmxlGAIgASgIEhsKE2NhbmRpZGF0ZV9hY3Rvcl9pZHMYAyADKAkSIwobY2FuZGlkYXRlX3Rvb2xfaW5zdGFuY2VfaWRzGAQgAygJEiYKHmNhbmRpZGF0ZV9maXh0dXJlX2luc3RhbmNlX2lkcxgFIAMoCRIkChxjYW5kaWRhdGVfYXNzZXRfaW5zdGFuY2VfaWRzGAYgAygJEiwKBmlzc3VlcxgHIAMoCzIcLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW5Jc3N1ZSKxAgoYUHJvY2Vzc1J1blByZWNoZWNrUmVzdWx0EgoKAm9rGAEgASgIEiwKBmlzc3VlcxgCIAMoCzIcLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW5Jc3N1ZRIcChRibG9ja2luZ19pc3N1ZV9jb3VudBgDIAEoBRIbChN3YXJuaW5nX2lzc3VlX2NvdW50GAQgASgFEhkKEXByb2Nlc3NfcmVjaXBlX2lkGAUgASgJEhYKDnRhcmdldF9saW5lX2lkGAYgASgJEjYKEHRhc2tfZmVhc2liaWxpdHkYByADKAsyHC5hc3NlbWJseS52MS5UYXNrRmVhc2liaWxpdHkSNQoGc3RhdHVzGAggASgOMiUuYXNzZW1ibHkudjEuUHJvY2Vzc1J1blByZWNoZWNrU3RhdHVzIqoBChFQcm9jZXNzTG9hZFJlc3VsdBIuCgZzdGF0dXMYASABKA4yHi5hc3NlbWJseS52MS5Qcm9jZXNzTG9hZFN0YXR1cxI3CghwcmVjaGVjaxgCIAEoCzIlLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW5QcmVjaGVja1Jlc3VsdBIsCgtwcm9jZXNzX3J1bhgDIAEoCzIXLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW4qqQcKElByb2Nlc3NMb2FkRmFpbHVyZRIkCiBQUk9DRVNTX0xPQURfRkFJTFVSRV9VTlNQRUNJRklFRBAAEicKI1BST0NFU1NfTE9BRF9GQUlMVVJFX0xJTkVfTk9UX0ZPVU5EEAESMQotUFJPQ0VTU19MT0FEX0ZBSUxVUkVfUFJPQ0VTU19SRUNJUEVfTk9UX0ZPVU5EEAISLgoqUFJPQ0VTU19MT0FEX0ZBSUxVUkVfUFJPRFVDVF9OT1RfU1VQUE9SVEVEEAMSLworUFJPQ0VTU19MT0FEX0ZBSUxVUkVfUkVTT1VSQ0VfU1RBVEVfVU5LTk9XThAEEi4KKlBST0NFU1NfTE9BRF9GQUlMVVJFX05PX0NPTVBBVElCTEVfRklYVFVSRRAKEioKJlBST0NFU1NfTE9BRF9GQUlMVVJFX01JU1NJTkdfVE9PTF9ST0xFEBQSLAooUFJPQ0VTU19MT0FEX0ZBSUxVUkVfVE9PTF9OT1RfQ0FMSUJSQVRFRBAVEjUKMVBST0NFU1NfTE9BRF9GQUlMVVJFX1RPT0xfQ0FQQUJJTElUWV9JTlNVRkZJQ0lFTlQQFhIqCiZQUk9DRVNTX0xPQURfRkFJTFVSRV9ST0JPVF9VTkFWQUlMQUJMRRAeEi8KK1BST0NFU1NfTE9BRF9GQUlMVVJFX1JPQk9UX1RPT0xJTkdfTUlTTUFUQ0gQHxIuCipQUk9DRVNTX0xPQURfRkFJTFVSRV9OT19RVUFMSUZJRURfT1BFUkFUT1IQKBIvCitQUk9DRVNTX0xPQURfRkFJTFVSRV9SRVFVSVJFRF9TS0lMTF9FWFBJUkVEECkSKgomUFJPQ0VTU19MT0FEX0ZBSUxVUkVfTk9fRkVBU0lCTEVfQUNUT1IQKhI3CjNQUk9DRVNTX0xPQURfRkFJTFVSRV9DT0xMQUJPUkFUSU9OX01PREVfVU5TVVBQT1JURUQQMhItCilQUk9DRVNTX0xPQURfRkFJTFVSRV9TQUZFVFlfTU9ERV9NSVNNQVRDSBAzEjEKLVBST0NFU1NfTE9BRF9GQUlMVVJFX1ZJU0lPTl9BU1NFVF9VTkFWQUlMQUJMRRA8EjIKLlBST0NFU1NfTE9BRF9GQUlMVVJFX1ZBTElEQVRJT05fU09VUkNFX01JU1NJTkcQPRI2CjJQUk9DRVNTX0xPQURfRkFJTFVSRV9OT19GRUFTSUJMRV9WQUxJREFUSU9OX01FVEhPRBA+KpYBChdQcm9jZXNzUnVuSXNzdWVTZXZlcml0eRIqCiZQUk9DRVNTX1JVTl9JU1NVRV9TRVZFUklUWV9VTlNQRUNJRklFRBAAEicKI1BST0NFU1NfUlVOX0lTU1VFX1NFVkVSSVRZX0JMT0NLSU5HEAESJgoiUFJPQ0VTU19SVU5fSVNTVUVfU0VWRVJJVFlfV0FSTklORxACKooBChVSZXF1aXJlbWVudEltcG9ydGFuY2USJgoiUkVRVUlSRU1FTlRfSU1QT1JUQU5DRV9VTlNQRUNJRklFRBAAEiMKH1JFUVVJUkVNRU5UX0lNUE9SVEFOQ0VfUkVRVUlSRUQQARIkCiBSRVFVSVJFTUVOVF9JTVBPUlRBTkNFX1BSRUZFUlJFRBACKsYBChhQcm9jZXNzUnVuUHJlY2hlY2tTdGF0dXMSKwonUFJPQ0VTU19SVU5fUFJFQ0hFQ0tfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIgoeUFJPQ0VTU19SVU5fUFJFQ0hFQ0tfU1RBVFVTX09LEAESMAosUFJPQ0VTU19SVU5fUFJFQ0hFQ0tfU1RBVFVTX09LX1dJVEhfV0FSTklOR1MQAhInCiNQUk9DRVNTX1JVTl9QUkVDSEVDS19TVEFUVVNfQkxPQ0tFRBADKqABChFQcm9jZXNzTG9hZFN0YXR1cxIjCh9QUk9DRVNTX0xPQURfU1RBVFVTX1VOU1BFQ0lGSUVEEAASJwojUFJPQ0VTU19MT0FEX1NUQVRVU19QUkVDSEVDS19GQUlMRUQQARIdChlQUk9DRVNTX0xPQURfU1RBVFVTX1JFQURZEAISHgoaUFJPQ0VTU19MT0FEX1NUQVRVU19MT0FERUQQA0K6AQoPY29tLmFzc2VtYmx5LnYxQhRQcm9jZXNzUmVxdWVzdHNQcm90b1ABWjtnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXNzZW1ibHkvdjE7YXNzZW1ibHl2MaICA0FYWKoCFE1lc3NhZ2VzLkFzc2VtYmx5LlYxygILQXNzZW1ibHlcVjHiAhdBc3NlbWJseVxWMVxHUEJNZXRhZGF0YeoCDEFzc2VtYmx5OjpWMWIGcHJvdG8z", [file_assembly_v1_execution]);
17
+ fileDesc("CiJhc3NlbWJseS92MS9wcm9jZXNzX3JlcXVlc3RzLnByb3RvEgthc3NlbWJseS52MSKaAQoSUHJvY2Vzc0xvYWRSZXF1ZXN0EhkKEXByb2Nlc3NfcmVjaXBlX2lkGAEgASgJEhYKDnRhcmdldF9saW5lX2lkGAIgASgJEkAKFXZhcmlhbnRfY29uZmlndXJhdGlvbhgDIAEoCzIhLmFzc2VtYmx5LnYxLlZhcmlhbnRDb25maWd1cmF0aW9uEg8KB2RyeV9ydW4YBCABKAgiwQMKD1Byb2Nlc3NSdW5Jc3N1ZRIwCgdmYWlsdXJlGAEgASgOMh8uYXNzZW1ibHkudjEuUHJvY2Vzc0xvYWRGYWlsdXJlEg8KB21lc3NhZ2UYAiABKAkSNgoIc2V2ZXJpdHkYAyABKA4yJC5hc3NlbWJseS52MS5Qcm9jZXNzUnVuSXNzdWVTZXZlcml0eRIZChFwcm9jZXNzX3JlY2lwZV9pZBgEIAEoCRIeChZzZXF1ZW5jZV9kZWZpbml0aW9uX2lkGAUgASgJEhoKEnRhc2tfZGVmaW5pdGlvbl9pZBgGIAEoCRIaChJyZXF1aXJlZF90b29sX3JvbGUYByABKAkSGQoRcmVxdWlyZWRfc2tpbGxfaWQYCCABKAkSHQoVZml4dHVyZV9kZWZpbml0aW9uX2lkGAkgASgJEhIKCnN0YXRpb25faWQYCiABKAkSEAoIYWN0b3JfaWQYCyABKAkSEwoLcmVzb3VyY2VfaWQYDCABKAkSEwoLcmVtZWRpYXRpb24YDSABKAkSNgoKaW1wb3J0YW5jZRgOIAEoDjIiLmFzc2VtYmx5LnYxLlJlcXVpcmVtZW50SW1wb3J0YW5jZSL9AQoPVGFza0ZlYXNpYmlsaXR5EhoKEnRhc2tfZGVmaW5pdGlvbl9pZBgBIAEoCRIQCghmZWFzaWJsZRgCIAEoCBIbChNjYW5kaWRhdGVfYWN0b3JfaWRzGAMgAygJEiMKG2NhbmRpZGF0ZV90b29sX2luc3RhbmNlX2lkcxgEIAMoCRImCh5jYW5kaWRhdGVfZml4dHVyZV9pbnN0YW5jZV9pZHMYBSADKAkSJAocY2FuZGlkYXRlX2Fzc2V0X2luc3RhbmNlX2lkcxgGIAMoCRIsCgZpc3N1ZXMYByADKAsyHC5hc3NlbWJseS52MS5Qcm9jZXNzUnVuSXNzdWUisQIKGFByb2Nlc3NSdW5QcmVjaGVja1Jlc3VsdBIKCgJvaxgBIAEoCBIsCgZpc3N1ZXMYAiADKAsyHC5hc3NlbWJseS52MS5Qcm9jZXNzUnVuSXNzdWUSHAoUYmxvY2tpbmdfaXNzdWVfY291bnQYAyABKAUSGwoTd2FybmluZ19pc3N1ZV9jb3VudBgEIAEoBRIZChFwcm9jZXNzX3JlY2lwZV9pZBgFIAEoCRIWCg50YXJnZXRfbGluZV9pZBgGIAEoCRI2ChB0YXNrX2ZlYXNpYmlsaXR5GAcgAygLMhwuYXNzZW1ibHkudjEuVGFza0ZlYXNpYmlsaXR5EjUKBnN0YXR1cxgIIAEoDjIlLmFzc2VtYmx5LnYxLlByb2Nlc3NSdW5QcmVjaGVja1N0YXR1cyKqAQoRUHJvY2Vzc0xvYWRSZXN1bHQSLgoGc3RhdHVzGAEgASgOMh4uYXNzZW1ibHkudjEuUHJvY2Vzc0xvYWRTdGF0dXMSNwoIcHJlY2hlY2sYAiABKAsyJS5hc3NlbWJseS52MS5Qcm9jZXNzUnVuUHJlY2hlY2tSZXN1bHQSLAoLcHJvY2Vzc19ydW4YAyABKAsyFy5hc3NlbWJseS52MS5Qcm9jZXNzUnVuKqkHChJQcm9jZXNzTG9hZEZhaWx1cmUSJAogUFJPQ0VTU19MT0FEX0ZBSUxVUkVfVU5TUEVDSUZJRUQQABInCiNQUk9DRVNTX0xPQURfRkFJTFVSRV9MSU5FX05PVF9GT1VORBABEjEKLVBST0NFU1NfTE9BRF9GQUlMVVJFX1BST0NFU1NfUkVDSVBFX05PVF9GT1VORBACEi4KKlBST0NFU1NfTE9BRF9GQUlMVVJFX1BST0RVQ1RfTk9UX1NVUFBPUlRFRBADEi8KK1BST0NFU1NfTE9BRF9GQUlMVVJFX1JFU09VUkNFX1NUQVRFX1VOS05PV04QBBIuCipQUk9DRVNTX0xPQURfRkFJTFVSRV9OT19DT01QQVRJQkxFX0ZJWFRVUkUQChIqCiZQUk9DRVNTX0xPQURfRkFJTFVSRV9NSVNTSU5HX1RPT0xfUk9MRRAUEiwKKFBST0NFU1NfTE9BRF9GQUlMVVJFX1RPT0xfTk9UX0NBTElCUkFURUQQFRI1CjFQUk9DRVNTX0xPQURfRkFJTFVSRV9UT09MX0NBUEFCSUxJVFlfSU5TVUZGSUNJRU5UEBYSKgomUFJPQ0VTU19MT0FEX0ZBSUxVUkVfUk9CT1RfVU5BVkFJTEFCTEUQHhIvCitQUk9DRVNTX0xPQURfRkFJTFVSRV9ST0JPVF9UT09MSU5HX01JU01BVENIEB8SLgoqUFJPQ0VTU19MT0FEX0ZBSUxVUkVfTk9fUVVBTElGSUVEX09QRVJBVE9SECgSLworUFJPQ0VTU19MT0FEX0ZBSUxVUkVfUkVRVUlSRURfU0tJTExfRVhQSVJFRBApEioKJlBST0NFU1NfTE9BRF9GQUlMVVJFX05PX0ZFQVNJQkxFX0FDVE9SECoSNwozUFJPQ0VTU19MT0FEX0ZBSUxVUkVfQ09MTEFCT1JBVElPTl9NT0RFX1VOU1VQUE9SVEVEEDISLQopUFJPQ0VTU19MT0FEX0ZBSUxVUkVfU0FGRVRZX01PREVfTUlTTUFUQ0gQMxIxCi1QUk9DRVNTX0xPQURfRkFJTFVSRV9WSVNJT05fQVNTRVRfVU5BVkFJTEFCTEUQPBIyCi5QUk9DRVNTX0xPQURfRkFJTFVSRV9WQUxJREFUSU9OX1NPVVJDRV9NSVNTSU5HED0SNgoyUFJPQ0VTU19MT0FEX0ZBSUxVUkVfTk9fRkVBU0lCTEVfVkFMSURBVElPTl9NRVRIT0QQPiqWAQoXUHJvY2Vzc1J1bklzc3VlU2V2ZXJpdHkSKgomUFJPQ0VTU19SVU5fSVNTVUVfU0VWRVJJVFlfVU5TUEVDSUZJRUQQABInCiNQUk9DRVNTX1JVTl9JU1NVRV9TRVZFUklUWV9CTE9DS0lORxABEiYKIlBST0NFU1NfUlVOX0lTU1VFX1NFVkVSSVRZX1dBUk5JTkcQAiqKAQoVUmVxdWlyZW1lbnRJbXBvcnRhbmNlEiYKIlJFUVVJUkVNRU5UX0lNUE9SVEFOQ0VfVU5TUEVDSUZJRUQQABIjCh9SRVFVSVJFTUVOVF9JTVBPUlRBTkNFX1JFUVVJUkVEEAESJAogUkVRVUlSRU1FTlRfSU1QT1JUQU5DRV9QUkVGRVJSRUQQAirGAQoYUHJvY2Vzc1J1blByZWNoZWNrU3RhdHVzEisKJ1BST0NFU1NfUlVOX1BSRUNIRUNLX1NUQVRVU19VTlNQRUNJRklFRBAAEiIKHlBST0NFU1NfUlVOX1BSRUNIRUNLX1NUQVRVU19PSxABEjAKLFBST0NFU1NfUlVOX1BSRUNIRUNLX1NUQVRVU19PS19XSVRIX1dBUk5JTkdTEAISJwojUFJPQ0VTU19SVU5fUFJFQ0hFQ0tfU1RBVFVTX0JMT0NLRUQQAyqgAQoRUHJvY2Vzc0xvYWRTdGF0dXMSIwofUFJPQ0VTU19MT0FEX1NUQVRVU19VTlNQRUNJRklFRBAAEicKI1BST0NFU1NfTE9BRF9TVEFUVVNfUFJFQ0hFQ0tfRkFJTEVEEAESHQoZUFJPQ0VTU19MT0FEX1NUQVRVU19SRUFEWRACEh4KGlBST0NFU1NfTE9BRF9TVEFUVVNfTE9BREVEEANCugEKD2NvbS5hc3NlbWJseS52MUIUUHJvY2Vzc1JlcXVlc3RzUHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw", [file_assembly_v1_execution, file_assembly_v1_variant]);
16
18
 
17
19
  /**
18
20
  * ProcessLoadRequest is used to go from ProcessRecipe -> ProcessRun
@@ -42,10 +44,15 @@ export type ProcessLoadRequest = Message<"assembly.v1.ProcessLoadRequest"> & {
42
44
  */
43
45
  targetLineId: string;
44
46
 
47
+ /**
48
+ * @generated from field: assembly.v1.VariantConfiguration variant_configuration = 3;
49
+ */
50
+ variantConfiguration?: VariantConfiguration;
51
+
45
52
  /**
46
53
  * true = precheck only, false = precheck + instantiate
47
54
  *
48
- * @generated from field: bool dry_run = 3;
55
+ * @generated from field: bool dry_run = 4;
49
56
  */
50
57
  dryRun: boolean;
51
58
  };
@@ -6,6 +6,8 @@ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { CustomProperties, ExternalReference, KeyValueConstraint } from "./common_pb.ts";
8
8
  import { file_assembly_v1_common } from "./common_pb.ts";
9
+ import type { VariantAxis, VariantRule } from "./variant_pb.ts";
10
+ import { file_assembly_v1_variant } from "./variant_pb.ts";
9
11
  import type { Pose } from "../../geometry/v1/pose_pb.ts";
10
12
  import { file_geometry_v1_pose } from "../../geometry/v1/pose_pb.ts";
11
13
  import type { Vector3 } from "../../geometry/v1/vector3_pb.ts";
@@ -16,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
16
18
  * Describes the file assembly/v1/product.proto.
17
19
  */
18
20
  export const file_assembly_v1_product: GenFile = /*@__PURE__*/
19
- fileDesc("Chlhc3NlbWJseS92MS9wcm9kdWN0LnByb3RvEgthc3NlbWJseS52MSI2CgpEaW1lbnNpb25zEgwKBHhfbW0YASABKAESDAoEeV9tbRgCIAEoARIMCgR6X21tGAMgASgBIlwKDE1hdGVyaWFsU3BlYxIvCghjYXRlZ29yeRgBIAEoDjIdLmFzc2VtYmx5LnYxLk1hdGVyaWFsQ2F0ZWdvcnkSDAoEbmFtZRgCIAEoCRINCgVncmFkZRgDIAEoCSLmAQoTUGFydEhhbmRsaW5nUHJvZmlsZRIPCgdmcmFnaWxlGAEgASgIEhUKDWVzZF9zZW5zaXRpdmUYAiABKAgSHgoWcmVxdWlyZXNfdHdvX2hhbmRfbGlmdBgDIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBCABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgFIAEoARIVCg1tYXhfdG9ycXVlX25tGAYgASgBEjQKC2NvbnN0cmFpbnRzGAcgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IqkDCg5QYXJ0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlBhcnRUeXBlEg8KB3N1YnR5cGUYBiABKAkSEAoId2VpZ2h0X2cYByABKAMSKwoKZGltZW5zaW9ucxgIIAEoCzIXLmFzc2VtYmx5LnYxLkRpbWVuc2lvbnMSKwoIbWF0ZXJpYWwYCSABKAsyGS5hc3NlbWJseS52MS5NYXRlcmlhbFNwZWMSGAoQZGVmYXVsdF9tb2RlbF9pZBgKIAEoCRIyCghoYW5kbGluZxgLIAEoCzIgLmFzc2VtYmx5LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgMIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgNIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMi/AEKEVByb2R1Y3REZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIUCgxyb290X25vZGVfaWQYBSABKAkSKAoFbm9kZXMYBiADKAsyGS5hc3NlbWJseS52MS5Bc3NlbWJseU5vZGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgHIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgIIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMiNQoQVmFyaWFudENvbmRpdGlvbhIRCglkaW1lbnNpb24YASABKAkSDgoGdmFsdWVzGAIgAygJIqMECgxBc3NlbWJseU5vZGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIWCg5wYXJlbnRfbm9kZV9pZBgDIAEoCRIjCgRraW5kGAQgASgOMhUuYXNzZW1ibHkudjEuTm9kZUtpbmQSGgoScGFydF9kZWZpbml0aW9uX2lkGAUgASgJEhkKEW92ZXJyaWRlX21vZGVsX2lkGAYgASgJEiUKCmxvY2FsX3Bvc2UYByABKAsyES5nZW9tZXRyeS52MS5Qb3NlEhYKDmNoaWxkX25vZGVfaWRzGAggAygJEhUKDXNlcXVlbmNlX2hpbnQYCSABKAUSGwoTY2FkX29jY3VycmVuY2VfcGF0aBgKIAEoCRIxChBqb2luX21ldGhvZF9oaW50GAsgASgOMhcuYXNzZW1ibHkudjEuSm9pbk1ldGhvZBIxChNpbnNlcnRpb25fYXhpc19oaW50GAwgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxI1ChdwcmVmZXJyZWRfYXBwcm9hY2hfaGludBgNIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSEAoIb3B0aW9uYWwYDiABKAgSNAoNYXBwbGljYWJpbGl0eRgPIAMoCzIdLmFzc2VtYmx5LnYxLlZhcmlhbnRDb25kaXRpb24SLQoGY3VzdG9tGBAgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyI9Cg9QYXJ0RGVmaW5pdGlvbnMSKgoFaXRlbXMYASADKAsyGy5hc3NlbWJseS52MS5QYXJ0RGVmaW5pdGlvbiJDChJQcm9kdWN0RGVmaW5pdGlvbnMSLQoFaXRlbXMYASADKAsyHi5hc3NlbWJseS52MS5Qcm9kdWN0RGVmaW5pdGlvbirLAgoIUGFydFR5cGUSGQoVUEFSVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTUEFSVF9UWVBFX0NPTVBPTkVOVBABEhYKElBBUlRfVFlQRV9GQVNURU5FUhACEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRADEhgKFFBBUlRfVFlQRV9DT05TVU1BQkxFEAQSEwoPUEFSVF9UWVBFX0xBQkVMEAUSFwoTUEFSVF9UWVBFX1BBQ0tBR0lORxAGEhEKDVBBUlRfVFlQRV9QQ0IQBxIiCh5QQVJUX1RZUEVfRUxFQ1RST05JQ19DT01QT05FTlQQCBIiCh5QQVJUX1RZUEVfRUxFQ1RSSUNBTF9DT01QT05FTlQQCRITCg9QQVJUX1RZUEVfQ0FCTEUQChIgChxQQVJUX1RZUEVfRElTUEVOU0VEX01BVEVSSUFMEAsqlgEKCE5vZGVLaW5kEhkKFU5PREVfS0lORF9VTlNQRUNJRklFRBAAEhMKD05PREVfS0lORF9HUk9VUBABEh0KGU5PREVfS0lORF9QQVJUX09DQ1VSUkVOQ0UQAhIkCiBOT0RFX0tJTkRfU1VCQVNTRU1CTFlfT0NDVVJSRU5DRRADEhUKEU5PREVfS0lORF9QQVRURVJOEAQq0wEKCkpvaW5NZXRob2QSGwoXSk9JTl9NRVRIT0RfVU5TUEVDSUZJRUQQABIUChBKT0lOX01FVEhPRF9OT05FEAESFgoSSk9JTl9NRVRIT0RfRkFTVEVOEAISGQoVSk9JTl9NRVRIT0RfUFJFU1NfRklUEAMSGAoUSk9JTl9NRVRIT0RfU05BUF9GSVQQBBIYChRKT0lOX01FVEhPRF9BREhFU0lWRRAFEhQKEEpPSU5fTUVUSE9EX1dFTEQQBhIVChFKT0lOX01FVEhPRF9QTEFDRRAHKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKD2NvbS5hc3NlbWJseS52MUIMUHJvZHVjdFByb3RvUAFaO2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hc3NlbWJseS92MTthc3NlbWJseXYxogIDQVhYqgIUTWVzc2FnZXMuQXNzZW1ibHkuVjHKAgtBc3NlbWJseVxWMeICF0Fzc2VtYmx5XFYxXEdQQk1ldGFkYXRh6gIMQXNzZW1ibHk6OlYxYgZwcm90bzM", [file_assembly_v1_common, file_geometry_v1_pose, file_geometry_v1_vector3]);
21
+ fileDesc("Chlhc3NlbWJseS92MS9wcm9kdWN0LnByb3RvEgthc3NlbWJseS52MSI2CgpEaW1lbnNpb25zEgwKBHhfbW0YASABKAESDAoEeV9tbRgCIAEoARIMCgR6X21tGAMgASgBIlwKDE1hdGVyaWFsU3BlYxIvCghjYXRlZ29yeRgBIAEoDjIdLmFzc2VtYmx5LnYxLk1hdGVyaWFsQ2F0ZWdvcnkSDAoEbmFtZRgCIAEoCRINCgVncmFkZRgDIAEoCSLmAQoTUGFydEhhbmRsaW5nUHJvZmlsZRIPCgdmcmFnaWxlGAEgASgIEhUKDWVzZF9zZW5zaXRpdmUYAiABKAgSHgoWcmVxdWlyZXNfdHdvX2hhbmRfbGlmdBgDIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBCABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgFIAEoARIVCg1tYXhfdG9ycXVlX25tGAYgASgBEjQKC2NvbnN0cmFpbnRzGAcgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IqkDCg5QYXJ0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlBhcnRUeXBlEg8KB3N1YnR5cGUYBiABKAkSEAoId2VpZ2h0X2cYByABKAMSKwoKZGltZW5zaW9ucxgIIAEoCzIXLmFzc2VtYmx5LnYxLkRpbWVuc2lvbnMSKwoIbWF0ZXJpYWwYCSABKAsyGS5hc3NlbWJseS52MS5NYXRlcmlhbFNwZWMSGAoQZGVmYXVsdF9tb2RlbF9pZBgKIAEoCRIyCghoYW5kbGluZxgLIAEoCzIgLmFzc2VtYmx5LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgMIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgNIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMirAIKEVByb2R1Y3REZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIuCgx2YXJpYW50X2F4ZXMYBSADKAsyGC5hc3NlbWJseS52MS5WYXJpYW50QXhpcxIUCgxyb290X25vZGVfaWQYBiABKAkSKAoFbm9kZXMYByADKAsyGS5hc3NlbWJseS52MS5Bc3NlbWJseU5vZGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgIIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgJIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMihQQKDEFzc2VtYmx5Tm9kZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhYKDnBhcmVudF9ub2RlX2lkGAMgASgJEiMKBGtpbmQYBCABKA4yFS5hc3NlbWJseS52MS5Ob2RlS2luZBIaChJwYXJ0X2RlZmluaXRpb25faWQYBSABKAkSGQoRb3ZlcnJpZGVfbW9kZWxfaWQYBiABKAkSJQoKbG9jYWxfcG9zZRgHIAEoCzIRLmdlb21ldHJ5LnYxLlBvc2USFQoNc2VxdWVuY2VfaGludBgJIAEoBRIbChNjYWRfb2NjdXJyZW5jZV9wYXRoGAogASgJEjEKEGpvaW5fbWV0aG9kX2hpbnQYCyABKA4yFy5hc3NlbWJseS52MS5Kb2luTWV0aG9kEjMKFWluc2VydGlvbl9vZmZzZXRfaGludBgMIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSMgoUYXBwcm9hY2hfb2Zmc2V0X2hpbnQYDSABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEhAKCG9wdGlvbmFsGA4gASgIEi8KDWFwcGxpY2FiaWxpdHkYDyADKAsyGC5hc3NlbWJseS52MS5WYXJpYW50UnVsZRItCgZjdXN0b20YECABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj0KD1BhcnREZWZpbml0aW9ucxIqCgVpdGVtcxgBIAMoCzIbLmFzc2VtYmx5LnYxLlBhcnREZWZpbml0aW9uIkMKElByb2R1Y3REZWZpbml0aW9ucxItCgVpdGVtcxgBIAMoCzIeLmFzc2VtYmx5LnYxLlByb2R1Y3REZWZpbml0aW9uKssCCghQYXJ0VHlwZRIZChVQQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNQQVJUX1RZUEVfQ09NUE9ORU5UEAESFgoSUEFSVF9UWVBFX0ZBU1RFTkVSEAISGQoVUEFSVF9UWVBFX1NVQkFTU0VNQkxZEAMSGAoUUEFSVF9UWVBFX0NPTlNVTUFCTEUQBBITCg9QQVJUX1RZUEVfTEFCRUwQBRIXChNQQVJUX1RZUEVfUEFDS0FHSU5HEAYSEQoNUEFSVF9UWVBFX1BDQhAHEiIKHlBBUlRfVFlQRV9FTEVDVFJPTklDX0NPTVBPTkVOVBAIEiIKHlBBUlRfVFlQRV9FTEVDVFJJQ0FMX0NPTVBPTkVOVBAJEhMKD1BBUlRfVFlQRV9DQUJMRRAKEiAKHFBBUlRfVFlQRV9ESVNQRU5TRURfTUFURVJJQUwQCyqWAQoITm9kZUtpbmQSGQoVTk9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASEwoPTk9ERV9LSU5EX0dST1VQEAESHQoZTk9ERV9LSU5EX1BBUlRfT0NDVVJSRU5DRRACEiQKIE5PREVfS0lORF9TVUJBU1NFTUJMWV9PQ0NVUlJFTkNFEAMSFQoRTk9ERV9LSU5EX1BBVFRFUk4QBCrTAQoKSm9pbk1ldGhvZBIbChdKT0lOX01FVEhPRF9VTlNQRUNJRklFRBAAEhQKEEpPSU5fTUVUSE9EX05PTkUQARIWChJKT0lOX01FVEhPRF9GQVNURU4QAhIZChVKT0lOX01FVEhPRF9QUkVTU19GSVQQAxIYChRKT0lOX01FVEhPRF9TTkFQX0ZJVBAEEhgKFEpPSU5fTUVUSE9EX0FESEVTSVZFEAUSFAoQSk9JTl9NRVRIT0RfV0VMRBAGEhUKEUpPSU5fTUVUSE9EX1BMQUNFEAcqkQMKEE1hdGVyaWFsQ2F0ZWdvcnkSIQodTUFURVJJQUxfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIbChdNQVRFUklBTF9DQVRFR09SWV9NRVRBTBABEh0KGU1BVEVSSUFMX0NBVEVHT1JZX1BPTFlNRVIQAhIfChtNQVRFUklBTF9DQVRFR09SWV9FTEFTVE9NRVIQAxIfChtNQVRFUklBTF9DQVRFR09SWV9DT01QT1NJVEUQBBIdChlNQVRFUklBTF9DQVRFR09SWV9DRVJBTUlDEAUSGwoXTUFURVJJQUxfQ0FURUdPUllfR0xBU1MQBhIaChZNQVRFUklBTF9DQVRFR09SWV9XT09EEAcSGgoWTUFURVJJQUxfQ0FURUdPUllfRk9BTRAIEisKJ01BVEVSSUFMX0NBVEVHT1JZX0VMRUNUUk9OSUNTX1NVQlNUUkFURRAJEh4KGk1BVEVSSUFMX0NBVEVHT1JZX0NIRU1JQ0FMEAoSGwoXTUFURVJJQUxfQ0FURUdPUllfT1RIRVIQY0KyAQoPY29tLmFzc2VtYmx5LnYxQgxQcm9kdWN0UHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw", [file_assembly_v1_common, file_assembly_v1_variant, file_geometry_v1_pose, file_geometry_v1_vector3]);
20
22
 
21
23
  /**
22
24
  * @generated from message assembly.v1.Dimensions
@@ -247,22 +249,27 @@ export type ProductDefinition = Message<"assembly.v1.ProductDefinition"> & {
247
249
  description: string;
248
250
 
249
251
  /**
250
- * @generated from field: string root_node_id = 5;
252
+ * @generated from field: repeated assembly.v1.VariantAxis variant_axes = 5;
253
+ */
254
+ variantAxes: VariantAxis[];
255
+
256
+ /**
257
+ * @generated from field: string root_node_id = 6;
251
258
  */
252
259
  rootNodeId: string;
253
260
 
254
261
  /**
255
- * @generated from field: repeated assembly.v1.AssemblyNode nodes = 6;
262
+ * @generated from field: repeated assembly.v1.AssemblyNode nodes = 7;
256
263
  */
257
264
  nodes: AssemblyNode[];
258
265
 
259
266
  /**
260
- * @generated from field: repeated assembly.v1.ExternalReference external_references = 7;
267
+ * @generated from field: repeated assembly.v1.ExternalReference external_references = 8;
261
268
  */
262
269
  externalReferences: ExternalReference[];
263
270
 
264
271
  /**
265
- * @generated from field: assembly.v1.CustomProperties custom = 8;
272
+ * @generated from field: assembly.v1.CustomProperties custom = 9;
266
273
  */
267
274
  custom?: CustomProperties;
268
275
  };
@@ -274,32 +281,6 @@ export type ProductDefinition = Message<"assembly.v1.ProductDefinition"> & {
274
281
  export const ProductDefinitionSchema: GenMessage<ProductDefinition> = /*@__PURE__*/
275
282
  messageDesc(file_assembly_v1_product, 4);
276
283
 
277
- /**
278
- * @generated from message assembly.v1.VariantCondition
279
- */
280
- export type VariantCondition = Message<"assembly.v1.VariantCondition"> & {
281
- /**
282
- * e.g. "hinge_side"
283
- *
284
- * @generated from field: string dimension = 1;
285
- */
286
- dimension: string;
287
-
288
- /**
289
- * e.g. ["left"]
290
- *
291
- * @generated from field: repeated string values = 2;
292
- */
293
- values: string[];
294
- };
295
-
296
- /**
297
- * Describes the message assembly.v1.VariantCondition.
298
- * Use `create(VariantConditionSchema)` to create a new message.
299
- */
300
- export const VariantConditionSchema: GenMessage<VariantCondition> = /*@__PURE__*/
301
- messageDesc(file_assembly_v1_product, 5);
302
-
303
284
  /**
304
285
  * @generated from message assembly.v1.AssemblyNode
305
286
  */
@@ -339,18 +320,15 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
339
320
  overrideModelId: string;
340
321
 
341
322
  /**
323
+ * final pose, in mm
324
+ *
342
325
  * @generated from field: geometry.v1.Pose local_pose = 7;
343
326
  */
344
327
  localPose?: Pose;
345
328
 
346
329
  /**
347
- * Children of this node, their parent_node_id must be set to this.id
330
+ * repeated string child_node_ids = 8; // Children of this node, their parent_node_id must be set to this.id
348
331
  *
349
- * @generated from field: repeated string child_node_ids = 8;
350
- */
351
- childNodeIds: string[];
352
-
353
- /**
354
332
  * @generated from field: int32 sequence_hint = 9;
355
333
  */
356
334
  sequenceHint: number;
@@ -368,14 +346,18 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
368
346
  joinMethodHint: JoinMethod;
369
347
 
370
348
  /**
371
- * @generated from field: geometry.v1.Vector3 insertion_axis_hint = 12;
349
+ * Offset from final pose to pre-insertion pose, in mm
350
+ *
351
+ * @generated from field: geometry.v1.Vector3 insertion_offset_hint = 12;
372
352
  */
373
- insertionAxisHint?: Vector3;
353
+ insertionOffsetHint?: Vector3;
374
354
 
375
355
  /**
376
- * @generated from field: geometry.v1.Vector3 preferred_approach_hint = 13;
356
+ * Offset from final pose to preferred approach pose, in mm
357
+ *
358
+ * @generated from field: geometry.v1.Vector3 approach_offset_hint = 13;
377
359
  */
378
- preferredApproachHint?: Vector3;
360
+ approachOffsetHint?: Vector3;
379
361
 
380
362
  /**
381
363
  * @generated from field: bool optional = 14;
@@ -383,9 +365,11 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
383
365
  optional: boolean;
384
366
 
385
367
  /**
386
- * @generated from field: repeated assembly.v1.VariantCondition applicability = 15;
368
+ * Applies if any rule matches. Empty means always applicable.
369
+ *
370
+ * @generated from field: repeated assembly.v1.VariantRule applicability = 15;
387
371
  */
388
- applicability: VariantCondition[];
372
+ applicability: VariantRule[];
389
373
 
390
374
  /**
391
375
  * TODO: string or anchor reference_frame = 17; // allow tasks to anchor not just to a part but to features, e.g. insert screw into hole_1
@@ -400,7 +384,7 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
400
384
  * Use `create(AssemblyNodeSchema)` to create a new message.
401
385
  */
402
386
  export const AssemblyNodeSchema: GenMessage<AssemblyNode> = /*@__PURE__*/
403
- messageDesc(file_assembly_v1_product, 6);
387
+ messageDesc(file_assembly_v1_product, 5);
404
388
 
405
389
  /**
406
390
  * @generated from message assembly.v1.PartDefinitions
@@ -417,7 +401,7 @@ export type PartDefinitions = Message<"assembly.v1.PartDefinitions"> & {
417
401
  * Use `create(PartDefinitionsSchema)` to create a new message.
418
402
  */
419
403
  export const PartDefinitionsSchema: GenMessage<PartDefinitions> = /*@__PURE__*/
420
- messageDesc(file_assembly_v1_product, 7);
404
+ messageDesc(file_assembly_v1_product, 6);
421
405
 
422
406
  /**
423
407
  * @generated from message assembly.v1.ProductDefinitions
@@ -434,7 +418,7 @@ export type ProductDefinitions = Message<"assembly.v1.ProductDefinitions"> & {
434
418
  * Use `create(ProductDefinitionsSchema)` to create a new message.
435
419
  */
436
420
  export const ProductDefinitionsSchema: GenMessage<ProductDefinitions> = /*@__PURE__*/
437
- messageDesc(file_assembly_v1_product, 8);
421
+ messageDesc(file_assembly_v1_product, 7);
438
422
 
439
423
  /**
440
424
  * @generated from enum assembly.v1.PartType
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
18
18
  * Describes the file assembly/v1/resources.proto.
19
19
  */
20
20
  export const file_assembly_v1_resources: GenFile = /*@__PURE__*/
21
- fileDesc("Chthc3NlbWJseS92MS9yZXNvdXJjZXMucHJvdG8SC2Fzc2VtYmx5LnYxInAKEENvbnRhaW5lclNsb3RSZWYSHQoVY29udGFpbmVyX2luc3RhbmNlX2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSLAoEdHlwZRgDIAEoDjIeLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RUeXBlIogCChFDYXBhYmlsaXR5UHJvZmlsZRITCgttaW5fZm9yY2VfbhgBIAEoARITCgttYXhfZm9yY2VfbhgCIAEoARIVCg1taW5fdG9ycXVlX25tGAMgASgBEhUKDW1heF90b3JxdWVfbm0YBCABKAESGAoQcmVwZWF0YWJpbGl0eV9tbRgFIAEoARIVCg1tYXhfcGF5bG9hZF9nGAYgASgBEhkKEW1pbl9ncmlwX3dpZHRoX21tGAcgASgBEhkKEW1heF9ncmlwX3dpZHRoX21tGAggASgBEjQKC2NvbnN0cmFpbnRzGAkgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50Iq0DCg5Ub29sRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlRvb2xUeXBlEioKCmFjdG9yX2tpbmQYBiABKA4yFi5hc3NlbWJseS52MS5BY3RvcktpbmQSJAoFcm9sZXMYByADKA4yFS5hc3NlbWJseS52MS5Ub29sUm9sZRItCgpwcm9wZXJ0aWVzGAggAygOMhkuYXNzZW1ibHkudjEuVG9vbFByb3BlcnR5EjoKEmNhcGFiaWxpdHlfcHJvZmlsZRgJIAEoCzIeLmFzc2VtYmx5LnYxLkNhcGFiaWxpdHlQcm9maWxlEhAKCG1vZGVsX2lkGAogASgJEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYCyADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YDCABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj0KD1Rvb2xEZWZpbml0aW9ucxIqCgVpdGVtcxgBIAMoCzIbLmFzc2VtYmx5LnYxLlRvb2xEZWZpbml0aW9uIukCCgxUb29sSW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhoKEnRvb2xfZGVmaW5pdGlvbl9pZBgFIAEoCRIVCg1zZXJpYWxfbnVtYmVyGAYgASgJEhIKCnN0YXRpb25faWQYByABKAkSKwoGc3RhdHVzGAggASgOMhsuYXNzZW1ibHkudjEuUmVzb3VyY2VTdGF0dXMSEgoKY2FsaWJyYXRlZBgJIAEoCBI7ChdjYWxpYnJhdGlvbl92YWxpZF91bnRpbBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKAoEcG9zZRgLIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USLQoGY3VzdG9tGAwgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyI5Cg1Ub29sSW5zdGFuY2VzEigKBWl0ZW1zGAEgAygLMhkuYXNzZW1ibHkudjEuVG9vbEluc3RhbmNlIqsDChdDb250YWluZXJTbG90RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSHwoEcG9zZRgFIAEoCzIRLmdlb21ldHJ5LnYxLlBvc2USIgoEc2l6ZRgGIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSLAoEdHlwZRgHIAEoDjIeLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RUeXBlEigKIHN1cHBvcnRlZF9wcm9kdWN0X2RlZmluaXRpb25faWRzGAggAygJEioKInN1cHBvcnRlZF9yb290X3BhcnRfZGVmaW5pdGlvbl9pZHMYCSADKAkSJQodc3VwcG9ydGVkX3BhcnRfZGVmaW5pdGlvbl9pZHMYCiADKAkSNAoLY29uc3RyYWludHMYCyADKAsyHy5hc3NlbWJseS52MS5LZXlWYWx1ZUNvbnN0cmFpbnQSLQoGY3VzdG9tGAwgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyKoAgoTQ29udGFpbmVyRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSKAoEdHlwZRgFIAEoDjIaLmFzc2VtYmx5LnYxLkNvbnRhaW5lclR5cGUSEAoIbW9kZWxfaWQYBiABKAkSMwoFc2xvdHMYByADKAsyJC5hc3NlbWJseS52MS5Db250YWluZXJTbG90RGVmaW5pdGlvbhI0Cgtjb25zdHJhaW50cxgIIAMoCzIfLmFzc2VtYmx5LnYxLktleVZhbHVlQ29uc3RyYWludBItCgZjdXN0b20YCSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIkcKFENvbnRhaW5lckRlZmluaXRpb25zEi8KBWl0ZW1zGAEgAygLMiAuYXNzZW1ibHkudjEuQ29udGFpbmVyRGVmaW5pdGlvbiKLAgoRQ29udGFpbmVySW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEh8KF2NvbnRhaW5lcl9kZWZpbml0aW9uX2lkGAUgASgJEhIKCnN0YXRpb25faWQYBiABKAkSKwoGc3RhdHVzGAcgASgOMhsuYXNzZW1ibHkudjEuUmVzb3VyY2VTdGF0dXMSKAoEcG9zZRgIIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USLQoGY3VzdG9tGAkgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyJDChJDb250YWluZXJJbnN0YW5jZXMSLQoFaXRlbXMYASADKAsyHi5hc3NlbWJseS52MS5Db250YWluZXJJbnN0YW5jZSKdAwoPUm9ib3REZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIkCgR0eXBlGAUgASgOMhYuYXNzZW1ibHkudjEuUm9ib3RUeXBlEjEKC2RyaXZlcl90eXBlGAYgASgOMhwuYXNzZW1ibHkudjEuUm9ib3REcml2ZXJUeXBlEhAKCG1vZGVsX2lkGAcgASgJEhgKEGNvdXBsZXJfbW9kZWxfaWQYCCABKAkSJQodc3VwcG9ydGVkX3Rvb2xfZGVmaW5pdGlvbl9pZHMYCSADKAkSIgoaZGVmYXVsdF90b29sX2RlZmluaXRpb25faWQYCiABKAkSEgoKdG9vbF9zbG90cxgLIAEoBRI6ChJjYXBhYmlsaXR5X3Byb2ZpbGUYDCABKAsyHi5hc3NlbWJseS52MS5DYXBhYmlsaXR5UHJvZmlsZRItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj8KEFJvYm90RGVmaW5pdGlvbnMSKwoFaXRlbXMYASADKAsyHC5hc3NlbWJseS52MS5Sb2JvdERlZmluaXRpb24i7QIKDVJvYm90SW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYBSABKAkSEgoKc3RhdGlvbl9pZBgGIAEoCRIgChhtb3VudGVkX3Rvb2xfaW5zdGFuY2VfaWQYByABKAkSIwobYXZhaWxhYmxlX3Rvb2xfaW5zdGFuY2VfaWRzGAggAygJEhwKFHN1cHBvcnRzX3Rvb2xfY2hhbmdlGAkgASgIEisKBnN0YXR1cxgKIAEoDjIbLmFzc2VtYmx5LnYxLlJlc291cmNlU3RhdHVzEi0KCWJhc2VfcG9zZRgLIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USLQoGY3VzdG9tGAwgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyI7Cg5Sb2JvdEluc3RhbmNlcxIpCgVpdGVtcxgBIAMoCzIaLmFzc2VtYmx5LnYxLlJvYm90SW5zdGFuY2Ui6AEKD0Fzc2V0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSJAoEdHlwZRgFIAEoDjIWLmFzc2VtYmx5LnYxLkFzc2V0VHlwZRIxCgtkcml2ZXJfdHlwZRgGIAEoDjIcLmFzc2VtYmx5LnYxLkFzc2V0RHJpdmVyVHlwZRIQCghtb2RlbF9pZBgHIAEoCRItCgZjdXN0b20YCCABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj8KEEFzc2V0RGVmaW5pdGlvbnMSKwoFaXRlbXMYASADKAsyHC5hc3NlbWJseS52MS5Bc3NldERlZmluaXRpb24igwIKDUFzc2V0SW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhsKE2Fzc2V0X2RlZmluaXRpb25faWQYBSABKAkSEgoKc3RhdGlvbl9pZBgGIAEoCRIrCgZzdGF0dXMYByABKA4yGy5hc3NlbWJseS52MS5SZXNvdXJjZVN0YXR1cxIoCgRwb3NlGAggASgLMhouZ2VvbWV0cnkudjEuTG9jYWxpemVkUG9zZRItCgZjdXN0b20YCSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIjsKDkFzc2V0SW5zdGFuY2VzEikKBWl0ZW1zGAEgAygLMhouYXNzZW1ibHkudjEuQXNzZXRJbnN0YW5jZSqYAQoNQ29udGFpbmVyVHlwZRIeChpDT05UQUlORVJfVFlQRV9VTlNQRUNJRklFRBAAEhoKFkNPTlRBSU5FUl9UWVBFX1NUT1JBR0UQARIWChJDT05UQUlORVJfVFlQRV9LSVQQAhIXChNDT05UQUlORVJfVFlQRV9UUkFZEAMSGgoWQ09OVEFJTkVSX1RZUEVfRklYVFVSRRAEKsgBChFDb250YWluZXJTbG90VHlwZRIjCh9DT05UQUlORVJfU0xPVF9UWVBFX1VOU1BFQ0lGSUVEEAASIwofQ09OVEFJTkVSX1NMT1RfVFlQRV9TVE9SQUdFX0JJThABEiAKHENPTlRBSU5FUl9TTE9UX1RZUEVfS0lUX1NMT1QQAhIhCh1DT05UQUlORVJfU0xPVF9UWVBFX1RSQVlfQ0VMTBADEiQKIENPTlRBSU5FUl9TTE9UX1RZUEVfRklYVFVSRV9TTE9UEAQqzQMKCFRvb2xUeXBlEhkKFVRPT0xfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1RPT0xfVFlQRV9GQVNURU5JTkcQARIWChJUT09MX1RZUEVfR1JJUFBJTkcQAhIVChFUT09MX1RZUEVfQ1VUVElORxADEhcKE1RPT0xfVFlQRV9NRUFTVVJJTkcQBBIZChVUT09MX1RZUEVfUE9TSVRJT05JTkcQBRIYChRUT09MX1RZUEVfRElTUEVOU0lORxAGEhgKFFRPT0xfVFlQRV9JTlNQRUNUSU9OEAcSFAoQVE9PTF9UWVBFX1NBRkVUWRAIEhkKFVRPT0xfVFlQRV9FTEVDVFJPTklDUxAJEh8KG1RPT0xfVFlQRV9GSVhUVVJFX0FDQ0VTU09SWRAKEhUKEVRPT0xfVFlQRV9TSEFQSU5HEAsSFQoRVE9PTF9UWVBFX1RVUk5JTkcQDBIWChJUT09MX1RZUEVfU1RSSUtJTkcQDRIVChFUT09MX1RZUEVfTUFSS0lORxAOEhcKE1RPT0xfVFlQRV9GSU5JU0hJTkcQDxIWChJUT09MX1RZUEVfQUJSQVNJVkUQEBIWChJUT09MX1RZUEVfQ0xFQU5JTkcQESq4AwoIVG9vbFJvbGUSGQoVVE9PTF9ST0xFX1VOU1BFQ0lGSUVEEAASHAoYVE9PTF9ST0xFX0dSSVBfV09SS1BJRUNFEAESIAocVE9PTF9ST0xFX1BPU0lUSU9OX0NPTVBPTkVOVBACEh0KGVRPT0xfUk9MRV9BTElHTl9DT01QT05FTlQQAxIaChZUT09MX1JPTEVfQVBQTFlfVE9SUVVFEAQSIAocVE9PTF9ST0xFX0FQUExZX0xJTkVBUl9GT1JDRRAFEh8KG1RPT0xfUk9MRV9NRUFTVVJFX0RJTUVOU0lPThAGEh0KGVRPT0xfUk9MRV9ERVRFQ1RfUFJFU0VOQ0UQBxIfChtUT09MX1JPTEVfRElTUEVOU0VfTUFURVJJQUwQCBIcChhUT09MX1JPTEVfRVhFQ1VURV9NT1RJT04QCRIgChxUT09MX1JPTEVfU0FGRVRZX0lOVEVSQUNUSU9OEAoSGAoUVE9PTF9ST0xFX0hBTkRMRV9FU0QQCxIfChtUT09MX1JPTEVfVklTVUFMX0lOU1BFQ1RJT04QDBIYChRUT09MX1JPTEVfV0lQRV9DTEVBThANKu8BCgxUb29sUHJvcGVydHkSHQoZVE9PTF9QUk9QRVJUWV9VTlNQRUNJRklFRBAAEiMKH1RPT0xfUFJPUEVSVFlfVE9SUVVFX0NPTlRST0xMRUQQARIaChZUT09MX1BST1BFUlRZX0VTRF9TQUZFEAISGwoXVE9PTF9QUk9QRVJUWV9JTlNVTEFURUQQAxIkCiBUT09MX1BST1BFUlRZX0NPTExBQk9SQVRJVkVfU0FGRRAEEhwKGFRPT0xfUFJPUEVSVFlfQ0FMSUJSQVRFRBAFEh4KGlRPT0xfUFJPUEVSVFlfUVVJQ0tfQ0hBTkdFEAYqgQEKCVJvYm90VHlwZRIaChZST0JPVF9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPUk9CT1RfVFlQRV9VUjNFEAoSEwoPUk9CT1RfVFlQRV9VUjVFEAsSFAoQUk9CT1RfVFlQRV9VUjEwRRAMEhgKFFJPQk9UX1RZUEVfS1VLQV9JSVdBEBQqbQoPUm9ib3REcml2ZXJUeXBlEiEKHVJPQk9UX0RSSVZFUl9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUUk9CT1RfRFJJVkVSX1RZUEVfVVIQARIdChlST0JPVF9EUklWRVJfVFlQRV9HRU5FUklDEAIqtAEKCUFzc2V0VHlwZRIaChZBU1NFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFQoRQVNTRVRfVFlQRV9DQU1FUkEQARIUChBBU1NFVF9UWVBFX0xJR0hUEAISFwoTQVNTRVRfVFlQRV9DT05WRVlPUhADEhUKEUFTU0VUX1RZUEVfU0VOU09SEAQSEgoOQVNTRVRfVFlQRV9ITUkQBRIaChZBU1NFVF9UWVBFX1BBUlRfRkVFREVSEAgqUwoPQXNzZXREcml2ZXJUeXBlEiEKHUFTU0VUX0RSSVZFUl9UWVBFX1VOU1BFQ0lGSUVEEAASHQoZQVNTRVRfRFJJVkVSX1RZUEVfREVGQVVMVBABQrQBCg9jb20uYXNzZW1ibHkudjFCDlJlc291cmNlc1Byb3RvUAFaO2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hc3NlbWJseS92MTthc3NlbWJseXYxogIDQVhYqgIUTWVzc2FnZXMuQXNzZW1ibHkuVjHKAgtBc3NlbWJseVxWMeICF0Fzc2VtYmx5XFYxXEdQQk1ldGFkYXRh6gIMQXNzZW1ibHk6OlYxYgZwcm90bzM", [file_assembly_v1_common, file_geometry_v1_pose, file_geometry_v1_vector3, file_google_protobuf_timestamp]);
21
+ fileDesc("Chthc3NlbWJseS92MS9yZXNvdXJjZXMucHJvdG8SC2Fzc2VtYmx5LnYxInAKEENvbnRhaW5lclNsb3RSZWYSHQoVY29udGFpbmVyX2luc3RhbmNlX2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSLAoEdHlwZRgDIAEoDjIeLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RUeXBlIogCChFDYXBhYmlsaXR5UHJvZmlsZRITCgttaW5fZm9yY2VfbhgBIAEoARITCgttYXhfZm9yY2VfbhgCIAEoARIVCg1taW5fdG9ycXVlX25tGAMgASgBEhUKDW1heF90b3JxdWVfbm0YBCABKAESGAoQcmVwZWF0YWJpbGl0eV9tbRgFIAEoARIVCg1tYXhfcGF5bG9hZF9nGAYgASgBEhkKEW1pbl9ncmlwX3dpZHRoX21tGAcgASgBEhkKEW1heF9ncmlwX3dpZHRoX21tGAggASgBEjQKC2NvbnN0cmFpbnRzGAkgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50Iq0DCg5Ub29sRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlRvb2xUeXBlEioKCmFjdG9yX2tpbmQYBiABKA4yFi5hc3NlbWJseS52MS5BY3RvcktpbmQSJAoFcm9sZXMYByADKA4yFS5hc3NlbWJseS52MS5Ub29sUm9sZRItCgpwcm9wZXJ0aWVzGAggAygOMhkuYXNzZW1ibHkudjEuVG9vbFByb3BlcnR5EjoKEmNhcGFiaWxpdHlfcHJvZmlsZRgJIAEoCzIeLmFzc2VtYmx5LnYxLkNhcGFiaWxpdHlQcm9maWxlEhAKCG1vZGVsX2lkGAogASgJEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYCyADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YDCABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj0KD1Rvb2xEZWZpbml0aW9ucxIqCgVpdGVtcxgBIAMoCzIbLmFzc2VtYmx5LnYxLlRvb2xEZWZpbml0aW9uIukCCgxUb29sSW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhoKEnRvb2xfZGVmaW5pdGlvbl9pZBgFIAEoCRIVCg1zZXJpYWxfbnVtYmVyGAYgASgJEhIKCnN0YXRpb25faWQYByABKAkSKwoGc3RhdHVzGAggASgOMhsuYXNzZW1ibHkudjEuUmVzb3VyY2VTdGF0dXMSEgoKY2FsaWJyYXRlZBgJIAEoCBI7ChdjYWxpYnJhdGlvbl92YWxpZF91bnRpbBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKAoEcG9zZRgLIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USLQoGY3VzdG9tGAwgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyI5Cg1Ub29sSW5zdGFuY2VzEigKBWl0ZW1zGAEgAygLMhkuYXNzZW1ibHkudjEuVG9vbEluc3RhbmNlIqsDChdDb250YWluZXJTbG90RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSHwoEcG9zZRgFIAEoCzIRLmdlb21ldHJ5LnYxLlBvc2USIgoEc2l6ZRgGIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSLAoEdHlwZRgHIAEoDjIeLmFzc2VtYmx5LnYxLkNvbnRhaW5lclNsb3RUeXBlEigKIHN1cHBvcnRlZF9wcm9kdWN0X2RlZmluaXRpb25faWRzGAggAygJEioKInN1cHBvcnRlZF9yb290X3BhcnRfZGVmaW5pdGlvbl9pZHMYCSADKAkSJQodc3VwcG9ydGVkX3BhcnRfZGVmaW5pdGlvbl9pZHMYCiADKAkSNAoLY29uc3RyYWludHMYCyADKAsyHy5hc3NlbWJseS52MS5LZXlWYWx1ZUNvbnN0cmFpbnQSLQoGY3VzdG9tGAwgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyKoAgoTQ29udGFpbmVyRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSKAoEdHlwZRgFIAEoDjIaLmFzc2VtYmx5LnYxLkNvbnRhaW5lclR5cGUSEAoIbW9kZWxfaWQYBiABKAkSMwoFc2xvdHMYByADKAsyJC5hc3NlbWJseS52MS5Db250YWluZXJTbG90RGVmaW5pdGlvbhI0Cgtjb25zdHJhaW50cxgIIAMoCzIfLmFzc2VtYmx5LnYxLktleVZhbHVlQ29uc3RyYWludBItCgZjdXN0b20YCSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIkcKFENvbnRhaW5lckRlZmluaXRpb25zEi8KBWl0ZW1zGAEgAygLMiAuYXNzZW1ibHkudjEuQ29udGFpbmVyRGVmaW5pdGlvbiKLAgoRQ29udGFpbmVySW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEh8KF2NvbnRhaW5lcl9kZWZpbml0aW9uX2lkGAUgASgJEhIKCnN0YXRpb25faWQYBiABKAkSKwoGc3RhdHVzGAcgASgOMhsuYXNzZW1ibHkudjEuUmVzb3VyY2VTdGF0dXMSKAoEcG9zZRgIIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USLQoGY3VzdG9tGAkgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyJDChJDb250YWluZXJJbnN0YW5jZXMSLQoFaXRlbXMYASADKAsyHi5hc3NlbWJseS52MS5Db250YWluZXJJbnN0YW5jZSKdAwoPUm9ib3REZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIkCgR0eXBlGAUgASgOMhYuYXNzZW1ibHkudjEuUm9ib3RUeXBlEjEKC2RyaXZlcl90eXBlGAYgASgOMhwuYXNzZW1ibHkudjEuUm9ib3REcml2ZXJUeXBlEhAKCG1vZGVsX2lkGAcgASgJEhgKEGNvdXBsZXJfbW9kZWxfaWQYCCABKAkSJQodc3VwcG9ydGVkX3Rvb2xfZGVmaW5pdGlvbl9pZHMYCSADKAkSIgoaZGVmYXVsdF90b29sX2RlZmluaXRpb25faWQYCiABKAkSEgoKdG9vbF9zbG90cxgLIAEoBRI6ChJjYXBhYmlsaXR5X3Byb2ZpbGUYDCABKAsyHi5hc3NlbWJseS52MS5DYXBhYmlsaXR5UHJvZmlsZRItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIj8KEFJvYm90RGVmaW5pdGlvbnMSKwoFaXRlbXMYASADKAsyHC5hc3NlbWJseS52MS5Sb2JvdERlZmluaXRpb24ihAMKDVJvYm90SW5zdGFuY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYBSABKAkSFQoNc2VyaWFsX251bWJlchgGIAEoCRISCgpzdGF0aW9uX2lkGAcgASgJEiAKGG1vdW50ZWRfdG9vbF9pbnN0YW5jZV9pZBgIIAEoCRIjChthdmFpbGFibGVfdG9vbF9pbnN0YW5jZV9pZHMYCSADKAkSHAoUc3VwcG9ydHNfdG9vbF9jaGFuZ2UYCiABKAgSKwoGc3RhdHVzGAsgASgOMhsuYXNzZW1ibHkudjEuUmVzb3VyY2VTdGF0dXMSLQoJYmFzZV9wb3NlGAwgASgLMhouZ2VvbWV0cnkudjEuTG9jYWxpemVkUG9zZRItCgZjdXN0b20YDSABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIjsKDlJvYm90SW5zdGFuY2VzEikKBWl0ZW1zGAEgAygLMhouYXNzZW1ibHkudjEuUm9ib3RJbnN0YW5jZSLoAQoPQXNzZXREZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIkCgR0eXBlGAUgASgOMhYuYXNzZW1ibHkudjEuQXNzZXRUeXBlEjEKC2RyaXZlcl90eXBlGAYgASgOMhwuYXNzZW1ibHkudjEuQXNzZXREcml2ZXJUeXBlEhAKCG1vZGVsX2lkGAcgASgJEi0KBmN1c3RvbRgIIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMiPwoQQXNzZXREZWZpbml0aW9ucxIrCgVpdGVtcxgBIAMoCzIcLmFzc2VtYmx5LnYxLkFzc2V0RGVmaW5pdGlvbiKDAgoNQXNzZXRJbnN0YW5jZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSGwoTYXNzZXRfZGVmaW5pdGlvbl9pZBgFIAEoCRISCgpzdGF0aW9uX2lkGAYgASgJEisKBnN0YXR1cxgHIAEoDjIbLmFzc2VtYmx5LnYxLlJlc291cmNlU3RhdHVzEigKBHBvc2UYCCABKAsyGi5nZW9tZXRyeS52MS5Mb2NhbGl6ZWRQb3NlEi0KBmN1c3RvbRgJIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMiOwoOQXNzZXRJbnN0YW5jZXMSKQoFaXRlbXMYASADKAsyGi5hc3NlbWJseS52MS5Bc3NldEluc3RhbmNlKpgBCg1Db250YWluZXJUeXBlEh4KGkNPTlRBSU5FUl9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWQ09OVEFJTkVSX1RZUEVfU1RPUkFHRRABEhYKEkNPTlRBSU5FUl9UWVBFX0tJVBACEhcKE0NPTlRBSU5FUl9UWVBFX1RSQVkQAxIaChZDT05UQUlORVJfVFlQRV9GSVhUVVJFEAQqyAEKEUNvbnRhaW5lclNsb3RUeXBlEiMKH0NPTlRBSU5FUl9TTE9UX1RZUEVfVU5TUEVDSUZJRUQQABIjCh9DT05UQUlORVJfU0xPVF9UWVBFX1NUT1JBR0VfQklOEAESIAocQ09OVEFJTkVSX1NMT1RfVFlQRV9LSVRfU0xPVBACEiEKHUNPTlRBSU5FUl9TTE9UX1RZUEVfVFJBWV9DRUxMEAMSJAogQ09OVEFJTkVSX1NMT1RfVFlQRV9GSVhUVVJFX1NMT1QQBCrNAwoIVG9vbFR5cGUSGQoVVE9PTF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTVE9PTF9UWVBFX0ZBU1RFTklORxABEhYKElRPT0xfVFlQRV9HUklQUElORxACEhUKEVRPT0xfVFlQRV9DVVRUSU5HEAMSFwoTVE9PTF9UWVBFX01FQVNVUklORxAEEhkKFVRPT0xfVFlQRV9QT1NJVElPTklORxAFEhgKFFRPT0xfVFlQRV9ESVNQRU5TSU5HEAYSGAoUVE9PTF9UWVBFX0lOU1BFQ1RJT04QBxIUChBUT09MX1RZUEVfU0FGRVRZEAgSGQoVVE9PTF9UWVBFX0VMRUNUUk9OSUNTEAkSHwobVE9PTF9UWVBFX0ZJWFRVUkVfQUNDRVNTT1JZEAoSFQoRVE9PTF9UWVBFX1NIQVBJTkcQCxIVChFUT09MX1RZUEVfVFVSTklORxAMEhYKElRPT0xfVFlQRV9TVFJJS0lORxANEhUKEVRPT0xfVFlQRV9NQVJLSU5HEA4SFwoTVE9PTF9UWVBFX0ZJTklTSElORxAPEhYKElRPT0xfVFlQRV9BQlJBU0lWRRAQEhYKElRPT0xfVFlQRV9DTEVBTklORxARKrgDCghUb29sUm9sZRIZChVUT09MX1JPTEVfVU5TUEVDSUZJRUQQABIcChhUT09MX1JPTEVfR1JJUF9XT1JLUElFQ0UQARIgChxUT09MX1JPTEVfUE9TSVRJT05fQ09NUE9ORU5UEAISHQoZVE9PTF9ST0xFX0FMSUdOX0NPTVBPTkVOVBADEhoKFlRPT0xfUk9MRV9BUFBMWV9UT1JRVUUQBBIgChxUT09MX1JPTEVfQVBQTFlfTElORUFSX0ZPUkNFEAUSHwobVE9PTF9ST0xFX01FQVNVUkVfRElNRU5TSU9OEAYSHQoZVE9PTF9ST0xFX0RFVEVDVF9QUkVTRU5DRRAHEh8KG1RPT0xfUk9MRV9ESVNQRU5TRV9NQVRFUklBTBAIEhwKGFRPT0xfUk9MRV9FWEVDVVRFX01PVElPThAJEiAKHFRPT0xfUk9MRV9TQUZFVFlfSU5URVJBQ1RJT04QChIYChRUT09MX1JPTEVfSEFORExFX0VTRBALEh8KG1RPT0xfUk9MRV9WSVNVQUxfSU5TUEVDVElPThAMEhgKFFRPT0xfUk9MRV9XSVBFX0NMRUFOEA0q7wEKDFRvb2xQcm9wZXJ0eRIdChlUT09MX1BST1BFUlRZX1VOU1BFQ0lGSUVEEAASIwofVE9PTF9QUk9QRVJUWV9UT1JRVUVfQ09OVFJPTExFRBABEhoKFlRPT0xfUFJPUEVSVFlfRVNEX1NBRkUQAhIbChdUT09MX1BST1BFUlRZX0lOU1VMQVRFRBADEiQKIFRPT0xfUFJPUEVSVFlfQ09MTEFCT1JBVElWRV9TQUZFEAQSHAoYVE9PTF9QUk9QRVJUWV9DQUxJQlJBVEVEEAUSHgoaVE9PTF9QUk9QRVJUWV9RVUlDS19DSEFOR0UQBiqBAQoJUm9ib3RUeXBlEhoKFlJPQk9UX1RZUEVfVU5TUEVDSUZJRUQQABITCg9ST0JPVF9UWVBFX1VSM0UQChITCg9ST0JPVF9UWVBFX1VSNUUQCxIUChBST0JPVF9UWVBFX1VSMTBFEAwSGAoUUk9CT1RfVFlQRV9LVUtBX0lJV0EQFCptCg9Sb2JvdERyaXZlclR5cGUSIQodUk9CT1RfRFJJVkVSX1RZUEVfVU5TUEVDSUZJRUQQABIYChRST0JPVF9EUklWRVJfVFlQRV9VUhABEh0KGVJPQk9UX0RSSVZFUl9UWVBFX0dFTkVSSUMQAiq0AQoJQXNzZXRUeXBlEhoKFkFTU0VUX1RZUEVfVU5TUEVDSUZJRUQQABIVChFBU1NFVF9UWVBFX0NBTUVSQRABEhQKEEFTU0VUX1RZUEVfTElHSFQQAhIXChNBU1NFVF9UWVBFX0NPTlZFWU9SEAMSFQoRQVNTRVRfVFlQRV9TRU5TT1IQBBISCg5BU1NFVF9UWVBFX0hNSRAFEhoKFkFTU0VUX1RZUEVfUEFSVF9GRUVERVIQCCpTCg9Bc3NldERyaXZlclR5cGUSIQodQVNTRVRfRFJJVkVSX1RZUEVfVU5TUEVDSUZJRUQQABIdChlBU1NFVF9EUklWRVJfVFlQRV9ERUZBVUxUEAFCtAEKD2NvbS5hc3NlbWJseS52MUIOUmVzb3VyY2VzUHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw", [file_assembly_v1_common, file_geometry_v1_pose, file_geometry_v1_vector3, file_google_protobuf_timestamp]);
22
22
 
23
23
  /**
24
24
  * ContainerSlotRef points to a concrete slot on a concrete container instance.
@@ -726,43 +726,48 @@ export type RobotInstance = Message<"assembly.v1.RobotInstance"> & {
726
726
  robotDefinitionId: string;
727
727
 
728
728
  /**
729
- * @generated from field: string station_id = 6;
729
+ * @generated from field: string serial_number = 6;
730
+ */
731
+ serialNumber: string;
732
+
733
+ /**
734
+ * @generated from field: string station_id = 7;
730
735
  */
731
736
  stationId: string;
732
737
 
733
738
  /**
734
739
  * The tool instance currently mounted on the robot, if any.
735
740
  *
736
- * @generated from field: string mounted_tool_instance_id = 7;
741
+ * @generated from field: string mounted_tool_instance_id = 8;
737
742
  */
738
743
  mountedToolInstanceId: string;
739
744
 
740
745
  /**
741
746
  * Tool instances available to this robot in the cell/tool dock/tool magazine.
742
747
  *
743
- * @generated from field: repeated string available_tool_instance_ids = 8;
748
+ * @generated from field: repeated string available_tool_instance_ids = 9;
744
749
  */
745
750
  availableToolInstanceIds: string[];
746
751
 
747
752
  /**
748
753
  * Whether this robot instance can dynamically change between available tools.
749
754
  *
750
- * @generated from field: bool supports_tool_change = 9;
755
+ * @generated from field: bool supports_tool_change = 10;
751
756
  */
752
757
  supportsToolChange: boolean;
753
758
 
754
759
  /**
755
- * @generated from field: assembly.v1.ResourceStatus status = 10;
760
+ * @generated from field: assembly.v1.ResourceStatus status = 11;
756
761
  */
757
762
  status: ResourceStatus;
758
763
 
759
764
  /**
760
- * @generated from field: geometry.v1.LocalizedPose base_pose = 11;
765
+ * @generated from field: geometry.v1.LocalizedPose base_pose = 12;
761
766
  */
762
767
  basePose?: LocalizedPose;
763
768
 
764
769
  /**
765
- * @generated from field: assembly.v1.CustomProperties custom = 12;
770
+ * @generated from field: assembly.v1.CustomProperties custom = 13;
766
771
  */
767
772
  custom?: CustomProperties;
768
773
  };
@@ -0,0 +1,170 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file assembly/v1/variant.proto (package assembly.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { Message } from "@bufbuild/protobuf";
8
+
9
+ /**
10
+ * Describes the file assembly/v1/variant.proto.
11
+ */
12
+ export const file_assembly_v1_variant: GenFile = /*@__PURE__*/
13
+ fileDesc("Chlhc3NlbWJseS92MS92YXJpYW50LnByb3RvEgthc3NlbWJseS52MSI3Cg1WYXJpYW50T3B0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCSJiCgtWYXJpYW50QXhpcxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSKwoHb3B0aW9ucxgEIAMoCzIaLmFzc2VtYmx5LnYxLlZhcmlhbnRPcHRpb24iXAoQVmFyaWFudFByZWRpY2F0ZRIPCgdheGlzX2lkGAEgASgJEhoKEmFsbG93ZWRfb3B0aW9uX2lkcxgCIAMoCRIbChNleGNsdWRlZF9vcHRpb25faWRzGAMgAygJIjwKC1ZhcmlhbnRSdWxlEi0KBmFsbF9vZhgBIAMoCzIdLmFzc2VtYmx5LnYxLlZhcmlhbnRQcmVkaWNhdGUiNgoQVmFyaWFudFNlbGVjdGlvbhIPCgdheGlzX2lkGAEgASgJEhEKCW9wdGlvbl9pZBgCIAEoCSJJChRWYXJpYW50Q29uZmlndXJhdGlvbhIxCgpzZWxlY3Rpb25zGAEgAygLMh0uYXNzZW1ibHkudjEuVmFyaWFudFNlbGVjdGlvbkKyAQoPY29tLmFzc2VtYmx5LnYxQgxWYXJpYW50UHJvdG9QAVo7Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2Fzc2VtYmx5L3YxO2Fzc2VtYmx5djGiAgNBWFiqAhRNZXNzYWdlcy5Bc3NlbWJseS5WMcoCC0Fzc2VtYmx5XFYx4gIXQXNzZW1ibHlcVjFcR1BCTWV0YWRhdGHqAgxBc3NlbWJseTo6VjFiBnByb3RvMw");
14
+
15
+ /**
16
+ * @generated from message assembly.v1.VariantOption
17
+ */
18
+ export type VariantOption = Message<"assembly.v1.VariantOption"> & {
19
+ /**
20
+ * @generated from field: string id = 1;
21
+ */
22
+ id: string;
23
+
24
+ /**
25
+ * @generated from field: string name = 2;
26
+ */
27
+ name: string;
28
+
29
+ /**
30
+ * @generated from field: string icon = 3;
31
+ */
32
+ icon: string;
33
+ };
34
+
35
+ /**
36
+ * Describes the message assembly.v1.VariantOption.
37
+ * Use `create(VariantOptionSchema)` to create a new message.
38
+ */
39
+ export const VariantOptionSchema: GenMessage<VariantOption> = /*@__PURE__*/
40
+ messageDesc(file_assembly_v1_variant, 0);
41
+
42
+ /**
43
+ * @generated from message assembly.v1.VariantAxis
44
+ */
45
+ export type VariantAxis = Message<"assembly.v1.VariantAxis"> & {
46
+ /**
47
+ * @generated from field: string id = 1;
48
+ */
49
+ id: string;
50
+
51
+ /**
52
+ * @generated from field: string name = 2;
53
+ */
54
+ name: string;
55
+
56
+ /**
57
+ * @generated from field: string icon = 3;
58
+ */
59
+ icon: string;
60
+
61
+ /**
62
+ * @generated from field: repeated assembly.v1.VariantOption options = 4;
63
+ */
64
+ options: VariantOption[];
65
+ };
66
+
67
+ /**
68
+ * Describes the message assembly.v1.VariantAxis.
69
+ * Use `create(VariantAxisSchema)` to create a new message.
70
+ */
71
+ export const VariantAxisSchema: GenMessage<VariantAxis> = /*@__PURE__*/
72
+ messageDesc(file_assembly_v1_variant, 1);
73
+
74
+ /**
75
+ * @generated from message assembly.v1.VariantPredicate
76
+ */
77
+ export type VariantPredicate = Message<"assembly.v1.VariantPredicate"> & {
78
+ /**
79
+ * Variant axis identifier, e.g. "hinge_side"
80
+ *
81
+ * @generated from field: string axis_id = 1;
82
+ */
83
+ axisId: string;
84
+
85
+ /**
86
+ * Allowed options on that axis, e.g. ["left"]
87
+ *
88
+ * @generated from field: repeated string allowed_option_ids = 2;
89
+ */
90
+ allowedOptionIds: string[];
91
+
92
+ /**
93
+ * Options on that axis that must not be selected.
94
+ *
95
+ * @generated from field: repeated string excluded_option_ids = 3;
96
+ */
97
+ excludedOptionIds: string[];
98
+ };
99
+
100
+ /**
101
+ * Describes the message assembly.v1.VariantPredicate.
102
+ * Use `create(VariantPredicateSchema)` to create a new message.
103
+ */
104
+ export const VariantPredicateSchema: GenMessage<VariantPredicate> = /*@__PURE__*/
105
+ messageDesc(file_assembly_v1_variant, 2);
106
+
107
+ /**
108
+ * VariantRule: a rule matches if all predicates match
109
+ *
110
+ * @generated from message assembly.v1.VariantRule
111
+ */
112
+ export type VariantRule = Message<"assembly.v1.VariantRule"> & {
113
+ /**
114
+ * All predicates must match for the rule to match.
115
+ *
116
+ * @generated from field: repeated assembly.v1.VariantPredicate all_of = 1;
117
+ */
118
+ allOf: VariantPredicate[];
119
+ };
120
+
121
+ /**
122
+ * Describes the message assembly.v1.VariantRule.
123
+ * Use `create(VariantRuleSchema)` to create a new message.
124
+ */
125
+ export const VariantRuleSchema: GenMessage<VariantRule> = /*@__PURE__*/
126
+ messageDesc(file_assembly_v1_variant, 3);
127
+
128
+ /**
129
+ * @generated from message assembly.v1.VariantSelection
130
+ */
131
+ export type VariantSelection = Message<"assembly.v1.VariantSelection"> & {
132
+ /**
133
+ * "hinge_side"
134
+ *
135
+ * @generated from field: string axis_id = 1;
136
+ */
137
+ axisId: string;
138
+
139
+ /**
140
+ * "left"
141
+ *
142
+ * @generated from field: string option_id = 2;
143
+ */
144
+ optionId: string;
145
+ };
146
+
147
+ /**
148
+ * Describes the message assembly.v1.VariantSelection.
149
+ * Use `create(VariantSelectionSchema)` to create a new message.
150
+ */
151
+ export const VariantSelectionSchema: GenMessage<VariantSelection> = /*@__PURE__*/
152
+ messageDesc(file_assembly_v1_variant, 4);
153
+
154
+ /**
155
+ * @generated from message assembly.v1.VariantConfiguration
156
+ */
157
+ export type VariantConfiguration = Message<"assembly.v1.VariantConfiguration"> & {
158
+ /**
159
+ * @generated from field: repeated assembly.v1.VariantSelection selections = 1;
160
+ */
161
+ selections: VariantSelection[];
162
+ };
163
+
164
+ /**
165
+ * Describes the message assembly.v1.VariantConfiguration.
166
+ * Use `create(VariantConfigurationSchema)` to create a new message.
167
+ */
168
+ export const VariantConfigurationSchema: GenMessage<VariantConfiguration> = /*@__PURE__*/
169
+ messageDesc(file_assembly_v1_variant, 5);
170
+
@@ -0,0 +1,105 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file resources/v1/marker.proto (package resources.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
8
+ import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
9
+ import type { Message } from "@bufbuild/protobuf";
10
+
11
+ /**
12
+ * Describes the file resources/v1/marker.proto.
13
+ */
14
+ export const file_resources_v1_marker: GenFile = /*@__PURE__*/
15
+ fileDesc("ChlyZXNvdXJjZXMvdjEvbWFya2VyLnByb3RvEgxyZXNvdXJjZXMudjEi1AEKEE1hcmtlckRlZmluaXRpb24SCgoCaWQYASABKAkSFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSJgoLbWFya2VyX3RleHQYBSABKAlCEbpIDnIMEAKSAgdyb2JlcnRhEjMKBHR5cGUYBiABKA4yGC5yZXNvdXJjZXMudjEuTWFya2VyVHlwZUILukgIyAEBggECEAESGwoTY29uZmlybV9pbnN0YW50aWF0ZRgHIAEoCCKpAQoOTWFya2VyTWVzc2FnZXMSlgEKB21hcmtlcnMYASADKAsyHi5yZXNvdXJjZXMudjEuTWFya2VyRGVmaW5pdGlvbkJlukhiugFfChJ1bmlxdWVfbWFya2VyX3RleHQSGm1hcmtlciB0ZXh0IG11c3QgYmUgdW5pcXVlGi10aGlzLm1hcChtYXJrZXIsIG1hcmtlci5tYXJrZXJfdGV4dCkudW5pcXVlKCkqQgoKTWFya2VyVHlwZRIbChdNQVJLRVJfVFlQRV9VTlNQRUNJRklFRBAAEhcKE01BUktFUl9UWVBFX1FSX0NPREUQAUK4AQoQY29tLnJlc291cmNlcy52MUILTWFya2VyUHJvdG9QAVo9Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Jlc291cmNlcy92MTtyZXNvdXJjZXN2MaICA1JYWKoCFU1lc3NhZ2VzLlJlc291cmNlcy5WMcoCDFJlc291cmNlc1xWMeICGFJlc291cmNlc1xWMVxHUEJNZXRhZGF0YeoCDVJlc291cmNlczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
16
+
17
+ /**
18
+ * @generated from message resources.v1.MarkerDefinition
19
+ */
20
+ export type MarkerDefinition = Message<"resources.v1.MarkerDefinition"> & {
21
+ /**
22
+ * @generated from field: string id = 1;
23
+ */
24
+ id: string;
25
+
26
+ /**
27
+ * @generated from field: string name = 2;
28
+ */
29
+ name: string;
30
+
31
+ /**
32
+ * @generated from field: string icon = 3;
33
+ */
34
+ icon: string;
35
+
36
+ /**
37
+ * @generated from field: string description = 4;
38
+ */
39
+ description: string;
40
+
41
+ /**
42
+ * Text on the physical marker (QR-code)
43
+ *
44
+ * @generated from field: string marker_text = 5;
45
+ */
46
+ markerText: string;
47
+
48
+ /**
49
+ * @generated from field: resources.v1.MarkerType type = 6;
50
+ */
51
+ type: MarkerType;
52
+
53
+ /**
54
+ * If true, the user must confirm that he/she want to instantiate the environment(s) associated with this marker.
55
+ *
56
+ * @generated from field: bool confirm_instantiate = 7;
57
+ */
58
+ confirmInstantiate: boolean;
59
+ };
60
+
61
+ /**
62
+ * Describes the message resources.v1.MarkerDefinition.
63
+ * Use `create(MarkerDefinitionSchema)` to create a new message.
64
+ */
65
+ export const MarkerDefinitionSchema: GenMessage<MarkerDefinition> = /*@__PURE__*/
66
+ messageDesc(file_resources_v1_marker, 0);
67
+
68
+ /**
69
+ * @generated from message resources.v1.MarkerMessages
70
+ */
71
+ export type MarkerMessages = Message<"resources.v1.MarkerMessages"> & {
72
+ /**
73
+ * @generated from field: repeated resources.v1.MarkerDefinition markers = 1;
74
+ */
75
+ markers: MarkerDefinition[];
76
+ };
77
+
78
+ /**
79
+ * Describes the message resources.v1.MarkerMessages.
80
+ * Use `create(MarkerMessagesSchema)` to create a new message.
81
+ */
82
+ export const MarkerMessagesSchema: GenMessage<MarkerMessages> = /*@__PURE__*/
83
+ messageDesc(file_resources_v1_marker, 1);
84
+
85
+ /**
86
+ * @generated from enum resources.v1.MarkerType
87
+ */
88
+ export enum MarkerType {
89
+ /**
90
+ * @generated from enum value: MARKER_TYPE_UNSPECIFIED = 0;
91
+ */
92
+ UNSPECIFIED = 0,
93
+
94
+ /**
95
+ * @generated from enum value: MARKER_TYPE_QR_CODE = 1;
96
+ */
97
+ QR_CODE = 1,
98
+ }
99
+
100
+ /**
101
+ * Describes the enum resources.v1.MarkerType.
102
+ */
103
+ export const MarkerTypeSchema: GenEnum<MarkerType> = /*@__PURE__*/
104
+ enumDesc(file_resources_v1_marker, 0);
105
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "0.17.8",
3
+ "version": "0.17.10",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [
@@ -1,105 +0,0 @@
1
- // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
- // @generated from file ar/v1/marker.proto (package ar.v1, syntax proto3)
3
- /* eslint-disable */
4
-
5
- import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
- import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
- import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
8
- import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
9
- import type { Message } from "@bufbuild/protobuf";
10
-
11
- /**
12
- * Describes the file ar/v1/marker.proto.
13
- */
14
- export const file_ar_v1_marker: GenFile = /*@__PURE__*/
15
- fileDesc("ChJhci92MS9tYXJrZXIucHJvdG8SBWFyLnYxIsoBCg1NYXJrZXJNZXNzYWdlEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiYKC21hcmtlcl90ZXh0GAUgASgJQhG6SA5yDBACkgIHcm9iZXJ0YRIsCgR0eXBlGAYgASgOMhEuYXIudjEuTWFya2VyVHlwZUILukgIyAEBggECEAESGwoTY29uZmlybV9pbnN0YW50aWF0ZRgHIAEoCCKfAQoOTWFya2VyTWVzc2FnZXMSjAEKB21hcmtlcnMYASADKAsyFC5hci52MS5NYXJrZXJNZXNzYWdlQmW6SGK6AV8KEnVuaXF1ZV9tYXJrZXJfdGV4dBIabWFya2VyIHRleHQgbXVzdCBiZSB1bmlxdWUaLXRoaXMubWFwKG1hcmtlciwgbWFya2VyLm1hcmtlcl90ZXh0KS51bmlxdWUoKSpCCgpNYXJrZXJUeXBlEhsKF01BUktFUl9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VSX1RZUEVfUVJfQ09ERRABQocBCgljb20uYXIudjFCC01hcmtlclByb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
16
-
17
- /**
18
- * @generated from message ar.v1.MarkerMessage
19
- */
20
- export type MarkerMessage = Message<"ar.v1.MarkerMessage"> & {
21
- /**
22
- * @generated from field: string id = 1;
23
- */
24
- id: string;
25
-
26
- /**
27
- * @generated from field: string name = 2;
28
- */
29
- name: string;
30
-
31
- /**
32
- * @generated from field: string icon = 3;
33
- */
34
- icon: string;
35
-
36
- /**
37
- * @generated from field: string description = 4;
38
- */
39
- description: string;
40
-
41
- /**
42
- * Text on the physical marker (QR-code)
43
- *
44
- * @generated from field: string marker_text = 5;
45
- */
46
- markerText: string;
47
-
48
- /**
49
- * @generated from field: ar.v1.MarkerType type = 6;
50
- */
51
- type: MarkerType;
52
-
53
- /**
54
- * If true, the user must confirm that he/she want to instantiate the environment(s) associated with this marker.
55
- *
56
- * @generated from field: bool confirm_instantiate = 7;
57
- */
58
- confirmInstantiate: boolean;
59
- };
60
-
61
- /**
62
- * Describes the message ar.v1.MarkerMessage.
63
- * Use `create(MarkerMessageSchema)` to create a new message.
64
- */
65
- export const MarkerMessageSchema: GenMessage<MarkerMessage> = /*@__PURE__*/
66
- messageDesc(file_ar_v1_marker, 0);
67
-
68
- /**
69
- * @generated from message ar.v1.MarkerMessages
70
- */
71
- export type MarkerMessages = Message<"ar.v1.MarkerMessages"> & {
72
- /**
73
- * @generated from field: repeated ar.v1.MarkerMessage markers = 1;
74
- */
75
- markers: MarkerMessage[];
76
- };
77
-
78
- /**
79
- * Describes the message ar.v1.MarkerMessages.
80
- * Use `create(MarkerMessagesSchema)` to create a new message.
81
- */
82
- export const MarkerMessagesSchema: GenMessage<MarkerMessages> = /*@__PURE__*/
83
- messageDesc(file_ar_v1_marker, 1);
84
-
85
- /**
86
- * @generated from enum ar.v1.MarkerType
87
- */
88
- export enum MarkerType {
89
- /**
90
- * @generated from enum value: MARKER_TYPE_UNSPECIFIED = 0;
91
- */
92
- UNSPECIFIED = 0,
93
-
94
- /**
95
- * @generated from enum value: MARKER_TYPE_QR_CODE = 1;
96
- */
97
- QR_CODE = 1,
98
- }
99
-
100
- /**
101
- * Describes the enum ar.v1.MarkerType.
102
- */
103
- export const MarkerTypeSchema: GenEnum<MarkerType> = /*@__PURE__*/
104
- enumDesc(file_ar_v1_marker, 0);
105
-