@cobotar/protocol 0.21.2 → 0.21.4

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.21.2
4
+ Current version: 0.21.4
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -12,15 +12,88 @@ import type { Message } from "@bufbuild/protobuf";
12
12
  * Describes the file ar/v1/input_slot.proto.
13
13
  */
14
14
  export const file_ar_v1_input_slot: GenFile = /*@__PURE__*/
15
- fileDesc("ChZhci92MS9pbnB1dF9zbG90LnByb3RvEgVhci52MSLjAgoSQVJJbnB1dFNsb3RNZXNzYWdlEhUKAmlkGAEgASgJQgm6SAZyBPjrMAESHwoJY29uZmlnX2lkGAIgASgJQgy6SAnIAQFyBJDxBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSEAoIcmVxdWlyZWQYBiABKAgSKwoVZ2VuZXJhdGVkX3Byb3BlcnR5X2lkGAcgASgJQgy6SAnIAQFyBJjxBAESOgoNcmVzb3VyY2VfdHlwZRgIIAEoDjIZLmFyLnYxLkFSUmVzb3VyY2VTbG90VHlwZUIIukgFggECEAESOAoMY29udGV4dF90eXBlGAkgASgOMhguYXIudjEuQVJDb250ZXh0U2xvdFR5cGVCCLpIBYIBAhABOiS6SCEiHwoNcmVzb3VyY2VfdHlwZQoMY29udGV4dF90eXBlEAEiPwoTQVJJbnB1dFNsb3RNZXNzYWdlcxIoCgVzbG90cxgBIAMoCzIZLmFyLnYxLkFSSW5wdXRTbG90TWVzc2FnZSLvAwoVQVJJbnB1dFNsb3RBZGRNZXNzYWdlEh8KCWNvbmZpZ19pZBgBIAEoCUIMukgJyAEBcgSQ8QQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhAKCHJlcXVpcmVkGAUgASgIEjoKDXJlc291cmNlX3R5cGUYCCABKA4yGS5hci52MS5BUlJlc291cmNlU2xvdFR5cGVCCLpIBYIBAhABEjgKDGNvbnRleHRfdHlwZRgJIAEoDjIYLmFyLnYxLkFSQ29udGV4dFNsb3RUeXBlQgi6SAWCAQIQATrwAbpI7AEa6QEKJ2FyX2lucHV0X3Nsb3RfYWRkLmV4YWN0bHlfb25lX3Nsb3Rfa2luZBJSZXhhY3RseSBvbmUgb2YgcmVzb3VyY2VfdHlwZSBvciBjb250ZXh0X3R5cGUgbXVzdCBiZSBzcGVjaWZpZWQgYW5kIG5vbi1VTlNQRUNJRklFRBpqKHRoaXMucmVzb3VyY2VfdHlwZSA9PSAwICYmIHRoaXMuY29udGV4dF90eXBlICE9IDApIHx8ICh0aGlzLnJlc291cmNlX3R5cGUgIT0gMCAmJiB0aGlzLmNvbnRleHRfdHlwZSA9PSAwKSKRAQoYQVJJbnB1dFNsb3RVcGRhdGVNZXNzYWdlEhUKAmlkGAEgASgJQgm6SAZyBPjrMAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSFQoIcmVxdWlyZWQYBSABKAhIAIgBAUILCglfcmVxdWlyZWQiNAoYQVJJbnB1dFNsb3REZWxldGVNZXNzYWdlEhgKAmlkGAEgASgJQgy6SAnIAQFyBPjrMAEqfQoSQVJSZXNvdXJjZVNsb3RUeXBlEiUKIUFSX1JFU09VUkNFX1NMT1RfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0FSX1JFU09VUkNFX1NMT1RfVFlQRV9ST0JPVBABEh8KG0FSX1JFU09VUkNFX1NMT1RfVFlQRV9BU1NFVBACKr8CChFBUkNvbnRleHRTbG90VHlwZRIkCiBBUl9DT05URVhUX1NMT1RfVFlQRV9VTlNQRUNJRklFRBAAEiAKHEFSX0NPTlRFWFRfU0xPVF9UWVBFX0xJTkVfSUQQARIgChxBUl9DT05URVhUX1NMT1RfVFlQRV9DRUxMX0lEEAISIwofQVJfQ09OVEVYVF9TTE9UX1RZUEVfU1RBVElPTl9JRBADEiIKHkFSX0NPTlRFWFRfU0xPVF9UWVBFX1dPUktFUl9JRBAEEicKI0FSX0NPTlRFWFRfU0xPVF9UWVBFX1BST0NFU1NfUlVOX0lEEAUSKAokQVJfQ09OVEVYVF9TTE9UX1RZUEVfU0VRVUVOQ0VfUlVOX0lEEAYSJAogQVJfQ09OVEVYVF9TTE9UX1RZUEVfVEFTS19SVU5fSUQQB0KKAQoJY29tLmFyLnYxQg5JbnB1dFNsb3RQcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
15
+ fileDesc("ChZhci92MS9pbnB1dF9zbG90LnByb3RvEgVhci52MSJ5Cg9BUkFjdG9yU2VsZWN0b3ISFgoOY3VycmVudF93b3JrZXIYASABKAgSIwoQcmVzb3VyY2Vfc2xvdF9pZBgCIAEoCUIJukgGcgT46zABOim6SCYiJAoOY3VycmVudF93b3JrZXIKEHJlc291cmNlX3Nsb3RfaWQQASJ8ChRBUlJ1bkNvbnRleHRTZWxlY3RvchI1CglzZWxlY3Rpb24YASABKA4yFS5hci52MS5BUlJ1blNlbGVjdGlvbkILukgIyAEBggECEAESLQoFYWN0b3IYAiABKAsyFi5hci52MS5BUkFjdG9yU2VsZWN0b3JCBrpIA8gBASLKCAoSQVJJbnB1dFNsb3RNZXNzYWdlEhUKAmlkGAEgASgJQgm6SAZyBPjrMAESHwoJY29uZmlnX2lkGAIgASgJQgy6SAnIAQFyBJDxBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSEAoIcmVxdWlyZWQYBiABKAgSKwoVZ2VuZXJhdGVkX3Byb3BlcnR5X2lkGAcgASgJQgy6SAnIAQFyBJjxBAESOgoNcmVzb3VyY2VfdHlwZRgIIAEoDjIZLmFyLnYxLkFSUmVzb3VyY2VTbG90VHlwZUIIukgFggECEAESOAoMY29udGV4dF90eXBlGAkgASgOMhguYXIudjEuQVJDb250ZXh0U2xvdFR5cGVCCLpIBYIBAhABEjEKDHJ1bl9zZWxlY3RvchgKIAEoCzIbLmFyLnYxLkFSUnVuQ29udGV4dFNlbGVjdG9yOtcFukjTBRqdAgorYXJfaW5wdXRfc2xvdC5lcnJvcl9zZWxlY3Rpb25fcmVxdWlyZXNfdGFzaxIsRklSU1RfSU5fRVJST1IgaXMgb25seSB2YWxpZCBmb3IgVEFTS19SVU5fSUQavwEhaGFzKHRoaXMucnVuX3NlbGVjdG9yKSB8fCB0aGlzLnJ1bl9zZWxlY3Rvci5zZWxlY3Rpb24gIT0gYXIudjEuQVJSdW5TZWxlY3Rpb24uQVJfUlVOX1NFTEVDVElPTl9GSVJTVF9JTl9FUlJPUiB8fCB0aGlzLmNvbnRleHRfdHlwZSA9PSBhci52MS5BUkNvbnRleHRTbG90VHlwZS5BUl9DT05URVhUX1NMT1RfVFlQRV9UQVNLX1JVTl9JRBqPAwovYXJfaW5wdXRfc2xvdC5ydW5fc2VsZWN0b3JfbWF0Y2hlc19jb250ZXh0X3R5cGUSR3J1bl9zZWxlY3RvciBpcyByZXF1aXJlZCBmb3IgcnVuIGNvbnRleHQgc2xvdHMgYW5kIHByb2hpYml0ZWQgb3RoZXJ3aXNlGpICKHRoaXMuY29udGV4dF90eXBlID09IGFyLnYxLkFSQ29udGV4dFNsb3RUeXBlLkFSX0NPTlRFWFRfU0xPVF9UWVBFX1BST0NFU1NfUlVOX0lEIHx8IHRoaXMuY29udGV4dF90eXBlID09IGFyLnYxLkFSQ29udGV4dFNsb3RUeXBlLkFSX0NPTlRFWFRfU0xPVF9UWVBFX1NFUVVFTkNFX1JVTl9JRCB8fCB0aGlzLmNvbnRleHRfdHlwZSA9PSBhci52MS5BUkNvbnRleHRTbG90VHlwZS5BUl9DT05URVhUX1NMT1RfVFlQRV9UQVNLX1JVTl9JRCkgPT0gaGFzKHRoaXMucnVuX3NlbGVjdG9yKSIfCg1yZXNvdXJjZV90eXBlCgxjb250ZXh0X3R5cGUQASI/ChNBUklucHV0U2xvdE1lc3NhZ2VzEigKBXNsb3RzGAEgAygLMhkuYXIudjEuQVJJbnB1dFNsb3RNZXNzYWdlIokIChVBUklucHV0U2xvdEFkZE1lc3NhZ2USHwoJY29uZmlnX2lkGAEgASgJQgy6SAnIAQFyBJDxBAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSOgoNcmVzb3VyY2VfdHlwZRgIIAEoDjIZLmFyLnYxLkFSUmVzb3VyY2VTbG90VHlwZUIIukgFggECEAESOAoMY29udGV4dF90eXBlGAkgASgOMhguYXIudjEuQVJDb250ZXh0U2xvdFR5cGVCCLpIBYIBAhABEjEKDHJ1bl9zZWxlY3RvchgKIAEoCzIbLmFyLnYxLkFSUnVuQ29udGV4dFNlbGVjdG9yOtcFukjTBRqdAgorYXJfaW5wdXRfc2xvdC5lcnJvcl9zZWxlY3Rpb25fcmVxdWlyZXNfdGFzaxIsRklSU1RfSU5fRVJST1IgaXMgb25seSB2YWxpZCBmb3IgVEFTS19SVU5fSUQavwEhaGFzKHRoaXMucnVuX3NlbGVjdG9yKSB8fCB0aGlzLnJ1bl9zZWxlY3Rvci5zZWxlY3Rpb24gIT0gYXIudjEuQVJSdW5TZWxlY3Rpb24uQVJfUlVOX1NFTEVDVElPTl9GSVJTVF9JTl9FUlJPUiB8fCB0aGlzLmNvbnRleHRfdHlwZSA9PSBhci52MS5BUkNvbnRleHRTbG90VHlwZS5BUl9DT05URVhUX1NMT1RfVFlQRV9UQVNLX1JVTl9JRBqPAwovYXJfaW5wdXRfc2xvdC5ydW5fc2VsZWN0b3JfbWF0Y2hlc19jb250ZXh0X3R5cGUSR3J1bl9zZWxlY3RvciBpcyByZXF1aXJlZCBmb3IgcnVuIGNvbnRleHQgc2xvdHMgYW5kIHByb2hpYml0ZWQgb3RoZXJ3aXNlGpICKHRoaXMuY29udGV4dF90eXBlID09IGFyLnYxLkFSQ29udGV4dFNsb3RUeXBlLkFSX0NPTlRFWFRfU0xPVF9UWVBFX1BST0NFU1NfUlVOX0lEIHx8IHRoaXMuY29udGV4dF90eXBlID09IGFyLnYxLkFSQ29udGV4dFNsb3RUeXBlLkFSX0NPTlRFWFRfU0xPVF9UWVBFX1NFUVVFTkNFX1JVTl9JRCB8fCB0aGlzLmNvbnRleHRfdHlwZSA9PSBhci52MS5BUkNvbnRleHRTbG90VHlwZS5BUl9DT05URVhUX1NMT1RfVFlQRV9UQVNLX1JVTl9JRCkgPT0gaGFzKHRoaXMucnVuX3NlbGVjdG9yKSIfCg1yZXNvdXJjZV90eXBlCgxjb250ZXh0X3R5cGUQASLEAQoYQVJJbnB1dFNsb3RVcGRhdGVNZXNzYWdlEhUKAmlkGAEgASgJQgm6SAZyBPjrMAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSFQoIcmVxdWlyZWQYBSABKAhIAIgBARIxCgxydW5fc2VsZWN0b3IYBiABKAsyGy5hci52MS5BUlJ1bkNvbnRleHRTZWxlY3RvckILCglfcmVxdWlyZWQiNAoYQVJJbnB1dFNsb3REZWxldGVNZXNzYWdlEhgKAmlkGAEgASgJQgy6SAnIAQFyBPjrMAEqfQoSQVJSZXNvdXJjZVNsb3RUeXBlEiUKIUFSX1JFU09VUkNFX1NMT1RfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0FSX1JFU09VUkNFX1NMT1RfVFlQRV9ST0JPVBABEh8KG0FSX1JFU09VUkNFX1NMT1RfVFlQRV9BU1NFVBACKr8CChFBUkNvbnRleHRTbG90VHlwZRIkCiBBUl9DT05URVhUX1NMT1RfVFlQRV9VTlNQRUNJRklFRBAAEiAKHEFSX0NPTlRFWFRfU0xPVF9UWVBFX0xJTkVfSUQQARIgChxBUl9DT05URVhUX1NMT1RfVFlQRV9DRUxMX0lEEAISIwofQVJfQ09OVEVYVF9TTE9UX1RZUEVfU1RBVElPTl9JRBADEiIKHkFSX0NPTlRFWFRfU0xPVF9UWVBFX1dPUktFUl9JRBAEEicKI0FSX0NPTlRFWFRfU0xPVF9UWVBFX1BST0NFU1NfUlVOX0lEEAUSKAokQVJfQ09OVEVYVF9TTE9UX1RZUEVfU0VRVUVOQ0VfUlVOX0lEEAYSJAogQVJfQ09OVEVYVF9TTE9UX1RZUEVfVEFTS19SVU5fSUQQByrnAQoOQVJSdW5TZWxlY3Rpb24SIAocQVJfUlVOX1NFTEVDVElPTl9VTlNQRUNJRklFRBAAEiMKH0FSX1JVTl9TRUxFQ1RJT05fRklSU1RfV09SS0FCTEUQARIgChxBUl9SVU5fU0VMRUNUSU9OX0lOX1BST0dSRVNTEAISIgoeQVJfUlVOX1NFTEVDVElPTl9ORVhUX0VYUEVDVEVEEAMSIwofQVJfUlVOX1NFTEVDVElPTl9MQVNUX0NPTVBMRVRFRBAEEiMKH0FSX1JVTl9TRUxFQ1RJT05fRklSU1RfSU5fRVJST1IQBUKKAQoJY29tLmFyLnYxQg5JbnB1dFNsb3RQcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
16
+
17
+ /**
18
+ * ARActorSelector identifies the actor whose tasks are considered by a run
19
+ * selector.
20
+ *
21
+ * @generated from message ar.v1.ARActorSelector
22
+ */
23
+ export type ARActorSelector = Message<"ar.v1.ARActorSelector"> & {
24
+ /**
25
+ * Use the worker authenticated in the current AR application session.
26
+ * Because scalar presence is represented by a non-default value here, this
27
+ * field must be true when selected.
28
+ *
29
+ * @generated from field: bool current_worker = 1;
30
+ */
31
+ currentWorker: boolean;
32
+
33
+ /**
34
+ * Use the robot bound to another ROBOT input slot in the same AR config.
35
+ * The referenced slot must exist and have resource_type ROBOT; this
36
+ * cross-entity constraint must be checked by the application/backend.
37
+ *
38
+ * @generated from field: string resource_slot_id = 2;
39
+ */
40
+ resourceSlotId: string;
41
+ };
42
+
43
+ /**
44
+ * Describes the message ar.v1.ARActorSelector.
45
+ * Use `create(ARActorSelectorSchema)` to create a new message.
46
+ */
47
+ export const ARActorSelectorSchema: GenMessage<ARActorSelector> = /*@__PURE__*/
48
+ messageDesc(file_ar_v1_input_slot, 0);
49
+
50
+ /**
51
+ * ARRunContextSelector selects an actor-related task and projects it to the run
52
+ * ID requested by the owning input slot:
53
+ *
54
+ * - TASK_RUN_ID returns the selected task.
55
+ * - SEQUENCE_RUN_ID returns the selected task's immediate parent sequence.
56
+ * - PROCESS_RUN_ID returns the process containing the selected task.
57
+ *
58
+ * FIRST_IN_ERROR is intentionally limited to TASK_RUN_ID and is not projected
59
+ * to a parent sequence or process.
60
+ *
61
+ * If no task satisfies the policy, resolution produces no value. An optional
62
+ * input slot receives an empty generated property value; a required input slot
63
+ * makes materialization fail.
64
+ *
65
+ * @generated from message ar.v1.ARRunContextSelector
66
+ */
67
+ export type ARRunContextSelector = Message<"ar.v1.ARRunContextSelector"> & {
68
+ /**
69
+ * Policy used to choose a task before projecting it to the requested run ID.
70
+ *
71
+ * @generated from field: ar.v1.ARRunSelection selection = 1;
72
+ */
73
+ selection: ARRunSelection;
74
+
75
+ /**
76
+ * Actor whose tasks are considered.
77
+ *
78
+ * @generated from field: ar.v1.ARActorSelector actor = 2;
79
+ */
80
+ actor?: ARActorSelector;
81
+ };
82
+
83
+ /**
84
+ * Describes the message ar.v1.ARRunContextSelector.
85
+ * Use `create(ARRunContextSelectorSchema)` to create a new message.
86
+ */
87
+ export const ARRunContextSelectorSchema: GenMessage<ARRunContextSelector> = /*@__PURE__*/
88
+ messageDesc(file_ar_v1_input_slot, 1);
16
89
 
17
90
  /**
18
91
  * ARInputSlotMessage is the authoritative config-owned input slot entity for
19
92
  * AR configs.
20
93
  *
21
94
  * The backend is expected to derive and manage generated_property_id from the
22
- * slot identity and source specification. Users should not author or edit the
23
- * generated property directly.
95
+ * slot identity and value kind. Users should not author or edit the generated
96
+ * property directly.
24
97
  *
25
98
  * @generated from message ar.v1.ARInputSlotMessage
26
99
  */
@@ -81,6 +154,13 @@ export type ARInputSlotMessage = Message<"ar.v1.ARInputSlotMessage"> & {
81
154
  * @generated from field: ar.v1.ARContextSlotType context_type = 9;
82
155
  */
83
156
  contextType: ARContextSlotType;
157
+
158
+ /**
159
+ * Required resolution policy for process, sequence, and task run context slots.
160
+ *
161
+ * @generated from field: ar.v1.ARRunContextSelector run_selector = 10;
162
+ */
163
+ runSelector?: ARRunContextSelector;
84
164
  };
85
165
 
86
166
  /**
@@ -88,7 +168,7 @@ export type ARInputSlotMessage = Message<"ar.v1.ARInputSlotMessage"> & {
88
168
  * Use `create(ARInputSlotMessageSchema)` to create a new message.
89
169
  */
90
170
  export const ARInputSlotMessageSchema: GenMessage<ARInputSlotMessage> = /*@__PURE__*/
91
- messageDesc(file_ar_v1_input_slot, 0);
171
+ messageDesc(file_ar_v1_input_slot, 2);
92
172
 
93
173
  /**
94
174
  * @generated from message ar.v1.ARInputSlotMessages
@@ -107,13 +187,14 @@ export type ARInputSlotMessages = Message<"ar.v1.ARInputSlotMessages"> & {
107
187
  * Use `create(ARInputSlotMessagesSchema)` to create a new message.
108
188
  */
109
189
  export const ARInputSlotMessagesSchema: GenMessage<ARInputSlotMessages> = /*@__PURE__*/
110
- messageDesc(file_ar_v1_input_slot, 1);
190
+ messageDesc(file_ar_v1_input_slot, 3);
111
191
 
112
192
  /**
113
193
  * ARInputSlotAddMessage creates a new config-owned input slot.
114
194
  *
115
- * Source specification is treated as identity-shaping for the generated
116
- * property. If the source kind must change later, prefer delete + recreate.
195
+ * The source kind determines the generated property's value kind. If the source
196
+ * kind must change later, prefer delete + recreate. A run selector is a mutable
197
+ * resolution policy and may be changed with ARInputSlotUpdateMessage.
117
198
  *
118
199
  * @generated from message ar.v1.ARInputSlotAddMessage
119
200
  */
@@ -160,6 +241,13 @@ export type ARInputSlotAddMessage = Message<"ar.v1.ARInputSlotAddMessage"> & {
160
241
  * @generated from field: ar.v1.ARContextSlotType context_type = 9;
161
242
  */
162
243
  contextType: ARContextSlotType;
244
+
245
+ /**
246
+ * Required resolution policy for process, sequence, and task run context slots.
247
+ *
248
+ * @generated from field: ar.v1.ARRunContextSelector run_selector = 10;
249
+ */
250
+ runSelector?: ARRunContextSelector;
163
251
  };
164
252
 
165
253
  /**
@@ -167,13 +255,15 @@ export type ARInputSlotAddMessage = Message<"ar.v1.ARInputSlotAddMessage"> & {
167
255
  * Use `create(ARInputSlotAddMessageSchema)` to create a new message.
168
256
  */
169
257
  export const ARInputSlotAddMessageSchema: GenMessage<ARInputSlotAddMessage> = /*@__PURE__*/
170
- messageDesc(file_ar_v1_input_slot, 2);
258
+ messageDesc(file_ar_v1_input_slot, 4);
171
259
 
172
260
  /**
173
- * ARInputSlotUpdateMessage updates the editable metadata of an existing slot.
261
+ * ARInputSlotUpdateMessage updates the editable fields and resolution policy of
262
+ * an existing slot.
174
263
  *
175
- * The source specification and generated_property_id are intentionally not
176
- * updated here. Those should be treated as structural and changed via recreate.
264
+ * The source kind and generated_property_id are intentionally not updated here.
265
+ * Those are structural and should be changed via recreate. The run selector may
266
+ * be updated because it changes resolution policy without changing value type.
177
267
  *
178
268
  * @generated from message ar.v1.ARInputSlotUpdateMessage
179
269
  */
@@ -206,6 +296,13 @@ export type ARInputSlotUpdateMessage = Message<"ar.v1.ARInputSlotUpdateMessage">
206
296
  * @generated from field: optional bool required = 5;
207
297
  */
208
298
  required?: boolean;
299
+
300
+ /**
301
+ * Optional replacement policy; valid only for an existing run-context slot. The backend must load the existing slot and verify that the selector matches its immutable context_type.
302
+ *
303
+ * @generated from field: ar.v1.ARRunContextSelector run_selector = 6;
304
+ */
305
+ runSelector?: ARRunContextSelector;
209
306
  };
210
307
 
211
308
  /**
@@ -213,7 +310,7 @@ export type ARInputSlotUpdateMessage = Message<"ar.v1.ARInputSlotUpdateMessage">
213
310
  * Use `create(ARInputSlotUpdateMessageSchema)` to create a new message.
214
311
  */
215
312
  export const ARInputSlotUpdateMessageSchema: GenMessage<ARInputSlotUpdateMessage> = /*@__PURE__*/
216
- messageDesc(file_ar_v1_input_slot, 3);
313
+ messageDesc(file_ar_v1_input_slot, 5);
217
314
 
218
315
  /**
219
316
  * @generated from message ar.v1.ARInputSlotDeleteMessage
@@ -232,7 +329,7 @@ export type ARInputSlotDeleteMessage = Message<"ar.v1.ARInputSlotDeleteMessage">
232
329
  * Use `create(ARInputSlotDeleteMessageSchema)` to create a new message.
233
330
  */
234
331
  export const ARInputSlotDeleteMessageSchema: GenMessage<ARInputSlotDeleteMessage> = /*@__PURE__*/
235
- messageDesc(file_ar_v1_input_slot, 4);
332
+ messageDesc(file_ar_v1_input_slot, 6);
236
333
 
237
334
  /**
238
335
  * @generated from enum ar.v1.ARResourceSlotType
@@ -278,49 +375,50 @@ export enum ARContextSlotType {
278
375
  AR_CONTEXT_SLOT_TYPE_UNSPECIFIED = 0,
279
376
 
280
377
  /**
281
- * Slot resolves to the active line id.
378
+ * Slot resolves to the line containing the binding target, if known.
282
379
  *
283
380
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_LINE_ID = 1;
284
381
  */
285
382
  AR_CONTEXT_SLOT_TYPE_LINE_ID = 1,
286
383
 
287
384
  /**
288
- * Slot resolves to the active cell id.
385
+ * Slot resolves to the targeted cell or the parent cell of the targeted station.
289
386
  *
290
387
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_CELL_ID = 2;
291
388
  */
292
389
  AR_CONTEXT_SLOT_TYPE_CELL_ID = 2,
293
390
 
294
391
  /**
295
- * Slot resolves to the active station id.
392
+ * Slot resolves to the targeted station. This may be empty for a cell-level
393
+ * binding when no station has been established by the runtime session.
296
394
  *
297
395
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_STATION_ID = 3;
298
396
  */
299
397
  AR_CONTEXT_SLOT_TYPE_STATION_ID = 3,
300
398
 
301
399
  /**
302
- * Slot resolves to the active worker/operator id.
400
+ * Slot resolves to the worker authenticated in the AR application session.
303
401
  *
304
402
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_WORKER_ID = 4;
305
403
  */
306
404
  AR_CONTEXT_SLOT_TYPE_WORKER_ID = 4,
307
405
 
308
406
  /**
309
- * Slot resolves to the active process run id.
407
+ * Slot resolves to a process run id selected by run_selector.
310
408
  *
311
409
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_PROCESS_RUN_ID = 5;
312
410
  */
313
411
  AR_CONTEXT_SLOT_TYPE_PROCESS_RUN_ID = 5,
314
412
 
315
413
  /**
316
- * Slot resolves to the active sequence run id.
414
+ * Slot resolves to a sequence run id selected by run_selector.
317
415
  *
318
416
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_SEQUENCE_RUN_ID = 6;
319
417
  */
320
418
  AR_CONTEXT_SLOT_TYPE_SEQUENCE_RUN_ID = 6,
321
419
 
322
420
  /**
323
- * Slot resolves to the active task run id.
421
+ * Slot resolves to a task run id selected by run_selector.
324
422
  *
325
423
  * @generated from enum value: AR_CONTEXT_SLOT_TYPE_TASK_RUN_ID = 7;
326
424
  */
@@ -333,3 +431,94 @@ export enum ARContextSlotType {
333
431
  export const ARContextSlotTypeSchema: GenEnum<ARContextSlotType> = /*@__PURE__*/
334
432
  enumDesc(file_ar_v1_input_slot, 1);
335
433
 
434
+ /**
435
+ * ARRunSelection defines how an actor-related task candidate is chosen.
436
+ *
437
+ * Candidate tasks are limited to ProcessRuns associated with the station or
438
+ * cell targeted by the resolved ARConfigBindingMessage. Tasks that cannot be
439
+ * assigned to or performed by the selected actor are excluded unless a policy
440
+ * explicitly selects historical or errored work.
441
+ *
442
+ * Unless a policy specifies otherwise, candidate ProcessRuns are ordered by:
443
+ * 1. state precedence: IN_PROGRESS, READY, QUEUED
444
+ * 2. initiated_at ascending
445
+ * 3. id ascending
446
+ *
447
+ * Within each ProcessRun, task order follows ProcessRun.task_run_ids. The
448
+ * runtime must populate that list in canonical execution order. IDs provide a
449
+ * deterministic tie-breaker when a policy otherwise considers candidates
450
+ * equivalent.
451
+ *
452
+ * To summarize
453
+ * • FIRST_WORKABLE: actionable now.
454
+ * • IN_PROGRESS: being performed now.
455
+ * • NEXT_EXPECTED: likely relevant next, but potentially blocked.
456
+ * • LAST_COMPLETED: most recently completed.
457
+ * • FIRST_IN_ERROR: errored task requiring attention.
458
+ *
459
+ * @generated from enum ar.v1.ARRunSelection
460
+ */
461
+ export enum ARRunSelection {
462
+ /**
463
+ * No selection policy specified. Invalid for a stored run selector.
464
+ *
465
+ * @generated from enum value: AR_RUN_SELECTION_UNSPECIFIED = 0;
466
+ */
467
+ AR_RUN_SELECTION_UNSPECIFIED = 0,
468
+
469
+ /**
470
+ * Select the first ordered task that is currently workable for the actor.
471
+ * Workability is determined by runtime assignment, actor feasibility, task
472
+ * state, dependencies, and other effective execution restrictions.
473
+ *
474
+ * @generated from enum value: AR_RUN_SELECTION_FIRST_WORKABLE = 1;
475
+ */
476
+ AR_RUN_SELECTION_FIRST_WORKABLE = 1,
477
+
478
+ /**
479
+ * Select the first ordered IN_PROGRESS task assigned to the actor.
480
+ *
481
+ * @generated from enum value: AR_RUN_SELECTION_IN_PROGRESS = 2;
482
+ */
483
+ AR_RUN_SELECTION_IN_PROGRESS = 2,
484
+
485
+ /**
486
+ * Select the next non-terminal task expected to become relevant to the actor.
487
+ *
488
+ * Resolution:
489
+ * 1. Build the actor's ordered candidate task list.
490
+ * 2. If FIRST_WORKABLE resolves, select the first later non-terminal
491
+ * candidate.
492
+ * 3. Otherwise, select the first candidate expected to become workable after
493
+ * its currently unmet dependencies are completed.
494
+ *
495
+ * The selected task need not currently be workable. Tasks that cannot be
496
+ * assigned to or performed by the actor are excluded.
497
+ *
498
+ * @generated from enum value: AR_RUN_SELECTION_NEXT_EXPECTED = 3;
499
+ */
500
+ AR_RUN_SELECTION_NEXT_EXPECTED = 3,
501
+
502
+ /**
503
+ * Select the actor's completed task with the latest completed_at timestamp.
504
+ * Canonical execution order and then id are used as tie-breakers.
505
+ *
506
+ * @generated from enum value: AR_RUN_SELECTION_LAST_COMPLETED = 4;
507
+ */
508
+ AR_RUN_SELECTION_LAST_COMPLETED = 4,
509
+
510
+ /**
511
+ * Select the first ordered ERROR task associated with the actor.
512
+ * This policy is valid only for TASK_RUN_ID.
513
+ *
514
+ * @generated from enum value: AR_RUN_SELECTION_FIRST_IN_ERROR = 5;
515
+ */
516
+ AR_RUN_SELECTION_FIRST_IN_ERROR = 5,
517
+ }
518
+
519
+ /**
520
+ * Describes the enum ar.v1.ARRunSelection.
521
+ */
522
+ export const ARRunSelectionSchema: GenEnum<ARRunSelection> = /*@__PURE__*/
523
+ enumDesc(file_ar_v1_input_slot, 2);
524
+
@@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
20
20
  * Describes the file common/v1/property.proto.
21
21
  */
22
22
  export const file_common_v1_property: GenFile = /*@__PURE__*/
23
- fileDesc("Chhjb21tb24vdjEvcHJvcGVydHkucHJvdG8SCWNvbW1vbi52MSKGCAoSUHJvcGVydHlEZWZpbml0aW9uEhUKAmlkGAEgASgJQgm6SAZyBJjxBAESEQoJcGFyZW50X2lkGAIgASgJEhcKBG5hbWUYAyABKAlCCbpIBnIEgPEEARIMCgRpY29uGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEjIKBHR5cGUYBiABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIxCgVzY29wZRgHIAEoDjIYLmNvbW1vbi52MS5Qcm9wZXJ0eVNjb3BlQgi6SAWCAQIQARJMChttaW5pbXVtX3JlcXVpcmVkX3Blcm1pc3Npb24YCCABKA4yHS5jb21tb24udjEuUHJvcGVydHlQZXJtaXNzaW9uQgi6SAWCAQIQARJBCg9hbGxvd2VkX29yaWdpbnMYCSADKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CDbpICpIBByIFggECEAESMQoFZ3JvdXAYCiABKA4yGC5jb21tb24udjEuUHJvcGVydHlHcm91cEIIukgFggECEAESEAoIb3JkZXJpbmcYCyABKAUSEgoKaGlkZV9ncm91cBgMIAEoCBIQCghhZHZhbmNlZBgNIAEoCBIZChFkaXNhYmxlX21pcnJvcmluZxgOIAEoCBIuCg1udW1iZXJfZXh0cmFzGCkgASgLMhcuY29tbW9uLnYxLk51bWJlckV4dHJhcxIqCgtlbnVtX2V4dHJhcxgqIAEoCzIVLmNvbW1vbi52MS5FbnVtRXh0cmFzEjAKDnZlY3RvcjNfZXh0cmFzGCsgASgLMhguY29tbW9uLnYxLlZlY3RvcjNFeHRyYXMSLAoMY29sb3JfZXh0cmFzGCwgASgLMhYuY29tbW9uLnYxLkNvbG9yRXh0cmFzEioKC3Bvc2VfZXh0cmFzGC0gASgLMhUuY29tbW9uLnYxLlBvc2VFeHRyYXMSLgoNYW5jaG9yX2V4dHJhcxguIAEoCzIXLmNvbW1vbi52MS5BbmNob3JFeHRyYXM68wG6SO8BGpQBChllbnVtX3JlcXVpcmVzX2VudW1fZXh0cmFzEjdlbnVtX2V4dHJhcyBtdXN0IGJlIHNldCB3aGVuIHR5cGUgaXMgRU5VTSBvciBFTlVNX01VTFRJGj4hKHRoaXMudHlwZSA9PSAxMSB8fCB0aGlzLnR5cGUgPT0gMTIpIHx8IGhhcyh0aGlzLmVudW1fZXh0cmFzKSJWCg1udW1iZXJfZXh0cmFzCgtlbnVtX2V4dHJhcwoOdmVjdG9yM19leHRyYXMKDGNvbG9yX2V4dHJhcwoLcG9zZV9leHRyYXMKDWFuY2hvcl9leHRyYXMiyQMKEFByb3BlcnR5SW5zdGFuY2USFQoCaWQYASABKAlCCbpIBnIEmPMEARIpChZwcm9wZXJ0eV9kZWZpbml0aW9uX2lkGAIgASgJQgm6SAZyBJjxBAESJwoFc2NvcGUYAyABKA4yGC5jb21tb24udjEuUHJvcGVydHlTY29wZRIQCghzY29wZV9pZBgEIAEoCRIzCgZvcmlnaW4YBSABKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CCLpIBYIBAhABEjAKHW1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkGAYgASgJQgm6SAZyBJjxBAESLwoFdmFsdWUYByABKAsyGC5jb21tb24udjEuUHJvcGVydHlWYWx1ZUIGukgDyAEBOp8BukibARqYAQoibWlycm9yX3JlcXVpcmVzX21pcnJvcl9wcm9wZXJ0eV9pZBI0bWlycm9yX3Byb3BlcnR5X2lkIG11c3QgYmUgc2V0IHdoZW4gb3JpZ2luIGlzIE1JUlJPUho8dGhpcy5vcmlnaW4gIT0gMiB8fCB0aGlzLm1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkICE9ICcnIr0NCg1Qcm9wZXJ0eVZhbHVlEjIKBHR5cGUYASABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIXCgpib29sX3ZhbHVlGBUgASgISACIAQESFgoJaW50X3ZhbHVlGBYgASgSSAGIAQESGAoLZmxvYXRfdmFsdWUYFyABKAJIAogBARIZCgxkb3VibGVfdmFsdWUYGCABKAFIA4gBARIZCgxzdHJpbmdfdmFsdWUYGSABKAlIBIgBARIrCg12ZWN0b3IzX3ZhbHVlGBogASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxIuCgpwb3NlX3ZhbHVlGBsgASgLMhouZ2VvbWV0cnkudjEuTG9jYWxpemVkUG9zZRIpCgxhbmNob3JfdmFsdWUYHCABKAsyEy5nZW9tZXRyeS52MS5BbmNob3ISJQoLY29sb3JfdmFsdWUYHSABKAsyEC5jb21tb24udjEuQ29sb3ISGwoOcm9ib3RfaWRfdmFsdWUYHiABKAlIBYgBARIgCgplbnVtX3ZhbHVlGB8gASgJQge6SARyAhABSAaIAQESKAoQZW51bV9tdWx0aV92YWx1ZRggIAMoCUIOukgLkgEICAEiBHICEAESFwoKaWNvbl92YWx1ZRghIAEoCUgHiAEBEhsKDmFzc2V0X2lkX3ZhbHVlGCIgASgJSAiIAQESHAoPd29ya2VyX2lkX3ZhbHVlGCMgASgJSAmIAQE64we6SN8HGoYGCiBwcm9wZXJ0eV90eXBlX21hdGNoZXNfdmFsdWVfa2luZBIndHlwZSBtdXN0IG1hdGNoIHRoZSBraW5kIG9mIHZhbHVlIGZpZWxkGrgFKCh0aGlzLnR5cGUgPT0gMSAmJiBoYXModGhpcy5ib29sX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAyICYmIGhhcyh0aGlzLmludF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMyAmJiBoYXModGhpcy5mbG9hdF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gNCAmJiBoYXModGhpcy5kb3VibGVfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDUgJiYgaGFzKHRoaXMuc3RyaW5nX3ZhbHVlKSkgfHwodGhpcy50eXBlID09IDYgJiYgaGFzKHRoaXMudmVjdG9yM192YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gNyAmJiBoYXModGhpcy5wb3NlX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSA4ICYmIGhhcyh0aGlzLmFuY2hvcl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gOSAmJiBoYXModGhpcy5jb2xvcl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTAgJiYgaGFzKHRoaXMucm9ib3RfaWRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDExICYmIGhhcyh0aGlzLmVudW1fdmFsdWUpKSB8fCh0aGlzLnR5cGUgPT0gMTIgJiYgc2l6ZSh0aGlzLmVudW1fbXVsdGlfdmFsdWUpID4gMCkgfHwgKHRoaXMudHlwZSA9PSAxMyAmJiBoYXModGhpcy5pY29uX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAxNCAmJiBoYXModGhpcy5hc3NldF9pZF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTUgJiYgaGFzKHRoaXMud29ya2VyX2lkX3ZhbHVlKSkpItMBCgpib29sX3ZhbHVlCglpbnRfdmFsdWUKC2Zsb2F0X3ZhbHVlCgxkb3VibGVfdmFsdWUKDHN0cmluZ192YWx1ZQoNdmVjdG9yM192YWx1ZQoKcG9zZV92YWx1ZQoMYW5jaG9yX3ZhbHVlCgtjb2xvcl92YWx1ZQoOcm9ib3RfaWRfdmFsdWUKCmVudW1fdmFsdWUKEGVudW1fbXVsdGlfdmFsdWUKCmljb25fdmFsdWUKDmFzc2V0X2lkX3ZhbHVlCg93b3JrZXJfaWRfdmFsdWUQAUINCgtfYm9vbF92YWx1ZUIMCgpfaW50X3ZhbHVlQg4KDF9mbG9hdF92YWx1ZUIPCg1fZG91YmxlX3ZhbHVlQg8KDV9zdHJpbmdfdmFsdWVCEQoPX3JvYm90X2lkX3ZhbHVlQg0KC19lbnVtX3ZhbHVlQg0KC19pY29uX3ZhbHVlQhEKD19hc3NldF9pZF92YWx1ZUISChBfd29ya2VyX2lkX3ZhbHVlIucDChZQcm9wZXJ0eUluc3RhbmNlVXBkYXRlEicKFHByb3BlcnR5X2luc3RhbmNlX2lkGAEgASgJQgm6SAZyBJjzBAESMwoGb3JpZ2luGAIgASgOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQgi6SAWCAQIQARIwCh1taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgDIAEoCUIJukgGcgSY8QQBEi8KBXZhbHVlGAQgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBATqLArpIhwIaagobZml4ZWRfb3JpZ2luX3JlcXVpcmVzX3ZhbHVlEiZ2YWx1ZSBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBGSVhFRBojdGhpcy5vcmlnaW4gIT0gMSB8fCBoYXModGhpcy52YWx1ZSkamAEKIm1pcnJvcl9yZXF1aXJlc19taXJyb3JfcHJvcGVydHlfaWQSNG1pcnJvcl9wcm9wZXJ0eV9pZCBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBNSVJST1IaPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJyJDChNQcm9wZXJ0eURlZmluaXRpb25zEiwKBWl0ZW1zGAEgAygLMh0uY29tbW9uLnYxLlByb3BlcnR5RGVmaW5pdGlvbiI/ChFQcm9wZXJ0eUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIbLmNvbW1vbi52MS5Qcm9wZXJ0eUluc3RhbmNlIsYDCgxOdW1iZXJFeHRyYXMSEAoDbWluGAEgASgBSACIAQESEAoDbWF4GAIgASgBSAGIAQESIQoEc3RlcBgDIAEoAUIOukgLEgkhAAAAAAAAAABIAogBARIVCgR1bml0GAQgASgJQge6SARyAhgDEhoKCXByZWNpc2lvbhgFIAEoDUIHukgEKgIoADqiArpIngIamwIKGG51bWJlcl9leHRyYXNfY29uc2lzdGVudBJUSWYgYW55IG9mIG1pbi9tYXgvc3RlcCBpcyBzZXQsIGFsbCBtdXN0IGJlIHNldDsgYW5kIG1pbiA8IG1heDsgYW5kIHN0ZXAgPD0gKG1heC1taW4pGqgBKCFoYXModGhpcy5taW4pICYmICFoYXModGhpcy5tYXgpICYmICFoYXModGhpcy5zdGVwKSkgfHwgKGhhcyh0aGlzLm1pbikgJiYgaGFzKHRoaXMubWF4KSAmJiBoYXModGhpcy5zdGVwKSAmJiB0aGlzLm1pbiA8IHRoaXMubWF4ICYmIHRoaXMuc3RlcCA8PSAodGhpcy5tYXggLSB0aGlzLm1pbikpQgYKBF9taW5CBgoEX21heEIHCgVfc3RlcCJrCgpFbnVtT3B0aW9uEhYKBXZhbHVlGAEgASgJQge6SARyAhABEhYKBWxhYmVsGAIgASgJQge6SARyAhABEgwKBGljb24YAyABKAkSDQoFZ3JvdXAYBCABKAkSEAoIZGlzYWJsZWQYBSABKAgipQEKCkVudW1FeHRyYXMSEwoLcGxhY2Vob2xkZXIYASABKAkSDgoGZmlsdGVyGAIgASgIEg8KB2dyb3VwZWQYAyABKAgSEgoKc2hvd19pY29ucxgEIAEoCBIbChNtYXhfc2VsZWN0ZWRfbGFiZWxzGAUgASgNEjAKB29wdGlvbnMYBiADKAsyFS5jb21tb24udjEuRW51bU9wdGlvbkIIukgFkgECCAEi+QMKDVZlY3RvcjNFeHRyYXMSEAoDbWluGAEgASgBSACIAQESEAoDbWF4GAIgASgBSAGIAQESIQoEc3RlcBgDIAEoAUIOukgLEgkhAAAAAAAAAABIAogBARIYCgdsYWJlbF94GAQgASgJQge6SARyAhgFEhgKB2xhYmVsX3kYBSABKAlCB7pIBHICGAUSGAoHbGFiZWxfehgGIAEoCUIHukgEcgIYBRIVCgR1bml0GAcgASgJQge6SARyAhgDOqICukieAhqbAgoYbnVtYmVyX2V4dHJhc19jb25zaXN0ZW50ElRJZiBhbnkgb2YgbWluL21heC9zdGVwIGlzIHNldCwgYWxsIG11c3QgYmUgc2V0OyBhbmQgbWluIDwgbWF4OyBhbmQgc3RlcCA8PSAobWF4LW1pbikaqAEoIWhhcyh0aGlzLm1pbikgJiYgIWhhcyh0aGlzLm1heCkgJiYgIWhhcyh0aGlzLnN0ZXApKSB8fCAoaGFzKHRoaXMubWluKSAmJiBoYXModGhpcy5tYXgpICYmIGhhcyh0aGlzLnN0ZXApICYmIHRoaXMubWluIDwgdGhpcy5tYXggJiYgdGhpcy5zdGVwIDw9ICh0aGlzLm1heCAtIHRoaXMubWluKSlCBgoEX21pbkIGCgRfbWF4QgcKBV9zdGVwIk4KC0NvbG9yRXh0cmFzEhwKBHN0ZXAYASABKAFCDrpICxIJKQAAAAAAAAAAEiEKB2RlZmF1bHQYAiABKAsyEC5jb21tb24udjEuQ29sb3IiJAoMQW5jaG9yRXh0cmFzEhQKDG9ubHlfbWFya2VycxgBIAEoCCI8CgpQb3NlRXh0cmFzEhcKD2FuY2hvcl9lZGl0YWJsZRgBIAEoCBIVCg1wb3NlX2VkaXRhYmxlGAIgASgIKqkDCgxQcm9wZXJ0eVR5cGUSHQoZUFJPUEVSVFlfVFlQRV9VTlNQRUNJRklFRBAAEhYKElBST1BFUlRZX1RZUEVfQk9PTBABEhUKEVBST1BFUlRZX1RZUEVfSU5UEAISFwoTUFJPUEVSVFlfVFlQRV9GTE9BVBADEhgKFFBST1BFUlRZX1RZUEVfRE9VQkxFEAQSGAoUUFJPUEVSVFlfVFlQRV9TVFJJTkcQBRIZChVQUk9QRVJUWV9UWVBFX1ZFQ1RPUjMQBhIWChJQUk9QRVJUWV9UWVBFX1BPU0UQBxIYChRQUk9QRVJUWV9UWVBFX0FOQ0hPUhAIEhcKE1BST1BFUlRZX1RZUEVfQ09MT1IQCRIXChNQUk9QRVJUWV9UWVBFX1JPQk9UEAoSFgoSUFJPUEVSVFlfVFlQRV9FTlVNEAsSHAoYUFJPUEVSVFlfVFlQRV9FTlVNX01VTFRJEAwSFgoSUFJPUEVSVFlfVFlQRV9JQ09OEA0SFwoTUFJPUEVSVFlfVFlQRV9BU1NFVBAOEhgKFFBST1BFUlRZX1RZUEVfV09SS0VSEA8qaAoOUHJvcGVydHlPcmlnaW4SHwobUFJPUEVSVFlfT1JJR0lOX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfT1JJR0lOX0ZJWEVEEAESGgoWUFJPUEVSVFlfT1JJR0lOX01JUlJPUhACKpkCCg1Qcm9wZXJ0eUdyb3VwEh4KGlBST1BFUlRZX0dST1VQX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfR1JPVVBfT1VUUFVUEAESHwobUFJPUEVSVFlfR1JPVVBfTk9OX0VESVRBQkxFEAISGgoWUFJPUEVSVFlfR1JPVVBfU1RZTElORxADEhsKF1BST1BFUlRZX0dST1VQX0xPQ0FUSU9OEAQSFwoTUFJPUEVSVFlfR1JPVVBfSUNPThAFEiAKHFBST1BFUlRZX0dST1VQX0NPTkZJR1VSQVRJT04QBhIZChVQUk9QRVJUWV9HUk9VUF9ISURERU4QBxIdChlQUk9QRVJUWV9HUk9VUF9JTlBVVF9TTE9UEAgqtgEKElByb3BlcnR5UGVybWlzc2lvbhIjCh9QUk9QRVJUWV9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEEAASHQoZUFJPUEVSVFlfUEVSTUlTU0lPTl9CQVNJQxAKEiAKHFBST1BFUlRZX1BFUk1JU1NJT05fQ09TTUVUSUMQFBIcChhQUk9QRVJUWV9QRVJNSVNTSU9OX0ZVTEwQHhIcChhQUk9QRVJUWV9QRVJNSVNTSU9OX05PTkUQKCpmCg1Qcm9wZXJ0eVNjb3BlEh4KGlBST1BFUlRZX1NDT1BFX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfU0NPUEVfRU5USVRZEAESGgoWUFJPUEVSVFlfU0NPUEVfUlVOVElNRRACQqUBCg1jb20uY29tbW9uLnYxQg1Qcm9wZXJ0eVByb3RvUAFaN2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9jb21tb24vdjE7Y29tbW9udjGiAgNDWFiqAhJNZXNzYWdlcy5Db21tb24uVjHKAglDb21tb25cVjHiAhVDb21tb25cVjFcR1BCTWV0YWRhdGHqAgpDb21tb246OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_color, file_geometry_v1_anchor, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules]);
23
+ fileDesc("Chhjb21tb24vdjEvcHJvcGVydHkucHJvdG8SCWNvbW1vbi52MSKkCAoSUHJvcGVydHlEZWZpbml0aW9uEhUKAmlkGAEgASgJQgm6SAZyBJjxBAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSMgoEdHlwZRgFIAEoDjIXLmNvbW1vbi52MS5Qcm9wZXJ0eVR5cGVCC7pICMgBAYIBAhABEhEKCXBhcmVudF9pZBgGIAEoCRIcChRhdXRob3JpbmdfY29udGV4dF9pZBgHIAEoCRIxCgVzY29wZRgIIAEoDjIYLmNvbW1vbi52MS5Qcm9wZXJ0eVNjb3BlQgi6SAWCAQIQARJMChttaW5pbXVtX3JlcXVpcmVkX3Blcm1pc3Npb24YCSABKA4yHS5jb21tb24udjEuUHJvcGVydHlQZXJtaXNzaW9uQgi6SAWCAQIQARJBCg9hbGxvd2VkX29yaWdpbnMYCiADKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CDbpICpIBByIFggECEAESMQoFZ3JvdXAYCyABKA4yGC5jb21tb24udjEuUHJvcGVydHlHcm91cEIIukgFggECEAESEAoIb3JkZXJpbmcYDCABKAUSEgoKaGlkZV9ncm91cBgNIAEoCBIQCghhZHZhbmNlZBgOIAEoCBIZChFkaXNhYmxlX21pcnJvcmluZxgPIAEoCBIuCg1udW1iZXJfZXh0cmFzGCkgASgLMhcuY29tbW9uLnYxLk51bWJlckV4dHJhcxIqCgtlbnVtX2V4dHJhcxgqIAEoCzIVLmNvbW1vbi52MS5FbnVtRXh0cmFzEjAKDnZlY3RvcjNfZXh0cmFzGCsgASgLMhguY29tbW9uLnYxLlZlY3RvcjNFeHRyYXMSLAoMY29sb3JfZXh0cmFzGCwgASgLMhYuY29tbW9uLnYxLkNvbG9yRXh0cmFzEioKC3Bvc2VfZXh0cmFzGC0gASgLMhUuY29tbW9uLnYxLlBvc2VFeHRyYXMSLgoNYW5jaG9yX2V4dHJhcxguIAEoCzIXLmNvbW1vbi52MS5BbmNob3JFeHRyYXM68wG6SO8BGpQBChllbnVtX3JlcXVpcmVzX2VudW1fZXh0cmFzEjdlbnVtX2V4dHJhcyBtdXN0IGJlIHNldCB3aGVuIHR5cGUgaXMgRU5VTSBvciBFTlVNX01VTFRJGj4hKHRoaXMudHlwZSA9PSAxMSB8fCB0aGlzLnR5cGUgPT0gMTIpIHx8IGhhcyh0aGlzLmVudW1fZXh0cmFzKSJWCg1udW1iZXJfZXh0cmFzCgtlbnVtX2V4dHJhcwoOdmVjdG9yM19leHRyYXMKDGNvbG9yX2V4dHJhcwoLcG9zZV9leHRyYXMKDWFuY2hvcl9leHRyYXMiyQMKEFByb3BlcnR5SW5zdGFuY2USFQoCaWQYASABKAlCCbpIBnIEmPMEARIpChZwcm9wZXJ0eV9kZWZpbml0aW9uX2lkGAIgASgJQgm6SAZyBJjxBAESJwoFc2NvcGUYAyABKA4yGC5jb21tb24udjEuUHJvcGVydHlTY29wZRIQCghzY29wZV9pZBgEIAEoCRIzCgZvcmlnaW4YBSABKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CCLpIBYIBAhABEjAKHW1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkGAYgASgJQgm6SAZyBJjxBAESLwoFdmFsdWUYByABKAsyGC5jb21tb24udjEuUHJvcGVydHlWYWx1ZUIGukgDyAEBOp8BukibARqYAQoibWlycm9yX3JlcXVpcmVzX21pcnJvcl9wcm9wZXJ0eV9pZBI0bWlycm9yX3Byb3BlcnR5X2lkIG11c3QgYmUgc2V0IHdoZW4gb3JpZ2luIGlzIE1JUlJPUho8dGhpcy5vcmlnaW4gIT0gMiB8fCB0aGlzLm1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkICE9ICcnIr0NCg1Qcm9wZXJ0eVZhbHVlEjIKBHR5cGUYASABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIXCgpib29sX3ZhbHVlGBUgASgISACIAQESFgoJaW50X3ZhbHVlGBYgASgSSAGIAQESGAoLZmxvYXRfdmFsdWUYFyABKAJIAogBARIZCgxkb3VibGVfdmFsdWUYGCABKAFIA4gBARIZCgxzdHJpbmdfdmFsdWUYGSABKAlIBIgBARIrCg12ZWN0b3IzX3ZhbHVlGBogASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxIuCgpwb3NlX3ZhbHVlGBsgASgLMhouZ2VvbWV0cnkudjEuTG9jYWxpemVkUG9zZRIpCgxhbmNob3JfdmFsdWUYHCABKAsyEy5nZW9tZXRyeS52MS5BbmNob3ISJQoLY29sb3JfdmFsdWUYHSABKAsyEC5jb21tb24udjEuQ29sb3ISGwoOcm9ib3RfaWRfdmFsdWUYHiABKAlIBYgBARIgCgplbnVtX3ZhbHVlGB8gASgJQge6SARyAhABSAaIAQESKAoQZW51bV9tdWx0aV92YWx1ZRggIAMoCUIOukgLkgEICAEiBHICEAESFwoKaWNvbl92YWx1ZRghIAEoCUgHiAEBEhsKDmFzc2V0X2lkX3ZhbHVlGCIgASgJSAiIAQESHAoPd29ya2VyX2lkX3ZhbHVlGCMgASgJSAmIAQE64we6SN8HGoYGCiBwcm9wZXJ0eV90eXBlX21hdGNoZXNfdmFsdWVfa2luZBIndHlwZSBtdXN0IG1hdGNoIHRoZSBraW5kIG9mIHZhbHVlIGZpZWxkGrgFKCh0aGlzLnR5cGUgPT0gMSAmJiBoYXModGhpcy5ib29sX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAyICYmIGhhcyh0aGlzLmludF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMyAmJiBoYXModGhpcy5mbG9hdF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gNCAmJiBoYXModGhpcy5kb3VibGVfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDUgJiYgaGFzKHRoaXMuc3RyaW5nX3ZhbHVlKSkgfHwodGhpcy50eXBlID09IDYgJiYgaGFzKHRoaXMudmVjdG9yM192YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gNyAmJiBoYXModGhpcy5wb3NlX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSA4ICYmIGhhcyh0aGlzLmFuY2hvcl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gOSAmJiBoYXModGhpcy5jb2xvcl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTAgJiYgaGFzKHRoaXMucm9ib3RfaWRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDExICYmIGhhcyh0aGlzLmVudW1fdmFsdWUpKSB8fCh0aGlzLnR5cGUgPT0gMTIgJiYgc2l6ZSh0aGlzLmVudW1fbXVsdGlfdmFsdWUpID4gMCkgfHwgKHRoaXMudHlwZSA9PSAxMyAmJiBoYXModGhpcy5pY29uX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAxNCAmJiBoYXModGhpcy5hc3NldF9pZF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTUgJiYgaGFzKHRoaXMud29ya2VyX2lkX3ZhbHVlKSkpItMBCgpib29sX3ZhbHVlCglpbnRfdmFsdWUKC2Zsb2F0X3ZhbHVlCgxkb3VibGVfdmFsdWUKDHN0cmluZ192YWx1ZQoNdmVjdG9yM192YWx1ZQoKcG9zZV92YWx1ZQoMYW5jaG9yX3ZhbHVlCgtjb2xvcl92YWx1ZQoOcm9ib3RfaWRfdmFsdWUKCmVudW1fdmFsdWUKEGVudW1fbXVsdGlfdmFsdWUKCmljb25fdmFsdWUKDmFzc2V0X2lkX3ZhbHVlCg93b3JrZXJfaWRfdmFsdWUQAUINCgtfYm9vbF92YWx1ZUIMCgpfaW50X3ZhbHVlQg4KDF9mbG9hdF92YWx1ZUIPCg1fZG91YmxlX3ZhbHVlQg8KDV9zdHJpbmdfdmFsdWVCEQoPX3JvYm90X2lkX3ZhbHVlQg0KC19lbnVtX3ZhbHVlQg0KC19pY29uX3ZhbHVlQhEKD19hc3NldF9pZF92YWx1ZUISChBfd29ya2VyX2lkX3ZhbHVlIucDChZQcm9wZXJ0eUluc3RhbmNlVXBkYXRlEicKFHByb3BlcnR5X2luc3RhbmNlX2lkGAEgASgJQgm6SAZyBJjzBAESMwoGb3JpZ2luGAIgASgOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQgi6SAWCAQIQARIwCh1taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgDIAEoCUIJukgGcgSY8QQBEi8KBXZhbHVlGAQgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBATqLArpIhwIaagobZml4ZWRfb3JpZ2luX3JlcXVpcmVzX3ZhbHVlEiZ2YWx1ZSBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBGSVhFRBojdGhpcy5vcmlnaW4gIT0gMSB8fCBoYXModGhpcy52YWx1ZSkamAEKIm1pcnJvcl9yZXF1aXJlc19taXJyb3JfcHJvcGVydHlfaWQSNG1pcnJvcl9wcm9wZXJ0eV9pZCBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBNSVJST1IaPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJyJDChNQcm9wZXJ0eURlZmluaXRpb25zEiwKBWl0ZW1zGAEgAygLMh0uY29tbW9uLnYxLlByb3BlcnR5RGVmaW5pdGlvbiI/ChFQcm9wZXJ0eUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIbLmNvbW1vbi52MS5Qcm9wZXJ0eUluc3RhbmNlIsYDCgxOdW1iZXJFeHRyYXMSEAoDbWluGAEgASgBSACIAQESEAoDbWF4GAIgASgBSAGIAQESIQoEc3RlcBgDIAEoAUIOukgLEgkhAAAAAAAAAABIAogBARIVCgR1bml0GAQgASgJQge6SARyAhgDEhoKCXByZWNpc2lvbhgFIAEoDUIHukgEKgIoADqiArpIngIamwIKGG51bWJlcl9leHRyYXNfY29uc2lzdGVudBJUSWYgYW55IG9mIG1pbi9tYXgvc3RlcCBpcyBzZXQsIGFsbCBtdXN0IGJlIHNldDsgYW5kIG1pbiA8IG1heDsgYW5kIHN0ZXAgPD0gKG1heC1taW4pGqgBKCFoYXModGhpcy5taW4pICYmICFoYXModGhpcy5tYXgpICYmICFoYXModGhpcy5zdGVwKSkgfHwgKGhhcyh0aGlzLm1pbikgJiYgaGFzKHRoaXMubWF4KSAmJiBoYXModGhpcy5zdGVwKSAmJiB0aGlzLm1pbiA8IHRoaXMubWF4ICYmIHRoaXMuc3RlcCA8PSAodGhpcy5tYXggLSB0aGlzLm1pbikpQgYKBF9taW5CBgoEX21heEIHCgVfc3RlcCJrCgpFbnVtT3B0aW9uEhYKBXZhbHVlGAEgASgJQge6SARyAhABEhYKBWxhYmVsGAIgASgJQge6SARyAhABEgwKBGljb24YAyABKAkSDQoFZ3JvdXAYBCABKAkSEAoIZGlzYWJsZWQYBSABKAgipQEKCkVudW1FeHRyYXMSEwoLcGxhY2Vob2xkZXIYASABKAkSDgoGZmlsdGVyGAIgASgIEg8KB2dyb3VwZWQYAyABKAgSEgoKc2hvd19pY29ucxgEIAEoCBIbChNtYXhfc2VsZWN0ZWRfbGFiZWxzGAUgASgNEjAKB29wdGlvbnMYBiADKAsyFS5jb21tb24udjEuRW51bU9wdGlvbkIIukgFkgECCAEi+QMKDVZlY3RvcjNFeHRyYXMSEAoDbWluGAEgASgBSACIAQESEAoDbWF4GAIgASgBSAGIAQESIQoEc3RlcBgDIAEoAUIOukgLEgkhAAAAAAAAAABIAogBARIYCgdsYWJlbF94GAQgASgJQge6SARyAhgFEhgKB2xhYmVsX3kYBSABKAlCB7pIBHICGAUSGAoHbGFiZWxfehgGIAEoCUIHukgEcgIYBRIVCgR1bml0GAcgASgJQge6SARyAhgDOqICukieAhqbAgoYbnVtYmVyX2V4dHJhc19jb25zaXN0ZW50ElRJZiBhbnkgb2YgbWluL21heC9zdGVwIGlzIHNldCwgYWxsIG11c3QgYmUgc2V0OyBhbmQgbWluIDwgbWF4OyBhbmQgc3RlcCA8PSAobWF4LW1pbikaqAEoIWhhcyh0aGlzLm1pbikgJiYgIWhhcyh0aGlzLm1heCkgJiYgIWhhcyh0aGlzLnN0ZXApKSB8fCAoaGFzKHRoaXMubWluKSAmJiBoYXModGhpcy5tYXgpICYmIGhhcyh0aGlzLnN0ZXApICYmIHRoaXMubWluIDwgdGhpcy5tYXggJiYgdGhpcy5zdGVwIDw9ICh0aGlzLm1heCAtIHRoaXMubWluKSlCBgoEX21pbkIGCgRfbWF4QgcKBV9zdGVwIk4KC0NvbG9yRXh0cmFzEhwKBHN0ZXAYASABKAFCDrpICxIJKQAAAAAAAAAAEiEKB2RlZmF1bHQYAiABKAsyEC5jb21tb24udjEuQ29sb3IiJAoMQW5jaG9yRXh0cmFzEhQKDG9ubHlfbWFya2VycxgBIAEoCCI8CgpQb3NlRXh0cmFzEhcKD2FuY2hvcl9lZGl0YWJsZRgBIAEoCBIVCg1wb3NlX2VkaXRhYmxlGAIgASgIIskJChVDcmVhdGVQcm9wZXJ0eU1lc3NhZ2USEQoJcGFyZW50X2lkGAEgASgJEhwKFGF1dGhvcmluZ19jb250ZXh0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSDAoEaWNvbhgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIyCgR0eXBlGAYgASgOMhcuY29tbW9uLnYxLlByb3BlcnR5VHlwZUILukgIyAEBggECEAESNAoFc2NvcGUYByABKA4yGC5jb21tb24udjEuUHJvcGVydHlTY29wZUILukgIyAEBggECEAESQgobbWluaW11bV9yZXF1aXJlZF9wZXJtaXNzaW9uGAggASgOMh0uY29tbW9uLnYxLlByb3BlcnR5UGVybWlzc2lvbhIyCg9hbGxvd2VkX29yaWdpbnMYCSADKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW4SJwoFZ3JvdXAYCiABKA4yGC5jb21tb24udjEuUHJvcGVydHlHcm91cBIQCghvcmRlcmluZxgLIAEoBRISCgpoaWRlX2dyb3VwGAwgASgIEhAKCGFkdmFuY2VkGA0gASgIEhkKEWRpc2FibGVfbWlycm9yaW5nGA4gASgIEjYKBm9yaWdpbhgUIAEoDjIZLmNvbW1vbi52MS5Qcm9wZXJ0eU9yaWdpbkILukgIyAEBggECEAESEAoIc2NvcGVfaWQYFSABKAkSMAodbWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQYFiABKAlCCbpIBnIEmPEEARI3Cg1pbml0aWFsX3ZhbHVlGBcgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBARIwCg1udW1iZXJfZXh0cmFzGCkgASgLMhcuY29tbW9uLnYxLk51bWJlckV4dHJhc0gAEiwKC2VudW1fZXh0cmFzGCogASgLMhUuY29tbW9uLnYxLkVudW1FeHRyYXNIABIyCg52ZWN0b3IzX2V4dHJhcxgrIAEoCzIYLmNvbW1vbi52MS5WZWN0b3IzRXh0cmFzSAASLgoMY29sb3JfZXh0cmFzGCwgASgLMhYuY29tbW9uLnYxLkNvbG9yRXh0cmFzSAASLAoLcG9zZV9leHRyYXMYLSABKAsyFS5jb21tb24udjEuUG9zZUV4dHJhc0gAEjAKDWFuY2hvcl9leHRyYXMYLiABKAsyFy5jb21tb24udjEuQW5jaG9yRXh0cmFzSAA6jAK6SIgCGmwKIGRlZmluaXRpb25fYW5kX3ZhbHVlX3R5cGVzX21hdGNoEiJ0eXBlIG11c3QgbWF0Y2ggaW5pdGlhbF92YWx1ZS50eXBlGiR0aGlzLnR5cGUgPT0gdGhpcy5pbml0aWFsX3ZhbHVlLnR5cGUalwEKGm1pcnJvcl9yZXF1aXJlc19kZWZpbml0aW9uEjttaXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCBpcyByZXF1aXJlZCBmb3IgTUlSUk9SIG9yaWdpbho8dGhpcy5vcmlnaW4gIT0gMiB8fCB0aGlzLm1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkICE9ICcnQggKBmV4dHJhcyqpAwoMUHJvcGVydHlUeXBlEh0KGVBST1BFUlRZX1RZUEVfVU5TUEVDSUZJRUQQABIWChJQUk9QRVJUWV9UWVBFX0JPT0wQARIVChFQUk9QRVJUWV9UWVBFX0lOVBACEhcKE1BST1BFUlRZX1RZUEVfRkxPQVQQAxIYChRQUk9QRVJUWV9UWVBFX0RPVUJMRRAEEhgKFFBST1BFUlRZX1RZUEVfU1RSSU5HEAUSGQoVUFJPUEVSVFlfVFlQRV9WRUNUT1IzEAYSFgoSUFJPUEVSVFlfVFlQRV9QT1NFEAcSGAoUUFJPUEVSVFlfVFlQRV9BTkNIT1IQCBIXChNQUk9QRVJUWV9UWVBFX0NPTE9SEAkSFwoTUFJPUEVSVFlfVFlQRV9ST0JPVBAKEhYKElBST1BFUlRZX1RZUEVfRU5VTRALEhwKGFBST1BFUlRZX1RZUEVfRU5VTV9NVUxUSRAMEhYKElBST1BFUlRZX1RZUEVfSUNPThANEhcKE1BST1BFUlRZX1RZUEVfQVNTRVQQDhIYChRQUk9QRVJUWV9UWVBFX1dPUktFUhAPKmgKDlByb3BlcnR5T3JpZ2luEh8KG1BST1BFUlRZX09SSUdJTl9VTlNQRUNJRklFRBAAEhkKFVBST1BFUlRZX09SSUdJTl9GSVhFRBABEhoKFlBST1BFUlRZX09SSUdJTl9NSVJST1IQAiqZAgoNUHJvcGVydHlHcm91cBIeChpQUk9QRVJUWV9HUk9VUF9VTlNQRUNJRklFRBAAEhkKFVBST1BFUlRZX0dST1VQX09VVFBVVBABEh8KG1BST1BFUlRZX0dST1VQX05PTl9FRElUQUJMRRACEhoKFlBST1BFUlRZX0dST1VQX1NUWUxJTkcQAxIbChdQUk9QRVJUWV9HUk9VUF9MT0NBVElPThAEEhcKE1BST1BFUlRZX0dST1VQX0lDT04QBRIgChxQUk9QRVJUWV9HUk9VUF9DT05GSUdVUkFUSU9OEAYSGQoVUFJPUEVSVFlfR1JPVVBfSElEREVOEAcSHQoZUFJPUEVSVFlfR1JPVVBfSU5QVVRfU0xPVBAIKrYBChJQcm9wZXJ0eVBlcm1pc3Npb24SIwofUFJPUEVSVFlfUEVSTUlTU0lPTl9VTlNQRUNJRklFRBAAEh0KGVBST1BFUlRZX1BFUk1JU1NJT05fQkFTSUMQChIgChxQUk9QRVJUWV9QRVJNSVNTSU9OX0NPU01FVElDEBQSHAoYUFJPUEVSVFlfUEVSTUlTU0lPTl9GVUxMEB4SHAoYUFJPUEVSVFlfUEVSTUlTU0lPTl9OT05FECgqZgoNUHJvcGVydHlTY29wZRIeChpQUk9QRVJUWV9TQ09QRV9VTlNQRUNJRklFRBAAEhkKFVBST1BFUlRZX1NDT1BFX0VOVElUWRABEhoKFlBST1BFUlRZX1NDT1BFX1JVTlRJTUUQAkKlAQoNY29tLmNvbW1vbi52MUINUHJvcGVydHlQcm90b1ABWjdnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvY29tbW9uL3YxO2NvbW1vbnYxogIDQ1hYqgISTWVzc2FnZXMuQ29tbW9uLlYxygIJQ29tbW9uXFYx4gIVQ29tbW9uXFYxXEdQQk1ldGFkYXRh6gIKQ29tbW9uOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_color, file_geometry_v1_anchor, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules]);
24
24
 
25
25
  /**
26
26
  * PropertyDefinition
@@ -61,69 +61,78 @@ export type PropertyDefinition = Message<"common.v1.PropertyDefinition"> & {
61
61
  id: string;
62
62
 
63
63
  /**
64
- * @generated from field: string parent_id = 2;
65
- */
66
- parentId: string;
67
-
68
- /**
69
- * @generated from field: string name = 3;
64
+ * @generated from field: string name = 2;
70
65
  */
71
66
  name: string;
72
67
 
73
68
  /**
74
- * @generated from field: string icon = 4;
69
+ * @generated from field: string icon = 3;
75
70
  */
76
71
  icon: string;
77
72
 
78
73
  /**
79
- * @generated from field: string description = 5;
74
+ * @generated from field: string description = 4;
80
75
  */
81
76
  description: string;
82
77
 
83
78
  /**
84
- * @generated from field: common.v1.PropertyType type = 6;
79
+ * @generated from field: common.v1.PropertyType type = 5;
85
80
  */
86
81
  type: PropertyType;
87
82
 
88
83
  /**
89
- * @generated from field: common.v1.PropertyScope scope = 7;
84
+ * direct owner: feedback id, action id, ar_config id, etc.
85
+ *
86
+ * @generated from field: string parent_id = 6;
87
+ */
88
+ parentId: string;
89
+
90
+ /**
91
+ * grouping/root context: ar_config id
92
+ *
93
+ * @generated from field: string authoring_context_id = 7;
94
+ */
95
+ authoringContextId: string;
96
+
97
+ /**
98
+ * @generated from field: common.v1.PropertyScope scope = 8;
90
99
  */
91
100
  scope: PropertyScope;
92
101
 
93
102
  /**
94
103
  * UI/authoring metadata
95
104
  *
96
- * @generated from field: common.v1.PropertyPermission minimum_required_permission = 8;
105
+ * @generated from field: common.v1.PropertyPermission minimum_required_permission = 9;
97
106
  */
98
107
  minimumRequiredPermission: PropertyPermission;
99
108
 
100
109
  /**
101
- * @generated from field: repeated common.v1.PropertyOrigin allowed_origins = 9;
110
+ * @generated from field: repeated common.v1.PropertyOrigin allowed_origins = 10;
102
111
  */
103
112
  allowedOrigins: PropertyOrigin[];
104
113
 
105
114
  /**
106
- * @generated from field: common.v1.PropertyGroup group = 10;
115
+ * @generated from field: common.v1.PropertyGroup group = 11;
107
116
  */
108
117
  group: PropertyGroup;
109
118
 
110
119
  /**
111
- * @generated from field: int32 ordering = 11;
120
+ * @generated from field: int32 ordering = 12;
112
121
  */
113
122
  ordering: number;
114
123
 
115
124
  /**
116
- * @generated from field: bool hide_group = 12;
125
+ * @generated from field: bool hide_group = 13;
117
126
  */
118
127
  hideGroup: boolean;
119
128
 
120
129
  /**
121
- * @generated from field: bool advanced = 13;
130
+ * @generated from field: bool advanced = 14;
122
131
  */
123
132
  advanced: boolean;
124
133
 
125
134
  /**
126
- * @generated from field: bool disable_mirroring = 14;
135
+ * @generated from field: bool disable_mirroring = 15;
127
136
  */
128
137
  disableMirroring: boolean;
129
138
 
@@ -188,6 +197,8 @@ export type PropertyInstance = Message<"common.v1.PropertyInstance"> & {
188
197
  propertyDefinitionId: string;
189
198
 
190
199
  /**
200
+ * Copied value from PropertyDefinition
201
+ *
191
202
  * @generated from field: common.v1.PropertyScope scope = 3;
192
203
  */
193
204
  scope: PropertyScope;
@@ -628,6 +639,161 @@ export type PoseExtras = Message<"common.v1.PoseExtras"> & {
628
639
  export const PoseExtrasSchema: GenMessage<PoseExtras> = /*@__PURE__*/
629
640
  messageDesc(file_common_v1_property, 12);
630
641
 
642
+ /**
643
+ * Creates a PropertyDefinition and its required template PropertyInstance.
644
+ *
645
+ * @generated from message common.v1.CreatePropertyMessage
646
+ */
647
+ export type CreatePropertyMessage = Message<"common.v1.CreatePropertyMessage"> & {
648
+ /**
649
+ * Ownership
650
+ *
651
+ * @generated from field: string parent_id = 1;
652
+ */
653
+ parentId: string;
654
+
655
+ /**
656
+ * @generated from field: string authoring_context_id = 2;
657
+ */
658
+ authoringContextId: string;
659
+
660
+ /**
661
+ * Definition
662
+ *
663
+ * @generated from field: string name = 3;
664
+ */
665
+ name: string;
666
+
667
+ /**
668
+ * @generated from field: string icon = 4;
669
+ */
670
+ icon: string;
671
+
672
+ /**
673
+ * @generated from field: string description = 5;
674
+ */
675
+ description: string;
676
+
677
+ /**
678
+ * @generated from field: common.v1.PropertyType type = 6;
679
+ */
680
+ type: PropertyType;
681
+
682
+ /**
683
+ * @generated from field: common.v1.PropertyScope scope = 7;
684
+ */
685
+ scope: PropertyScope;
686
+
687
+ /**
688
+ * @generated from field: common.v1.PropertyPermission minimum_required_permission = 8;
689
+ */
690
+ minimumRequiredPermission: PropertyPermission;
691
+
692
+ /**
693
+ * @generated from field: repeated common.v1.PropertyOrigin allowed_origins = 9;
694
+ */
695
+ allowedOrigins: PropertyOrigin[];
696
+
697
+ /**
698
+ * @generated from field: common.v1.PropertyGroup group = 10;
699
+ */
700
+ group: PropertyGroup;
701
+
702
+ /**
703
+ * @generated from field: int32 ordering = 11;
704
+ */
705
+ ordering: number;
706
+
707
+ /**
708
+ * @generated from field: bool hide_group = 12;
709
+ */
710
+ hideGroup: boolean;
711
+
712
+ /**
713
+ * @generated from field: bool advanced = 13;
714
+ */
715
+ advanced: boolean;
716
+
717
+ /**
718
+ * @generated from field: bool disable_mirroring = 14;
719
+ */
720
+ disableMirroring: boolean;
721
+
722
+ /**
723
+ * Template instance
724
+ *
725
+ * @generated from field: common.v1.PropertyOrigin origin = 20;
726
+ */
727
+ origin: PropertyOrigin;
728
+
729
+ /**
730
+ * Defaults to parent_id when empty. Needed for input-slot scopes.
731
+ *
732
+ * @generated from field: string scope_id = 21;
733
+ */
734
+ scopeId: string;
735
+
736
+ /**
737
+ * @generated from field: string mirror_property_definition_id = 22;
738
+ */
739
+ mirrorPropertyDefinitionId: string;
740
+
741
+ /**
742
+ * @generated from field: common.v1.PropertyValue initial_value = 23;
743
+ */
744
+ initialValue?: PropertyValue;
745
+
746
+ /**
747
+ * Type-specific definition metadata
748
+ *
749
+ * @generated from oneof common.v1.CreatePropertyMessage.extras
750
+ */
751
+ extras: {
752
+ /**
753
+ * @generated from field: common.v1.NumberExtras number_extras = 41;
754
+ */
755
+ value: NumberExtras;
756
+ case: "numberExtras";
757
+ } | {
758
+ /**
759
+ * @generated from field: common.v1.EnumExtras enum_extras = 42;
760
+ */
761
+ value: EnumExtras;
762
+ case: "enumExtras";
763
+ } | {
764
+ /**
765
+ * @generated from field: common.v1.Vector3Extras vector3_extras = 43;
766
+ */
767
+ value: Vector3Extras;
768
+ case: "vector3Extras";
769
+ } | {
770
+ /**
771
+ * @generated from field: common.v1.ColorExtras color_extras = 44;
772
+ */
773
+ value: ColorExtras;
774
+ case: "colorExtras";
775
+ } | {
776
+ /**
777
+ * @generated from field: common.v1.PoseExtras pose_extras = 45;
778
+ */
779
+ value: PoseExtras;
780
+ case: "poseExtras";
781
+ } | {
782
+ /**
783
+ * @generated from field: common.v1.AnchorExtras anchor_extras = 46;
784
+ */
785
+ value: AnchorExtras;
786
+ case: "anchorExtras";
787
+ } | { case: undefined; value?: undefined };
788
+ };
789
+
790
+ /**
791
+ * Describes the message common.v1.CreatePropertyMessage.
792
+ * Use `create(CreatePropertyMessageSchema)` to create a new message.
793
+ */
794
+ export const CreatePropertyMessageSchema: GenMessage<CreatePropertyMessage> = /*@__PURE__*/
795
+ messageDesc(file_common_v1_property, 13);
796
+
631
797
  /**
632
798
  * Used to specify the type of a property
633
799
  *
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
18
18
  * Describes the file product/v1/part_definition.proto.
19
19
  */
20
20
  export const file_product_v1_part_definition: GenFile = /*@__PURE__*/
21
- fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIokCChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiMKG3JlcXVpcmVzX2xpZnRpbmdfYXNzaXN0YW5jZRgEIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBSABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgGIAEoARIVCg1tYXhfdG9ycXVlX25tGAcgASgBEjIKC2NvbnN0cmFpbnRzGAggAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCKHAwoSUGFydFByb2Nlc3NQcm9maWxlEj4KGGVzdGltYXRlZF9odW1hbl9kdXJhdGlvbhgBIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhI+Chhlc3RpbWF0ZWRfcm9ib3RfZHVyYXRpb24YAiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24SHQoVcmVxdWlyZV9mdWxsX2d1aWRhbmNlGAMgASgIEh8KF2luc3BlY3RfYmVmb3JlX2Fzc2VtYmxlGAQgASgIEiEKGWluc3BlY3RfYWZ0ZXJfZGlzYXNzZW1ibGUYBSABKAgSHwoXcHJlX2x1YnJpY2F0aW9uX3BhcnRfaWQYBiABKAkSIAoYcG9zdF9sdWJyaWNhdGlvbl9wYXJ0X2lkGAcgASgJEhcKD3JlcXVpcmVzX3dpcGluZxgIIAEoCBIyCgtjb25zdHJhaW50cxgJIAMoCzIdLmNvbW1vbi52MS5LZXlWYWx1ZUNvbnN0cmFpbnQi3wMKDlBhcnREZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKBHR5cGUYBSABKA4yFC5wcm9kdWN0LnYxLlBhcnRUeXBlQgi6SAWCAQIQARIPCgdzdWJ0eXBlGAYgASgJEhkKCHdlaWdodF9nGAcgASgDQge6SAQiAigAEioKCmRpbWVuc2lvbnMYCCABKAsyFi5wcm9kdWN0LnYxLkRpbWVuc2lvbnMSKgoIbWF0ZXJpYWwYCSABKAsyGC5wcm9kdWN0LnYxLk1hdGVyaWFsU3BlYxIjChBkZWZhdWx0X21vZGVsX2lkGAogASgJQgm6SAZyBIjxBAESMQoIaGFuZGxpbmcYCyABKAsyHy5wcm9kdWN0LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSLwoHcHJvY2VzcxgMIAEoCzIeLnByb2R1Y3QudjEuUGFydFByb2Nlc3NQcm9maWxlEjkKE2V4dGVybmFsX3JlZmVyZW5jZXMYDSADKAsyHC5jb21tb24udjEuRXh0ZXJuYWxSZWZlcmVuY2USDwoHdmVyc2lvbhgPIAEoCSI8Cg9QYXJ0RGVmaW5pdGlvbnMSKQoFaXRlbXMYASADKAsyGi5wcm9kdWN0LnYxLlBhcnREZWZpbml0aW9uKugCCghQYXJ0VHlwZRIZChVQQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNQQVJUX1RZUEVfQ09NUE9ORU5UEAESFgoSUEFSVF9UWVBFX0ZBU1RFTkVSEAISGAoUUEFSVF9UWVBFX0NPTlNVTUFCTEUQBBITCg9QQVJUX1RZUEVfTEFCRUwQBRIXChNQQVJUX1RZUEVfUEFDS0FHSU5HEAYSEQoNUEFSVF9UWVBFX1BDQhAHEiIKHlBBUlRfVFlQRV9FTEVDVFJPTklDX0NPTVBPTkVOVBAIEiIKHlBBUlRfVFlQRV9FTEVDVFJJQ0FMX0NPTVBPTkVOVBAJEhMKD1BBUlRfVFlQRV9DQUJMRRAKEiAKHFBBUlRfVFlQRV9ESVNQRU5TRURfTUFURVJJQUwQCxIbChdQQVJUX1RZUEVfRklOQUxfUFJPRFVDVBAUEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRAVKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKDmNvbS5wcm9kdWN0LnYxQhNQYXJ0RGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9kdWN0L3YxO3Byb2R1Y3R2MaICA1BYWKoCE01lc3NhZ2VzLlByb2R1Y3QuVjHKAgpQcm9kdWN0XFYx4gIWUHJvZHVjdFxWMVxHUEJNZXRhZGF0YeoCC1Byb2R1Y3Q6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_external_references, file_common_v1_key_value_constraint, file_common_v1_time, file_validation_v1_predefined_string_rules]);
21
+ fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIsICChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiMKG3JlcXVpcmVzX2xpZnRpbmdfYXNzaXN0YW5jZRgEIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBSABKAgSHAoUZGVmYXVsdF9ncmlwX2ZvcmNlX24YBiABKAESGAoQbWF4X2dyaXBfZm9yY2VfbhgHIAEoARIZChFkZWZhdWx0X3RvcnF1ZV9ubRgIIAEoARIVCg1tYXhfdG9ycXVlX25tGAkgASgBEjIKC2NvbnN0cmFpbnRzGAogAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCKHAwoSUGFydFByb2Nlc3NQcm9maWxlEj4KGGVzdGltYXRlZF9odW1hbl9kdXJhdGlvbhgBIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhI+Chhlc3RpbWF0ZWRfcm9ib3RfZHVyYXRpb24YAiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24SHQoVcmVxdWlyZV9mdWxsX2d1aWRhbmNlGAMgASgIEh8KF2luc3BlY3RfYmVmb3JlX2Fzc2VtYmxlGAQgASgIEiEKGWluc3BlY3RfYWZ0ZXJfZGlzYXNzZW1ibGUYBSABKAgSHwoXcHJlX2x1YnJpY2F0aW9uX3BhcnRfaWQYBiABKAkSIAoYcG9zdF9sdWJyaWNhdGlvbl9wYXJ0X2lkGAcgASgJEhcKD3JlcXVpcmVzX3dpcGluZxgIIAEoCBIyCgtjb25zdHJhaW50cxgJIAMoCzIdLmNvbW1vbi52MS5LZXlWYWx1ZUNvbnN0cmFpbnQi3wMKDlBhcnREZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKBHR5cGUYBSABKA4yFC5wcm9kdWN0LnYxLlBhcnRUeXBlQgi6SAWCAQIQARIPCgdzdWJ0eXBlGAYgASgJEhkKCHdlaWdodF9nGAcgASgDQge6SAQiAigAEioKCmRpbWVuc2lvbnMYCCABKAsyFi5wcm9kdWN0LnYxLkRpbWVuc2lvbnMSKgoIbWF0ZXJpYWwYCSABKAsyGC5wcm9kdWN0LnYxLk1hdGVyaWFsU3BlYxIjChBkZWZhdWx0X21vZGVsX2lkGAogASgJQgm6SAZyBIjxBAESMQoIaGFuZGxpbmcYCyABKAsyHy5wcm9kdWN0LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSLwoHcHJvY2VzcxgMIAEoCzIeLnByb2R1Y3QudjEuUGFydFByb2Nlc3NQcm9maWxlEjkKE2V4dGVybmFsX3JlZmVyZW5jZXMYDSADKAsyHC5jb21tb24udjEuRXh0ZXJuYWxSZWZlcmVuY2USDwoHdmVyc2lvbhgPIAEoCSI8Cg9QYXJ0RGVmaW5pdGlvbnMSKQoFaXRlbXMYASADKAsyGi5wcm9kdWN0LnYxLlBhcnREZWZpbml0aW9uKugCCghQYXJ0VHlwZRIZChVQQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNQQVJUX1RZUEVfQ09NUE9ORU5UEAESFgoSUEFSVF9UWVBFX0ZBU1RFTkVSEAISGAoUUEFSVF9UWVBFX0NPTlNVTUFCTEUQBBITCg9QQVJUX1RZUEVfTEFCRUwQBRIXChNQQVJUX1RZUEVfUEFDS0FHSU5HEAYSEQoNUEFSVF9UWVBFX1BDQhAHEiIKHlBBUlRfVFlQRV9FTEVDVFJPTklDX0NPTVBPTkVOVBAIEiIKHlBBUlRfVFlQRV9FTEVDVFJJQ0FMX0NPTVBPTkVOVBAJEhMKD1BBUlRfVFlQRV9DQUJMRRAKEiAKHFBBUlRfVFlQRV9ESVNQRU5TRURfTUFURVJJQUwQCxIbChdQQVJUX1RZUEVfRklOQUxfUFJPRFVDVBAUEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRAVKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKDmNvbS5wcm9kdWN0LnYxQhNQYXJ0RGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9kdWN0L3YxO3Byb2R1Y3R2MaICA1BYWKoCE01lc3NhZ2VzLlByb2R1Y3QuVjHKAgpQcm9kdWN0XFYx4gIWUHJvZHVjdFxWMVxHUEJNZXRhZGF0YeoCC1Byb2R1Y3Q6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_external_references, file_common_v1_key_value_constraint, file_common_v1_time, file_validation_v1_predefined_string_rules]);
22
22
 
23
23
  /**
24
24
  * @generated from message product.v1.Dimensions
@@ -134,24 +134,38 @@ export type PartHandlingProfile = Message<"product.v1.PartHandlingProfile"> & {
134
134
  */
135
135
  requiresFixtureSupport: boolean;
136
136
 
137
+ /**
138
+ * Default gripping/clamping force that should be applied to grip the part.
139
+ *
140
+ * @generated from field: double default_grip_force_n = 6;
141
+ */
142
+ defaultGripForceN: number;
143
+
137
144
  /**
138
145
  * Maximum gripping/clamping force that may be applied without damaging the part.
139
146
  *
140
- * @generated from field: double max_grip_force_n = 6;
147
+ * @generated from field: double max_grip_force_n = 7;
141
148
  */
142
149
  maxGripForceN: number;
143
150
 
151
+ /**
152
+ * Default torque that should be applied to the part or its fastening interface.
153
+ *
154
+ * @generated from field: double default_torque_nm = 8;
155
+ */
156
+ defaultTorqueNm: number;
157
+
144
158
  /**
145
159
  * Maximum torque that may be applied to the part or its fastening interface.
146
160
  *
147
- * @generated from field: double max_torque_nm = 7;
161
+ * @generated from field: double max_torque_nm = 9;
148
162
  */
149
163
  maxTorqueNm: number;
150
164
 
151
165
  /**
152
166
  * Additional handling constraints not represented by dedicated fields.
153
167
  *
154
- * @generated from field: repeated common.v1.KeyValueConstraint constraints = 8;
168
+ * @generated from field: repeated common.v1.KeyValueConstraint constraints = 10;
155
169
  */
156
170
  constraints: KeyValueConstraint[];
157
171
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "0.21.2",
3
+ "version": "0.21.4",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [