@horizon36596/zenith-schema 0.1.1

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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +18 -0
  3. package/README.md +24 -0
  4. package/dist/auto.d.ts +1882 -0
  5. package/dist/auto.d.ts.map +1 -0
  6. package/dist/auto.js +236 -0
  7. package/dist/auto.js.map +1 -0
  8. package/dist/common.d.ts +76 -0
  9. package/dist/common.d.ts.map +1 -0
  10. package/dist/common.js +30 -0
  11. package/dist/common.js.map +1 -0
  12. package/dist/expr.d.ts +56 -0
  13. package/dist/expr.d.ts.map +1 -0
  14. package/dist/expr.js +245 -0
  15. package/dist/expr.js.map +1 -0
  16. package/dist/field.d.ts +719 -0
  17. package/dist/field.d.ts.map +1 -0
  18. package/dist/field.js +158 -0
  19. package/dist/field.js.map +1 -0
  20. package/dist/ids.d.ts +62 -0
  21. package/dist/ids.d.ts.map +1 -0
  22. package/dist/ids.js +79 -0
  23. package/dist/ids.js.map +1 -0
  24. package/dist/index.d.ts +17 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +17 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/jsonschema.d.ts +14 -0
  29. package/dist/jsonschema.d.ts.map +1 -0
  30. package/dist/jsonschema.js +31 -0
  31. package/dist/jsonschema.js.map +1 -0
  32. package/dist/link.d.ts +117 -0
  33. package/dist/link.d.ts.map +1 -0
  34. package/dist/link.js +58 -0
  35. package/dist/link.js.map +1 -0
  36. package/dist/migrate.d.ts +2699 -0
  37. package/dist/migrate.d.ts.map +1 -0
  38. package/dist/migrate.js +109 -0
  39. package/dist/migrate.js.map +1 -0
  40. package/dist/parse.d.ts +28 -0
  41. package/dist/parse.d.ts.map +1 -0
  42. package/dist/parse.js +46 -0
  43. package/dist/parse.js.map +1 -0
  44. package/dist/robot.d.ts +2935 -0
  45. package/dist/robot.d.ts.map +1 -0
  46. package/dist/robot.js +231 -0
  47. package/dist/robot.js.map +1 -0
  48. package/dist/waypoints.d.ts +63 -0
  49. package/dist/waypoints.d.ts.map +1 -0
  50. package/dist/waypoints.js +20 -0
  51. package/dist/waypoints.js.map +1 -0
  52. package/json/auto.json +683 -0
  53. package/json/field.json +457 -0
  54. package/json/link.json +110 -0
  55. package/json/robot.json +664 -0
  56. package/json/waypoints.json +50 -0
  57. package/package.json +65 -0
@@ -0,0 +1,2935 @@
1
+ import { z } from "zod";
2
+ /** One footprint box. Length runs along the nose (+x in the robot frame), width across it. */
3
+ export declare const footprintBoxSchema: z.ZodObject<{
4
+ lengthIn: z.ZodNumber;
5
+ widthIn: z.ZodNumber;
6
+ provenance: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ lengthIn: number;
9
+ widthIn: number;
10
+ provenance?: string | undefined;
11
+ }, {
12
+ lengthIn: number;
13
+ widthIn: number;
14
+ provenance?: string | undefined;
15
+ }>;
16
+ /**
17
+ * The footprint is fully customizable per robot: the box at the start of the match, the
18
+ * box with every mechanism out, and the centre of rotation as an offset from the footprint centre.
19
+ */
20
+ export declare const footprintSchema: z.ZodObject<{
21
+ startIn: z.ZodObject<{
22
+ lengthIn: z.ZodNumber;
23
+ widthIn: z.ZodNumber;
24
+ provenance: z.ZodOptional<z.ZodString>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ lengthIn: number;
27
+ widthIn: number;
28
+ provenance?: string | undefined;
29
+ }, {
30
+ lengthIn: number;
31
+ widthIn: number;
32
+ provenance?: string | undefined;
33
+ }>;
34
+ expandedIn: z.ZodObject<{
35
+ lengthIn: z.ZodNumber;
36
+ widthIn: z.ZodNumber;
37
+ provenance: z.ZodOptional<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ lengthIn: number;
40
+ widthIn: number;
41
+ provenance?: string | undefined;
42
+ }, {
43
+ lengthIn: number;
44
+ widthIn: number;
45
+ provenance?: string | undefined;
46
+ }>;
47
+ centreOfRotationIn: z.ZodObject<{
48
+ xIn: z.ZodNumber;
49
+ yIn: z.ZodNumber;
50
+ provenance: z.ZodOptional<z.ZodString>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ xIn: number;
53
+ yIn: number;
54
+ provenance?: string | undefined;
55
+ }, {
56
+ xIn: number;
57
+ yIn: number;
58
+ provenance?: string | undefined;
59
+ }>;
60
+ /** How tall the robot is, for the z gate on the STRUCTURE check. `robot.heightIn` wins over it. */
61
+ heightIn: z.ZodOptional<z.ZodObject<{
62
+ value: z.ZodNumber;
63
+ provenance: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ value: number;
66
+ provenance?: string | undefined;
67
+ }, {
68
+ value: number;
69
+ provenance?: string | undefined;
70
+ }>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ startIn: {
73
+ lengthIn: number;
74
+ widthIn: number;
75
+ provenance?: string | undefined;
76
+ };
77
+ expandedIn: {
78
+ lengthIn: number;
79
+ widthIn: number;
80
+ provenance?: string | undefined;
81
+ };
82
+ centreOfRotationIn: {
83
+ xIn: number;
84
+ yIn: number;
85
+ provenance?: string | undefined;
86
+ };
87
+ heightIn?: {
88
+ value: number;
89
+ provenance?: string | undefined;
90
+ } | undefined;
91
+ }, {
92
+ startIn: {
93
+ lengthIn: number;
94
+ widthIn: number;
95
+ provenance?: string | undefined;
96
+ };
97
+ expandedIn: {
98
+ lengthIn: number;
99
+ widthIn: number;
100
+ provenance?: string | undefined;
101
+ };
102
+ centreOfRotationIn: {
103
+ xIn: number;
104
+ yIn: number;
105
+ provenance?: string | undefined;
106
+ };
107
+ heightIn?: {
108
+ value: number;
109
+ provenance?: string | undefined;
110
+ } | undefined;
111
+ }>;
112
+ /**
113
+ * A follower switch: a bare boolean, or `{ value, provenance }` so it can say where it came from
114
+ * like every other constant (CLAUDE.md rule 4). Both spellings are kept as written.
115
+ */
116
+ export declare const valuedBooleanSchema: z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
117
+ value: z.ZodBoolean;
118
+ provenance: z.ZodOptional<z.ZodString>;
119
+ }, "strip", z.ZodTypeAny, {
120
+ value: boolean;
121
+ provenance?: string | undefined;
122
+ }, {
123
+ value: boolean;
124
+ provenance?: string | undefined;
125
+ }>]>;
126
+ /**
127
+ * The Pedro follower's gains and tolerances, all optional, read by the instant sim
128
+ * (`packages/core/src/sim/params.ts`). A key left out falls back to Pedro's `ForesightConfig`
129
+ * default or a value derived from the rest of this file, as `params.ts` lists. The key names are
130
+ * the sim's; declaration order here is the canonical file order.
131
+ */
132
+ export declare const FOLLOWER_GAIN_KEYS: readonly ["forwardTranslationalPowerPerIn", "strafeTranslationalPowerPerIn", "headingPowerPerRad", "headingStaticPower", "coastPowerPerInPerS", "coastFeedforwardPowerPerInPerS", "brakeFeedforwardPowerPerInPerS", "maxBrakingPower", "headingDriveRatio", "brakeAggression", "brakeLinearForwardS", "brakeQuadraticForwardS2PerIn", "brakeLinearStrafeS", "brakeQuadraticStrafeS2PerIn", "headingBrakeLinearS", "headingBrakeQuadraticS2PerRad", "endParametricT", "endHeadingToleranceRad", "endTranslationalToleranceIn", "endVelocityToleranceInPerS", "holdTimeoutS", "headingDeviationToleranceRad", "translationalDeviationToleranceIn", "minCorrectionDistanceIn"];
133
+ /** The two follower switches, `cosineScale` and `turnBeforeDriving`. */
134
+ export declare const FOLLOWER_SWITCH_KEYS: readonly ["cosineScale", "turnBeforeDriving"];
135
+ export declare const followerSchema: z.ZodObject<{
136
+ cosineScale: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
137
+ value: z.ZodBoolean;
138
+ provenance: z.ZodOptional<z.ZodString>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ value: boolean;
141
+ provenance?: string | undefined;
142
+ }, {
143
+ value: boolean;
144
+ provenance?: string | undefined;
145
+ }>]>>;
146
+ turnBeforeDriving: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
147
+ value: z.ZodBoolean;
148
+ provenance: z.ZodOptional<z.ZodString>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ value: boolean;
151
+ provenance?: string | undefined;
152
+ }, {
153
+ value: boolean;
154
+ provenance?: string | undefined;
155
+ }>]>>;
156
+ forwardTranslationalPowerPerIn: z.ZodOptional<z.ZodObject<{
157
+ value: z.ZodNumber;
158
+ provenance: z.ZodOptional<z.ZodString>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ value: number;
161
+ provenance?: string | undefined;
162
+ }, {
163
+ value: number;
164
+ provenance?: string | undefined;
165
+ }>>;
166
+ strafeTranslationalPowerPerIn: z.ZodOptional<z.ZodObject<{
167
+ value: z.ZodNumber;
168
+ provenance: z.ZodOptional<z.ZodString>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ value: number;
171
+ provenance?: string | undefined;
172
+ }, {
173
+ value: number;
174
+ provenance?: string | undefined;
175
+ }>>;
176
+ headingPowerPerRad: z.ZodOptional<z.ZodObject<{
177
+ value: z.ZodNumber;
178
+ provenance: z.ZodOptional<z.ZodString>;
179
+ }, "strip", z.ZodTypeAny, {
180
+ value: number;
181
+ provenance?: string | undefined;
182
+ }, {
183
+ value: number;
184
+ provenance?: string | undefined;
185
+ }>>;
186
+ headingStaticPower: z.ZodOptional<z.ZodObject<{
187
+ value: z.ZodNumber;
188
+ provenance: z.ZodOptional<z.ZodString>;
189
+ }, "strip", z.ZodTypeAny, {
190
+ value: number;
191
+ provenance?: string | undefined;
192
+ }, {
193
+ value: number;
194
+ provenance?: string | undefined;
195
+ }>>;
196
+ coastPowerPerInPerS: z.ZodOptional<z.ZodObject<{
197
+ value: z.ZodNumber;
198
+ provenance: z.ZodOptional<z.ZodString>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ value: number;
201
+ provenance?: string | undefined;
202
+ }, {
203
+ value: number;
204
+ provenance?: string | undefined;
205
+ }>>;
206
+ coastFeedforwardPowerPerInPerS: z.ZodOptional<z.ZodObject<{
207
+ value: z.ZodNumber;
208
+ provenance: z.ZodOptional<z.ZodString>;
209
+ }, "strip", z.ZodTypeAny, {
210
+ value: number;
211
+ provenance?: string | undefined;
212
+ }, {
213
+ value: number;
214
+ provenance?: string | undefined;
215
+ }>>;
216
+ brakeFeedforwardPowerPerInPerS: z.ZodOptional<z.ZodObject<{
217
+ value: z.ZodNumber;
218
+ provenance: z.ZodOptional<z.ZodString>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ value: number;
221
+ provenance?: string | undefined;
222
+ }, {
223
+ value: number;
224
+ provenance?: string | undefined;
225
+ }>>;
226
+ maxBrakingPower: z.ZodOptional<z.ZodObject<{
227
+ value: z.ZodNumber;
228
+ provenance: z.ZodOptional<z.ZodString>;
229
+ }, "strip", z.ZodTypeAny, {
230
+ value: number;
231
+ provenance?: string | undefined;
232
+ }, {
233
+ value: number;
234
+ provenance?: string | undefined;
235
+ }>>;
236
+ headingDriveRatio: z.ZodOptional<z.ZodObject<{
237
+ value: z.ZodNumber;
238
+ provenance: z.ZodOptional<z.ZodString>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ value: number;
241
+ provenance?: string | undefined;
242
+ }, {
243
+ value: number;
244
+ provenance?: string | undefined;
245
+ }>>;
246
+ brakeAggression: z.ZodOptional<z.ZodObject<{
247
+ value: z.ZodNumber;
248
+ provenance: z.ZodOptional<z.ZodString>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ value: number;
251
+ provenance?: string | undefined;
252
+ }, {
253
+ value: number;
254
+ provenance?: string | undefined;
255
+ }>>;
256
+ brakeLinearForwardS: z.ZodOptional<z.ZodObject<{
257
+ value: z.ZodNumber;
258
+ provenance: z.ZodOptional<z.ZodString>;
259
+ }, "strip", z.ZodTypeAny, {
260
+ value: number;
261
+ provenance?: string | undefined;
262
+ }, {
263
+ value: number;
264
+ provenance?: string | undefined;
265
+ }>>;
266
+ brakeQuadraticForwardS2PerIn: z.ZodOptional<z.ZodObject<{
267
+ value: z.ZodNumber;
268
+ provenance: z.ZodOptional<z.ZodString>;
269
+ }, "strip", z.ZodTypeAny, {
270
+ value: number;
271
+ provenance?: string | undefined;
272
+ }, {
273
+ value: number;
274
+ provenance?: string | undefined;
275
+ }>>;
276
+ brakeLinearStrafeS: z.ZodOptional<z.ZodObject<{
277
+ value: z.ZodNumber;
278
+ provenance: z.ZodOptional<z.ZodString>;
279
+ }, "strip", z.ZodTypeAny, {
280
+ value: number;
281
+ provenance?: string | undefined;
282
+ }, {
283
+ value: number;
284
+ provenance?: string | undefined;
285
+ }>>;
286
+ brakeQuadraticStrafeS2PerIn: z.ZodOptional<z.ZodObject<{
287
+ value: z.ZodNumber;
288
+ provenance: z.ZodOptional<z.ZodString>;
289
+ }, "strip", z.ZodTypeAny, {
290
+ value: number;
291
+ provenance?: string | undefined;
292
+ }, {
293
+ value: number;
294
+ provenance?: string | undefined;
295
+ }>>;
296
+ headingBrakeLinearS: z.ZodOptional<z.ZodObject<{
297
+ value: z.ZodNumber;
298
+ provenance: z.ZodOptional<z.ZodString>;
299
+ }, "strip", z.ZodTypeAny, {
300
+ value: number;
301
+ provenance?: string | undefined;
302
+ }, {
303
+ value: number;
304
+ provenance?: string | undefined;
305
+ }>>;
306
+ headingBrakeQuadraticS2PerRad: z.ZodOptional<z.ZodObject<{
307
+ value: z.ZodNumber;
308
+ provenance: z.ZodOptional<z.ZodString>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ value: number;
311
+ provenance?: string | undefined;
312
+ }, {
313
+ value: number;
314
+ provenance?: string | undefined;
315
+ }>>;
316
+ endParametricT: z.ZodOptional<z.ZodObject<{
317
+ value: z.ZodNumber;
318
+ provenance: z.ZodOptional<z.ZodString>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ value: number;
321
+ provenance?: string | undefined;
322
+ }, {
323
+ value: number;
324
+ provenance?: string | undefined;
325
+ }>>;
326
+ endHeadingToleranceRad: z.ZodOptional<z.ZodObject<{
327
+ value: z.ZodNumber;
328
+ provenance: z.ZodOptional<z.ZodString>;
329
+ }, "strip", z.ZodTypeAny, {
330
+ value: number;
331
+ provenance?: string | undefined;
332
+ }, {
333
+ value: number;
334
+ provenance?: string | undefined;
335
+ }>>;
336
+ endTranslationalToleranceIn: z.ZodOptional<z.ZodObject<{
337
+ value: z.ZodNumber;
338
+ provenance: z.ZodOptional<z.ZodString>;
339
+ }, "strip", z.ZodTypeAny, {
340
+ value: number;
341
+ provenance?: string | undefined;
342
+ }, {
343
+ value: number;
344
+ provenance?: string | undefined;
345
+ }>>;
346
+ endVelocityToleranceInPerS: z.ZodOptional<z.ZodObject<{
347
+ value: z.ZodNumber;
348
+ provenance: z.ZodOptional<z.ZodString>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ value: number;
351
+ provenance?: string | undefined;
352
+ }, {
353
+ value: number;
354
+ provenance?: string | undefined;
355
+ }>>;
356
+ holdTimeoutS: z.ZodOptional<z.ZodObject<{
357
+ value: z.ZodNumber;
358
+ provenance: z.ZodOptional<z.ZodString>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ value: number;
361
+ provenance?: string | undefined;
362
+ }, {
363
+ value: number;
364
+ provenance?: string | undefined;
365
+ }>>;
366
+ headingDeviationToleranceRad: z.ZodOptional<z.ZodObject<{
367
+ value: z.ZodNumber;
368
+ provenance: z.ZodOptional<z.ZodString>;
369
+ }, "strip", z.ZodTypeAny, {
370
+ value: number;
371
+ provenance?: string | undefined;
372
+ }, {
373
+ value: number;
374
+ provenance?: string | undefined;
375
+ }>>;
376
+ translationalDeviationToleranceIn: z.ZodOptional<z.ZodObject<{
377
+ value: z.ZodNumber;
378
+ provenance: z.ZodOptional<z.ZodString>;
379
+ }, "strip", z.ZodTypeAny, {
380
+ value: number;
381
+ provenance?: string | undefined;
382
+ }, {
383
+ value: number;
384
+ provenance?: string | undefined;
385
+ }>>;
386
+ minCorrectionDistanceIn: z.ZodOptional<z.ZodObject<{
387
+ value: z.ZodNumber;
388
+ provenance: z.ZodOptional<z.ZodString>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ value: number;
391
+ provenance?: string | undefined;
392
+ }, {
393
+ value: number;
394
+ provenance?: string | undefined;
395
+ }>>;
396
+ library: z.ZodEnum<["pedro"]>;
397
+ version: z.ZodString;
398
+ holdEnd: z.ZodBoolean;
399
+ }, "strip", z.ZodTypeAny, {
400
+ library: "pedro";
401
+ version: string;
402
+ holdEnd: boolean;
403
+ forwardTranslationalPowerPerIn?: {
404
+ value: number;
405
+ provenance?: string | undefined;
406
+ } | undefined;
407
+ strafeTranslationalPowerPerIn?: {
408
+ value: number;
409
+ provenance?: string | undefined;
410
+ } | undefined;
411
+ headingPowerPerRad?: {
412
+ value: number;
413
+ provenance?: string | undefined;
414
+ } | undefined;
415
+ headingStaticPower?: {
416
+ value: number;
417
+ provenance?: string | undefined;
418
+ } | undefined;
419
+ coastPowerPerInPerS?: {
420
+ value: number;
421
+ provenance?: string | undefined;
422
+ } | undefined;
423
+ coastFeedforwardPowerPerInPerS?: {
424
+ value: number;
425
+ provenance?: string | undefined;
426
+ } | undefined;
427
+ brakeFeedforwardPowerPerInPerS?: {
428
+ value: number;
429
+ provenance?: string | undefined;
430
+ } | undefined;
431
+ maxBrakingPower?: {
432
+ value: number;
433
+ provenance?: string | undefined;
434
+ } | undefined;
435
+ headingDriveRatio?: {
436
+ value: number;
437
+ provenance?: string | undefined;
438
+ } | undefined;
439
+ brakeAggression?: {
440
+ value: number;
441
+ provenance?: string | undefined;
442
+ } | undefined;
443
+ brakeLinearForwardS?: {
444
+ value: number;
445
+ provenance?: string | undefined;
446
+ } | undefined;
447
+ brakeQuadraticForwardS2PerIn?: {
448
+ value: number;
449
+ provenance?: string | undefined;
450
+ } | undefined;
451
+ brakeLinearStrafeS?: {
452
+ value: number;
453
+ provenance?: string | undefined;
454
+ } | undefined;
455
+ brakeQuadraticStrafeS2PerIn?: {
456
+ value: number;
457
+ provenance?: string | undefined;
458
+ } | undefined;
459
+ headingBrakeLinearS?: {
460
+ value: number;
461
+ provenance?: string | undefined;
462
+ } | undefined;
463
+ headingBrakeQuadraticS2PerRad?: {
464
+ value: number;
465
+ provenance?: string | undefined;
466
+ } | undefined;
467
+ endParametricT?: {
468
+ value: number;
469
+ provenance?: string | undefined;
470
+ } | undefined;
471
+ endHeadingToleranceRad?: {
472
+ value: number;
473
+ provenance?: string | undefined;
474
+ } | undefined;
475
+ endTranslationalToleranceIn?: {
476
+ value: number;
477
+ provenance?: string | undefined;
478
+ } | undefined;
479
+ endVelocityToleranceInPerS?: {
480
+ value: number;
481
+ provenance?: string | undefined;
482
+ } | undefined;
483
+ holdTimeoutS?: {
484
+ value: number;
485
+ provenance?: string | undefined;
486
+ } | undefined;
487
+ headingDeviationToleranceRad?: {
488
+ value: number;
489
+ provenance?: string | undefined;
490
+ } | undefined;
491
+ translationalDeviationToleranceIn?: {
492
+ value: number;
493
+ provenance?: string | undefined;
494
+ } | undefined;
495
+ minCorrectionDistanceIn?: {
496
+ value: number;
497
+ provenance?: string | undefined;
498
+ } | undefined;
499
+ cosineScale?: boolean | {
500
+ value: boolean;
501
+ provenance?: string | undefined;
502
+ } | undefined;
503
+ turnBeforeDriving?: boolean | {
504
+ value: boolean;
505
+ provenance?: string | undefined;
506
+ } | undefined;
507
+ }, {
508
+ library: "pedro";
509
+ version: string;
510
+ holdEnd: boolean;
511
+ forwardTranslationalPowerPerIn?: {
512
+ value: number;
513
+ provenance?: string | undefined;
514
+ } | undefined;
515
+ strafeTranslationalPowerPerIn?: {
516
+ value: number;
517
+ provenance?: string | undefined;
518
+ } | undefined;
519
+ headingPowerPerRad?: {
520
+ value: number;
521
+ provenance?: string | undefined;
522
+ } | undefined;
523
+ headingStaticPower?: {
524
+ value: number;
525
+ provenance?: string | undefined;
526
+ } | undefined;
527
+ coastPowerPerInPerS?: {
528
+ value: number;
529
+ provenance?: string | undefined;
530
+ } | undefined;
531
+ coastFeedforwardPowerPerInPerS?: {
532
+ value: number;
533
+ provenance?: string | undefined;
534
+ } | undefined;
535
+ brakeFeedforwardPowerPerInPerS?: {
536
+ value: number;
537
+ provenance?: string | undefined;
538
+ } | undefined;
539
+ maxBrakingPower?: {
540
+ value: number;
541
+ provenance?: string | undefined;
542
+ } | undefined;
543
+ headingDriveRatio?: {
544
+ value: number;
545
+ provenance?: string | undefined;
546
+ } | undefined;
547
+ brakeAggression?: {
548
+ value: number;
549
+ provenance?: string | undefined;
550
+ } | undefined;
551
+ brakeLinearForwardS?: {
552
+ value: number;
553
+ provenance?: string | undefined;
554
+ } | undefined;
555
+ brakeQuadraticForwardS2PerIn?: {
556
+ value: number;
557
+ provenance?: string | undefined;
558
+ } | undefined;
559
+ brakeLinearStrafeS?: {
560
+ value: number;
561
+ provenance?: string | undefined;
562
+ } | undefined;
563
+ brakeQuadraticStrafeS2PerIn?: {
564
+ value: number;
565
+ provenance?: string | undefined;
566
+ } | undefined;
567
+ headingBrakeLinearS?: {
568
+ value: number;
569
+ provenance?: string | undefined;
570
+ } | undefined;
571
+ headingBrakeQuadraticS2PerRad?: {
572
+ value: number;
573
+ provenance?: string | undefined;
574
+ } | undefined;
575
+ endParametricT?: {
576
+ value: number;
577
+ provenance?: string | undefined;
578
+ } | undefined;
579
+ endHeadingToleranceRad?: {
580
+ value: number;
581
+ provenance?: string | undefined;
582
+ } | undefined;
583
+ endTranslationalToleranceIn?: {
584
+ value: number;
585
+ provenance?: string | undefined;
586
+ } | undefined;
587
+ endVelocityToleranceInPerS?: {
588
+ value: number;
589
+ provenance?: string | undefined;
590
+ } | undefined;
591
+ holdTimeoutS?: {
592
+ value: number;
593
+ provenance?: string | undefined;
594
+ } | undefined;
595
+ headingDeviationToleranceRad?: {
596
+ value: number;
597
+ provenance?: string | undefined;
598
+ } | undefined;
599
+ translationalDeviationToleranceIn?: {
600
+ value: number;
601
+ provenance?: string | undefined;
602
+ } | undefined;
603
+ minCorrectionDistanceIn?: {
604
+ value: number;
605
+ provenance?: string | undefined;
606
+ } | undefined;
607
+ cosineScale?: boolean | {
608
+ value: boolean;
609
+ provenance?: string | undefined;
610
+ } | undefined;
611
+ turnBeforeDriving?: boolean | {
612
+ value: boolean;
613
+ provenance?: string | undefined;
614
+ } | undefined;
615
+ }>;
616
+ /**
617
+ * The drivetrain geometry and wheel response the instant sim's plant uses. Each key is optional;
618
+ * the sim derives a stand-in from the footprint and the kinematics when one is left out.
619
+ */
620
+ export declare const drivetrainSchema: z.ZodObject<{
621
+ trackWidthIn: z.ZodOptional<z.ZodObject<{
622
+ value: z.ZodNumber;
623
+ provenance: z.ZodOptional<z.ZodString>;
624
+ }, "strip", z.ZodTypeAny, {
625
+ value: number;
626
+ provenance?: string | undefined;
627
+ }, {
628
+ value: number;
629
+ provenance?: string | undefined;
630
+ }>>;
631
+ wheelBaseIn: z.ZodOptional<z.ZodObject<{
632
+ value: z.ZodNumber;
633
+ provenance: z.ZodOptional<z.ZodString>;
634
+ }, "strip", z.ZodTypeAny, {
635
+ value: number;
636
+ provenance?: string | undefined;
637
+ }, {
638
+ value: number;
639
+ provenance?: string | undefined;
640
+ }>>;
641
+ wheelResponseRatePerS: z.ZodOptional<z.ZodObject<{
642
+ value: z.ZodNumber;
643
+ provenance: z.ZodOptional<z.ZodString>;
644
+ }, "strip", z.ZodTypeAny, {
645
+ value: number;
646
+ provenance?: string | undefined;
647
+ }, {
648
+ value: number;
649
+ provenance?: string | undefined;
650
+ }>>;
651
+ }, "strip", z.ZodTypeAny, {
652
+ trackWidthIn?: {
653
+ value: number;
654
+ provenance?: string | undefined;
655
+ } | undefined;
656
+ wheelBaseIn?: {
657
+ value: number;
658
+ provenance?: string | undefined;
659
+ } | undefined;
660
+ wheelResponseRatePerS?: {
661
+ value: number;
662
+ provenance?: string | undefined;
663
+ } | undefined;
664
+ }, {
665
+ trackWidthIn?: {
666
+ value: number;
667
+ provenance?: string | undefined;
668
+ } | undefined;
669
+ wheelBaseIn?: {
670
+ value: number;
671
+ provenance?: string | undefined;
672
+ } | undefined;
673
+ wheelResponseRatePerS?: {
674
+ value: number;
675
+ provenance?: string | undefined;
676
+ } | undefined;
677
+ }>;
678
+ export declare const mouthSchema: z.ZodObject<{
679
+ id: z.ZodString;
680
+ side: z.ZodEnum<["FRONT", "BACK", "LEFT", "RIGHT"]>;
681
+ offsetIn: z.ZodObject<{
682
+ xIn: z.ZodNumber;
683
+ yIn: z.ZodNumber;
684
+ }, "strip", z.ZodTypeAny, {
685
+ xIn: number;
686
+ yIn: number;
687
+ }, {
688
+ xIn: number;
689
+ yIn: number;
690
+ }>;
691
+ widthIn: z.ZodNumber;
692
+ depthIn: z.ZodNumber;
693
+ provenance: z.ZodOptional<z.ZodString>;
694
+ }, "strip", z.ZodTypeAny, {
695
+ id: string;
696
+ widthIn: number;
697
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
698
+ offsetIn: {
699
+ xIn: number;
700
+ yIn: number;
701
+ };
702
+ depthIn: number;
703
+ provenance?: string | undefined;
704
+ }, {
705
+ id: string;
706
+ widthIn: number;
707
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
708
+ offsetIn: {
709
+ xIn: number;
710
+ yIn: number;
711
+ };
712
+ depthIn: number;
713
+ provenance?: string | undefined;
714
+ }>;
715
+ export declare const commandParamSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
716
+ type: z.ZodLiteral<"integer">;
717
+ min: z.ZodOptional<z.ZodNumber>;
718
+ max: z.ZodOptional<z.ZodNumber>;
719
+ default: z.ZodOptional<z.ZodNumber>;
720
+ }, "strip", z.ZodTypeAny, {
721
+ type: "integer";
722
+ min?: number | undefined;
723
+ max?: number | undefined;
724
+ default?: number | undefined;
725
+ }, {
726
+ type: "integer";
727
+ min?: number | undefined;
728
+ max?: number | undefined;
729
+ default?: number | undefined;
730
+ }>, z.ZodObject<{
731
+ type: z.ZodLiteral<"number">;
732
+ min: z.ZodOptional<z.ZodNumber>;
733
+ max: z.ZodOptional<z.ZodNumber>;
734
+ default: z.ZodOptional<z.ZodNumber>;
735
+ }, "strip", z.ZodTypeAny, {
736
+ type: "number";
737
+ min?: number | undefined;
738
+ max?: number | undefined;
739
+ default?: number | undefined;
740
+ }, {
741
+ type: "number";
742
+ min?: number | undefined;
743
+ max?: number | undefined;
744
+ default?: number | undefined;
745
+ }>, z.ZodObject<{
746
+ type: z.ZodLiteral<"enum">;
747
+ values: z.ZodArray<z.ZodString, "many">;
748
+ default: z.ZodOptional<z.ZodString>;
749
+ }, "strip", z.ZodTypeAny, {
750
+ type: "enum";
751
+ values: string[];
752
+ default?: string | undefined;
753
+ }, {
754
+ type: "enum";
755
+ values: string[];
756
+ default?: string | undefined;
757
+ }>, z.ZodObject<{
758
+ type: z.ZodLiteral<"boolean">;
759
+ default: z.ZodOptional<z.ZodBoolean>;
760
+ }, "strip", z.ZodTypeAny, {
761
+ type: "boolean";
762
+ default?: boolean | undefined;
763
+ }, {
764
+ type: "boolean";
765
+ default?: boolean | undefined;
766
+ }>, z.ZodObject<{
767
+ type: z.ZodLiteral<"string">;
768
+ default: z.ZodOptional<z.ZodString>;
769
+ }, "strip", z.ZodTypeAny, {
770
+ type: "string";
771
+ default?: string | undefined;
772
+ }, {
773
+ type: "string";
774
+ default?: string | undefined;
775
+ }>]>;
776
+ /** One entry in the named-command registry. `name` must match a NamedCommands registration. */
777
+ export declare const commandSpecSchema: z.ZodObject<{
778
+ name: z.ZodString;
779
+ summary: z.ZodOptional<z.ZodString>;
780
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
781
+ type: z.ZodLiteral<"integer">;
782
+ min: z.ZodOptional<z.ZodNumber>;
783
+ max: z.ZodOptional<z.ZodNumber>;
784
+ default: z.ZodOptional<z.ZodNumber>;
785
+ }, "strip", z.ZodTypeAny, {
786
+ type: "integer";
787
+ min?: number | undefined;
788
+ max?: number | undefined;
789
+ default?: number | undefined;
790
+ }, {
791
+ type: "integer";
792
+ min?: number | undefined;
793
+ max?: number | undefined;
794
+ default?: number | undefined;
795
+ }>, z.ZodObject<{
796
+ type: z.ZodLiteral<"number">;
797
+ min: z.ZodOptional<z.ZodNumber>;
798
+ max: z.ZodOptional<z.ZodNumber>;
799
+ default: z.ZodOptional<z.ZodNumber>;
800
+ }, "strip", z.ZodTypeAny, {
801
+ type: "number";
802
+ min?: number | undefined;
803
+ max?: number | undefined;
804
+ default?: number | undefined;
805
+ }, {
806
+ type: "number";
807
+ min?: number | undefined;
808
+ max?: number | undefined;
809
+ default?: number | undefined;
810
+ }>, z.ZodObject<{
811
+ type: z.ZodLiteral<"enum">;
812
+ values: z.ZodArray<z.ZodString, "many">;
813
+ default: z.ZodOptional<z.ZodString>;
814
+ }, "strip", z.ZodTypeAny, {
815
+ type: "enum";
816
+ values: string[];
817
+ default?: string | undefined;
818
+ }, {
819
+ type: "enum";
820
+ values: string[];
821
+ default?: string | undefined;
822
+ }>, z.ZodObject<{
823
+ type: z.ZodLiteral<"boolean">;
824
+ default: z.ZodOptional<z.ZodBoolean>;
825
+ }, "strip", z.ZodTypeAny, {
826
+ type: "boolean";
827
+ default?: boolean | undefined;
828
+ }, {
829
+ type: "boolean";
830
+ default?: boolean | undefined;
831
+ }>, z.ZodObject<{
832
+ type: z.ZodLiteral<"string">;
833
+ default: z.ZodOptional<z.ZodString>;
834
+ }, "strip", z.ZodTypeAny, {
835
+ type: "string";
836
+ default?: string | undefined;
837
+ }, {
838
+ type: "string";
839
+ default?: string | undefined;
840
+ }>]>>>;
841
+ estimateS: z.ZodEffects<z.ZodString, string, string>;
842
+ requires: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
843
+ stationary: z.ZodOptional<z.ZodBoolean>;
844
+ movesRobot: z.ZodOptional<z.ZodBoolean>;
845
+ ledger: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
846
+ }, "strip", z.ZodTypeAny, {
847
+ name: string;
848
+ estimateS: string;
849
+ params?: Record<string, {
850
+ type: "integer";
851
+ min?: number | undefined;
852
+ max?: number | undefined;
853
+ default?: number | undefined;
854
+ } | {
855
+ type: "number";
856
+ min?: number | undefined;
857
+ max?: number | undefined;
858
+ default?: number | undefined;
859
+ } | {
860
+ type: "enum";
861
+ values: string[];
862
+ default?: string | undefined;
863
+ } | {
864
+ type: "boolean";
865
+ default?: boolean | undefined;
866
+ } | {
867
+ type: "string";
868
+ default?: string | undefined;
869
+ }> | undefined;
870
+ summary?: string | undefined;
871
+ requires?: string[] | undefined;
872
+ stationary?: boolean | undefined;
873
+ movesRobot?: boolean | undefined;
874
+ ledger?: Record<string, string | number> | undefined;
875
+ }, {
876
+ name: string;
877
+ estimateS: string;
878
+ params?: Record<string, {
879
+ type: "integer";
880
+ min?: number | undefined;
881
+ max?: number | undefined;
882
+ default?: number | undefined;
883
+ } | {
884
+ type: "number";
885
+ min?: number | undefined;
886
+ max?: number | undefined;
887
+ default?: number | undefined;
888
+ } | {
889
+ type: "enum";
890
+ values: string[];
891
+ default?: string | undefined;
892
+ } | {
893
+ type: "boolean";
894
+ default?: boolean | undefined;
895
+ } | {
896
+ type: "string";
897
+ default?: string | undefined;
898
+ }> | undefined;
899
+ summary?: string | undefined;
900
+ requires?: string[] | undefined;
901
+ stationary?: boolean | undefined;
902
+ movesRobot?: boolean | undefined;
903
+ ledger?: Record<string, string | number> | undefined;
904
+ }>;
905
+ export declare const conditionSpecSchema: z.ZodObject<{
906
+ name: z.ZodString;
907
+ summary: z.ZodOptional<z.ZodString>;
908
+ /**
909
+ * Which condition means the robot is at capacity (`"full"`) or holding nothing (`"empty"`), so
910
+ * the instant sim can answer it from the ledger. Without it the sim assumes `hopperFull` and
911
+ * `hopperEmpty`.
912
+ */
913
+ ledger: z.ZodOptional<z.ZodEnum<["full", "empty"]>>;
914
+ }, "strip", z.ZodTypeAny, {
915
+ name: string;
916
+ summary?: string | undefined;
917
+ ledger?: "full" | "empty" | undefined;
918
+ }, {
919
+ name: string;
920
+ summary?: string | undefined;
921
+ ledger?: "full" | "empty" | undefined;
922
+ }>;
923
+ /**
924
+ * `robot.json`: everything the planner needs to know about one robot
925
+ * (site/docs/file-format.md). Key declaration order is the canonical file order.
926
+ */
927
+ export declare const robotSchema: z.ZodObject<{
928
+ $schema: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
929
+ formatVersion: z.ZodLiteral<1>;
930
+ name: z.ZodString;
931
+ frame: z.ZodObject<{
932
+ forward: z.ZodEnum<["+x", "-x", "+y", "-y"]>;
933
+ left: z.ZodEnum<["+x", "-x", "+y", "-y"]>;
934
+ headingZero: z.ZodEnum<["+x", "+y"]>;
935
+ headingPositive: z.ZodEnum<["ccw", "cw"]>;
936
+ }, "strip", z.ZodTypeAny, {
937
+ left: "+x" | "+y" | "-x" | "-y";
938
+ headingZero: "+x" | "+y";
939
+ headingPositive: "ccw" | "cw";
940
+ forward: "+x" | "+y" | "-x" | "-y";
941
+ }, {
942
+ left: "+x" | "+y" | "-x" | "-y";
943
+ headingZero: "+x" | "+y";
944
+ headingPositive: "ccw" | "cw";
945
+ forward: "+x" | "+y" | "-x" | "-y";
946
+ }>;
947
+ footprint: z.ZodObject<{
948
+ startIn: z.ZodObject<{
949
+ lengthIn: z.ZodNumber;
950
+ widthIn: z.ZodNumber;
951
+ provenance: z.ZodOptional<z.ZodString>;
952
+ }, "strip", z.ZodTypeAny, {
953
+ lengthIn: number;
954
+ widthIn: number;
955
+ provenance?: string | undefined;
956
+ }, {
957
+ lengthIn: number;
958
+ widthIn: number;
959
+ provenance?: string | undefined;
960
+ }>;
961
+ expandedIn: z.ZodObject<{
962
+ lengthIn: z.ZodNumber;
963
+ widthIn: z.ZodNumber;
964
+ provenance: z.ZodOptional<z.ZodString>;
965
+ }, "strip", z.ZodTypeAny, {
966
+ lengthIn: number;
967
+ widthIn: number;
968
+ provenance?: string | undefined;
969
+ }, {
970
+ lengthIn: number;
971
+ widthIn: number;
972
+ provenance?: string | undefined;
973
+ }>;
974
+ centreOfRotationIn: z.ZodObject<{
975
+ xIn: z.ZodNumber;
976
+ yIn: z.ZodNumber;
977
+ provenance: z.ZodOptional<z.ZodString>;
978
+ }, "strip", z.ZodTypeAny, {
979
+ xIn: number;
980
+ yIn: number;
981
+ provenance?: string | undefined;
982
+ }, {
983
+ xIn: number;
984
+ yIn: number;
985
+ provenance?: string | undefined;
986
+ }>;
987
+ /** How tall the robot is, for the z gate on the STRUCTURE check. `robot.heightIn` wins over it. */
988
+ heightIn: z.ZodOptional<z.ZodObject<{
989
+ value: z.ZodNumber;
990
+ provenance: z.ZodOptional<z.ZodString>;
991
+ }, "strip", z.ZodTypeAny, {
992
+ value: number;
993
+ provenance?: string | undefined;
994
+ }, {
995
+ value: number;
996
+ provenance?: string | undefined;
997
+ }>>;
998
+ }, "strip", z.ZodTypeAny, {
999
+ startIn: {
1000
+ lengthIn: number;
1001
+ widthIn: number;
1002
+ provenance?: string | undefined;
1003
+ };
1004
+ expandedIn: {
1005
+ lengthIn: number;
1006
+ widthIn: number;
1007
+ provenance?: string | undefined;
1008
+ };
1009
+ centreOfRotationIn: {
1010
+ xIn: number;
1011
+ yIn: number;
1012
+ provenance?: string | undefined;
1013
+ };
1014
+ heightIn?: {
1015
+ value: number;
1016
+ provenance?: string | undefined;
1017
+ } | undefined;
1018
+ }, {
1019
+ startIn: {
1020
+ lengthIn: number;
1021
+ widthIn: number;
1022
+ provenance?: string | undefined;
1023
+ };
1024
+ expandedIn: {
1025
+ lengthIn: number;
1026
+ widthIn: number;
1027
+ provenance?: string | undefined;
1028
+ };
1029
+ centreOfRotationIn: {
1030
+ xIn: number;
1031
+ yIn: number;
1032
+ provenance?: string | undefined;
1033
+ };
1034
+ heightIn?: {
1035
+ value: number;
1036
+ provenance?: string | undefined;
1037
+ } | undefined;
1038
+ }>;
1039
+ /**
1040
+ * Robot height, for the z-range gate on the STRUCTURE check, with the provenance every constant
1041
+ * carries. It wins over `footprint.heightIn` when both are given; `robotHeightIn` in the core is
1042
+ * the one reader. Defaults to 18 in when both are absent.
1043
+ */
1044
+ heightIn: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodObject<{
1045
+ value: z.ZodNumber;
1046
+ provenance: z.ZodOptional<z.ZodString>;
1047
+ }, "strip", z.ZodTypeAny, {
1048
+ value: number;
1049
+ provenance?: string | undefined;
1050
+ }, {
1051
+ value: number;
1052
+ provenance?: string | undefined;
1053
+ }>, z.ZodNumber]>, {
1054
+ value: number;
1055
+ provenance?: string | undefined;
1056
+ }, number | {
1057
+ value: number;
1058
+ provenance?: string | undefined;
1059
+ }>>;
1060
+ kinematics: z.ZodObject<{
1061
+ maxForwardVelInPerS: z.ZodObject<{
1062
+ value: z.ZodNumber;
1063
+ provenance: z.ZodOptional<z.ZodString>;
1064
+ }, "strip", z.ZodTypeAny, {
1065
+ value: number;
1066
+ provenance?: string | undefined;
1067
+ }, {
1068
+ value: number;
1069
+ provenance?: string | undefined;
1070
+ }>;
1071
+ maxStrafeVelInPerS: z.ZodObject<{
1072
+ value: z.ZodNumber;
1073
+ provenance: z.ZodOptional<z.ZodString>;
1074
+ }, "strip", z.ZodTypeAny, {
1075
+ value: number;
1076
+ provenance?: string | undefined;
1077
+ }, {
1078
+ value: number;
1079
+ provenance?: string | undefined;
1080
+ }>;
1081
+ forwardDecelInPerS2: z.ZodObject<{
1082
+ value: z.ZodNumber;
1083
+ provenance: z.ZodOptional<z.ZodString>;
1084
+ }, "strip", z.ZodTypeAny, {
1085
+ value: number;
1086
+ provenance?: string | undefined;
1087
+ }, {
1088
+ value: number;
1089
+ provenance?: string | undefined;
1090
+ }>;
1091
+ strafeDecelInPerS2: z.ZodObject<{
1092
+ value: z.ZodNumber;
1093
+ provenance: z.ZodOptional<z.ZodString>;
1094
+ }, "strip", z.ZodTypeAny, {
1095
+ value: number;
1096
+ provenance?: string | undefined;
1097
+ }, {
1098
+ value: number;
1099
+ provenance?: string | undefined;
1100
+ }>;
1101
+ accelInPerS2: z.ZodObject<{
1102
+ value: z.ZodNumber;
1103
+ provenance: z.ZodOptional<z.ZodString>;
1104
+ }, "strip", z.ZodTypeAny, {
1105
+ value: number;
1106
+ provenance?: string | undefined;
1107
+ }, {
1108
+ value: number;
1109
+ provenance?: string | undefined;
1110
+ }>;
1111
+ maxAngularVelRadPerS: z.ZodObject<{
1112
+ value: z.ZodNumber;
1113
+ provenance: z.ZodOptional<z.ZodString>;
1114
+ }, "strip", z.ZodTypeAny, {
1115
+ value: number;
1116
+ provenance?: string | undefined;
1117
+ }, {
1118
+ value: number;
1119
+ provenance?: string | undefined;
1120
+ }>;
1121
+ defaultPathSpeedFraction: z.ZodObject<{
1122
+ value: z.ZodNumber;
1123
+ provenance: z.ZodOptional<z.ZodString>;
1124
+ }, "strip", z.ZodTypeAny, {
1125
+ value: number;
1126
+ provenance?: string | undefined;
1127
+ }, {
1128
+ value: number;
1129
+ provenance?: string | undefined;
1130
+ }>;
1131
+ /** Seconds the follower spends declaring the end constraints met (`03` section 3 step 7). */
1132
+ settleS: z.ZodOptional<z.ZodObject<{
1133
+ value: z.ZodNumber;
1134
+ provenance: z.ZodOptional<z.ZodString>;
1135
+ }, "strip", z.ZodTypeAny, {
1136
+ value: number;
1137
+ provenance?: string | undefined;
1138
+ }, {
1139
+ value: number;
1140
+ provenance?: string | undefined;
1141
+ }>>;
1142
+ /** The STRAFE_FRACTION warning threshold. `strafeFractionThreshold` is the older spelling. */
1143
+ strafeFractionWarn: z.ZodOptional<z.ZodObject<{
1144
+ value: z.ZodNumber;
1145
+ provenance: z.ZodOptional<z.ZodString>;
1146
+ }, "strip", z.ZodTypeAny, {
1147
+ value: number;
1148
+ provenance?: string | undefined;
1149
+ }, {
1150
+ value: number;
1151
+ provenance?: string | undefined;
1152
+ }>>;
1153
+ strafeFractionThreshold: z.ZodOptional<z.ZodObject<{
1154
+ value: z.ZodNumber;
1155
+ provenance: z.ZodOptional<z.ZodString>;
1156
+ }, "strip", z.ZodTypeAny, {
1157
+ value: number;
1158
+ provenance?: string | undefined;
1159
+ }, {
1160
+ value: number;
1161
+ provenance?: string | undefined;
1162
+ }>>;
1163
+ sweepSpeedFraction: z.ZodOptional<z.ZodObject<{
1164
+ value: z.ZodNumber;
1165
+ provenance: z.ZodOptional<z.ZodString>;
1166
+ }, "strip", z.ZodTypeAny, {
1167
+ value: number;
1168
+ provenance?: string | undefined;
1169
+ }, {
1170
+ value: number;
1171
+ provenance?: string | undefined;
1172
+ }>>;
1173
+ /** What `07` writes back once a recorded run has been fitted: the estimate band, as a fraction. */
1174
+ calibration: z.ZodOptional<z.ZodObject<{
1175
+ band: z.ZodNumber;
1176
+ samples: z.ZodOptional<z.ZodNumber>;
1177
+ provenance: z.ZodOptional<z.ZodString>;
1178
+ }, "strip", z.ZodTypeAny, {
1179
+ band: number;
1180
+ provenance?: string | undefined;
1181
+ samples?: number | undefined;
1182
+ }, {
1183
+ band: number;
1184
+ provenance?: string | undefined;
1185
+ samples?: number | undefined;
1186
+ }>>;
1187
+ follower: z.ZodObject<{
1188
+ cosineScale: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1189
+ value: z.ZodBoolean;
1190
+ provenance: z.ZodOptional<z.ZodString>;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ value: boolean;
1193
+ provenance?: string | undefined;
1194
+ }, {
1195
+ value: boolean;
1196
+ provenance?: string | undefined;
1197
+ }>]>>;
1198
+ turnBeforeDriving: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1199
+ value: z.ZodBoolean;
1200
+ provenance: z.ZodOptional<z.ZodString>;
1201
+ }, "strip", z.ZodTypeAny, {
1202
+ value: boolean;
1203
+ provenance?: string | undefined;
1204
+ }, {
1205
+ value: boolean;
1206
+ provenance?: string | undefined;
1207
+ }>]>>;
1208
+ forwardTranslationalPowerPerIn: z.ZodOptional<z.ZodObject<{
1209
+ value: z.ZodNumber;
1210
+ provenance: z.ZodOptional<z.ZodString>;
1211
+ }, "strip", z.ZodTypeAny, {
1212
+ value: number;
1213
+ provenance?: string | undefined;
1214
+ }, {
1215
+ value: number;
1216
+ provenance?: string | undefined;
1217
+ }>>;
1218
+ strafeTranslationalPowerPerIn: z.ZodOptional<z.ZodObject<{
1219
+ value: z.ZodNumber;
1220
+ provenance: z.ZodOptional<z.ZodString>;
1221
+ }, "strip", z.ZodTypeAny, {
1222
+ value: number;
1223
+ provenance?: string | undefined;
1224
+ }, {
1225
+ value: number;
1226
+ provenance?: string | undefined;
1227
+ }>>;
1228
+ headingPowerPerRad: z.ZodOptional<z.ZodObject<{
1229
+ value: z.ZodNumber;
1230
+ provenance: z.ZodOptional<z.ZodString>;
1231
+ }, "strip", z.ZodTypeAny, {
1232
+ value: number;
1233
+ provenance?: string | undefined;
1234
+ }, {
1235
+ value: number;
1236
+ provenance?: string | undefined;
1237
+ }>>;
1238
+ headingStaticPower: z.ZodOptional<z.ZodObject<{
1239
+ value: z.ZodNumber;
1240
+ provenance: z.ZodOptional<z.ZodString>;
1241
+ }, "strip", z.ZodTypeAny, {
1242
+ value: number;
1243
+ provenance?: string | undefined;
1244
+ }, {
1245
+ value: number;
1246
+ provenance?: string | undefined;
1247
+ }>>;
1248
+ coastPowerPerInPerS: z.ZodOptional<z.ZodObject<{
1249
+ value: z.ZodNumber;
1250
+ provenance: z.ZodOptional<z.ZodString>;
1251
+ }, "strip", z.ZodTypeAny, {
1252
+ value: number;
1253
+ provenance?: string | undefined;
1254
+ }, {
1255
+ value: number;
1256
+ provenance?: string | undefined;
1257
+ }>>;
1258
+ coastFeedforwardPowerPerInPerS: z.ZodOptional<z.ZodObject<{
1259
+ value: z.ZodNumber;
1260
+ provenance: z.ZodOptional<z.ZodString>;
1261
+ }, "strip", z.ZodTypeAny, {
1262
+ value: number;
1263
+ provenance?: string | undefined;
1264
+ }, {
1265
+ value: number;
1266
+ provenance?: string | undefined;
1267
+ }>>;
1268
+ brakeFeedforwardPowerPerInPerS: z.ZodOptional<z.ZodObject<{
1269
+ value: z.ZodNumber;
1270
+ provenance: z.ZodOptional<z.ZodString>;
1271
+ }, "strip", z.ZodTypeAny, {
1272
+ value: number;
1273
+ provenance?: string | undefined;
1274
+ }, {
1275
+ value: number;
1276
+ provenance?: string | undefined;
1277
+ }>>;
1278
+ maxBrakingPower: z.ZodOptional<z.ZodObject<{
1279
+ value: z.ZodNumber;
1280
+ provenance: z.ZodOptional<z.ZodString>;
1281
+ }, "strip", z.ZodTypeAny, {
1282
+ value: number;
1283
+ provenance?: string | undefined;
1284
+ }, {
1285
+ value: number;
1286
+ provenance?: string | undefined;
1287
+ }>>;
1288
+ headingDriveRatio: z.ZodOptional<z.ZodObject<{
1289
+ value: z.ZodNumber;
1290
+ provenance: z.ZodOptional<z.ZodString>;
1291
+ }, "strip", z.ZodTypeAny, {
1292
+ value: number;
1293
+ provenance?: string | undefined;
1294
+ }, {
1295
+ value: number;
1296
+ provenance?: string | undefined;
1297
+ }>>;
1298
+ brakeAggression: z.ZodOptional<z.ZodObject<{
1299
+ value: z.ZodNumber;
1300
+ provenance: z.ZodOptional<z.ZodString>;
1301
+ }, "strip", z.ZodTypeAny, {
1302
+ value: number;
1303
+ provenance?: string | undefined;
1304
+ }, {
1305
+ value: number;
1306
+ provenance?: string | undefined;
1307
+ }>>;
1308
+ brakeLinearForwardS: z.ZodOptional<z.ZodObject<{
1309
+ value: z.ZodNumber;
1310
+ provenance: z.ZodOptional<z.ZodString>;
1311
+ }, "strip", z.ZodTypeAny, {
1312
+ value: number;
1313
+ provenance?: string | undefined;
1314
+ }, {
1315
+ value: number;
1316
+ provenance?: string | undefined;
1317
+ }>>;
1318
+ brakeQuadraticForwardS2PerIn: z.ZodOptional<z.ZodObject<{
1319
+ value: z.ZodNumber;
1320
+ provenance: z.ZodOptional<z.ZodString>;
1321
+ }, "strip", z.ZodTypeAny, {
1322
+ value: number;
1323
+ provenance?: string | undefined;
1324
+ }, {
1325
+ value: number;
1326
+ provenance?: string | undefined;
1327
+ }>>;
1328
+ brakeLinearStrafeS: z.ZodOptional<z.ZodObject<{
1329
+ value: z.ZodNumber;
1330
+ provenance: z.ZodOptional<z.ZodString>;
1331
+ }, "strip", z.ZodTypeAny, {
1332
+ value: number;
1333
+ provenance?: string | undefined;
1334
+ }, {
1335
+ value: number;
1336
+ provenance?: string | undefined;
1337
+ }>>;
1338
+ brakeQuadraticStrafeS2PerIn: z.ZodOptional<z.ZodObject<{
1339
+ value: z.ZodNumber;
1340
+ provenance: z.ZodOptional<z.ZodString>;
1341
+ }, "strip", z.ZodTypeAny, {
1342
+ value: number;
1343
+ provenance?: string | undefined;
1344
+ }, {
1345
+ value: number;
1346
+ provenance?: string | undefined;
1347
+ }>>;
1348
+ headingBrakeLinearS: z.ZodOptional<z.ZodObject<{
1349
+ value: z.ZodNumber;
1350
+ provenance: z.ZodOptional<z.ZodString>;
1351
+ }, "strip", z.ZodTypeAny, {
1352
+ value: number;
1353
+ provenance?: string | undefined;
1354
+ }, {
1355
+ value: number;
1356
+ provenance?: string | undefined;
1357
+ }>>;
1358
+ headingBrakeQuadraticS2PerRad: z.ZodOptional<z.ZodObject<{
1359
+ value: z.ZodNumber;
1360
+ provenance: z.ZodOptional<z.ZodString>;
1361
+ }, "strip", z.ZodTypeAny, {
1362
+ value: number;
1363
+ provenance?: string | undefined;
1364
+ }, {
1365
+ value: number;
1366
+ provenance?: string | undefined;
1367
+ }>>;
1368
+ endParametricT: z.ZodOptional<z.ZodObject<{
1369
+ value: z.ZodNumber;
1370
+ provenance: z.ZodOptional<z.ZodString>;
1371
+ }, "strip", z.ZodTypeAny, {
1372
+ value: number;
1373
+ provenance?: string | undefined;
1374
+ }, {
1375
+ value: number;
1376
+ provenance?: string | undefined;
1377
+ }>>;
1378
+ endHeadingToleranceRad: z.ZodOptional<z.ZodObject<{
1379
+ value: z.ZodNumber;
1380
+ provenance: z.ZodOptional<z.ZodString>;
1381
+ }, "strip", z.ZodTypeAny, {
1382
+ value: number;
1383
+ provenance?: string | undefined;
1384
+ }, {
1385
+ value: number;
1386
+ provenance?: string | undefined;
1387
+ }>>;
1388
+ endTranslationalToleranceIn: z.ZodOptional<z.ZodObject<{
1389
+ value: z.ZodNumber;
1390
+ provenance: z.ZodOptional<z.ZodString>;
1391
+ }, "strip", z.ZodTypeAny, {
1392
+ value: number;
1393
+ provenance?: string | undefined;
1394
+ }, {
1395
+ value: number;
1396
+ provenance?: string | undefined;
1397
+ }>>;
1398
+ endVelocityToleranceInPerS: z.ZodOptional<z.ZodObject<{
1399
+ value: z.ZodNumber;
1400
+ provenance: z.ZodOptional<z.ZodString>;
1401
+ }, "strip", z.ZodTypeAny, {
1402
+ value: number;
1403
+ provenance?: string | undefined;
1404
+ }, {
1405
+ value: number;
1406
+ provenance?: string | undefined;
1407
+ }>>;
1408
+ holdTimeoutS: z.ZodOptional<z.ZodObject<{
1409
+ value: z.ZodNumber;
1410
+ provenance: z.ZodOptional<z.ZodString>;
1411
+ }, "strip", z.ZodTypeAny, {
1412
+ value: number;
1413
+ provenance?: string | undefined;
1414
+ }, {
1415
+ value: number;
1416
+ provenance?: string | undefined;
1417
+ }>>;
1418
+ headingDeviationToleranceRad: z.ZodOptional<z.ZodObject<{
1419
+ value: z.ZodNumber;
1420
+ provenance: z.ZodOptional<z.ZodString>;
1421
+ }, "strip", z.ZodTypeAny, {
1422
+ value: number;
1423
+ provenance?: string | undefined;
1424
+ }, {
1425
+ value: number;
1426
+ provenance?: string | undefined;
1427
+ }>>;
1428
+ translationalDeviationToleranceIn: z.ZodOptional<z.ZodObject<{
1429
+ value: z.ZodNumber;
1430
+ provenance: z.ZodOptional<z.ZodString>;
1431
+ }, "strip", z.ZodTypeAny, {
1432
+ value: number;
1433
+ provenance?: string | undefined;
1434
+ }, {
1435
+ value: number;
1436
+ provenance?: string | undefined;
1437
+ }>>;
1438
+ minCorrectionDistanceIn: z.ZodOptional<z.ZodObject<{
1439
+ value: z.ZodNumber;
1440
+ provenance: z.ZodOptional<z.ZodString>;
1441
+ }, "strip", z.ZodTypeAny, {
1442
+ value: number;
1443
+ provenance?: string | undefined;
1444
+ }, {
1445
+ value: number;
1446
+ provenance?: string | undefined;
1447
+ }>>;
1448
+ library: z.ZodEnum<["pedro"]>;
1449
+ version: z.ZodString;
1450
+ holdEnd: z.ZodBoolean;
1451
+ }, "strip", z.ZodTypeAny, {
1452
+ library: "pedro";
1453
+ version: string;
1454
+ holdEnd: boolean;
1455
+ forwardTranslationalPowerPerIn?: {
1456
+ value: number;
1457
+ provenance?: string | undefined;
1458
+ } | undefined;
1459
+ strafeTranslationalPowerPerIn?: {
1460
+ value: number;
1461
+ provenance?: string | undefined;
1462
+ } | undefined;
1463
+ headingPowerPerRad?: {
1464
+ value: number;
1465
+ provenance?: string | undefined;
1466
+ } | undefined;
1467
+ headingStaticPower?: {
1468
+ value: number;
1469
+ provenance?: string | undefined;
1470
+ } | undefined;
1471
+ coastPowerPerInPerS?: {
1472
+ value: number;
1473
+ provenance?: string | undefined;
1474
+ } | undefined;
1475
+ coastFeedforwardPowerPerInPerS?: {
1476
+ value: number;
1477
+ provenance?: string | undefined;
1478
+ } | undefined;
1479
+ brakeFeedforwardPowerPerInPerS?: {
1480
+ value: number;
1481
+ provenance?: string | undefined;
1482
+ } | undefined;
1483
+ maxBrakingPower?: {
1484
+ value: number;
1485
+ provenance?: string | undefined;
1486
+ } | undefined;
1487
+ headingDriveRatio?: {
1488
+ value: number;
1489
+ provenance?: string | undefined;
1490
+ } | undefined;
1491
+ brakeAggression?: {
1492
+ value: number;
1493
+ provenance?: string | undefined;
1494
+ } | undefined;
1495
+ brakeLinearForwardS?: {
1496
+ value: number;
1497
+ provenance?: string | undefined;
1498
+ } | undefined;
1499
+ brakeQuadraticForwardS2PerIn?: {
1500
+ value: number;
1501
+ provenance?: string | undefined;
1502
+ } | undefined;
1503
+ brakeLinearStrafeS?: {
1504
+ value: number;
1505
+ provenance?: string | undefined;
1506
+ } | undefined;
1507
+ brakeQuadraticStrafeS2PerIn?: {
1508
+ value: number;
1509
+ provenance?: string | undefined;
1510
+ } | undefined;
1511
+ headingBrakeLinearS?: {
1512
+ value: number;
1513
+ provenance?: string | undefined;
1514
+ } | undefined;
1515
+ headingBrakeQuadraticS2PerRad?: {
1516
+ value: number;
1517
+ provenance?: string | undefined;
1518
+ } | undefined;
1519
+ endParametricT?: {
1520
+ value: number;
1521
+ provenance?: string | undefined;
1522
+ } | undefined;
1523
+ endHeadingToleranceRad?: {
1524
+ value: number;
1525
+ provenance?: string | undefined;
1526
+ } | undefined;
1527
+ endTranslationalToleranceIn?: {
1528
+ value: number;
1529
+ provenance?: string | undefined;
1530
+ } | undefined;
1531
+ endVelocityToleranceInPerS?: {
1532
+ value: number;
1533
+ provenance?: string | undefined;
1534
+ } | undefined;
1535
+ holdTimeoutS?: {
1536
+ value: number;
1537
+ provenance?: string | undefined;
1538
+ } | undefined;
1539
+ headingDeviationToleranceRad?: {
1540
+ value: number;
1541
+ provenance?: string | undefined;
1542
+ } | undefined;
1543
+ translationalDeviationToleranceIn?: {
1544
+ value: number;
1545
+ provenance?: string | undefined;
1546
+ } | undefined;
1547
+ minCorrectionDistanceIn?: {
1548
+ value: number;
1549
+ provenance?: string | undefined;
1550
+ } | undefined;
1551
+ cosineScale?: boolean | {
1552
+ value: boolean;
1553
+ provenance?: string | undefined;
1554
+ } | undefined;
1555
+ turnBeforeDriving?: boolean | {
1556
+ value: boolean;
1557
+ provenance?: string | undefined;
1558
+ } | undefined;
1559
+ }, {
1560
+ library: "pedro";
1561
+ version: string;
1562
+ holdEnd: boolean;
1563
+ forwardTranslationalPowerPerIn?: {
1564
+ value: number;
1565
+ provenance?: string | undefined;
1566
+ } | undefined;
1567
+ strafeTranslationalPowerPerIn?: {
1568
+ value: number;
1569
+ provenance?: string | undefined;
1570
+ } | undefined;
1571
+ headingPowerPerRad?: {
1572
+ value: number;
1573
+ provenance?: string | undefined;
1574
+ } | undefined;
1575
+ headingStaticPower?: {
1576
+ value: number;
1577
+ provenance?: string | undefined;
1578
+ } | undefined;
1579
+ coastPowerPerInPerS?: {
1580
+ value: number;
1581
+ provenance?: string | undefined;
1582
+ } | undefined;
1583
+ coastFeedforwardPowerPerInPerS?: {
1584
+ value: number;
1585
+ provenance?: string | undefined;
1586
+ } | undefined;
1587
+ brakeFeedforwardPowerPerInPerS?: {
1588
+ value: number;
1589
+ provenance?: string | undefined;
1590
+ } | undefined;
1591
+ maxBrakingPower?: {
1592
+ value: number;
1593
+ provenance?: string | undefined;
1594
+ } | undefined;
1595
+ headingDriveRatio?: {
1596
+ value: number;
1597
+ provenance?: string | undefined;
1598
+ } | undefined;
1599
+ brakeAggression?: {
1600
+ value: number;
1601
+ provenance?: string | undefined;
1602
+ } | undefined;
1603
+ brakeLinearForwardS?: {
1604
+ value: number;
1605
+ provenance?: string | undefined;
1606
+ } | undefined;
1607
+ brakeQuadraticForwardS2PerIn?: {
1608
+ value: number;
1609
+ provenance?: string | undefined;
1610
+ } | undefined;
1611
+ brakeLinearStrafeS?: {
1612
+ value: number;
1613
+ provenance?: string | undefined;
1614
+ } | undefined;
1615
+ brakeQuadraticStrafeS2PerIn?: {
1616
+ value: number;
1617
+ provenance?: string | undefined;
1618
+ } | undefined;
1619
+ headingBrakeLinearS?: {
1620
+ value: number;
1621
+ provenance?: string | undefined;
1622
+ } | undefined;
1623
+ headingBrakeQuadraticS2PerRad?: {
1624
+ value: number;
1625
+ provenance?: string | undefined;
1626
+ } | undefined;
1627
+ endParametricT?: {
1628
+ value: number;
1629
+ provenance?: string | undefined;
1630
+ } | undefined;
1631
+ endHeadingToleranceRad?: {
1632
+ value: number;
1633
+ provenance?: string | undefined;
1634
+ } | undefined;
1635
+ endTranslationalToleranceIn?: {
1636
+ value: number;
1637
+ provenance?: string | undefined;
1638
+ } | undefined;
1639
+ endVelocityToleranceInPerS?: {
1640
+ value: number;
1641
+ provenance?: string | undefined;
1642
+ } | undefined;
1643
+ holdTimeoutS?: {
1644
+ value: number;
1645
+ provenance?: string | undefined;
1646
+ } | undefined;
1647
+ headingDeviationToleranceRad?: {
1648
+ value: number;
1649
+ provenance?: string | undefined;
1650
+ } | undefined;
1651
+ translationalDeviationToleranceIn?: {
1652
+ value: number;
1653
+ provenance?: string | undefined;
1654
+ } | undefined;
1655
+ minCorrectionDistanceIn?: {
1656
+ value: number;
1657
+ provenance?: string | undefined;
1658
+ } | undefined;
1659
+ cosineScale?: boolean | {
1660
+ value: boolean;
1661
+ provenance?: string | undefined;
1662
+ } | undefined;
1663
+ turnBeforeDriving?: boolean | {
1664
+ value: boolean;
1665
+ provenance?: string | undefined;
1666
+ } | undefined;
1667
+ }>;
1668
+ drivetrain: z.ZodOptional<z.ZodObject<{
1669
+ trackWidthIn: z.ZodOptional<z.ZodObject<{
1670
+ value: z.ZodNumber;
1671
+ provenance: z.ZodOptional<z.ZodString>;
1672
+ }, "strip", z.ZodTypeAny, {
1673
+ value: number;
1674
+ provenance?: string | undefined;
1675
+ }, {
1676
+ value: number;
1677
+ provenance?: string | undefined;
1678
+ }>>;
1679
+ wheelBaseIn: z.ZodOptional<z.ZodObject<{
1680
+ value: z.ZodNumber;
1681
+ provenance: z.ZodOptional<z.ZodString>;
1682
+ }, "strip", z.ZodTypeAny, {
1683
+ value: number;
1684
+ provenance?: string | undefined;
1685
+ }, {
1686
+ value: number;
1687
+ provenance?: string | undefined;
1688
+ }>>;
1689
+ wheelResponseRatePerS: z.ZodOptional<z.ZodObject<{
1690
+ value: z.ZodNumber;
1691
+ provenance: z.ZodOptional<z.ZodString>;
1692
+ }, "strip", z.ZodTypeAny, {
1693
+ value: number;
1694
+ provenance?: string | undefined;
1695
+ }, {
1696
+ value: number;
1697
+ provenance?: string | undefined;
1698
+ }>>;
1699
+ }, "strip", z.ZodTypeAny, {
1700
+ trackWidthIn?: {
1701
+ value: number;
1702
+ provenance?: string | undefined;
1703
+ } | undefined;
1704
+ wheelBaseIn?: {
1705
+ value: number;
1706
+ provenance?: string | undefined;
1707
+ } | undefined;
1708
+ wheelResponseRatePerS?: {
1709
+ value: number;
1710
+ provenance?: string | undefined;
1711
+ } | undefined;
1712
+ }, {
1713
+ trackWidthIn?: {
1714
+ value: number;
1715
+ provenance?: string | undefined;
1716
+ } | undefined;
1717
+ wheelBaseIn?: {
1718
+ value: number;
1719
+ provenance?: string | undefined;
1720
+ } | undefined;
1721
+ wheelResponseRatePerS?: {
1722
+ value: number;
1723
+ provenance?: string | undefined;
1724
+ } | undefined;
1725
+ }>>;
1726
+ }, "strip", z.ZodTypeAny, {
1727
+ maxForwardVelInPerS: {
1728
+ value: number;
1729
+ provenance?: string | undefined;
1730
+ };
1731
+ maxStrafeVelInPerS: {
1732
+ value: number;
1733
+ provenance?: string | undefined;
1734
+ };
1735
+ forwardDecelInPerS2: {
1736
+ value: number;
1737
+ provenance?: string | undefined;
1738
+ };
1739
+ strafeDecelInPerS2: {
1740
+ value: number;
1741
+ provenance?: string | undefined;
1742
+ };
1743
+ accelInPerS2: {
1744
+ value: number;
1745
+ provenance?: string | undefined;
1746
+ };
1747
+ maxAngularVelRadPerS: {
1748
+ value: number;
1749
+ provenance?: string | undefined;
1750
+ };
1751
+ defaultPathSpeedFraction: {
1752
+ value: number;
1753
+ provenance?: string | undefined;
1754
+ };
1755
+ follower: {
1756
+ library: "pedro";
1757
+ version: string;
1758
+ holdEnd: boolean;
1759
+ forwardTranslationalPowerPerIn?: {
1760
+ value: number;
1761
+ provenance?: string | undefined;
1762
+ } | undefined;
1763
+ strafeTranslationalPowerPerIn?: {
1764
+ value: number;
1765
+ provenance?: string | undefined;
1766
+ } | undefined;
1767
+ headingPowerPerRad?: {
1768
+ value: number;
1769
+ provenance?: string | undefined;
1770
+ } | undefined;
1771
+ headingStaticPower?: {
1772
+ value: number;
1773
+ provenance?: string | undefined;
1774
+ } | undefined;
1775
+ coastPowerPerInPerS?: {
1776
+ value: number;
1777
+ provenance?: string | undefined;
1778
+ } | undefined;
1779
+ coastFeedforwardPowerPerInPerS?: {
1780
+ value: number;
1781
+ provenance?: string | undefined;
1782
+ } | undefined;
1783
+ brakeFeedforwardPowerPerInPerS?: {
1784
+ value: number;
1785
+ provenance?: string | undefined;
1786
+ } | undefined;
1787
+ maxBrakingPower?: {
1788
+ value: number;
1789
+ provenance?: string | undefined;
1790
+ } | undefined;
1791
+ headingDriveRatio?: {
1792
+ value: number;
1793
+ provenance?: string | undefined;
1794
+ } | undefined;
1795
+ brakeAggression?: {
1796
+ value: number;
1797
+ provenance?: string | undefined;
1798
+ } | undefined;
1799
+ brakeLinearForwardS?: {
1800
+ value: number;
1801
+ provenance?: string | undefined;
1802
+ } | undefined;
1803
+ brakeQuadraticForwardS2PerIn?: {
1804
+ value: number;
1805
+ provenance?: string | undefined;
1806
+ } | undefined;
1807
+ brakeLinearStrafeS?: {
1808
+ value: number;
1809
+ provenance?: string | undefined;
1810
+ } | undefined;
1811
+ brakeQuadraticStrafeS2PerIn?: {
1812
+ value: number;
1813
+ provenance?: string | undefined;
1814
+ } | undefined;
1815
+ headingBrakeLinearS?: {
1816
+ value: number;
1817
+ provenance?: string | undefined;
1818
+ } | undefined;
1819
+ headingBrakeQuadraticS2PerRad?: {
1820
+ value: number;
1821
+ provenance?: string | undefined;
1822
+ } | undefined;
1823
+ endParametricT?: {
1824
+ value: number;
1825
+ provenance?: string | undefined;
1826
+ } | undefined;
1827
+ endHeadingToleranceRad?: {
1828
+ value: number;
1829
+ provenance?: string | undefined;
1830
+ } | undefined;
1831
+ endTranslationalToleranceIn?: {
1832
+ value: number;
1833
+ provenance?: string | undefined;
1834
+ } | undefined;
1835
+ endVelocityToleranceInPerS?: {
1836
+ value: number;
1837
+ provenance?: string | undefined;
1838
+ } | undefined;
1839
+ holdTimeoutS?: {
1840
+ value: number;
1841
+ provenance?: string | undefined;
1842
+ } | undefined;
1843
+ headingDeviationToleranceRad?: {
1844
+ value: number;
1845
+ provenance?: string | undefined;
1846
+ } | undefined;
1847
+ translationalDeviationToleranceIn?: {
1848
+ value: number;
1849
+ provenance?: string | undefined;
1850
+ } | undefined;
1851
+ minCorrectionDistanceIn?: {
1852
+ value: number;
1853
+ provenance?: string | undefined;
1854
+ } | undefined;
1855
+ cosineScale?: boolean | {
1856
+ value: boolean;
1857
+ provenance?: string | undefined;
1858
+ } | undefined;
1859
+ turnBeforeDriving?: boolean | {
1860
+ value: boolean;
1861
+ provenance?: string | undefined;
1862
+ } | undefined;
1863
+ };
1864
+ settleS?: {
1865
+ value: number;
1866
+ provenance?: string | undefined;
1867
+ } | undefined;
1868
+ strafeFractionWarn?: {
1869
+ value: number;
1870
+ provenance?: string | undefined;
1871
+ } | undefined;
1872
+ strafeFractionThreshold?: {
1873
+ value: number;
1874
+ provenance?: string | undefined;
1875
+ } | undefined;
1876
+ sweepSpeedFraction?: {
1877
+ value: number;
1878
+ provenance?: string | undefined;
1879
+ } | undefined;
1880
+ calibration?: {
1881
+ band: number;
1882
+ provenance?: string | undefined;
1883
+ samples?: number | undefined;
1884
+ } | undefined;
1885
+ drivetrain?: {
1886
+ trackWidthIn?: {
1887
+ value: number;
1888
+ provenance?: string | undefined;
1889
+ } | undefined;
1890
+ wheelBaseIn?: {
1891
+ value: number;
1892
+ provenance?: string | undefined;
1893
+ } | undefined;
1894
+ wheelResponseRatePerS?: {
1895
+ value: number;
1896
+ provenance?: string | undefined;
1897
+ } | undefined;
1898
+ } | undefined;
1899
+ }, {
1900
+ maxForwardVelInPerS: {
1901
+ value: number;
1902
+ provenance?: string | undefined;
1903
+ };
1904
+ maxStrafeVelInPerS: {
1905
+ value: number;
1906
+ provenance?: string | undefined;
1907
+ };
1908
+ forwardDecelInPerS2: {
1909
+ value: number;
1910
+ provenance?: string | undefined;
1911
+ };
1912
+ strafeDecelInPerS2: {
1913
+ value: number;
1914
+ provenance?: string | undefined;
1915
+ };
1916
+ accelInPerS2: {
1917
+ value: number;
1918
+ provenance?: string | undefined;
1919
+ };
1920
+ maxAngularVelRadPerS: {
1921
+ value: number;
1922
+ provenance?: string | undefined;
1923
+ };
1924
+ defaultPathSpeedFraction: {
1925
+ value: number;
1926
+ provenance?: string | undefined;
1927
+ };
1928
+ follower: {
1929
+ library: "pedro";
1930
+ version: string;
1931
+ holdEnd: boolean;
1932
+ forwardTranslationalPowerPerIn?: {
1933
+ value: number;
1934
+ provenance?: string | undefined;
1935
+ } | undefined;
1936
+ strafeTranslationalPowerPerIn?: {
1937
+ value: number;
1938
+ provenance?: string | undefined;
1939
+ } | undefined;
1940
+ headingPowerPerRad?: {
1941
+ value: number;
1942
+ provenance?: string | undefined;
1943
+ } | undefined;
1944
+ headingStaticPower?: {
1945
+ value: number;
1946
+ provenance?: string | undefined;
1947
+ } | undefined;
1948
+ coastPowerPerInPerS?: {
1949
+ value: number;
1950
+ provenance?: string | undefined;
1951
+ } | undefined;
1952
+ coastFeedforwardPowerPerInPerS?: {
1953
+ value: number;
1954
+ provenance?: string | undefined;
1955
+ } | undefined;
1956
+ brakeFeedforwardPowerPerInPerS?: {
1957
+ value: number;
1958
+ provenance?: string | undefined;
1959
+ } | undefined;
1960
+ maxBrakingPower?: {
1961
+ value: number;
1962
+ provenance?: string | undefined;
1963
+ } | undefined;
1964
+ headingDriveRatio?: {
1965
+ value: number;
1966
+ provenance?: string | undefined;
1967
+ } | undefined;
1968
+ brakeAggression?: {
1969
+ value: number;
1970
+ provenance?: string | undefined;
1971
+ } | undefined;
1972
+ brakeLinearForwardS?: {
1973
+ value: number;
1974
+ provenance?: string | undefined;
1975
+ } | undefined;
1976
+ brakeQuadraticForwardS2PerIn?: {
1977
+ value: number;
1978
+ provenance?: string | undefined;
1979
+ } | undefined;
1980
+ brakeLinearStrafeS?: {
1981
+ value: number;
1982
+ provenance?: string | undefined;
1983
+ } | undefined;
1984
+ brakeQuadraticStrafeS2PerIn?: {
1985
+ value: number;
1986
+ provenance?: string | undefined;
1987
+ } | undefined;
1988
+ headingBrakeLinearS?: {
1989
+ value: number;
1990
+ provenance?: string | undefined;
1991
+ } | undefined;
1992
+ headingBrakeQuadraticS2PerRad?: {
1993
+ value: number;
1994
+ provenance?: string | undefined;
1995
+ } | undefined;
1996
+ endParametricT?: {
1997
+ value: number;
1998
+ provenance?: string | undefined;
1999
+ } | undefined;
2000
+ endHeadingToleranceRad?: {
2001
+ value: number;
2002
+ provenance?: string | undefined;
2003
+ } | undefined;
2004
+ endTranslationalToleranceIn?: {
2005
+ value: number;
2006
+ provenance?: string | undefined;
2007
+ } | undefined;
2008
+ endVelocityToleranceInPerS?: {
2009
+ value: number;
2010
+ provenance?: string | undefined;
2011
+ } | undefined;
2012
+ holdTimeoutS?: {
2013
+ value: number;
2014
+ provenance?: string | undefined;
2015
+ } | undefined;
2016
+ headingDeviationToleranceRad?: {
2017
+ value: number;
2018
+ provenance?: string | undefined;
2019
+ } | undefined;
2020
+ translationalDeviationToleranceIn?: {
2021
+ value: number;
2022
+ provenance?: string | undefined;
2023
+ } | undefined;
2024
+ minCorrectionDistanceIn?: {
2025
+ value: number;
2026
+ provenance?: string | undefined;
2027
+ } | undefined;
2028
+ cosineScale?: boolean | {
2029
+ value: boolean;
2030
+ provenance?: string | undefined;
2031
+ } | undefined;
2032
+ turnBeforeDriving?: boolean | {
2033
+ value: boolean;
2034
+ provenance?: string | undefined;
2035
+ } | undefined;
2036
+ };
2037
+ settleS?: {
2038
+ value: number;
2039
+ provenance?: string | undefined;
2040
+ } | undefined;
2041
+ strafeFractionWarn?: {
2042
+ value: number;
2043
+ provenance?: string | undefined;
2044
+ } | undefined;
2045
+ strafeFractionThreshold?: {
2046
+ value: number;
2047
+ provenance?: string | undefined;
2048
+ } | undefined;
2049
+ sweepSpeedFraction?: {
2050
+ value: number;
2051
+ provenance?: string | undefined;
2052
+ } | undefined;
2053
+ calibration?: {
2054
+ band: number;
2055
+ provenance?: string | undefined;
2056
+ samples?: number | undefined;
2057
+ } | undefined;
2058
+ drivetrain?: {
2059
+ trackWidthIn?: {
2060
+ value: number;
2061
+ provenance?: string | undefined;
2062
+ } | undefined;
2063
+ wheelBaseIn?: {
2064
+ value: number;
2065
+ provenance?: string | undefined;
2066
+ } | undefined;
2067
+ wheelResponseRatePerS?: {
2068
+ value: number;
2069
+ provenance?: string | undefined;
2070
+ } | undefined;
2071
+ } | undefined;
2072
+ }>;
2073
+ mouths: z.ZodOptional<z.ZodArray<z.ZodObject<{
2074
+ id: z.ZodString;
2075
+ side: z.ZodEnum<["FRONT", "BACK", "LEFT", "RIGHT"]>;
2076
+ offsetIn: z.ZodObject<{
2077
+ xIn: z.ZodNumber;
2078
+ yIn: z.ZodNumber;
2079
+ }, "strip", z.ZodTypeAny, {
2080
+ xIn: number;
2081
+ yIn: number;
2082
+ }, {
2083
+ xIn: number;
2084
+ yIn: number;
2085
+ }>;
2086
+ widthIn: z.ZodNumber;
2087
+ depthIn: z.ZodNumber;
2088
+ provenance: z.ZodOptional<z.ZodString>;
2089
+ }, "strip", z.ZodTypeAny, {
2090
+ id: string;
2091
+ widthIn: number;
2092
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
2093
+ offsetIn: {
2094
+ xIn: number;
2095
+ yIn: number;
2096
+ };
2097
+ depthIn: number;
2098
+ provenance?: string | undefined;
2099
+ }, {
2100
+ id: string;
2101
+ widthIn: number;
2102
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
2103
+ offsetIn: {
2104
+ xIn: number;
2105
+ yIn: number;
2106
+ };
2107
+ depthIn: number;
2108
+ provenance?: string | undefined;
2109
+ }>, "many">>;
2110
+ capacity: z.ZodOptional<z.ZodObject<{
2111
+ elementKind: z.ZodString;
2112
+ max: z.ZodNumber;
2113
+ provenance: z.ZodOptional<z.ZodString>;
2114
+ }, "strip", z.ZodTypeAny, {
2115
+ max: number;
2116
+ elementKind: string;
2117
+ provenance?: string | undefined;
2118
+ }, {
2119
+ max: number;
2120
+ elementKind: string;
2121
+ provenance?: string | undefined;
2122
+ }>>;
2123
+ shooter: z.ZodOptional<z.ZodObject<{
2124
+ kind: z.ZodString;
2125
+ turretRangeRad: z.ZodOptional<z.ZodObject<{
2126
+ minRad: z.ZodNumber;
2127
+ maxRad: z.ZodNumber;
2128
+ provenance: z.ZodOptional<z.ZodString>;
2129
+ }, "strip", z.ZodTypeAny, {
2130
+ minRad: number;
2131
+ maxRad: number;
2132
+ provenance?: string | undefined;
2133
+ }, {
2134
+ minRad: number;
2135
+ maxRad: number;
2136
+ provenance?: string | undefined;
2137
+ }>>;
2138
+ cadenceS: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
2139
+ settleS: z.ZodOptional<z.ZodObject<{
2140
+ value: z.ZodNumber;
2141
+ provenance: z.ZodOptional<z.ZodString>;
2142
+ }, "strip", z.ZodTypeAny, {
2143
+ value: number;
2144
+ provenance?: string | undefined;
2145
+ }, {
2146
+ value: number;
2147
+ provenance?: string | undefined;
2148
+ }>>;
2149
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2150
+ kind: z.ZodString;
2151
+ turretRangeRad: z.ZodOptional<z.ZodObject<{
2152
+ minRad: z.ZodNumber;
2153
+ maxRad: z.ZodNumber;
2154
+ provenance: z.ZodOptional<z.ZodString>;
2155
+ }, "strip", z.ZodTypeAny, {
2156
+ minRad: number;
2157
+ maxRad: number;
2158
+ provenance?: string | undefined;
2159
+ }, {
2160
+ minRad: number;
2161
+ maxRad: number;
2162
+ provenance?: string | undefined;
2163
+ }>>;
2164
+ cadenceS: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
2165
+ settleS: z.ZodOptional<z.ZodObject<{
2166
+ value: z.ZodNumber;
2167
+ provenance: z.ZodOptional<z.ZodString>;
2168
+ }, "strip", z.ZodTypeAny, {
2169
+ value: number;
2170
+ provenance?: string | undefined;
2171
+ }, {
2172
+ value: number;
2173
+ provenance?: string | undefined;
2174
+ }>>;
2175
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2176
+ kind: z.ZodString;
2177
+ turretRangeRad: z.ZodOptional<z.ZodObject<{
2178
+ minRad: z.ZodNumber;
2179
+ maxRad: z.ZodNumber;
2180
+ provenance: z.ZodOptional<z.ZodString>;
2181
+ }, "strip", z.ZodTypeAny, {
2182
+ minRad: number;
2183
+ maxRad: number;
2184
+ provenance?: string | undefined;
2185
+ }, {
2186
+ minRad: number;
2187
+ maxRad: number;
2188
+ provenance?: string | undefined;
2189
+ }>>;
2190
+ cadenceS: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
2191
+ settleS: z.ZodOptional<z.ZodObject<{
2192
+ value: z.ZodNumber;
2193
+ provenance: z.ZodOptional<z.ZodString>;
2194
+ }, "strip", z.ZodTypeAny, {
2195
+ value: number;
2196
+ provenance?: string | undefined;
2197
+ }, {
2198
+ value: number;
2199
+ provenance?: string | undefined;
2200
+ }>>;
2201
+ }, z.ZodTypeAny, "passthrough">>>;
2202
+ commands: z.ZodArray<z.ZodObject<{
2203
+ name: z.ZodString;
2204
+ summary: z.ZodOptional<z.ZodString>;
2205
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2206
+ type: z.ZodLiteral<"integer">;
2207
+ min: z.ZodOptional<z.ZodNumber>;
2208
+ max: z.ZodOptional<z.ZodNumber>;
2209
+ default: z.ZodOptional<z.ZodNumber>;
2210
+ }, "strip", z.ZodTypeAny, {
2211
+ type: "integer";
2212
+ min?: number | undefined;
2213
+ max?: number | undefined;
2214
+ default?: number | undefined;
2215
+ }, {
2216
+ type: "integer";
2217
+ min?: number | undefined;
2218
+ max?: number | undefined;
2219
+ default?: number | undefined;
2220
+ }>, z.ZodObject<{
2221
+ type: z.ZodLiteral<"number">;
2222
+ min: z.ZodOptional<z.ZodNumber>;
2223
+ max: z.ZodOptional<z.ZodNumber>;
2224
+ default: z.ZodOptional<z.ZodNumber>;
2225
+ }, "strip", z.ZodTypeAny, {
2226
+ type: "number";
2227
+ min?: number | undefined;
2228
+ max?: number | undefined;
2229
+ default?: number | undefined;
2230
+ }, {
2231
+ type: "number";
2232
+ min?: number | undefined;
2233
+ max?: number | undefined;
2234
+ default?: number | undefined;
2235
+ }>, z.ZodObject<{
2236
+ type: z.ZodLiteral<"enum">;
2237
+ values: z.ZodArray<z.ZodString, "many">;
2238
+ default: z.ZodOptional<z.ZodString>;
2239
+ }, "strip", z.ZodTypeAny, {
2240
+ type: "enum";
2241
+ values: string[];
2242
+ default?: string | undefined;
2243
+ }, {
2244
+ type: "enum";
2245
+ values: string[];
2246
+ default?: string | undefined;
2247
+ }>, z.ZodObject<{
2248
+ type: z.ZodLiteral<"boolean">;
2249
+ default: z.ZodOptional<z.ZodBoolean>;
2250
+ }, "strip", z.ZodTypeAny, {
2251
+ type: "boolean";
2252
+ default?: boolean | undefined;
2253
+ }, {
2254
+ type: "boolean";
2255
+ default?: boolean | undefined;
2256
+ }>, z.ZodObject<{
2257
+ type: z.ZodLiteral<"string">;
2258
+ default: z.ZodOptional<z.ZodString>;
2259
+ }, "strip", z.ZodTypeAny, {
2260
+ type: "string";
2261
+ default?: string | undefined;
2262
+ }, {
2263
+ type: "string";
2264
+ default?: string | undefined;
2265
+ }>]>>>;
2266
+ estimateS: z.ZodEffects<z.ZodString, string, string>;
2267
+ requires: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2268
+ stationary: z.ZodOptional<z.ZodBoolean>;
2269
+ movesRobot: z.ZodOptional<z.ZodBoolean>;
2270
+ ledger: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
2271
+ }, "strip", z.ZodTypeAny, {
2272
+ name: string;
2273
+ estimateS: string;
2274
+ params?: Record<string, {
2275
+ type: "integer";
2276
+ min?: number | undefined;
2277
+ max?: number | undefined;
2278
+ default?: number | undefined;
2279
+ } | {
2280
+ type: "number";
2281
+ min?: number | undefined;
2282
+ max?: number | undefined;
2283
+ default?: number | undefined;
2284
+ } | {
2285
+ type: "enum";
2286
+ values: string[];
2287
+ default?: string | undefined;
2288
+ } | {
2289
+ type: "boolean";
2290
+ default?: boolean | undefined;
2291
+ } | {
2292
+ type: "string";
2293
+ default?: string | undefined;
2294
+ }> | undefined;
2295
+ summary?: string | undefined;
2296
+ requires?: string[] | undefined;
2297
+ stationary?: boolean | undefined;
2298
+ movesRobot?: boolean | undefined;
2299
+ ledger?: Record<string, string | number> | undefined;
2300
+ }, {
2301
+ name: string;
2302
+ estimateS: string;
2303
+ params?: Record<string, {
2304
+ type: "integer";
2305
+ min?: number | undefined;
2306
+ max?: number | undefined;
2307
+ default?: number | undefined;
2308
+ } | {
2309
+ type: "number";
2310
+ min?: number | undefined;
2311
+ max?: number | undefined;
2312
+ default?: number | undefined;
2313
+ } | {
2314
+ type: "enum";
2315
+ values: string[];
2316
+ default?: string | undefined;
2317
+ } | {
2318
+ type: "boolean";
2319
+ default?: boolean | undefined;
2320
+ } | {
2321
+ type: "string";
2322
+ default?: string | undefined;
2323
+ }> | undefined;
2324
+ summary?: string | undefined;
2325
+ requires?: string[] | undefined;
2326
+ stationary?: boolean | undefined;
2327
+ movesRobot?: boolean | undefined;
2328
+ ledger?: Record<string, string | number> | undefined;
2329
+ }>, "many">;
2330
+ conditions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2331
+ name: z.ZodString;
2332
+ summary: z.ZodOptional<z.ZodString>;
2333
+ /**
2334
+ * Which condition means the robot is at capacity (`"full"`) or holding nothing (`"empty"`), so
2335
+ * the instant sim can answer it from the ledger. Without it the sim assumes `hopperFull` and
2336
+ * `hopperEmpty`.
2337
+ */
2338
+ ledger: z.ZodOptional<z.ZodEnum<["full", "empty"]>>;
2339
+ }, "strip", z.ZodTypeAny, {
2340
+ name: string;
2341
+ summary?: string | undefined;
2342
+ ledger?: "full" | "empty" | undefined;
2343
+ }, {
2344
+ name: string;
2345
+ summary?: string | undefined;
2346
+ ledger?: "full" | "empty" | undefined;
2347
+ }>, "many">>;
2348
+ }, "strip", z.ZodTypeAny, {
2349
+ name: string;
2350
+ formatVersion: 1;
2351
+ frame: {
2352
+ left: "+x" | "+y" | "-x" | "-y";
2353
+ headingZero: "+x" | "+y";
2354
+ headingPositive: "ccw" | "cw";
2355
+ forward: "+x" | "+y" | "-x" | "-y";
2356
+ };
2357
+ footprint: {
2358
+ startIn: {
2359
+ lengthIn: number;
2360
+ widthIn: number;
2361
+ provenance?: string | undefined;
2362
+ };
2363
+ expandedIn: {
2364
+ lengthIn: number;
2365
+ widthIn: number;
2366
+ provenance?: string | undefined;
2367
+ };
2368
+ centreOfRotationIn: {
2369
+ xIn: number;
2370
+ yIn: number;
2371
+ provenance?: string | undefined;
2372
+ };
2373
+ heightIn?: {
2374
+ value: number;
2375
+ provenance?: string | undefined;
2376
+ } | undefined;
2377
+ };
2378
+ kinematics: {
2379
+ maxForwardVelInPerS: {
2380
+ value: number;
2381
+ provenance?: string | undefined;
2382
+ };
2383
+ maxStrafeVelInPerS: {
2384
+ value: number;
2385
+ provenance?: string | undefined;
2386
+ };
2387
+ forwardDecelInPerS2: {
2388
+ value: number;
2389
+ provenance?: string | undefined;
2390
+ };
2391
+ strafeDecelInPerS2: {
2392
+ value: number;
2393
+ provenance?: string | undefined;
2394
+ };
2395
+ accelInPerS2: {
2396
+ value: number;
2397
+ provenance?: string | undefined;
2398
+ };
2399
+ maxAngularVelRadPerS: {
2400
+ value: number;
2401
+ provenance?: string | undefined;
2402
+ };
2403
+ defaultPathSpeedFraction: {
2404
+ value: number;
2405
+ provenance?: string | undefined;
2406
+ };
2407
+ follower: {
2408
+ library: "pedro";
2409
+ version: string;
2410
+ holdEnd: boolean;
2411
+ forwardTranslationalPowerPerIn?: {
2412
+ value: number;
2413
+ provenance?: string | undefined;
2414
+ } | undefined;
2415
+ strafeTranslationalPowerPerIn?: {
2416
+ value: number;
2417
+ provenance?: string | undefined;
2418
+ } | undefined;
2419
+ headingPowerPerRad?: {
2420
+ value: number;
2421
+ provenance?: string | undefined;
2422
+ } | undefined;
2423
+ headingStaticPower?: {
2424
+ value: number;
2425
+ provenance?: string | undefined;
2426
+ } | undefined;
2427
+ coastPowerPerInPerS?: {
2428
+ value: number;
2429
+ provenance?: string | undefined;
2430
+ } | undefined;
2431
+ coastFeedforwardPowerPerInPerS?: {
2432
+ value: number;
2433
+ provenance?: string | undefined;
2434
+ } | undefined;
2435
+ brakeFeedforwardPowerPerInPerS?: {
2436
+ value: number;
2437
+ provenance?: string | undefined;
2438
+ } | undefined;
2439
+ maxBrakingPower?: {
2440
+ value: number;
2441
+ provenance?: string | undefined;
2442
+ } | undefined;
2443
+ headingDriveRatio?: {
2444
+ value: number;
2445
+ provenance?: string | undefined;
2446
+ } | undefined;
2447
+ brakeAggression?: {
2448
+ value: number;
2449
+ provenance?: string | undefined;
2450
+ } | undefined;
2451
+ brakeLinearForwardS?: {
2452
+ value: number;
2453
+ provenance?: string | undefined;
2454
+ } | undefined;
2455
+ brakeQuadraticForwardS2PerIn?: {
2456
+ value: number;
2457
+ provenance?: string | undefined;
2458
+ } | undefined;
2459
+ brakeLinearStrafeS?: {
2460
+ value: number;
2461
+ provenance?: string | undefined;
2462
+ } | undefined;
2463
+ brakeQuadraticStrafeS2PerIn?: {
2464
+ value: number;
2465
+ provenance?: string | undefined;
2466
+ } | undefined;
2467
+ headingBrakeLinearS?: {
2468
+ value: number;
2469
+ provenance?: string | undefined;
2470
+ } | undefined;
2471
+ headingBrakeQuadraticS2PerRad?: {
2472
+ value: number;
2473
+ provenance?: string | undefined;
2474
+ } | undefined;
2475
+ endParametricT?: {
2476
+ value: number;
2477
+ provenance?: string | undefined;
2478
+ } | undefined;
2479
+ endHeadingToleranceRad?: {
2480
+ value: number;
2481
+ provenance?: string | undefined;
2482
+ } | undefined;
2483
+ endTranslationalToleranceIn?: {
2484
+ value: number;
2485
+ provenance?: string | undefined;
2486
+ } | undefined;
2487
+ endVelocityToleranceInPerS?: {
2488
+ value: number;
2489
+ provenance?: string | undefined;
2490
+ } | undefined;
2491
+ holdTimeoutS?: {
2492
+ value: number;
2493
+ provenance?: string | undefined;
2494
+ } | undefined;
2495
+ headingDeviationToleranceRad?: {
2496
+ value: number;
2497
+ provenance?: string | undefined;
2498
+ } | undefined;
2499
+ translationalDeviationToleranceIn?: {
2500
+ value: number;
2501
+ provenance?: string | undefined;
2502
+ } | undefined;
2503
+ minCorrectionDistanceIn?: {
2504
+ value: number;
2505
+ provenance?: string | undefined;
2506
+ } | undefined;
2507
+ cosineScale?: boolean | {
2508
+ value: boolean;
2509
+ provenance?: string | undefined;
2510
+ } | undefined;
2511
+ turnBeforeDriving?: boolean | {
2512
+ value: boolean;
2513
+ provenance?: string | undefined;
2514
+ } | undefined;
2515
+ };
2516
+ settleS?: {
2517
+ value: number;
2518
+ provenance?: string | undefined;
2519
+ } | undefined;
2520
+ strafeFractionWarn?: {
2521
+ value: number;
2522
+ provenance?: string | undefined;
2523
+ } | undefined;
2524
+ strafeFractionThreshold?: {
2525
+ value: number;
2526
+ provenance?: string | undefined;
2527
+ } | undefined;
2528
+ sweepSpeedFraction?: {
2529
+ value: number;
2530
+ provenance?: string | undefined;
2531
+ } | undefined;
2532
+ calibration?: {
2533
+ band: number;
2534
+ provenance?: string | undefined;
2535
+ samples?: number | undefined;
2536
+ } | undefined;
2537
+ drivetrain?: {
2538
+ trackWidthIn?: {
2539
+ value: number;
2540
+ provenance?: string | undefined;
2541
+ } | undefined;
2542
+ wheelBaseIn?: {
2543
+ value: number;
2544
+ provenance?: string | undefined;
2545
+ } | undefined;
2546
+ wheelResponseRatePerS?: {
2547
+ value: number;
2548
+ provenance?: string | undefined;
2549
+ } | undefined;
2550
+ } | undefined;
2551
+ };
2552
+ commands: {
2553
+ name: string;
2554
+ estimateS: string;
2555
+ params?: Record<string, {
2556
+ type: "integer";
2557
+ min?: number | undefined;
2558
+ max?: number | undefined;
2559
+ default?: number | undefined;
2560
+ } | {
2561
+ type: "number";
2562
+ min?: number | undefined;
2563
+ max?: number | undefined;
2564
+ default?: number | undefined;
2565
+ } | {
2566
+ type: "enum";
2567
+ values: string[];
2568
+ default?: string | undefined;
2569
+ } | {
2570
+ type: "boolean";
2571
+ default?: boolean | undefined;
2572
+ } | {
2573
+ type: "string";
2574
+ default?: string | undefined;
2575
+ }> | undefined;
2576
+ summary?: string | undefined;
2577
+ requires?: string[] | undefined;
2578
+ stationary?: boolean | undefined;
2579
+ movesRobot?: boolean | undefined;
2580
+ ledger?: Record<string, string | number> | undefined;
2581
+ }[];
2582
+ $schema?: string | undefined;
2583
+ heightIn?: {
2584
+ value: number;
2585
+ provenance?: string | undefined;
2586
+ } | undefined;
2587
+ mouths?: {
2588
+ id: string;
2589
+ widthIn: number;
2590
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
2591
+ offsetIn: {
2592
+ xIn: number;
2593
+ yIn: number;
2594
+ };
2595
+ depthIn: number;
2596
+ provenance?: string | undefined;
2597
+ }[] | undefined;
2598
+ capacity?: {
2599
+ max: number;
2600
+ elementKind: string;
2601
+ provenance?: string | undefined;
2602
+ } | undefined;
2603
+ shooter?: z.objectOutputType<{
2604
+ kind: z.ZodString;
2605
+ turretRangeRad: z.ZodOptional<z.ZodObject<{
2606
+ minRad: z.ZodNumber;
2607
+ maxRad: z.ZodNumber;
2608
+ provenance: z.ZodOptional<z.ZodString>;
2609
+ }, "strip", z.ZodTypeAny, {
2610
+ minRad: number;
2611
+ maxRad: number;
2612
+ provenance?: string | undefined;
2613
+ }, {
2614
+ minRad: number;
2615
+ maxRad: number;
2616
+ provenance?: string | undefined;
2617
+ }>>;
2618
+ cadenceS: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
2619
+ settleS: z.ZodOptional<z.ZodObject<{
2620
+ value: z.ZodNumber;
2621
+ provenance: z.ZodOptional<z.ZodString>;
2622
+ }, "strip", z.ZodTypeAny, {
2623
+ value: number;
2624
+ provenance?: string | undefined;
2625
+ }, {
2626
+ value: number;
2627
+ provenance?: string | undefined;
2628
+ }>>;
2629
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2630
+ conditions?: {
2631
+ name: string;
2632
+ summary?: string | undefined;
2633
+ ledger?: "full" | "empty" | undefined;
2634
+ }[] | undefined;
2635
+ }, {
2636
+ name: string;
2637
+ formatVersion: 1;
2638
+ frame: {
2639
+ left: "+x" | "+y" | "-x" | "-y";
2640
+ headingZero: "+x" | "+y";
2641
+ headingPositive: "ccw" | "cw";
2642
+ forward: "+x" | "+y" | "-x" | "-y";
2643
+ };
2644
+ footprint: {
2645
+ startIn: {
2646
+ lengthIn: number;
2647
+ widthIn: number;
2648
+ provenance?: string | undefined;
2649
+ };
2650
+ expandedIn: {
2651
+ lengthIn: number;
2652
+ widthIn: number;
2653
+ provenance?: string | undefined;
2654
+ };
2655
+ centreOfRotationIn: {
2656
+ xIn: number;
2657
+ yIn: number;
2658
+ provenance?: string | undefined;
2659
+ };
2660
+ heightIn?: {
2661
+ value: number;
2662
+ provenance?: string | undefined;
2663
+ } | undefined;
2664
+ };
2665
+ kinematics: {
2666
+ maxForwardVelInPerS: {
2667
+ value: number;
2668
+ provenance?: string | undefined;
2669
+ };
2670
+ maxStrafeVelInPerS: {
2671
+ value: number;
2672
+ provenance?: string | undefined;
2673
+ };
2674
+ forwardDecelInPerS2: {
2675
+ value: number;
2676
+ provenance?: string | undefined;
2677
+ };
2678
+ strafeDecelInPerS2: {
2679
+ value: number;
2680
+ provenance?: string | undefined;
2681
+ };
2682
+ accelInPerS2: {
2683
+ value: number;
2684
+ provenance?: string | undefined;
2685
+ };
2686
+ maxAngularVelRadPerS: {
2687
+ value: number;
2688
+ provenance?: string | undefined;
2689
+ };
2690
+ defaultPathSpeedFraction: {
2691
+ value: number;
2692
+ provenance?: string | undefined;
2693
+ };
2694
+ follower: {
2695
+ library: "pedro";
2696
+ version: string;
2697
+ holdEnd: boolean;
2698
+ forwardTranslationalPowerPerIn?: {
2699
+ value: number;
2700
+ provenance?: string | undefined;
2701
+ } | undefined;
2702
+ strafeTranslationalPowerPerIn?: {
2703
+ value: number;
2704
+ provenance?: string | undefined;
2705
+ } | undefined;
2706
+ headingPowerPerRad?: {
2707
+ value: number;
2708
+ provenance?: string | undefined;
2709
+ } | undefined;
2710
+ headingStaticPower?: {
2711
+ value: number;
2712
+ provenance?: string | undefined;
2713
+ } | undefined;
2714
+ coastPowerPerInPerS?: {
2715
+ value: number;
2716
+ provenance?: string | undefined;
2717
+ } | undefined;
2718
+ coastFeedforwardPowerPerInPerS?: {
2719
+ value: number;
2720
+ provenance?: string | undefined;
2721
+ } | undefined;
2722
+ brakeFeedforwardPowerPerInPerS?: {
2723
+ value: number;
2724
+ provenance?: string | undefined;
2725
+ } | undefined;
2726
+ maxBrakingPower?: {
2727
+ value: number;
2728
+ provenance?: string | undefined;
2729
+ } | undefined;
2730
+ headingDriveRatio?: {
2731
+ value: number;
2732
+ provenance?: string | undefined;
2733
+ } | undefined;
2734
+ brakeAggression?: {
2735
+ value: number;
2736
+ provenance?: string | undefined;
2737
+ } | undefined;
2738
+ brakeLinearForwardS?: {
2739
+ value: number;
2740
+ provenance?: string | undefined;
2741
+ } | undefined;
2742
+ brakeQuadraticForwardS2PerIn?: {
2743
+ value: number;
2744
+ provenance?: string | undefined;
2745
+ } | undefined;
2746
+ brakeLinearStrafeS?: {
2747
+ value: number;
2748
+ provenance?: string | undefined;
2749
+ } | undefined;
2750
+ brakeQuadraticStrafeS2PerIn?: {
2751
+ value: number;
2752
+ provenance?: string | undefined;
2753
+ } | undefined;
2754
+ headingBrakeLinearS?: {
2755
+ value: number;
2756
+ provenance?: string | undefined;
2757
+ } | undefined;
2758
+ headingBrakeQuadraticS2PerRad?: {
2759
+ value: number;
2760
+ provenance?: string | undefined;
2761
+ } | undefined;
2762
+ endParametricT?: {
2763
+ value: number;
2764
+ provenance?: string | undefined;
2765
+ } | undefined;
2766
+ endHeadingToleranceRad?: {
2767
+ value: number;
2768
+ provenance?: string | undefined;
2769
+ } | undefined;
2770
+ endTranslationalToleranceIn?: {
2771
+ value: number;
2772
+ provenance?: string | undefined;
2773
+ } | undefined;
2774
+ endVelocityToleranceInPerS?: {
2775
+ value: number;
2776
+ provenance?: string | undefined;
2777
+ } | undefined;
2778
+ holdTimeoutS?: {
2779
+ value: number;
2780
+ provenance?: string | undefined;
2781
+ } | undefined;
2782
+ headingDeviationToleranceRad?: {
2783
+ value: number;
2784
+ provenance?: string | undefined;
2785
+ } | undefined;
2786
+ translationalDeviationToleranceIn?: {
2787
+ value: number;
2788
+ provenance?: string | undefined;
2789
+ } | undefined;
2790
+ minCorrectionDistanceIn?: {
2791
+ value: number;
2792
+ provenance?: string | undefined;
2793
+ } | undefined;
2794
+ cosineScale?: boolean | {
2795
+ value: boolean;
2796
+ provenance?: string | undefined;
2797
+ } | undefined;
2798
+ turnBeforeDriving?: boolean | {
2799
+ value: boolean;
2800
+ provenance?: string | undefined;
2801
+ } | undefined;
2802
+ };
2803
+ settleS?: {
2804
+ value: number;
2805
+ provenance?: string | undefined;
2806
+ } | undefined;
2807
+ strafeFractionWarn?: {
2808
+ value: number;
2809
+ provenance?: string | undefined;
2810
+ } | undefined;
2811
+ strafeFractionThreshold?: {
2812
+ value: number;
2813
+ provenance?: string | undefined;
2814
+ } | undefined;
2815
+ sweepSpeedFraction?: {
2816
+ value: number;
2817
+ provenance?: string | undefined;
2818
+ } | undefined;
2819
+ calibration?: {
2820
+ band: number;
2821
+ provenance?: string | undefined;
2822
+ samples?: number | undefined;
2823
+ } | undefined;
2824
+ drivetrain?: {
2825
+ trackWidthIn?: {
2826
+ value: number;
2827
+ provenance?: string | undefined;
2828
+ } | undefined;
2829
+ wheelBaseIn?: {
2830
+ value: number;
2831
+ provenance?: string | undefined;
2832
+ } | undefined;
2833
+ wheelResponseRatePerS?: {
2834
+ value: number;
2835
+ provenance?: string | undefined;
2836
+ } | undefined;
2837
+ } | undefined;
2838
+ };
2839
+ commands: {
2840
+ name: string;
2841
+ estimateS: string;
2842
+ params?: Record<string, {
2843
+ type: "integer";
2844
+ min?: number | undefined;
2845
+ max?: number | undefined;
2846
+ default?: number | undefined;
2847
+ } | {
2848
+ type: "number";
2849
+ min?: number | undefined;
2850
+ max?: number | undefined;
2851
+ default?: number | undefined;
2852
+ } | {
2853
+ type: "enum";
2854
+ values: string[];
2855
+ default?: string | undefined;
2856
+ } | {
2857
+ type: "boolean";
2858
+ default?: boolean | undefined;
2859
+ } | {
2860
+ type: "string";
2861
+ default?: string | undefined;
2862
+ }> | undefined;
2863
+ summary?: string | undefined;
2864
+ requires?: string[] | undefined;
2865
+ stationary?: boolean | undefined;
2866
+ movesRobot?: boolean | undefined;
2867
+ ledger?: Record<string, string | number> | undefined;
2868
+ }[];
2869
+ $schema?: string | undefined;
2870
+ heightIn?: number | {
2871
+ value: number;
2872
+ provenance?: string | undefined;
2873
+ } | undefined;
2874
+ mouths?: {
2875
+ id: string;
2876
+ widthIn: number;
2877
+ side: "FRONT" | "BACK" | "LEFT" | "RIGHT";
2878
+ offsetIn: {
2879
+ xIn: number;
2880
+ yIn: number;
2881
+ };
2882
+ depthIn: number;
2883
+ provenance?: string | undefined;
2884
+ }[] | undefined;
2885
+ capacity?: {
2886
+ max: number;
2887
+ elementKind: string;
2888
+ provenance?: string | undefined;
2889
+ } | undefined;
2890
+ shooter?: z.objectInputType<{
2891
+ kind: z.ZodString;
2892
+ turretRangeRad: z.ZodOptional<z.ZodObject<{
2893
+ minRad: z.ZodNumber;
2894
+ maxRad: z.ZodNumber;
2895
+ provenance: z.ZodOptional<z.ZodString>;
2896
+ }, "strip", z.ZodTypeAny, {
2897
+ minRad: number;
2898
+ maxRad: number;
2899
+ provenance?: string | undefined;
2900
+ }, {
2901
+ minRad: number;
2902
+ maxRad: number;
2903
+ provenance?: string | undefined;
2904
+ }>>;
2905
+ cadenceS: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
2906
+ settleS: z.ZodOptional<z.ZodObject<{
2907
+ value: z.ZodNumber;
2908
+ provenance: z.ZodOptional<z.ZodString>;
2909
+ }, "strip", z.ZodTypeAny, {
2910
+ value: number;
2911
+ provenance?: string | undefined;
2912
+ }, {
2913
+ value: number;
2914
+ provenance?: string | undefined;
2915
+ }>>;
2916
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2917
+ conditions?: {
2918
+ name: string;
2919
+ summary?: string | undefined;
2920
+ ledger?: "full" | "empty" | undefined;
2921
+ }[] | undefined;
2922
+ }>;
2923
+ export type FootprintBox = z.infer<typeof footprintBoxSchema>;
2924
+ export type Footprint = z.infer<typeof footprintSchema>;
2925
+ export type Mouth = z.infer<typeof mouthSchema>;
2926
+ export type CommandParam = z.infer<typeof commandParamSchema>;
2927
+ export type CommandSpec = z.infer<typeof commandSpecSchema>;
2928
+ export type ConditionSpec = z.infer<typeof conditionSpecSchema>;
2929
+ export type Robot = z.infer<typeof robotSchema>;
2930
+ export type Follower = z.infer<typeof followerSchema>;
2931
+ export type Drivetrain = z.infer<typeof drivetrainSchema>;
2932
+ export type ValuedBoolean = z.infer<typeof valuedBooleanSchema>;
2933
+ /** The robot height the STRUCTURE z-gate assumes when `robot.json` does not say. */
2934
+ export declare const DEFAULT_ROBOT_HEIGHT_IN = 18;
2935
+ //# sourceMappingURL=robot.d.ts.map