@cobotar/protocol 0.17.7 → 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.7
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("Chlhc3NlbWJseS92MS9wcm9kdWN0LnByb3RvEgthc3NlbWJseS52MSI2CgpEaW1lbnNpb25zEgwKBHhfbW0YASABKAESDAoEeV9tbRgCIAEoARIMCgR6X21tGAMgASgBIlwKDE1hdGVyaWFsU3BlYxIvCghjYXRlZ29yeRgBIAEoDjIdLmFzc2VtYmx5LnYxLk1hdGVyaWFsQ2F0ZWdvcnkSDAoEbmFtZRgCIAEoCRINCgVncmFkZRgDIAEoCSLmAQoTUGFydEhhbmRsaW5nUHJvZmlsZRIPCgdmcmFnaWxlGAEgASgIEhUKDWVzZF9zZW5zaXRpdmUYAiABKAgSHgoWcmVxdWlyZXNfdHdvX2hhbmRfbGlmdBgDIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBCABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgFIAEoARIVCg1tYXhfdG9ycXVlX25tGAYgASgBEjQKC2NvbnN0cmFpbnRzGAcgAygLMh8uYXNzZW1ibHkudjEuS2V5VmFsdWVDb25zdHJhaW50IpgDCg5QYXJ0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSIwoEdHlwZRgFIAEoDjIVLmFzc2VtYmx5LnYxLlBhcnRUeXBlEhAKCHdlaWdodF9nGAYgASgDEisKCmRpbWVuc2lvbnMYByABKAsyFy5hc3NlbWJseS52MS5EaW1lbnNpb25zEisKCG1hdGVyaWFsGAggASgLMhkuYXNzZW1ibHkudjEuTWF0ZXJpYWxTcGVjEhgKEGRlZmF1bHRfbW9kZWxfaWQYCSABKAkSMgoIaGFuZGxpbmcYCiABKAsyIC5hc3NlbWJseS52MS5QYXJ0SGFuZGxpbmdQcm9maWxlEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYCyADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YDCABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIvwBChFQcm9kdWN0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSFAoMcm9vdF9ub2RlX2lkGAUgASgJEigKBW5vZGVzGAYgAygLMhkuYXNzZW1ibHkudjEuQXNzZW1ibHlOb2RlEjsKE2V4dGVybmFsX3JlZmVyZW5jZXMYByADKAsyHi5hc3NlbWJseS52MS5FeHRlcm5hbFJlZmVyZW5jZRItCgZjdXN0b20YCCABKAsyHS5hc3NlbWJseS52MS5DdXN0b21Qcm9wZXJ0aWVzIjUKEFZhcmlhbnRDb25kaXRpb24SEQoJZGltZW5zaW9uGAEgASgJEg4KBnZhbHVlcxgCIAMoCSKjBAoMQXNzZW1ibHlOb2RlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFgoOcGFyZW50X25vZGVfaWQYAyABKAkSIwoEa2luZBgEIAEoDjIVLmFzc2VtYmx5LnYxLk5vZGVLaW5kEhoKEnBhcnRfZGVmaW5pdGlvbl9pZBgFIAEoCRIZChFvdmVycmlkZV9tb2RlbF9pZBgGIAEoCRIlCgpsb2NhbF9wb3NlGAcgASgLMhEuZ2VvbWV0cnkudjEuUG9zZRIWCg5jaGlsZF9ub2RlX2lkcxgIIAMoCRIVCg1zZXF1ZW5jZV9oaW50GAkgASgFEhsKE2NhZF9vY2N1cnJlbmNlX3BhdGgYCiABKAkSMQoQam9pbl9tZXRob2RfaGludBgLIAEoDjIXLmFzc2VtYmx5LnYxLkpvaW5NZXRob2QSMQoTaW5zZXJ0aW9uX2F4aXNfaGludBgMIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSNQoXcHJlZmVycmVkX2FwcHJvYWNoX2hpbnQYDSABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEhAKCG9wdGlvbmFsGA4gASgIEjQKDWFwcGxpY2FiaWxpdHkYDyADKAsyHS5hc3NlbWJseS52MS5WYXJpYW50Q29uZGl0aW9uEi0KBmN1c3RvbRgQIAEoCzIdLmFzc2VtYmx5LnYxLkN1c3RvbVByb3BlcnRpZXMiPQoPUGFydERlZmluaXRpb25zEioKBWl0ZW1zGAEgAygLMhsuYXNzZW1ibHkudjEuUGFydERlZmluaXRpb24iQwoSUHJvZHVjdERlZmluaXRpb25zEi0KBWl0ZW1zGAEgAygLMh4uYXNzZW1ibHkudjEuUHJvZHVjdERlZmluaXRpb24quQEKCFBhcnRUeXBlEhkKFVBBUlRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1BBUlRfVFlQRV9DT01QT05FTlQQARIWChJQQVJUX1RZUEVfRkFTVEVORVIQAhIZChVQQVJUX1RZUEVfU1VCQVNTRU1CTFkQAxIYChRQQVJUX1RZUEVfQ09OU1VNQUJMRRAEEhMKD1BBUlRfVFlQRV9MQUJFTBAFEhcKE1BBUlRfVFlQRV9QQUNLQUdJTkcQBiqWAQoITm9kZUtpbmQSGQoVTk9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASEwoPTk9ERV9LSU5EX0dST1VQEAESHQoZTk9ERV9LSU5EX1BBUlRfT0NDVVJSRU5DRRACEiQKIE5PREVfS0lORF9TVUJBU1NFTUJMWV9PQ0NVUlJFTkNFEAMSFQoRTk9ERV9LSU5EX1BBVFRFUk4QBCrTAQoKSm9pbk1ldGhvZBIbChdKT0lOX01FVEhPRF9VTlNQRUNJRklFRBAAEhQKEEpPSU5fTUVUSE9EX05PTkUQARIWChJKT0lOX01FVEhPRF9GQVNURU4QAhIZChVKT0lOX01FVEhPRF9QUkVTU19GSVQQAxIYChRKT0lOX01FVEhPRF9TTkFQX0ZJVBAEEhgKFEpPSU5fTUVUSE9EX0FESEVTSVZFEAUSFAoQSk9JTl9NRVRIT0RfV0VMRBAGEhUKEUpPSU5fTUVUSE9EX1BMQUNFEAcqxAIKEE1hdGVyaWFsQ2F0ZWdvcnkSIQodTUFURVJJQUxfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIbChdNQVRFUklBTF9DQVRFR09SWV9NRVRBTBABEh0KGU1BVEVSSUFMX0NBVEVHT1JZX1BPTFlNRVIQAhIfChtNQVRFUklBTF9DQVRFR09SWV9FTEFTVE9NRVIQAxIfChtNQVRFUklBTF9DQVRFR09SWV9DT01QT1NJVEUQBBIdChlNQVRFUklBTF9DQVRFR09SWV9DRVJBTUlDEAUSGwoXTUFURVJJQUxfQ0FURUdPUllfR0xBU1MQBhIaChZNQVRFUklBTF9DQVRFR09SWV9XT09EEAcSGgoWTUFURVJJQUxfQ0FURUdPUllfRk9BTRAIEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEAlCsgEKD2NvbS5hc3NlbWJseS52MUIMUHJvZHVjdFByb3RvUAFaO2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hc3NlbWJseS92MTthc3NlbWJseXYxogIDQVhYqgIUTWVzc2FnZXMuQXNzZW1ibHkuVjHKAgtBc3NlbWJseVxWMeICF0Fzc2VtYmx5XFYxXEdQQk1ldGFkYXRh6gIMQXNzZW1ibHk6OlYxYgZwcm90bzM", [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
@@ -69,7 +71,7 @@ export type MaterialSpec = Message<"assembly.v1.MaterialSpec"> & {
69
71
  category: MaterialCategory;
70
72
 
71
73
  /**
72
- * Material family, e.g. aluminium, steel, ABS
74
+ * Material family, e.g. aluminium, steel, ABS, FR-4, epoxy adhesive
73
75
  *
74
76
  * @generated from field: string name = 2;
75
77
  */
@@ -164,44 +166,53 @@ export type PartDefinition = Message<"assembly.v1.PartDefinition"> & {
164
166
  description: string;
165
167
 
166
168
  /**
169
+ * Broad functional/BOM classification of the part
170
+ *
167
171
  * @generated from field: assembly.v1.PartType type = 5;
168
172
  */
169
173
  type: PartType;
170
174
 
171
175
  /**
172
- * @generated from field: int64 weight_g = 6;
176
+ * Optional finer-grained classification, e.g. led, resistor, battery, circuit_breaker, wire_harness, grease
177
+ *
178
+ * @generated from field: string subtype = 6;
179
+ */
180
+ subtype: string;
181
+
182
+ /**
183
+ * @generated from field: int64 weight_g = 7;
173
184
  */
174
185
  weightG: bigint;
175
186
 
176
187
  /**
177
- * @generated from field: assembly.v1.Dimensions dimensions = 7;
188
+ * @generated from field: assembly.v1.Dimensions dimensions = 8;
178
189
  */
179
190
  dimensions?: Dimensions;
180
191
 
181
192
  /**
182
- * @generated from field: assembly.v1.MaterialSpec material = 8;
193
+ * @generated from field: assembly.v1.MaterialSpec material = 9;
183
194
  */
184
195
  material?: MaterialSpec;
185
196
 
186
197
  /**
187
198
  * Can later be extended to: CAD model (STEP), AR model (FBX), and lightweight mesh (OBJ)
188
199
  *
189
- * @generated from field: string default_model_id = 9;
200
+ * @generated from field: string default_model_id = 10;
190
201
  */
191
202
  defaultModelId: string;
192
203
 
193
204
  /**
194
- * @generated from field: assembly.v1.PartHandlingProfile handling = 10;
205
+ * @generated from field: assembly.v1.PartHandlingProfile handling = 11;
195
206
  */
196
207
  handling?: PartHandlingProfile;
197
208
 
198
209
  /**
199
- * @generated from field: repeated assembly.v1.ExternalReference external_references = 11;
210
+ * @generated from field: repeated assembly.v1.ExternalReference external_references = 12;
200
211
  */
201
212
  externalReferences: ExternalReference[];
202
213
 
203
214
  /**
204
- * @generated from field: assembly.v1.CustomProperties custom = 12;
215
+ * @generated from field: assembly.v1.CustomProperties custom = 13;
205
216
  */
206
217
  custom?: CustomProperties;
207
218
  };
@@ -238,22 +249,27 @@ export type ProductDefinition = Message<"assembly.v1.ProductDefinition"> & {
238
249
  description: string;
239
250
 
240
251
  /**
241
- * @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;
242
258
  */
243
259
  rootNodeId: string;
244
260
 
245
261
  /**
246
- * @generated from field: repeated assembly.v1.AssemblyNode nodes = 6;
262
+ * @generated from field: repeated assembly.v1.AssemblyNode nodes = 7;
247
263
  */
248
264
  nodes: AssemblyNode[];
249
265
 
250
266
  /**
251
- * @generated from field: repeated assembly.v1.ExternalReference external_references = 7;
267
+ * @generated from field: repeated assembly.v1.ExternalReference external_references = 8;
252
268
  */
253
269
  externalReferences: ExternalReference[];
254
270
 
255
271
  /**
256
- * @generated from field: assembly.v1.CustomProperties custom = 8;
272
+ * @generated from field: assembly.v1.CustomProperties custom = 9;
257
273
  */
258
274
  custom?: CustomProperties;
259
275
  };
@@ -265,32 +281,6 @@ export type ProductDefinition = Message<"assembly.v1.ProductDefinition"> & {
265
281
  export const ProductDefinitionSchema: GenMessage<ProductDefinition> = /*@__PURE__*/
266
282
  messageDesc(file_assembly_v1_product, 4);
267
283
 
268
- /**
269
- * @generated from message assembly.v1.VariantCondition
270
- */
271
- export type VariantCondition = Message<"assembly.v1.VariantCondition"> & {
272
- /**
273
- * e.g. "hinge_side"
274
- *
275
- * @generated from field: string dimension = 1;
276
- */
277
- dimension: string;
278
-
279
- /**
280
- * e.g. ["left"]
281
- *
282
- * @generated from field: repeated string values = 2;
283
- */
284
- values: string[];
285
- };
286
-
287
- /**
288
- * Describes the message assembly.v1.VariantCondition.
289
- * Use `create(VariantConditionSchema)` to create a new message.
290
- */
291
- export const VariantConditionSchema: GenMessage<VariantCondition> = /*@__PURE__*/
292
- messageDesc(file_assembly_v1_product, 5);
293
-
294
284
  /**
295
285
  * @generated from message assembly.v1.AssemblyNode
296
286
  */
@@ -335,13 +325,8 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
335
325
  localPose?: Pose;
336
326
 
337
327
  /**
338
- * 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
339
329
  *
340
- * @generated from field: repeated string child_node_ids = 8;
341
- */
342
- childNodeIds: string[];
343
-
344
- /**
345
330
  * @generated from field: int32 sequence_hint = 9;
346
331
  */
347
332
  sequenceHint: number;
@@ -374,9 +359,11 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
374
359
  optional: boolean;
375
360
 
376
361
  /**
377
- * @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;
378
365
  */
379
- applicability: VariantCondition[];
366
+ applicability: VariantRule[];
380
367
 
381
368
  /**
382
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
@@ -391,7 +378,7 @@ export type AssemblyNode = Message<"assembly.v1.AssemblyNode"> & {
391
378
  * Use `create(AssemblyNodeSchema)` to create a new message.
392
379
  */
393
380
  export const AssemblyNodeSchema: GenMessage<AssemblyNode> = /*@__PURE__*/
394
- messageDesc(file_assembly_v1_product, 6);
381
+ messageDesc(file_assembly_v1_product, 5);
395
382
 
396
383
  /**
397
384
  * @generated from message assembly.v1.PartDefinitions
@@ -408,7 +395,7 @@ export type PartDefinitions = Message<"assembly.v1.PartDefinitions"> & {
408
395
  * Use `create(PartDefinitionsSchema)` to create a new message.
409
396
  */
410
397
  export const PartDefinitionsSchema: GenMessage<PartDefinitions> = /*@__PURE__*/
411
- messageDesc(file_assembly_v1_product, 7);
398
+ messageDesc(file_assembly_v1_product, 6);
412
399
 
413
400
  /**
414
401
  * @generated from message assembly.v1.ProductDefinitions
@@ -425,7 +412,7 @@ export type ProductDefinitions = Message<"assembly.v1.ProductDefinitions"> & {
425
412
  * Use `create(ProductDefinitionsSchema)` to create a new message.
426
413
  */
427
414
  export const ProductDefinitionsSchema: GenMessage<ProductDefinitions> = /*@__PURE__*/
428
- messageDesc(file_assembly_v1_product, 8);
415
+ messageDesc(file_assembly_v1_product, 7);
429
416
 
430
417
  /**
431
418
  * @generated from enum assembly.v1.PartType
@@ -437,34 +424,81 @@ export enum PartType {
437
424
  UNSPECIFIED = 0,
438
425
 
439
426
  /**
427
+ * General mechanical or non-specialized part/component
428
+ *
440
429
  * @generated from enum value: PART_TYPE_COMPONENT = 1;
441
430
  */
442
431
  COMPONENT = 1,
443
432
 
444
433
  /**
434
+ * Screw, bolt, nut, washer, rivet, insert, clip, etc.
435
+ *
445
436
  * @generated from enum value: PART_TYPE_FASTENER = 2;
446
437
  */
447
438
  FASTENER = 2,
448
439
 
449
440
  /**
441
+ * A part that is itself composed of multiple child parts
442
+ *
450
443
  * @generated from enum value: PART_TYPE_SUBASSEMBLY = 3;
451
444
  */
452
445
  SUBASSEMBLY = 3,
453
446
 
454
447
  /**
448
+ * General consumable used up during assembly or maintenance
449
+ *
455
450
  * @generated from enum value: PART_TYPE_CONSUMABLE = 4;
456
451
  */
457
452
  CONSUMABLE = 4,
458
453
 
459
454
  /**
455
+ * Sticker, rating plate, barcode label, warning label, etc.
456
+ *
460
457
  * @generated from enum value: PART_TYPE_LABEL = 5;
461
458
  */
462
459
  LABEL = 5,
463
460
 
464
461
  /**
462
+ * Box, bag, foam insert, tray cover, spacer, etc.
463
+ *
465
464
  * @generated from enum value: PART_TYPE_PACKAGING = 6;
466
465
  */
467
466
  PACKAGING = 6,
467
+
468
+ /**
469
+ * Bare or populated printed circuit board
470
+ *
471
+ * @generated from enum value: PART_TYPE_PCB = 7;
472
+ */
473
+ PCB = 7,
474
+
475
+ /**
476
+ * LED, resistor, capacitor, IC, connector, relay, fuse, etc.
477
+ *
478
+ * @generated from enum value: PART_TYPE_ELECTRONIC_COMPONENT = 8;
479
+ */
480
+ ELECTRONIC_COMPONENT = 8,
481
+
482
+ /**
483
+ * Breaker, terminal block, battery, switch, power supply, wire harness, etc.
484
+ *
485
+ * @generated from enum value: PART_TYPE_ELECTRICAL_COMPONENT = 9;
486
+ */
487
+ ELECTRICAL_COMPONENT = 9,
488
+
489
+ /**
490
+ * Wire, cable, wire set, cable assembly, harness
491
+ *
492
+ * @generated from enum value: PART_TYPE_CABLE = 10;
493
+ */
494
+ CABLE = 10,
495
+
496
+ /**
497
+ * Grease, glue, sealant, potting compound, solder paste, flux, etc.
498
+ *
499
+ * @generated from enum value: PART_TYPE_DISPENSED_MATERIAL = 11;
500
+ */
501
+ DISPENSED_MATERIAL = 11,
468
502
  }
469
503
 
470
504
  /**
@@ -640,12 +674,26 @@ export enum MaterialCategory {
640
674
  */
641
675
  FOAM = 8,
642
676
 
677
+ /**
678
+ * PCB substrate materials such as FR-4, polyimide, CEM-1, ceramic PCB
679
+ *
680
+ * @generated from enum value: MATERIAL_CATEGORY_ELECTRONICS_SUBSTRATE = 9;
681
+ */
682
+ ELECTRONICS_SUBSTRATE = 9,
683
+
684
+ /**
685
+ * Adhesive, grease, sealant, potting compound, coating, flux, etc.
686
+ *
687
+ * @generated from enum value: MATERIAL_CATEGORY_CHEMICAL = 10;
688
+ */
689
+ CHEMICAL = 10,
690
+
643
691
  /**
644
692
  * Anything not fitting the categories above
645
693
  *
646
- * @generated from enum value: MATERIAL_CATEGORY_OTHER = 9;
694
+ * @generated from enum value: MATERIAL_CATEGORY_OTHER = 99;
647
695
  */
648
- OTHER = 9,
696
+ OTHER = 99,
649
697
  }
650
698
 
651
699
  /**
@@ -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.7",
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": [