@bitmagic/animation-forger 0.1.0

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.
@@ -0,0 +1,1409 @@
1
+ /**
2
+ * The authored-clip parameter spec — what a caller sends to have an animation
3
+ * built.
4
+ *
5
+ * This is the PUBLISHED half of the animation forger: the dials and their
6
+ * ranges, and nothing that knows how to turn them into motion. The solver, the
7
+ * tuned preset tables and the pose vocabulary live in the private half and never
8
+ * reach a creator's machine.
9
+ *
10
+ * Two properties this shape exists to guarantee:
11
+ *
12
+ * 1. SAFETY. The obvious design has an agent write a clip module which the
13
+ * builder then imports — arbitrary code execution driven by end-user
14
+ * prompts. Here the caller emits DATA, this schema validates it, and only
15
+ * code that already shipped ever runs.
16
+ *
17
+ * 2. QUALITY. Every range below is the range the built-in clips were tuned
18
+ * within. Outside them the IK starts clamping and the feet skate, so a spec
19
+ * that falls outside is REFUSED with the failing field named rather than
20
+ * approximated — a clip that measures fine and looks wrong is worse than no
21
+ * clip.
22
+ *
23
+ * ── Keeping this in step with the private half ──────────────────────────────
24
+ *
25
+ * Three of the enums and defaults below are literal copies of private tables:
26
+ * `BLADE_DIRECTIONS` (the blade aim vocabulary), `GAIT_PRESETS` (the preset
27
+ * names) and `STANDING_HIP_Y`. They are inlined because this package must not
28
+ * depend on the private one. A `schema-sync` test in the private package asserts
29
+ * each of them still matches its table — without it, adding an eleventh blade
30
+ * direction would leave it silently unreachable, with no error anywhere.
31
+ */
32
+ import { z } from 'zod';
33
+ /**
34
+ * The blade aim vocabulary. MUST equal `Object.keys(BLADE)` in the private half
35
+ * — pinned by its schema-sync test.
36
+ */
37
+ export declare const BLADE_DIRECTIONS: readonly ["forward", "forwardHigh", "forwardLow", "up", "upBack", "down", "downForward", "outRight", "outLeft", "rest"];
38
+ /** MUST equal `Object.keys(GAIT_PRESETS)` in the private half. */
39
+ export declare const GAIT_PRESET_NAMES: readonly ["walk", "slowRun", "fastRun"];
40
+ /** MUST equal `STANDING_HIP_Y` in the private half. Hip height in cm, standing. */
41
+ export declare const STANDING_HIP_Y = 97.5;
42
+ export declare const gaitSpecSchema: z.ZodObject<{
43
+ basedOn: z.ZodEnum<["walk", "slowRun", "fastRun"]>;
44
+ designSpeed: z.ZodNumber;
45
+ loop: z.ZodDefault<z.ZodLiteral<true>>;
46
+ dials: z.ZodDefault<z.ZodObject<{
47
+ stance: z.ZodOptional<z.ZodNumber>;
48
+ bob: z.ZodOptional<z.ZodNumber>;
49
+ footLift: z.ZodOptional<z.ZodNumber>;
50
+ lean: z.ZodOptional<z.ZodNumber>;
51
+ armSwing: z.ZodOptional<z.ZodNumber>;
52
+ armSplay: z.ZodOptional<z.ZodNumber>;
53
+ elbow: z.ZodOptional<z.ZodNumber>;
54
+ hipYaw: z.ZodOptional<z.ZodNumber>;
55
+ chestYaw: z.ZodOptional<z.ZodNumber>;
56
+ limpSide: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
57
+ limpDepth: z.ZodOptional<z.ZodNumber>;
58
+ arms: z.ZodOptional<z.ZodObject<{
59
+ pitch: z.ZodNumber;
60
+ splay: z.ZodOptional<z.ZodNumber>;
61
+ elbow: z.ZodOptional<z.ZodNumber>;
62
+ yaw: z.ZodOptional<z.ZodNumber>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ pitch: number;
65
+ splay?: number | undefined;
66
+ elbow?: number | undefined;
67
+ yaw?: number | undefined;
68
+ }, {
69
+ pitch: number;
70
+ splay?: number | undefined;
71
+ elbow?: number | undefined;
72
+ yaw?: number | undefined;
73
+ }>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ elbow?: number | undefined;
76
+ stance?: number | undefined;
77
+ bob?: number | undefined;
78
+ footLift?: number | undefined;
79
+ lean?: number | undefined;
80
+ armSwing?: number | undefined;
81
+ armSplay?: number | undefined;
82
+ hipYaw?: number | undefined;
83
+ chestYaw?: number | undefined;
84
+ limpSide?: "left" | "right" | undefined;
85
+ limpDepth?: number | undefined;
86
+ arms?: {
87
+ pitch: number;
88
+ splay?: number | undefined;
89
+ elbow?: number | undefined;
90
+ yaw?: number | undefined;
91
+ } | undefined;
92
+ }, {
93
+ elbow?: number | undefined;
94
+ stance?: number | undefined;
95
+ bob?: number | undefined;
96
+ footLift?: number | undefined;
97
+ lean?: number | undefined;
98
+ armSwing?: number | undefined;
99
+ armSplay?: number | undefined;
100
+ hipYaw?: number | undefined;
101
+ chestYaw?: number | undefined;
102
+ limpSide?: "left" | "right" | undefined;
103
+ limpDepth?: number | undefined;
104
+ arms?: {
105
+ pitch: number;
106
+ splay?: number | undefined;
107
+ elbow?: number | undefined;
108
+ yaw?: number | undefined;
109
+ } | undefined;
110
+ }>>;
111
+ name: z.ZodEffects<z.ZodString, string, string>;
112
+ motionId: z.ZodString;
113
+ duration: z.ZodNumber;
114
+ family: z.ZodLiteral<"gait">;
115
+ }, "strip", z.ZodTypeAny, {
116
+ family: "gait";
117
+ basedOn: "walk" | "slowRun" | "fastRun";
118
+ designSpeed: number;
119
+ loop: true;
120
+ dials: {
121
+ elbow?: number | undefined;
122
+ stance?: number | undefined;
123
+ bob?: number | undefined;
124
+ footLift?: number | undefined;
125
+ lean?: number | undefined;
126
+ armSwing?: number | undefined;
127
+ armSplay?: number | undefined;
128
+ hipYaw?: number | undefined;
129
+ chestYaw?: number | undefined;
130
+ limpSide?: "left" | "right" | undefined;
131
+ limpDepth?: number | undefined;
132
+ arms?: {
133
+ pitch: number;
134
+ splay?: number | undefined;
135
+ elbow?: number | undefined;
136
+ yaw?: number | undefined;
137
+ } | undefined;
138
+ };
139
+ name: string;
140
+ motionId: string;
141
+ duration: number;
142
+ }, {
143
+ family: "gait";
144
+ basedOn: "walk" | "slowRun" | "fastRun";
145
+ designSpeed: number;
146
+ name: string;
147
+ motionId: string;
148
+ duration: number;
149
+ loop?: true | undefined;
150
+ dials?: {
151
+ elbow?: number | undefined;
152
+ stance?: number | undefined;
153
+ bob?: number | undefined;
154
+ footLift?: number | undefined;
155
+ lean?: number | undefined;
156
+ armSwing?: number | undefined;
157
+ armSplay?: number | undefined;
158
+ hipYaw?: number | undefined;
159
+ chestYaw?: number | undefined;
160
+ limpSide?: "left" | "right" | undefined;
161
+ limpDepth?: number | undefined;
162
+ arms?: {
163
+ pitch: number;
164
+ splay?: number | undefined;
165
+ elbow?: number | undefined;
166
+ yaw?: number | undefined;
167
+ } | undefined;
168
+ } | undefined;
169
+ }>;
170
+ export declare const meleeSpecSchema: z.ZodObject<{
171
+ loop: z.ZodDefault<z.ZodLiteral<false>>;
172
+ impactPhase: z.ZodNumber;
173
+ twoHanded: z.ZodDefault<z.ZodBoolean>;
174
+ keys: z.ZodArray<z.ZodObject<{
175
+ at: z.ZodNumber;
176
+ ease: z.ZodDefault<z.ZodEnum<["linear", "in", "out", "inOut"]>>;
177
+ pow: z.ZodDefault<z.ZodNumber>;
178
+ grip: z.ZodEnum<["one", "two"]>;
179
+ hipDrop: z.ZodDefault<z.ZodNumber>;
180
+ twist: z.ZodDefault<z.ZodNumber>;
181
+ fold: z.ZodDefault<z.ZodNumber>;
182
+ blade: z.ZodEnum<["forward", "forwardHigh", "forwardLow", "up", "upBack", "down", "downForward", "outRight", "outLeft", "rest"]>;
183
+ arm: z.ZodObject<{
184
+ pitch: z.ZodNumber;
185
+ yaw: z.ZodDefault<z.ZodNumber>;
186
+ elbow: z.ZodDefault<z.ZodNumber>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ pitch: number;
189
+ elbow: number;
190
+ yaw: number;
191
+ }, {
192
+ pitch: number;
193
+ elbow?: number | undefined;
194
+ yaw?: number | undefined;
195
+ }>;
196
+ stance: z.ZodOptional<z.ZodObject<{
197
+ front: z.ZodDefault<z.ZodNumber>;
198
+ back: z.ZodDefault<z.ZodNumber>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ front: number;
201
+ back: number;
202
+ }, {
203
+ front?: number | undefined;
204
+ back?: number | undefined;
205
+ }>>;
206
+ }, "strip", z.ZodTypeAny, {
207
+ at: number;
208
+ ease: "linear" | "in" | "out" | "inOut";
209
+ pow: number;
210
+ grip: "one" | "two";
211
+ hipDrop: number;
212
+ twist: number;
213
+ fold: number;
214
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
215
+ arm: {
216
+ pitch: number;
217
+ elbow: number;
218
+ yaw: number;
219
+ };
220
+ stance?: {
221
+ front: number;
222
+ back: number;
223
+ } | undefined;
224
+ }, {
225
+ at: number;
226
+ grip: "one" | "two";
227
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
228
+ arm: {
229
+ pitch: number;
230
+ elbow?: number | undefined;
231
+ yaw?: number | undefined;
232
+ };
233
+ stance?: {
234
+ front?: number | undefined;
235
+ back?: number | undefined;
236
+ } | undefined;
237
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
238
+ pow?: number | undefined;
239
+ hipDrop?: number | undefined;
240
+ twist?: number | undefined;
241
+ fold?: number | undefined;
242
+ }>, "many">;
243
+ name: z.ZodEffects<z.ZodString, string, string>;
244
+ motionId: z.ZodString;
245
+ duration: z.ZodNumber;
246
+ family: z.ZodLiteral<"melee">;
247
+ }, "strip", z.ZodTypeAny, {
248
+ keys: {
249
+ at: number;
250
+ ease: "linear" | "in" | "out" | "inOut";
251
+ pow: number;
252
+ grip: "one" | "two";
253
+ hipDrop: number;
254
+ twist: number;
255
+ fold: number;
256
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
257
+ arm: {
258
+ pitch: number;
259
+ elbow: number;
260
+ yaw: number;
261
+ };
262
+ stance?: {
263
+ front: number;
264
+ back: number;
265
+ } | undefined;
266
+ }[];
267
+ family: "melee";
268
+ loop: false;
269
+ name: string;
270
+ motionId: string;
271
+ duration: number;
272
+ impactPhase: number;
273
+ twoHanded: boolean;
274
+ }, {
275
+ keys: {
276
+ at: number;
277
+ grip: "one" | "two";
278
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
279
+ arm: {
280
+ pitch: number;
281
+ elbow?: number | undefined;
282
+ yaw?: number | undefined;
283
+ };
284
+ stance?: {
285
+ front?: number | undefined;
286
+ back?: number | undefined;
287
+ } | undefined;
288
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
289
+ pow?: number | undefined;
290
+ hipDrop?: number | undefined;
291
+ twist?: number | undefined;
292
+ fold?: number | undefined;
293
+ }[];
294
+ family: "melee";
295
+ name: string;
296
+ motionId: string;
297
+ duration: number;
298
+ impactPhase: number;
299
+ loop?: false | undefined;
300
+ twoHanded?: boolean | undefined;
301
+ }>;
302
+ export declare const oneShotSpecSchema: z.ZodObject<{
303
+ loop: z.ZodDefault<z.ZodBoolean>;
304
+ keys: z.ZodArray<z.ZodObject<{
305
+ at: z.ZodNumber;
306
+ ease: z.ZodDefault<z.ZodEnum<["linear", "in", "out", "inOut"]>>;
307
+ hipY: z.ZodDefault<z.ZodNumber>;
308
+ stance: z.ZodDefault<z.ZodObject<{
309
+ front: z.ZodDefault<z.ZodNumber>;
310
+ back: z.ZodDefault<z.ZodNumber>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ front: number;
313
+ back: number;
314
+ }, {
315
+ front?: number | undefined;
316
+ back?: number | undefined;
317
+ }>>;
318
+ arms: z.ZodDefault<z.ZodObject<{
319
+ left: z.ZodOptional<z.ZodObject<{
320
+ pitch: z.ZodNumber;
321
+ } & {
322
+ splay: z.ZodDefault<z.ZodNumber>;
323
+ elbow: z.ZodDefault<z.ZodNumber>;
324
+ yaw: z.ZodDefault<z.ZodNumber>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ pitch: number;
327
+ splay: number;
328
+ elbow: number;
329
+ yaw: number;
330
+ }, {
331
+ pitch: number;
332
+ splay?: number | undefined;
333
+ elbow?: number | undefined;
334
+ yaw?: number | undefined;
335
+ }>>;
336
+ right: z.ZodOptional<z.ZodObject<{
337
+ pitch: z.ZodNumber;
338
+ } & {
339
+ splay: z.ZodDefault<z.ZodNumber>;
340
+ elbow: z.ZodDefault<z.ZodNumber>;
341
+ yaw: z.ZodDefault<z.ZodNumber>;
342
+ }, "strip", z.ZodTypeAny, {
343
+ pitch: number;
344
+ splay: number;
345
+ elbow: number;
346
+ yaw: number;
347
+ }, {
348
+ pitch: number;
349
+ splay?: number | undefined;
350
+ elbow?: number | undefined;
351
+ yaw?: number | undefined;
352
+ }>>;
353
+ }, "strip", z.ZodTypeAny, {
354
+ left?: {
355
+ pitch: number;
356
+ splay: number;
357
+ elbow: number;
358
+ yaw: number;
359
+ } | undefined;
360
+ right?: {
361
+ pitch: number;
362
+ splay: number;
363
+ elbow: number;
364
+ yaw: number;
365
+ } | undefined;
366
+ }, {
367
+ left?: {
368
+ pitch: number;
369
+ splay?: number | undefined;
370
+ elbow?: number | undefined;
371
+ yaw?: number | undefined;
372
+ } | undefined;
373
+ right?: {
374
+ pitch: number;
375
+ splay?: number | undefined;
376
+ elbow?: number | undefined;
377
+ yaw?: number | undefined;
378
+ } | undefined;
379
+ }>>;
380
+ torso: z.ZodDefault<z.ZodObject<{
381
+ spine: z.ZodOptional<z.ZodObject<{
382
+ pitch: z.ZodOptional<z.ZodNumber>;
383
+ yaw: z.ZodOptional<z.ZodNumber>;
384
+ roll: z.ZodOptional<z.ZodNumber>;
385
+ }, "strict", z.ZodTypeAny, {
386
+ pitch?: number | undefined;
387
+ yaw?: number | undefined;
388
+ roll?: number | undefined;
389
+ }, {
390
+ pitch?: number | undefined;
391
+ yaw?: number | undefined;
392
+ roll?: number | undefined;
393
+ }>>;
394
+ chest: z.ZodOptional<z.ZodObject<{
395
+ pitch: z.ZodOptional<z.ZodNumber>;
396
+ yaw: z.ZodOptional<z.ZodNumber>;
397
+ roll: z.ZodOptional<z.ZodNumber>;
398
+ }, "strict", z.ZodTypeAny, {
399
+ pitch?: number | undefined;
400
+ yaw?: number | undefined;
401
+ roll?: number | undefined;
402
+ }, {
403
+ pitch?: number | undefined;
404
+ yaw?: number | undefined;
405
+ roll?: number | undefined;
406
+ }>>;
407
+ neck: z.ZodOptional<z.ZodObject<{
408
+ pitch: z.ZodOptional<z.ZodNumber>;
409
+ yaw: z.ZodOptional<z.ZodNumber>;
410
+ roll: z.ZodOptional<z.ZodNumber>;
411
+ }, "strict", z.ZodTypeAny, {
412
+ pitch?: number | undefined;
413
+ yaw?: number | undefined;
414
+ roll?: number | undefined;
415
+ }, {
416
+ pitch?: number | undefined;
417
+ yaw?: number | undefined;
418
+ roll?: number | undefined;
419
+ }>>;
420
+ head: z.ZodOptional<z.ZodObject<{
421
+ pitch: z.ZodOptional<z.ZodNumber>;
422
+ yaw: z.ZodOptional<z.ZodNumber>;
423
+ roll: z.ZodOptional<z.ZodNumber>;
424
+ }, "strict", z.ZodTypeAny, {
425
+ pitch?: number | undefined;
426
+ yaw?: number | undefined;
427
+ roll?: number | undefined;
428
+ }, {
429
+ pitch?: number | undefined;
430
+ yaw?: number | undefined;
431
+ roll?: number | undefined;
432
+ }>>;
433
+ hips: z.ZodOptional<z.ZodObject<{
434
+ pitch: z.ZodOptional<z.ZodNumber>;
435
+ yaw: z.ZodOptional<z.ZodNumber>;
436
+ roll: z.ZodOptional<z.ZodNumber>;
437
+ }, "strict", z.ZodTypeAny, {
438
+ pitch?: number | undefined;
439
+ yaw?: number | undefined;
440
+ roll?: number | undefined;
441
+ }, {
442
+ pitch?: number | undefined;
443
+ yaw?: number | undefined;
444
+ roll?: number | undefined;
445
+ }>>;
446
+ }, "strip", z.ZodTypeAny, {
447
+ spine?: {
448
+ pitch?: number | undefined;
449
+ yaw?: number | undefined;
450
+ roll?: number | undefined;
451
+ } | undefined;
452
+ chest?: {
453
+ pitch?: number | undefined;
454
+ yaw?: number | undefined;
455
+ roll?: number | undefined;
456
+ } | undefined;
457
+ neck?: {
458
+ pitch?: number | undefined;
459
+ yaw?: number | undefined;
460
+ roll?: number | undefined;
461
+ } | undefined;
462
+ head?: {
463
+ pitch?: number | undefined;
464
+ yaw?: number | undefined;
465
+ roll?: number | undefined;
466
+ } | undefined;
467
+ hips?: {
468
+ pitch?: number | undefined;
469
+ yaw?: number | undefined;
470
+ roll?: number | undefined;
471
+ } | undefined;
472
+ }, {
473
+ spine?: {
474
+ pitch?: number | undefined;
475
+ yaw?: number | undefined;
476
+ roll?: number | undefined;
477
+ } | undefined;
478
+ chest?: {
479
+ pitch?: number | undefined;
480
+ yaw?: number | undefined;
481
+ roll?: number | undefined;
482
+ } | undefined;
483
+ neck?: {
484
+ pitch?: number | undefined;
485
+ yaw?: number | undefined;
486
+ roll?: number | undefined;
487
+ } | undefined;
488
+ head?: {
489
+ pitch?: number | undefined;
490
+ yaw?: number | undefined;
491
+ roll?: number | undefined;
492
+ } | undefined;
493
+ hips?: {
494
+ pitch?: number | undefined;
495
+ yaw?: number | undefined;
496
+ roll?: number | undefined;
497
+ } | undefined;
498
+ }>>;
499
+ }, "strip", z.ZodTypeAny, {
500
+ stance: {
501
+ front: number;
502
+ back: number;
503
+ };
504
+ arms: {
505
+ left?: {
506
+ pitch: number;
507
+ splay: number;
508
+ elbow: number;
509
+ yaw: number;
510
+ } | undefined;
511
+ right?: {
512
+ pitch: number;
513
+ splay: number;
514
+ elbow: number;
515
+ yaw: number;
516
+ } | undefined;
517
+ };
518
+ at: number;
519
+ ease: "linear" | "in" | "out" | "inOut";
520
+ hipY: number;
521
+ torso: {
522
+ spine?: {
523
+ pitch?: number | undefined;
524
+ yaw?: number | undefined;
525
+ roll?: number | undefined;
526
+ } | undefined;
527
+ chest?: {
528
+ pitch?: number | undefined;
529
+ yaw?: number | undefined;
530
+ roll?: number | undefined;
531
+ } | undefined;
532
+ neck?: {
533
+ pitch?: number | undefined;
534
+ yaw?: number | undefined;
535
+ roll?: number | undefined;
536
+ } | undefined;
537
+ head?: {
538
+ pitch?: number | undefined;
539
+ yaw?: number | undefined;
540
+ roll?: number | undefined;
541
+ } | undefined;
542
+ hips?: {
543
+ pitch?: number | undefined;
544
+ yaw?: number | undefined;
545
+ roll?: number | undefined;
546
+ } | undefined;
547
+ };
548
+ }, {
549
+ at: number;
550
+ stance?: {
551
+ front?: number | undefined;
552
+ back?: number | undefined;
553
+ } | undefined;
554
+ arms?: {
555
+ left?: {
556
+ pitch: number;
557
+ splay?: number | undefined;
558
+ elbow?: number | undefined;
559
+ yaw?: number | undefined;
560
+ } | undefined;
561
+ right?: {
562
+ pitch: number;
563
+ splay?: number | undefined;
564
+ elbow?: number | undefined;
565
+ yaw?: number | undefined;
566
+ } | undefined;
567
+ } | undefined;
568
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
569
+ hipY?: number | undefined;
570
+ torso?: {
571
+ spine?: {
572
+ pitch?: number | undefined;
573
+ yaw?: number | undefined;
574
+ roll?: number | undefined;
575
+ } | undefined;
576
+ chest?: {
577
+ pitch?: number | undefined;
578
+ yaw?: number | undefined;
579
+ roll?: number | undefined;
580
+ } | undefined;
581
+ neck?: {
582
+ pitch?: number | undefined;
583
+ yaw?: number | undefined;
584
+ roll?: number | undefined;
585
+ } | undefined;
586
+ head?: {
587
+ pitch?: number | undefined;
588
+ yaw?: number | undefined;
589
+ roll?: number | undefined;
590
+ } | undefined;
591
+ hips?: {
592
+ pitch?: number | undefined;
593
+ yaw?: number | undefined;
594
+ roll?: number | undefined;
595
+ } | undefined;
596
+ } | undefined;
597
+ }>, "many">;
598
+ name: z.ZodEffects<z.ZodString, string, string>;
599
+ motionId: z.ZodString;
600
+ duration: z.ZodNumber;
601
+ family: z.ZodLiteral<"oneShot">;
602
+ }, "strip", z.ZodTypeAny, {
603
+ keys: {
604
+ stance: {
605
+ front: number;
606
+ back: number;
607
+ };
608
+ arms: {
609
+ left?: {
610
+ pitch: number;
611
+ splay: number;
612
+ elbow: number;
613
+ yaw: number;
614
+ } | undefined;
615
+ right?: {
616
+ pitch: number;
617
+ splay: number;
618
+ elbow: number;
619
+ yaw: number;
620
+ } | undefined;
621
+ };
622
+ at: number;
623
+ ease: "linear" | "in" | "out" | "inOut";
624
+ hipY: number;
625
+ torso: {
626
+ spine?: {
627
+ pitch?: number | undefined;
628
+ yaw?: number | undefined;
629
+ roll?: number | undefined;
630
+ } | undefined;
631
+ chest?: {
632
+ pitch?: number | undefined;
633
+ yaw?: number | undefined;
634
+ roll?: number | undefined;
635
+ } | undefined;
636
+ neck?: {
637
+ pitch?: number | undefined;
638
+ yaw?: number | undefined;
639
+ roll?: number | undefined;
640
+ } | undefined;
641
+ head?: {
642
+ pitch?: number | undefined;
643
+ yaw?: number | undefined;
644
+ roll?: number | undefined;
645
+ } | undefined;
646
+ hips?: {
647
+ pitch?: number | undefined;
648
+ yaw?: number | undefined;
649
+ roll?: number | undefined;
650
+ } | undefined;
651
+ };
652
+ }[];
653
+ family: "oneShot";
654
+ loop: boolean;
655
+ name: string;
656
+ motionId: string;
657
+ duration: number;
658
+ }, {
659
+ keys: {
660
+ at: number;
661
+ stance?: {
662
+ front?: number | undefined;
663
+ back?: number | undefined;
664
+ } | undefined;
665
+ arms?: {
666
+ left?: {
667
+ pitch: number;
668
+ splay?: number | undefined;
669
+ elbow?: number | undefined;
670
+ yaw?: number | undefined;
671
+ } | undefined;
672
+ right?: {
673
+ pitch: number;
674
+ splay?: number | undefined;
675
+ elbow?: number | undefined;
676
+ yaw?: number | undefined;
677
+ } | undefined;
678
+ } | undefined;
679
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
680
+ hipY?: number | undefined;
681
+ torso?: {
682
+ spine?: {
683
+ pitch?: number | undefined;
684
+ yaw?: number | undefined;
685
+ roll?: number | undefined;
686
+ } | undefined;
687
+ chest?: {
688
+ pitch?: number | undefined;
689
+ yaw?: number | undefined;
690
+ roll?: number | undefined;
691
+ } | undefined;
692
+ neck?: {
693
+ pitch?: number | undefined;
694
+ yaw?: number | undefined;
695
+ roll?: number | undefined;
696
+ } | undefined;
697
+ head?: {
698
+ pitch?: number | undefined;
699
+ yaw?: number | undefined;
700
+ roll?: number | undefined;
701
+ } | undefined;
702
+ hips?: {
703
+ pitch?: number | undefined;
704
+ yaw?: number | undefined;
705
+ roll?: number | undefined;
706
+ } | undefined;
707
+ } | undefined;
708
+ }[];
709
+ family: "oneShot";
710
+ name: string;
711
+ motionId: string;
712
+ duration: number;
713
+ loop?: boolean | undefined;
714
+ }>;
715
+ export declare const authoredClipSpecSchema: z.ZodDiscriminatedUnion<"family", [z.ZodObject<{
716
+ basedOn: z.ZodEnum<["walk", "slowRun", "fastRun"]>;
717
+ designSpeed: z.ZodNumber;
718
+ loop: z.ZodDefault<z.ZodLiteral<true>>;
719
+ dials: z.ZodDefault<z.ZodObject<{
720
+ stance: z.ZodOptional<z.ZodNumber>;
721
+ bob: z.ZodOptional<z.ZodNumber>;
722
+ footLift: z.ZodOptional<z.ZodNumber>;
723
+ lean: z.ZodOptional<z.ZodNumber>;
724
+ armSwing: z.ZodOptional<z.ZodNumber>;
725
+ armSplay: z.ZodOptional<z.ZodNumber>;
726
+ elbow: z.ZodOptional<z.ZodNumber>;
727
+ hipYaw: z.ZodOptional<z.ZodNumber>;
728
+ chestYaw: z.ZodOptional<z.ZodNumber>;
729
+ limpSide: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
730
+ limpDepth: z.ZodOptional<z.ZodNumber>;
731
+ arms: z.ZodOptional<z.ZodObject<{
732
+ pitch: z.ZodNumber;
733
+ splay: z.ZodOptional<z.ZodNumber>;
734
+ elbow: z.ZodOptional<z.ZodNumber>;
735
+ yaw: z.ZodOptional<z.ZodNumber>;
736
+ }, "strip", z.ZodTypeAny, {
737
+ pitch: number;
738
+ splay?: number | undefined;
739
+ elbow?: number | undefined;
740
+ yaw?: number | undefined;
741
+ }, {
742
+ pitch: number;
743
+ splay?: number | undefined;
744
+ elbow?: number | undefined;
745
+ yaw?: number | undefined;
746
+ }>>;
747
+ }, "strip", z.ZodTypeAny, {
748
+ elbow?: number | undefined;
749
+ stance?: number | undefined;
750
+ bob?: number | undefined;
751
+ footLift?: number | undefined;
752
+ lean?: number | undefined;
753
+ armSwing?: number | undefined;
754
+ armSplay?: number | undefined;
755
+ hipYaw?: number | undefined;
756
+ chestYaw?: number | undefined;
757
+ limpSide?: "left" | "right" | undefined;
758
+ limpDepth?: number | undefined;
759
+ arms?: {
760
+ pitch: number;
761
+ splay?: number | undefined;
762
+ elbow?: number | undefined;
763
+ yaw?: number | undefined;
764
+ } | undefined;
765
+ }, {
766
+ elbow?: number | undefined;
767
+ stance?: number | undefined;
768
+ bob?: number | undefined;
769
+ footLift?: number | undefined;
770
+ lean?: number | undefined;
771
+ armSwing?: number | undefined;
772
+ armSplay?: number | undefined;
773
+ hipYaw?: number | undefined;
774
+ chestYaw?: number | undefined;
775
+ limpSide?: "left" | "right" | undefined;
776
+ limpDepth?: number | undefined;
777
+ arms?: {
778
+ pitch: number;
779
+ splay?: number | undefined;
780
+ elbow?: number | undefined;
781
+ yaw?: number | undefined;
782
+ } | undefined;
783
+ }>>;
784
+ name: z.ZodEffects<z.ZodString, string, string>;
785
+ motionId: z.ZodString;
786
+ duration: z.ZodNumber;
787
+ family: z.ZodLiteral<"gait">;
788
+ }, "strip", z.ZodTypeAny, {
789
+ family: "gait";
790
+ basedOn: "walk" | "slowRun" | "fastRun";
791
+ designSpeed: number;
792
+ loop: true;
793
+ dials: {
794
+ elbow?: number | undefined;
795
+ stance?: number | undefined;
796
+ bob?: number | undefined;
797
+ footLift?: number | undefined;
798
+ lean?: number | undefined;
799
+ armSwing?: number | undefined;
800
+ armSplay?: number | undefined;
801
+ hipYaw?: number | undefined;
802
+ chestYaw?: number | undefined;
803
+ limpSide?: "left" | "right" | undefined;
804
+ limpDepth?: number | undefined;
805
+ arms?: {
806
+ pitch: number;
807
+ splay?: number | undefined;
808
+ elbow?: number | undefined;
809
+ yaw?: number | undefined;
810
+ } | undefined;
811
+ };
812
+ name: string;
813
+ motionId: string;
814
+ duration: number;
815
+ }, {
816
+ family: "gait";
817
+ basedOn: "walk" | "slowRun" | "fastRun";
818
+ designSpeed: number;
819
+ name: string;
820
+ motionId: string;
821
+ duration: number;
822
+ loop?: true | undefined;
823
+ dials?: {
824
+ elbow?: number | undefined;
825
+ stance?: number | undefined;
826
+ bob?: number | undefined;
827
+ footLift?: number | undefined;
828
+ lean?: number | undefined;
829
+ armSwing?: number | undefined;
830
+ armSplay?: number | undefined;
831
+ hipYaw?: number | undefined;
832
+ chestYaw?: number | undefined;
833
+ limpSide?: "left" | "right" | undefined;
834
+ limpDepth?: number | undefined;
835
+ arms?: {
836
+ pitch: number;
837
+ splay?: number | undefined;
838
+ elbow?: number | undefined;
839
+ yaw?: number | undefined;
840
+ } | undefined;
841
+ } | undefined;
842
+ }>, z.ZodObject<{
843
+ loop: z.ZodDefault<z.ZodLiteral<false>>;
844
+ impactPhase: z.ZodNumber;
845
+ twoHanded: z.ZodDefault<z.ZodBoolean>;
846
+ keys: z.ZodArray<z.ZodObject<{
847
+ at: z.ZodNumber;
848
+ ease: z.ZodDefault<z.ZodEnum<["linear", "in", "out", "inOut"]>>;
849
+ pow: z.ZodDefault<z.ZodNumber>;
850
+ grip: z.ZodEnum<["one", "two"]>;
851
+ hipDrop: z.ZodDefault<z.ZodNumber>;
852
+ twist: z.ZodDefault<z.ZodNumber>;
853
+ fold: z.ZodDefault<z.ZodNumber>;
854
+ blade: z.ZodEnum<["forward", "forwardHigh", "forwardLow", "up", "upBack", "down", "downForward", "outRight", "outLeft", "rest"]>;
855
+ arm: z.ZodObject<{
856
+ pitch: z.ZodNumber;
857
+ yaw: z.ZodDefault<z.ZodNumber>;
858
+ elbow: z.ZodDefault<z.ZodNumber>;
859
+ }, "strip", z.ZodTypeAny, {
860
+ pitch: number;
861
+ elbow: number;
862
+ yaw: number;
863
+ }, {
864
+ pitch: number;
865
+ elbow?: number | undefined;
866
+ yaw?: number | undefined;
867
+ }>;
868
+ stance: z.ZodOptional<z.ZodObject<{
869
+ front: z.ZodDefault<z.ZodNumber>;
870
+ back: z.ZodDefault<z.ZodNumber>;
871
+ }, "strip", z.ZodTypeAny, {
872
+ front: number;
873
+ back: number;
874
+ }, {
875
+ front?: number | undefined;
876
+ back?: number | undefined;
877
+ }>>;
878
+ }, "strip", z.ZodTypeAny, {
879
+ at: number;
880
+ ease: "linear" | "in" | "out" | "inOut";
881
+ pow: number;
882
+ grip: "one" | "two";
883
+ hipDrop: number;
884
+ twist: number;
885
+ fold: number;
886
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
887
+ arm: {
888
+ pitch: number;
889
+ elbow: number;
890
+ yaw: number;
891
+ };
892
+ stance?: {
893
+ front: number;
894
+ back: number;
895
+ } | undefined;
896
+ }, {
897
+ at: number;
898
+ grip: "one" | "two";
899
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
900
+ arm: {
901
+ pitch: number;
902
+ elbow?: number | undefined;
903
+ yaw?: number | undefined;
904
+ };
905
+ stance?: {
906
+ front?: number | undefined;
907
+ back?: number | undefined;
908
+ } | undefined;
909
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
910
+ pow?: number | undefined;
911
+ hipDrop?: number | undefined;
912
+ twist?: number | undefined;
913
+ fold?: number | undefined;
914
+ }>, "many">;
915
+ name: z.ZodEffects<z.ZodString, string, string>;
916
+ motionId: z.ZodString;
917
+ duration: z.ZodNumber;
918
+ family: z.ZodLiteral<"melee">;
919
+ }, "strip", z.ZodTypeAny, {
920
+ keys: {
921
+ at: number;
922
+ ease: "linear" | "in" | "out" | "inOut";
923
+ pow: number;
924
+ grip: "one" | "two";
925
+ hipDrop: number;
926
+ twist: number;
927
+ fold: number;
928
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
929
+ arm: {
930
+ pitch: number;
931
+ elbow: number;
932
+ yaw: number;
933
+ };
934
+ stance?: {
935
+ front: number;
936
+ back: number;
937
+ } | undefined;
938
+ }[];
939
+ family: "melee";
940
+ loop: false;
941
+ name: string;
942
+ motionId: string;
943
+ duration: number;
944
+ impactPhase: number;
945
+ twoHanded: boolean;
946
+ }, {
947
+ keys: {
948
+ at: number;
949
+ grip: "one" | "two";
950
+ blade: "forward" | "forwardHigh" | "forwardLow" | "up" | "upBack" | "down" | "downForward" | "outRight" | "outLeft" | "rest";
951
+ arm: {
952
+ pitch: number;
953
+ elbow?: number | undefined;
954
+ yaw?: number | undefined;
955
+ };
956
+ stance?: {
957
+ front?: number | undefined;
958
+ back?: number | undefined;
959
+ } | undefined;
960
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
961
+ pow?: number | undefined;
962
+ hipDrop?: number | undefined;
963
+ twist?: number | undefined;
964
+ fold?: number | undefined;
965
+ }[];
966
+ family: "melee";
967
+ name: string;
968
+ motionId: string;
969
+ duration: number;
970
+ impactPhase: number;
971
+ loop?: false | undefined;
972
+ twoHanded?: boolean | undefined;
973
+ }>, z.ZodObject<{
974
+ loop: z.ZodDefault<z.ZodBoolean>;
975
+ keys: z.ZodArray<z.ZodObject<{
976
+ at: z.ZodNumber;
977
+ ease: z.ZodDefault<z.ZodEnum<["linear", "in", "out", "inOut"]>>;
978
+ hipY: z.ZodDefault<z.ZodNumber>;
979
+ stance: z.ZodDefault<z.ZodObject<{
980
+ front: z.ZodDefault<z.ZodNumber>;
981
+ back: z.ZodDefault<z.ZodNumber>;
982
+ }, "strip", z.ZodTypeAny, {
983
+ front: number;
984
+ back: number;
985
+ }, {
986
+ front?: number | undefined;
987
+ back?: number | undefined;
988
+ }>>;
989
+ arms: z.ZodDefault<z.ZodObject<{
990
+ left: z.ZodOptional<z.ZodObject<{
991
+ pitch: z.ZodNumber;
992
+ } & {
993
+ splay: z.ZodDefault<z.ZodNumber>;
994
+ elbow: z.ZodDefault<z.ZodNumber>;
995
+ yaw: z.ZodDefault<z.ZodNumber>;
996
+ }, "strip", z.ZodTypeAny, {
997
+ pitch: number;
998
+ splay: number;
999
+ elbow: number;
1000
+ yaw: number;
1001
+ }, {
1002
+ pitch: number;
1003
+ splay?: number | undefined;
1004
+ elbow?: number | undefined;
1005
+ yaw?: number | undefined;
1006
+ }>>;
1007
+ right: z.ZodOptional<z.ZodObject<{
1008
+ pitch: z.ZodNumber;
1009
+ } & {
1010
+ splay: z.ZodDefault<z.ZodNumber>;
1011
+ elbow: z.ZodDefault<z.ZodNumber>;
1012
+ yaw: z.ZodDefault<z.ZodNumber>;
1013
+ }, "strip", z.ZodTypeAny, {
1014
+ pitch: number;
1015
+ splay: number;
1016
+ elbow: number;
1017
+ yaw: number;
1018
+ }, {
1019
+ pitch: number;
1020
+ splay?: number | undefined;
1021
+ elbow?: number | undefined;
1022
+ yaw?: number | undefined;
1023
+ }>>;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ left?: {
1026
+ pitch: number;
1027
+ splay: number;
1028
+ elbow: number;
1029
+ yaw: number;
1030
+ } | undefined;
1031
+ right?: {
1032
+ pitch: number;
1033
+ splay: number;
1034
+ elbow: number;
1035
+ yaw: number;
1036
+ } | undefined;
1037
+ }, {
1038
+ left?: {
1039
+ pitch: number;
1040
+ splay?: number | undefined;
1041
+ elbow?: number | undefined;
1042
+ yaw?: number | undefined;
1043
+ } | undefined;
1044
+ right?: {
1045
+ pitch: number;
1046
+ splay?: number | undefined;
1047
+ elbow?: number | undefined;
1048
+ yaw?: number | undefined;
1049
+ } | undefined;
1050
+ }>>;
1051
+ torso: z.ZodDefault<z.ZodObject<{
1052
+ spine: z.ZodOptional<z.ZodObject<{
1053
+ pitch: z.ZodOptional<z.ZodNumber>;
1054
+ yaw: z.ZodOptional<z.ZodNumber>;
1055
+ roll: z.ZodOptional<z.ZodNumber>;
1056
+ }, "strict", z.ZodTypeAny, {
1057
+ pitch?: number | undefined;
1058
+ yaw?: number | undefined;
1059
+ roll?: number | undefined;
1060
+ }, {
1061
+ pitch?: number | undefined;
1062
+ yaw?: number | undefined;
1063
+ roll?: number | undefined;
1064
+ }>>;
1065
+ chest: z.ZodOptional<z.ZodObject<{
1066
+ pitch: z.ZodOptional<z.ZodNumber>;
1067
+ yaw: z.ZodOptional<z.ZodNumber>;
1068
+ roll: z.ZodOptional<z.ZodNumber>;
1069
+ }, "strict", z.ZodTypeAny, {
1070
+ pitch?: number | undefined;
1071
+ yaw?: number | undefined;
1072
+ roll?: number | undefined;
1073
+ }, {
1074
+ pitch?: number | undefined;
1075
+ yaw?: number | undefined;
1076
+ roll?: number | undefined;
1077
+ }>>;
1078
+ neck: z.ZodOptional<z.ZodObject<{
1079
+ pitch: z.ZodOptional<z.ZodNumber>;
1080
+ yaw: z.ZodOptional<z.ZodNumber>;
1081
+ roll: z.ZodOptional<z.ZodNumber>;
1082
+ }, "strict", z.ZodTypeAny, {
1083
+ pitch?: number | undefined;
1084
+ yaw?: number | undefined;
1085
+ roll?: number | undefined;
1086
+ }, {
1087
+ pitch?: number | undefined;
1088
+ yaw?: number | undefined;
1089
+ roll?: number | undefined;
1090
+ }>>;
1091
+ head: z.ZodOptional<z.ZodObject<{
1092
+ pitch: z.ZodOptional<z.ZodNumber>;
1093
+ yaw: z.ZodOptional<z.ZodNumber>;
1094
+ roll: z.ZodOptional<z.ZodNumber>;
1095
+ }, "strict", z.ZodTypeAny, {
1096
+ pitch?: number | undefined;
1097
+ yaw?: number | undefined;
1098
+ roll?: number | undefined;
1099
+ }, {
1100
+ pitch?: number | undefined;
1101
+ yaw?: number | undefined;
1102
+ roll?: number | undefined;
1103
+ }>>;
1104
+ hips: z.ZodOptional<z.ZodObject<{
1105
+ pitch: z.ZodOptional<z.ZodNumber>;
1106
+ yaw: z.ZodOptional<z.ZodNumber>;
1107
+ roll: z.ZodOptional<z.ZodNumber>;
1108
+ }, "strict", z.ZodTypeAny, {
1109
+ pitch?: number | undefined;
1110
+ yaw?: number | undefined;
1111
+ roll?: number | undefined;
1112
+ }, {
1113
+ pitch?: number | undefined;
1114
+ yaw?: number | undefined;
1115
+ roll?: number | undefined;
1116
+ }>>;
1117
+ }, "strip", z.ZodTypeAny, {
1118
+ spine?: {
1119
+ pitch?: number | undefined;
1120
+ yaw?: number | undefined;
1121
+ roll?: number | undefined;
1122
+ } | undefined;
1123
+ chest?: {
1124
+ pitch?: number | undefined;
1125
+ yaw?: number | undefined;
1126
+ roll?: number | undefined;
1127
+ } | undefined;
1128
+ neck?: {
1129
+ pitch?: number | undefined;
1130
+ yaw?: number | undefined;
1131
+ roll?: number | undefined;
1132
+ } | undefined;
1133
+ head?: {
1134
+ pitch?: number | undefined;
1135
+ yaw?: number | undefined;
1136
+ roll?: number | undefined;
1137
+ } | undefined;
1138
+ hips?: {
1139
+ pitch?: number | undefined;
1140
+ yaw?: number | undefined;
1141
+ roll?: number | undefined;
1142
+ } | undefined;
1143
+ }, {
1144
+ spine?: {
1145
+ pitch?: number | undefined;
1146
+ yaw?: number | undefined;
1147
+ roll?: number | undefined;
1148
+ } | undefined;
1149
+ chest?: {
1150
+ pitch?: number | undefined;
1151
+ yaw?: number | undefined;
1152
+ roll?: number | undefined;
1153
+ } | undefined;
1154
+ neck?: {
1155
+ pitch?: number | undefined;
1156
+ yaw?: number | undefined;
1157
+ roll?: number | undefined;
1158
+ } | undefined;
1159
+ head?: {
1160
+ pitch?: number | undefined;
1161
+ yaw?: number | undefined;
1162
+ roll?: number | undefined;
1163
+ } | undefined;
1164
+ hips?: {
1165
+ pitch?: number | undefined;
1166
+ yaw?: number | undefined;
1167
+ roll?: number | undefined;
1168
+ } | undefined;
1169
+ }>>;
1170
+ }, "strip", z.ZodTypeAny, {
1171
+ stance: {
1172
+ front: number;
1173
+ back: number;
1174
+ };
1175
+ arms: {
1176
+ left?: {
1177
+ pitch: number;
1178
+ splay: number;
1179
+ elbow: number;
1180
+ yaw: number;
1181
+ } | undefined;
1182
+ right?: {
1183
+ pitch: number;
1184
+ splay: number;
1185
+ elbow: number;
1186
+ yaw: number;
1187
+ } | undefined;
1188
+ };
1189
+ at: number;
1190
+ ease: "linear" | "in" | "out" | "inOut";
1191
+ hipY: number;
1192
+ torso: {
1193
+ spine?: {
1194
+ pitch?: number | undefined;
1195
+ yaw?: number | undefined;
1196
+ roll?: number | undefined;
1197
+ } | undefined;
1198
+ chest?: {
1199
+ pitch?: number | undefined;
1200
+ yaw?: number | undefined;
1201
+ roll?: number | undefined;
1202
+ } | undefined;
1203
+ neck?: {
1204
+ pitch?: number | undefined;
1205
+ yaw?: number | undefined;
1206
+ roll?: number | undefined;
1207
+ } | undefined;
1208
+ head?: {
1209
+ pitch?: number | undefined;
1210
+ yaw?: number | undefined;
1211
+ roll?: number | undefined;
1212
+ } | undefined;
1213
+ hips?: {
1214
+ pitch?: number | undefined;
1215
+ yaw?: number | undefined;
1216
+ roll?: number | undefined;
1217
+ } | undefined;
1218
+ };
1219
+ }, {
1220
+ at: number;
1221
+ stance?: {
1222
+ front?: number | undefined;
1223
+ back?: number | undefined;
1224
+ } | undefined;
1225
+ arms?: {
1226
+ left?: {
1227
+ pitch: number;
1228
+ splay?: number | undefined;
1229
+ elbow?: number | undefined;
1230
+ yaw?: number | undefined;
1231
+ } | undefined;
1232
+ right?: {
1233
+ pitch: number;
1234
+ splay?: number | undefined;
1235
+ elbow?: number | undefined;
1236
+ yaw?: number | undefined;
1237
+ } | undefined;
1238
+ } | undefined;
1239
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
1240
+ hipY?: number | undefined;
1241
+ torso?: {
1242
+ spine?: {
1243
+ pitch?: number | undefined;
1244
+ yaw?: number | undefined;
1245
+ roll?: number | undefined;
1246
+ } | undefined;
1247
+ chest?: {
1248
+ pitch?: number | undefined;
1249
+ yaw?: number | undefined;
1250
+ roll?: number | undefined;
1251
+ } | undefined;
1252
+ neck?: {
1253
+ pitch?: number | undefined;
1254
+ yaw?: number | undefined;
1255
+ roll?: number | undefined;
1256
+ } | undefined;
1257
+ head?: {
1258
+ pitch?: number | undefined;
1259
+ yaw?: number | undefined;
1260
+ roll?: number | undefined;
1261
+ } | undefined;
1262
+ hips?: {
1263
+ pitch?: number | undefined;
1264
+ yaw?: number | undefined;
1265
+ roll?: number | undefined;
1266
+ } | undefined;
1267
+ } | undefined;
1268
+ }>, "many">;
1269
+ name: z.ZodEffects<z.ZodString, string, string>;
1270
+ motionId: z.ZodString;
1271
+ duration: z.ZodNumber;
1272
+ family: z.ZodLiteral<"oneShot">;
1273
+ }, "strip", z.ZodTypeAny, {
1274
+ keys: {
1275
+ stance: {
1276
+ front: number;
1277
+ back: number;
1278
+ };
1279
+ arms: {
1280
+ left?: {
1281
+ pitch: number;
1282
+ splay: number;
1283
+ elbow: number;
1284
+ yaw: number;
1285
+ } | undefined;
1286
+ right?: {
1287
+ pitch: number;
1288
+ splay: number;
1289
+ elbow: number;
1290
+ yaw: number;
1291
+ } | undefined;
1292
+ };
1293
+ at: number;
1294
+ ease: "linear" | "in" | "out" | "inOut";
1295
+ hipY: number;
1296
+ torso: {
1297
+ spine?: {
1298
+ pitch?: number | undefined;
1299
+ yaw?: number | undefined;
1300
+ roll?: number | undefined;
1301
+ } | undefined;
1302
+ chest?: {
1303
+ pitch?: number | undefined;
1304
+ yaw?: number | undefined;
1305
+ roll?: number | undefined;
1306
+ } | undefined;
1307
+ neck?: {
1308
+ pitch?: number | undefined;
1309
+ yaw?: number | undefined;
1310
+ roll?: number | undefined;
1311
+ } | undefined;
1312
+ head?: {
1313
+ pitch?: number | undefined;
1314
+ yaw?: number | undefined;
1315
+ roll?: number | undefined;
1316
+ } | undefined;
1317
+ hips?: {
1318
+ pitch?: number | undefined;
1319
+ yaw?: number | undefined;
1320
+ roll?: number | undefined;
1321
+ } | undefined;
1322
+ };
1323
+ }[];
1324
+ family: "oneShot";
1325
+ loop: boolean;
1326
+ name: string;
1327
+ motionId: string;
1328
+ duration: number;
1329
+ }, {
1330
+ keys: {
1331
+ at: number;
1332
+ stance?: {
1333
+ front?: number | undefined;
1334
+ back?: number | undefined;
1335
+ } | undefined;
1336
+ arms?: {
1337
+ left?: {
1338
+ pitch: number;
1339
+ splay?: number | undefined;
1340
+ elbow?: number | undefined;
1341
+ yaw?: number | undefined;
1342
+ } | undefined;
1343
+ right?: {
1344
+ pitch: number;
1345
+ splay?: number | undefined;
1346
+ elbow?: number | undefined;
1347
+ yaw?: number | undefined;
1348
+ } | undefined;
1349
+ } | undefined;
1350
+ ease?: "linear" | "in" | "out" | "inOut" | undefined;
1351
+ hipY?: number | undefined;
1352
+ torso?: {
1353
+ spine?: {
1354
+ pitch?: number | undefined;
1355
+ yaw?: number | undefined;
1356
+ roll?: number | undefined;
1357
+ } | undefined;
1358
+ chest?: {
1359
+ pitch?: number | undefined;
1360
+ yaw?: number | undefined;
1361
+ roll?: number | undefined;
1362
+ } | undefined;
1363
+ neck?: {
1364
+ pitch?: number | undefined;
1365
+ yaw?: number | undefined;
1366
+ roll?: number | undefined;
1367
+ } | undefined;
1368
+ head?: {
1369
+ pitch?: number | undefined;
1370
+ yaw?: number | undefined;
1371
+ roll?: number | undefined;
1372
+ } | undefined;
1373
+ hips?: {
1374
+ pitch?: number | undefined;
1375
+ yaw?: number | undefined;
1376
+ roll?: number | undefined;
1377
+ } | undefined;
1378
+ } | undefined;
1379
+ }[];
1380
+ family: "oneShot";
1381
+ name: string;
1382
+ motionId: string;
1383
+ duration: number;
1384
+ loop?: boolean | undefined;
1385
+ }>]>;
1386
+ /**
1387
+ * The spec as a CALLER writes it — defaulted fields may be omitted. This is what
1388
+ * a tool schema or a `--spec` file is validated against.
1389
+ */
1390
+ export type AuthoredClipSpecInput = z.input<typeof authoredClipSpecSchema>;
1391
+ /**
1392
+ * The spec AFTER parsing, with every default resolved. The builders in the
1393
+ * private half take this, which is what lets them own their own defaults instead
1394
+ * of each host patching them in.
1395
+ */
1396
+ export type AuthoredClipSpec = z.output<typeof authoredClipSpecSchema>;
1397
+ export type AuthoredClipFamily = AuthoredClipSpec['family'];
1398
+ export type BladeDirection = (typeof BLADE_DIRECTIONS)[number];
1399
+ export type GaitPresetName = (typeof GAIT_PRESET_NAMES)[number];
1400
+ /**
1401
+ * Render a spec rejection as one line naming each offending field.
1402
+ *
1403
+ * Exported because naming the field is the whole point of validating client-side:
1404
+ * `bitmagic generate animation` parses the spec before it sends anything, so a bad
1405
+ * dial costs a message rather than a round trip. Mirrors the shape api-server's
1406
+ * route returns, so the same mistake reads the same either way.
1407
+ */
1408
+ export declare function formatSpecIssues(error: z.ZodError): string;
1409
+ //# sourceMappingURL=authored-spec.d.ts.map