@cobotar/protocol 0.17.8 → 0.17.9

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.9
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("Chlhc3NlbWJseS92MS9wcm9kdWN0LnByb3RvEgthc3NlbWJseS52MSI2CgpEaW1lbnNpb25zEgwKBHhfbW0YASABKAESDAoEeV9tbRgCIAEoARIMCgR6X21tGAMgASgBIlwKDE1hdGVyaWFsU3BlYxIvCghjYXRlZ29yeRgBIAEoDjIdLmFzc2VtYmx5LnYxLk1hdGVyaWFsQ2F0ZWdvcnkSDAoEbmFtZRgCIAEoCRINCgVncmFkZRgDIAEoCSLmAQoTUGFydEhhbmRsaW5nUHJvZmlsZRIPCgdmcmFnaWxlGAEgASgIEhUKDWVzZF9zZW5zaXRpdmUYAiABKAgSHgoWcmVxdWlyZXNfdHdvX2hhbmRfbGlmdBgDIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBCABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgFIAEoARIVCg1tYXhfdG9ycXVlX25tGAYgASgBEjQKC2NvbnN0cmFpbnRzGAcgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IqkDCg5QYXJ0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlBhcnRUeXBlEg8KB3N1YnR5cGUYBiABKAkSEAoId2VpZ2h0X2cYByABKAMSKwoKZGltZW5zaW9ucxgIIAEoCzIXLmFzc2VtYmx5LnYxLkRpbWVuc2lvbnMSKwoIbWF0ZXJpYWwYCSABKAsyGS5hc3NlbWJseS52MS5NYXRlcmlhbFNwZWMSGAoQZGVmYXVsdF9tb2RlbF9pZBgKIAEoCRIyCghoYW5kbGluZxgLIAEoCzIgLmFzc2VtYmx5LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgMIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgNIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMirAIKEVByb2R1Y3REZWZpbml0aW9uEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIuCgx2YXJpYW50X2F4ZXMYBSADKAsyGC5hc3NlbWJseS52MS5WYXJpYW50QXhpcxIUCgxyb290X25vZGVfaWQYBiABKAkSKAoFbm9kZXMYByADKAsyGS5hc3NlbWJseS52MS5Bc3NlbWJseU5vZGUSOwoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgIIAMoCzIeLmFzc2VtYmx5LnYxLkV4dGVybmFsUmVmZXJlbmNlEi0KBmN1c3RvbRgJIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMihgQKDEFzc2VtYmx5Tm9kZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhYKDnBhcmVudF9ub2RlX2lkGAMgASgJEiMKBGtpbmQYBCABKA4yFS5hc3NlbWJseS52MS5Ob2RlS2luZBIaChJwYXJ0X2RlZmluaXRpb25faWQYBSABKAkSGQoRb3ZlcnJpZGVfbW9kZWxfaWQYBiABKAkSJQoKbG9jYWxfcG9zZRgHIAEoCzIRLmdlb21ldHJ5LnYxLlBvc2USFQoNc2VxdWVuY2VfaGludBgJIAEoBRIbChNjYWRfb2NjdXJyZW5jZV9wYXRoGAogASgJEjEKEGpvaW5fbWV0aG9kX2hpbnQYCyABKA4yFy5hc3NlbWJseS52MS5Kb2luTWV0aG9kEjEKE2luc2VydGlvbl9heGlzX2hpbnQYDCABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjUKF3ByZWZlcnJlZF9hcHByb2FjaF9oaW50GA0gASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxIQCghvcHRpb25hbBgOIAEoCBIvCg1hcHBsaWNhYmlsaXR5GA8gAygLMhguYXNzZW1ibHkudjEuVmFyaWFudFJ1bGUSLQoGY3VzdG9tGBAgASgLMh0uYXNzZW1ibHkudjEuQ3VzdG9tUHJvcGVydGllcyI9Cg9QYXJ0RGVmaW5pdGlvbnMSKgoFaXRlbXMYASADKAsyGy5hc3NlbWJseS52MS5QYXJ0RGVmaW5pdGlvbiJDChJQcm9kdWN0RGVmaW5pdGlvbnMSLQoFaXRlbXMYASADKAsyHi5hc3NlbWJseS52MS5Qcm9kdWN0RGVmaW5pdGlvbirLAgoIUGFydFR5cGUSGQoVUEFSVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTUEFSVF9UWVBFX0NPTVBPTkVOVBABEhYKElBBUlRfVFlQRV9GQVNURU5FUhACEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRADEhgKFFBBUlRfVFlQRV9DT05TVU1BQkxFEAQSEwoPUEFSVF9UWVBFX0xBQkVMEAUSFwoTUEFSVF9UWVBFX1BBQ0tBR0lORxAGEhEKDVBBUlRfVFlQRV9QQ0IQBxIiCh5QQVJUX1RZUEVfRUxFQ1RST05JQ19DT01QT05FTlQQCBIiCh5QQVJUX1RZUEVfRUxFQ1RSSUNBTF9DT01QT05FTlQQCRITCg9QQVJUX1RZUEVfQ0FCTEUQChIgChxQQVJUX1RZUEVfRElTUEVOU0VEX01BVEVSSUFMEAsqlgEKCE5vZGVLaW5kEhkKFU5PREVfS0lORF9VTlNQRUNJRklFRBAAEhMKD05PREVfS0lORF9HUk9VUBABEh0KGU5PREVfS0lORF9QQVJUX09DQ1VSUkVOQ0UQAhIkCiBOT0RFX0tJTkRfU1VCQVNTRU1CTFlfT0NDVVJSRU5DRRADEhUKEU5PREVfS0lORF9QQVRURVJOEAQq0wEKCkpvaW5NZXRob2QSGwoXSk9JTl9NRVRIT0RfVU5TUEVDSUZJRUQQABIUChBKT0lOX01FVEhPRF9OT05FEAESFgoSSk9JTl9NRVRIT0RfRkFTVEVOEAISGQoVSk9JTl9NRVRIT0RfUFJFU1NfRklUEAMSGAoUSk9JTl9NRVRIT0RfU05BUF9GSVQQBBIYChRKT0lOX01FVEhPRF9BREhFU0lWRRAFEhQKEEpPSU5fTUVUSE9EX1dFTEQQBhIVChFKT0lOX01FVEhPRF9QTEFDRRAHKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKD2NvbS5hc3NlbWJseS52MUIMUHJvZHVjdFByb3RvUAFaO2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hc3NlbWJseS92MTthc3NlbWJseXYxogIDQVhYqgIUTWVzc2FnZXMuQXNzZW1ibHkuVjHKAgtBc3NlbWJseVxWMeICF0Fzc2VtYmx5XFYxXEdQQk1ldGFkYXRh6gIMQXNzZW1ibHk6OlYxYgZwcm90bzM", [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
  */
@@ -344,13 +325,8 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
344
325
  localPose?: Pose;
345
326
 
346
327
  /**
347
- * Children of this node, their parent_node_id must be set to this.id
328
+ * repeated string child_node_ids = 8; // Children of this node, their parent_node_id must be set to this.id
348
329
  *
349
- * @generated from field: repeated string child_node_ids = 8;
350
- */
351
- childNodeIds: string[];
352
-
353
- /**
354
330
  * @generated from field: int32 sequence_hint = 9;
355
331
  */
356
332
  sequenceHint: number;
@@ -383,9 +359,11 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
383
359
  optional: boolean;
384
360
 
385
361
  /**
386
- * @generated from field: repeated assembly.v1.VariantCondition applicability = 15;
362
+ * Applies if any rule matches. Empty means always applicable.
363
+ *
364
+ * @generated from field: repeated assembly.v1.VariantRule applicability = 15;
387
365
  */
388
- applicability: VariantCondition[];
366
+ applicability: VariantRule[];
389
367
 
390
368
  /**
391
369
  * 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 +378,7 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
400
378
  * Use `create(AssemblyNodeSchema)` to create a new message.
401
379
  */
402
380
  export const AssemblyNodeSchema: GenMessage<AssemblyNode> = /*@__PURE__*/
403
- messageDesc(file_assembly_v1_product, 6);
381
+ messageDesc(file_assembly_v1_product, 5);
404
382
 
405
383
  /**
406
384
  * @generated from message assembly.v1.PartDefinitions
@@ -417,7 +395,7 @@ export type PartDefinitions = Message<"assembly.v1.PartDefinitions"> & {
417
395
  * Use `create(PartDefinitionsSchema)` to create a new message.
418
396
  */
419
397
  export const PartDefinitionsSchema: GenMessage<PartDefinitions> = /*@__PURE__*/
420
- messageDesc(file_assembly_v1_product, 7);
398
+ messageDesc(file_assembly_v1_product, 6);
421
399
 
422
400
  /**
423
401
  * @generated from message assembly.v1.ProductDefinitions
@@ -434,7 +412,7 @@ export type ProductDefinitions = Message<"assembly.v1.ProductDefinitions"> & {
434
412
  * Use `create(ProductDefinitionsSchema)` to create a new message.
435
413
  */
436
414
  export const ProductDefinitionsSchema: GenMessage<ProductDefinitions> = /*@__PURE__*/
437
- messageDesc(file_assembly_v1_product, 8);
415
+ messageDesc(file_assembly_v1_product, 7);
438
416
 
439
417
  /**
440
418
  * @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
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "0.17.8",
3
+ "version": "0.17.9",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [