@invisra/printspec 0.1.1 → 0.1.3

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,2428 @@
1
+ export declare const bundledSchemas: {
2
+ readonly "cable-clip.schema.json": {
3
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
4
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/cable-clip.schema.json";
5
+ readonly type: "object";
6
+ readonly required: readonly ["type", "label", "parameters"];
7
+ readonly properties: {
8
+ readonly type: {
9
+ readonly const: "cable_clip";
10
+ readonly title: "Part type";
11
+ readonly description: "Stable printspec part family identifier.";
12
+ };
13
+ readonly label: {
14
+ readonly type: "string";
15
+ readonly minLength: 1;
16
+ readonly title: "Label";
17
+ readonly description: "Human-readable name for this part.";
18
+ };
19
+ readonly description: {
20
+ readonly type: "string";
21
+ readonly title: "Description";
22
+ readonly description: "Optional human-readable notes for this part.";
23
+ };
24
+ readonly parameters: {
25
+ readonly type: "object";
26
+ readonly required: readonly ["baseLength", "baseWidth", "baseThickness", "clipWallThickness"];
27
+ readonly properties: {
28
+ readonly baseLength: {
29
+ readonly type: "number";
30
+ readonly exclusiveMinimum: 0;
31
+ readonly maximum: 10000;
32
+ readonly title: "Base length";
33
+ readonly description: "Base length in millimeters.";
34
+ readonly "x-printspec-control": "number";
35
+ readonly "x-printspec-unit": "mm";
36
+ readonly "x-printspec-step": 0.1;
37
+ readonly "x-printspec-priority": "primary";
38
+ };
39
+ readonly baseWidth: {
40
+ readonly type: "number";
41
+ readonly exclusiveMinimum: 0;
42
+ readonly maximum: 10000;
43
+ readonly title: "Base width";
44
+ readonly description: "Base width in millimeters.";
45
+ readonly "x-printspec-control": "number";
46
+ readonly "x-printspec-unit": "mm";
47
+ readonly "x-printspec-step": 0.1;
48
+ readonly "x-printspec-priority": "primary";
49
+ };
50
+ readonly baseThickness: {
51
+ readonly type: "number";
52
+ readonly exclusiveMinimum: 0;
53
+ readonly maximum: 10000;
54
+ readonly title: "Base thickness";
55
+ readonly description: "Base thickness in millimeters.";
56
+ readonly "x-printspec-control": "number";
57
+ readonly "x-printspec-unit": "mm";
58
+ readonly "x-printspec-step": 0.1;
59
+ readonly "x-printspec-priority": "primary";
60
+ };
61
+ readonly clipInnerDiameter: {
62
+ readonly type: "number";
63
+ readonly exclusiveMinimum: 0;
64
+ readonly maximum: 10000;
65
+ readonly title: "Clip inner diameter";
66
+ readonly description: "Clip inner diameter in millimeters.";
67
+ readonly "x-printspec-control": "number";
68
+ readonly "x-printspec-unit": "mm";
69
+ readonly "x-printspec-step": 0.1;
70
+ readonly "x-printspec-priority": "advanced";
71
+ };
72
+ readonly clipOpeningWidth: {
73
+ readonly type: "number";
74
+ readonly exclusiveMinimum: 0;
75
+ readonly maximum: 10000;
76
+ readonly title: "Clip opening width";
77
+ readonly description: "Clip opening width in millimeters.";
78
+ readonly "x-printspec-control": "number";
79
+ readonly "x-printspec-unit": "mm";
80
+ readonly "x-printspec-step": 0.1;
81
+ readonly "x-printspec-priority": "advanced";
82
+ };
83
+ readonly clipWallThickness: {
84
+ readonly type: "number";
85
+ readonly exclusiveMinimum: 0;
86
+ readonly maximum: 10000;
87
+ readonly title: "Clip wall thickness";
88
+ readonly description: "Clip wall thickness in millimeters.";
89
+ readonly "x-printspec-control": "number";
90
+ readonly "x-printspec-unit": "mm";
91
+ readonly "x-printspec-step": 0.1;
92
+ readonly "x-printspec-priority": "primary";
93
+ };
94
+ readonly holes: {
95
+ readonly type: "array";
96
+ readonly items: {
97
+ readonly $ref: "common.schema.json#/$defs/Hole";
98
+ };
99
+ readonly title: "Holes";
100
+ readonly description: "Optional hole features to include in the generated part.";
101
+ readonly "x-printspec-control": "hole-list";
102
+ readonly "x-printspec-priority": "advanced";
103
+ readonly default: readonly [];
104
+ };
105
+ readonly slots: {
106
+ readonly type: "array";
107
+ readonly items: {
108
+ readonly $ref: "common.schema.json#/$defs/Slot";
109
+ };
110
+ readonly title: "Slots";
111
+ readonly description: "Optional slot features to include in the generated part.";
112
+ readonly "x-printspec-control": "slot-list";
113
+ readonly "x-printspec-priority": "advanced";
114
+ readonly default: readonly [];
115
+ };
116
+ readonly chamfer: {
117
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
118
+ readonly title: "Chamfer";
119
+ readonly description: "Optional chamfer edge finishing request.";
120
+ readonly "x-printspec-control": "number";
121
+ readonly "x-printspec-priority": "advanced";
122
+ };
123
+ readonly fillet: {
124
+ readonly $ref: "common.schema.json#/$defs/Fillet";
125
+ readonly title: "Fillet";
126
+ readonly description: "Optional fillet edge finishing request.";
127
+ readonly "x-printspec-control": "number";
128
+ readonly "x-printspec-priority": "advanced";
129
+ };
130
+ readonly cornerRadius: {
131
+ readonly type: "number";
132
+ readonly exclusiveMinimum: 0;
133
+ readonly maximum: 10000;
134
+ readonly title: "Corner radius";
135
+ readonly description: "Corner radius in millimeters.";
136
+ readonly "x-printspec-control": "number";
137
+ readonly "x-printspec-unit": "mm";
138
+ readonly "x-printspec-step": 0.1;
139
+ readonly "x-printspec-priority": "advanced";
140
+ readonly examples: readonly [4];
141
+ };
142
+ readonly mountingHoles: {
143
+ readonly type: "array";
144
+ readonly items: {
145
+ readonly $ref: "common.schema.json#/$defs/Hole";
146
+ };
147
+ readonly title: "Mounting holes";
148
+ readonly description: "Optional hole features to include in the generated part.";
149
+ readonly "x-printspec-control": "hole-list";
150
+ readonly "x-printspec-priority": "advanced";
151
+ readonly default: readonly [];
152
+ };
153
+ };
154
+ readonly additionalProperties: false;
155
+ readonly anyOf: readonly [{
156
+ readonly required: readonly ["clipInnerDiameter"];
157
+ }, {
158
+ readonly required: readonly ["clipOpeningWidth"];
159
+ }];
160
+ readonly title: "Parameters";
161
+ readonly description: "Editable parameters for Cable Clip.";
162
+ readonly "x-printspec-ui": {
163
+ readonly order: readonly ["baseLength", "baseWidth", "baseThickness", "clipInnerDiameter", "clipOpeningWidth", "clipWallThickness", "holes", "slots", "chamfer", "fillet", "cornerRadius", "mountingHoles"];
164
+ readonly groups: readonly [{
165
+ readonly id: "parameters";
166
+ readonly title: "Parameters";
167
+ readonly fields: readonly ["baseLength", "baseWidth", "baseThickness", "clipInnerDiameter", "clipOpeningWidth", "clipWallThickness", "holes", "slots", "chamfer", "fillet", "cornerRadius", "mountingHoles"];
168
+ }];
169
+ };
170
+ };
171
+ readonly hardware: {
172
+ readonly type: "array";
173
+ readonly items: {
174
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
175
+ };
176
+ };
177
+ };
178
+ readonly additionalProperties: false;
179
+ readonly title: "Cable Clip";
180
+ readonly description: "Mountable clip for holding a cable or hose.";
181
+ };
182
+ readonly "cable-comb.schema.json": {
183
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
184
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/cable-comb.schema.json";
185
+ readonly type: "object";
186
+ readonly required: readonly ["type", "label", "parameters"];
187
+ readonly properties: {
188
+ readonly type: {
189
+ readonly const: "cable_comb";
190
+ readonly title: "Part type";
191
+ readonly description: "Stable printspec part family identifier.";
192
+ };
193
+ readonly label: {
194
+ readonly type: "string";
195
+ readonly minLength: 1;
196
+ readonly title: "Label";
197
+ readonly description: "Human-readable name for this part.";
198
+ };
199
+ readonly description: {
200
+ readonly type: "string";
201
+ readonly title: "Description";
202
+ readonly description: "Optional human-readable notes for this part.";
203
+ };
204
+ readonly parameters: {
205
+ readonly type: "object";
206
+ readonly required: readonly ["length", "width", "thickness", "slotCount", "slotWidth", "slotSpacing", "slotDepth"];
207
+ readonly properties: {
208
+ readonly length: {
209
+ readonly type: "number";
210
+ readonly exclusiveMinimum: 0;
211
+ readonly maximum: 10000;
212
+ readonly title: "Length";
213
+ readonly description: "Length in millimeters.";
214
+ readonly "x-printspec-control": "number";
215
+ readonly "x-printspec-unit": "mm";
216
+ readonly "x-printspec-step": 0.1;
217
+ readonly "x-printspec-priority": "primary";
218
+ readonly examples: readonly [100];
219
+ };
220
+ readonly width: {
221
+ readonly type: "number";
222
+ readonly exclusiveMinimum: 0;
223
+ readonly maximum: 10000;
224
+ readonly title: "Width";
225
+ readonly description: "Width in millimeters.";
226
+ readonly "x-printspec-control": "number";
227
+ readonly "x-printspec-unit": "mm";
228
+ readonly "x-printspec-step": 0.1;
229
+ readonly "x-printspec-priority": "primary";
230
+ readonly examples: readonly [50];
231
+ };
232
+ readonly thickness: {
233
+ readonly type: "number";
234
+ readonly exclusiveMinimum: 0;
235
+ readonly maximum: 10000;
236
+ readonly title: "Thickness";
237
+ readonly description: "Thickness in millimeters.";
238
+ readonly "x-printspec-control": "number";
239
+ readonly "x-printspec-unit": "mm";
240
+ readonly "x-printspec-step": 0.1;
241
+ readonly "x-printspec-priority": "primary";
242
+ readonly examples: readonly [3];
243
+ };
244
+ readonly slotCount: {
245
+ readonly type: "integer";
246
+ readonly minimum: 1;
247
+ readonly maximum: 64;
248
+ readonly title: "Slot count";
249
+ readonly description: "Slot count for the part.";
250
+ readonly "x-printspec-control": "integer";
251
+ readonly "x-printspec-unit": "count";
252
+ readonly "x-printspec-step": 1;
253
+ readonly "x-printspec-priority": "primary";
254
+ readonly examples: readonly [8];
255
+ };
256
+ readonly slotWidth: {
257
+ readonly type: "number";
258
+ readonly exclusiveMinimum: 0;
259
+ readonly maximum: 10000;
260
+ readonly title: "Slot width";
261
+ readonly description: "Slot width in millimeters.";
262
+ readonly "x-printspec-control": "number";
263
+ readonly "x-printspec-unit": "mm";
264
+ readonly "x-printspec-step": 0.1;
265
+ readonly "x-printspec-priority": "primary";
266
+ };
267
+ readonly slotSpacing: {
268
+ readonly type: "number";
269
+ readonly exclusiveMinimum: 0;
270
+ readonly maximum: 10000;
271
+ readonly title: "Slot spacing";
272
+ readonly description: "Slot spacing in millimeters.";
273
+ readonly "x-printspec-control": "number";
274
+ readonly "x-printspec-unit": "mm";
275
+ readonly "x-printspec-step": 0.1;
276
+ readonly "x-printspec-priority": "primary";
277
+ };
278
+ readonly slotDepth: {
279
+ readonly type: "number";
280
+ readonly exclusiveMinimum: 0;
281
+ readonly maximum: 10000;
282
+ readonly title: "Slot depth";
283
+ readonly description: "Slot depth in millimeters.";
284
+ readonly "x-printspec-control": "number";
285
+ readonly "x-printspec-unit": "mm";
286
+ readonly "x-printspec-step": 0.1;
287
+ readonly "x-printspec-priority": "primary";
288
+ };
289
+ readonly holes: {
290
+ readonly type: "array";
291
+ readonly items: {
292
+ readonly $ref: "common.schema.json#/$defs/Hole";
293
+ };
294
+ readonly title: "Holes";
295
+ readonly description: "Optional hole features to include in the generated part.";
296
+ readonly "x-printspec-control": "hole-list";
297
+ readonly "x-printspec-priority": "advanced";
298
+ readonly default: readonly [];
299
+ };
300
+ readonly slots: {
301
+ readonly type: "array";
302
+ readonly items: {
303
+ readonly $ref: "common.schema.json#/$defs/Slot";
304
+ };
305
+ readonly title: "Slots";
306
+ readonly description: "Optional slot features to include in the generated part.";
307
+ readonly "x-printspec-control": "slot-list";
308
+ readonly "x-printspec-priority": "advanced";
309
+ readonly default: readonly [];
310
+ };
311
+ readonly chamfer: {
312
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
313
+ readonly title: "Chamfer";
314
+ readonly description: "Optional chamfer edge finishing request.";
315
+ readonly "x-printspec-control": "number";
316
+ readonly "x-printspec-priority": "advanced";
317
+ };
318
+ readonly fillet: {
319
+ readonly $ref: "common.schema.json#/$defs/Fillet";
320
+ readonly title: "Fillet";
321
+ readonly description: "Optional fillet edge finishing request.";
322
+ readonly "x-printspec-control": "number";
323
+ readonly "x-printspec-priority": "advanced";
324
+ };
325
+ readonly cornerRadius: {
326
+ readonly type: "number";
327
+ readonly exclusiveMinimum: 0;
328
+ readonly maximum: 10000;
329
+ readonly title: "Corner radius";
330
+ readonly description: "Corner radius in millimeters.";
331
+ readonly "x-printspec-control": "number";
332
+ readonly "x-printspec-unit": "mm";
333
+ readonly "x-printspec-step": 0.1;
334
+ readonly "x-printspec-priority": "advanced";
335
+ readonly examples: readonly [4];
336
+ };
337
+ };
338
+ readonly additionalProperties: false;
339
+ readonly title: "Parameters";
340
+ readonly description: "Editable parameters for Cable Comb.";
341
+ readonly "x-printspec-ui": {
342
+ readonly order: readonly ["length", "width", "thickness", "slotCount", "slotWidth", "slotSpacing", "slotDepth", "holes", "slots", "chamfer", "fillet", "cornerRadius"];
343
+ readonly groups: readonly [{
344
+ readonly id: "parameters";
345
+ readonly title: "Parameters";
346
+ readonly fields: readonly ["length", "width", "thickness", "slotCount", "slotWidth", "slotSpacing", "slotDepth", "holes", "slots", "chamfer", "fillet", "cornerRadius"];
347
+ }];
348
+ };
349
+ };
350
+ readonly hardware: {
351
+ readonly type: "array";
352
+ readonly items: {
353
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
354
+ };
355
+ };
356
+ };
357
+ readonly additionalProperties: false;
358
+ readonly title: "Cable Comb";
359
+ readonly description: "Comb-style cable organizer with repeated cable slots.";
360
+ };
361
+ readonly "common.schema.json": {
362
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
363
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/common.schema.json";
364
+ readonly $defs: {
365
+ readonly Dimension: {
366
+ readonly type: "number";
367
+ readonly exclusiveMinimum: 0;
368
+ readonly maximum: 10000;
369
+ readonly title: "Dimension";
370
+ readonly description: " dimension parameter.";
371
+ };
372
+ readonly Point2D: {
373
+ readonly type: "object";
374
+ readonly required: readonly ["x", "y"];
375
+ readonly properties: {
376
+ readonly x: {
377
+ readonly type: "number";
378
+ readonly title: "X";
379
+ readonly description: "X parameter.";
380
+ };
381
+ readonly y: {
382
+ readonly type: "number";
383
+ readonly title: "Y";
384
+ readonly description: "Y parameter.";
385
+ };
386
+ };
387
+ readonly additionalProperties: false;
388
+ readonly title: "Point2D";
389
+ readonly description: " point2 d parameter.";
390
+ };
391
+ readonly Point3D: {
392
+ readonly type: "object";
393
+ readonly required: readonly ["x", "y", "z"];
394
+ readonly properties: {
395
+ readonly x: {
396
+ readonly type: "number";
397
+ readonly title: "X";
398
+ readonly description: "X parameter.";
399
+ };
400
+ readonly y: {
401
+ readonly type: "number";
402
+ readonly title: "Y";
403
+ readonly description: "Y parameter.";
404
+ };
405
+ readonly z: {
406
+ readonly type: "number";
407
+ readonly title: "Z";
408
+ readonly description: "Z parameter.";
409
+ };
410
+ };
411
+ readonly additionalProperties: false;
412
+ readonly title: "Point3D";
413
+ readonly description: " point3 d parameter.";
414
+ };
415
+ readonly Countersink: {
416
+ readonly type: "object";
417
+ readonly required: readonly ["diameter", "angle"];
418
+ readonly properties: {
419
+ readonly diameter: {
420
+ readonly type: "number";
421
+ readonly exclusiveMinimum: 0;
422
+ readonly maximum: 10000;
423
+ readonly title: "Diameter";
424
+ readonly description: "Diameter in millimeters.";
425
+ };
426
+ readonly angle: {
427
+ readonly type: "number";
428
+ readonly minimum: 1;
429
+ readonly maximum: 179;
430
+ readonly title: "Angle";
431
+ readonly description: "Angle parameter.";
432
+ };
433
+ };
434
+ readonly additionalProperties: false;
435
+ readonly title: "Countersink";
436
+ readonly description: " countersink for the part.";
437
+ };
438
+ readonly Counterbore: {
439
+ readonly type: "object";
440
+ readonly required: readonly ["diameter", "depth"];
441
+ readonly properties: {
442
+ readonly diameter: {
443
+ readonly type: "number";
444
+ readonly exclusiveMinimum: 0;
445
+ readonly maximum: 10000;
446
+ readonly title: "Diameter";
447
+ readonly description: "Diameter in millimeters.";
448
+ };
449
+ readonly depth: {
450
+ readonly type: "number";
451
+ readonly exclusiveMinimum: 0;
452
+ readonly maximum: 10000;
453
+ readonly title: "Depth";
454
+ readonly description: "Depth in millimeters.";
455
+ };
456
+ };
457
+ readonly additionalProperties: false;
458
+ readonly title: "Counterbore";
459
+ readonly description: " counterbore for the part.";
460
+ };
461
+ readonly Hole: {
462
+ readonly type: "object";
463
+ readonly required: readonly ["x", "y", "diameter", "depth"];
464
+ readonly properties: {
465
+ readonly id: {
466
+ readonly type: "string";
467
+ readonly title: "Id";
468
+ readonly description: "Id parameter.";
469
+ };
470
+ readonly x: {
471
+ readonly type: "number";
472
+ readonly title: "X";
473
+ readonly description: "X parameter.";
474
+ };
475
+ readonly y: {
476
+ readonly type: "number";
477
+ readonly title: "Y";
478
+ readonly description: "Y parameter.";
479
+ };
480
+ readonly diameter: {
481
+ readonly type: "number";
482
+ readonly exclusiveMinimum: 0;
483
+ readonly maximum: 10000;
484
+ readonly title: "Diameter";
485
+ readonly description: "Diameter in millimeters.";
486
+ };
487
+ readonly depth: {
488
+ readonly oneOf: readonly [{
489
+ readonly const: "through";
490
+ }, {
491
+ readonly type: "number";
492
+ readonly exclusiveMinimum: 0;
493
+ readonly maximum: 10000;
494
+ readonly title: "OneOf";
495
+ readonly description: "One of parameter.";
496
+ }];
497
+ };
498
+ readonly axis: {
499
+ readonly enum: readonly ["x", "y", "z"];
500
+ readonly default: "z";
501
+ readonly title: "Axis";
502
+ readonly description: "Axis parameter.";
503
+ readonly examples: readonly ["z"];
504
+ readonly "x-printspec-enumLabels": {
505
+ readonly x: "X axis";
506
+ readonly y: "Y axis";
507
+ readonly z: "Z axis";
508
+ };
509
+ };
510
+ readonly countersink: {
511
+ readonly $ref: "#/$defs/Countersink";
512
+ readonly title: "Countersink";
513
+ readonly description: "Countersink for the part.";
514
+ };
515
+ readonly counterbore: {
516
+ readonly $ref: "#/$defs/Counterbore";
517
+ readonly title: "Counterbore";
518
+ readonly description: "Counterbore for the part.";
519
+ };
520
+ };
521
+ readonly additionalProperties: false;
522
+ readonly title: "Hole";
523
+ readonly description: " hole parameter.";
524
+ };
525
+ readonly Slot: {
526
+ readonly type: "object";
527
+ readonly required: readonly ["x", "y", "length", "width", "depth", "axis"];
528
+ readonly properties: {
529
+ readonly id: {
530
+ readonly type: "string";
531
+ readonly title: "Id";
532
+ readonly description: "Id parameter.";
533
+ };
534
+ readonly x: {
535
+ readonly type: "number";
536
+ readonly title: "X";
537
+ readonly description: "X parameter.";
538
+ };
539
+ readonly y: {
540
+ readonly type: "number";
541
+ readonly title: "Y";
542
+ readonly description: "Y parameter.";
543
+ };
544
+ readonly length: {
545
+ readonly type: "number";
546
+ readonly exclusiveMinimum: 0;
547
+ readonly maximum: 10000;
548
+ readonly title: "Length";
549
+ readonly description: "Length in millimeters.";
550
+ };
551
+ readonly width: {
552
+ readonly type: "number";
553
+ readonly exclusiveMinimum: 0;
554
+ readonly maximum: 10000;
555
+ readonly title: "Width";
556
+ readonly description: "Width in millimeters.";
557
+ };
558
+ readonly depth: {
559
+ readonly oneOf: readonly [{
560
+ readonly const: "through";
561
+ }, {
562
+ readonly type: "number";
563
+ readonly exclusiveMinimum: 0;
564
+ readonly maximum: 10000;
565
+ readonly title: "OneOf";
566
+ readonly description: "One of parameter.";
567
+ }];
568
+ };
569
+ readonly axis: {
570
+ readonly enum: readonly ["x", "y", "z"];
571
+ readonly title: "Axis";
572
+ readonly description: "Axis parameter.";
573
+ readonly default: "z";
574
+ readonly examples: readonly ["z"];
575
+ readonly "x-printspec-enumLabels": {
576
+ readonly x: "X axis";
577
+ readonly y: "Y axis";
578
+ readonly z: "Z axis";
579
+ };
580
+ };
581
+ };
582
+ readonly additionalProperties: false;
583
+ readonly title: "Slot";
584
+ readonly description: " slot parameter.";
585
+ };
586
+ readonly Fillet: {
587
+ readonly type: "object";
588
+ readonly required: readonly ["radius"];
589
+ readonly properties: {
590
+ readonly radius: {
591
+ readonly type: "number";
592
+ readonly exclusiveMinimum: 0;
593
+ readonly maximum: 10000;
594
+ readonly title: "Radius";
595
+ readonly description: "Radius in millimeters.";
596
+ };
597
+ readonly target: {
598
+ readonly type: "string";
599
+ readonly title: "Target";
600
+ readonly description: "Target parameter.";
601
+ };
602
+ };
603
+ readonly additionalProperties: false;
604
+ readonly title: "Fillet";
605
+ readonly description: " fillet parameter.";
606
+ };
607
+ readonly Chamfer: {
608
+ readonly type: "object";
609
+ readonly required: readonly ["distance"];
610
+ readonly properties: {
611
+ readonly distance: {
612
+ readonly type: "number";
613
+ readonly exclusiveMinimum: 0;
614
+ readonly maximum: 10000;
615
+ readonly title: "Distance";
616
+ readonly description: "Distance parameter.";
617
+ };
618
+ readonly target: {
619
+ readonly type: "string";
620
+ readonly title: "Target";
621
+ readonly description: "Target parameter.";
622
+ };
623
+ };
624
+ readonly additionalProperties: false;
625
+ readonly title: "Chamfer";
626
+ readonly description: " chamfer parameter.";
627
+ };
628
+ readonly Pattern: {
629
+ readonly oneOf: readonly [{
630
+ readonly type: "object";
631
+ readonly required: readonly ["type", "countX", "countY", "spacingX", "spacingY"];
632
+ readonly properties: {
633
+ readonly type: {
634
+ readonly const: "rectangular";
635
+ };
636
+ readonly countX: {
637
+ readonly type: "integer";
638
+ readonly minimum: 1;
639
+ readonly maximum: 100;
640
+ readonly title: "CountX";
641
+ readonly description: "Count x for the part.";
642
+ };
643
+ readonly countY: {
644
+ readonly type: "integer";
645
+ readonly minimum: 1;
646
+ readonly maximum: 100;
647
+ readonly title: "CountY";
648
+ readonly description: "Count y for the part.";
649
+ };
650
+ readonly spacingX: {
651
+ readonly type: "number";
652
+ readonly exclusiveMinimum: 0;
653
+ readonly maximum: 10000;
654
+ readonly title: "SpacingX";
655
+ readonly description: "Spacing x in millimeters.";
656
+ };
657
+ readonly spacingY: {
658
+ readonly type: "number";
659
+ readonly exclusiveMinimum: 0;
660
+ readonly maximum: 10000;
661
+ readonly title: "SpacingY";
662
+ readonly description: "Spacing y in millimeters.";
663
+ };
664
+ };
665
+ readonly additionalProperties: false;
666
+ readonly title: "OneOf";
667
+ readonly description: "One of parameter.";
668
+ }, {
669
+ readonly type: "object";
670
+ readonly required: readonly ["type", "count", "spacing"];
671
+ readonly properties: {
672
+ readonly type: {
673
+ readonly const: "linear";
674
+ };
675
+ readonly count: {
676
+ readonly type: "integer";
677
+ readonly minimum: 1;
678
+ readonly maximum: 100;
679
+ readonly title: "Count";
680
+ readonly description: "Count for the part.";
681
+ };
682
+ readonly spacing: {
683
+ readonly type: "number";
684
+ readonly exclusiveMinimum: 0;
685
+ readonly maximum: 10000;
686
+ readonly title: "Spacing";
687
+ readonly description: "Spacing in millimeters.";
688
+ };
689
+ readonly axis: {
690
+ readonly enum: readonly ["x", "y", "z"];
691
+ readonly title: "Axis";
692
+ readonly description: "Axis parameter.";
693
+ readonly default: "z";
694
+ readonly examples: readonly ["z"];
695
+ readonly "x-printspec-enumLabels": {
696
+ readonly x: "X axis";
697
+ readonly y: "Y axis";
698
+ readonly z: "Z axis";
699
+ };
700
+ };
701
+ };
702
+ readonly additionalProperties: false;
703
+ readonly title: "OneOf";
704
+ readonly description: "One of parameter.";
705
+ }, {
706
+ readonly type: "object";
707
+ readonly required: readonly ["type", "count", "radius"];
708
+ readonly properties: {
709
+ readonly type: {
710
+ readonly const: "radial";
711
+ };
712
+ readonly count: {
713
+ readonly type: "integer";
714
+ readonly minimum: 1;
715
+ readonly maximum: 100;
716
+ readonly title: "Count";
717
+ readonly description: "Count for the part.";
718
+ };
719
+ readonly radius: {
720
+ readonly type: "number";
721
+ readonly exclusiveMinimum: 0;
722
+ readonly maximum: 10000;
723
+ readonly title: "Radius";
724
+ readonly description: "Radius in millimeters.";
725
+ };
726
+ readonly startAngle: {
727
+ readonly type: "number";
728
+ readonly title: "StartAngle";
729
+ readonly description: "Start angle parameter.";
730
+ };
731
+ readonly sweepAngle: {
732
+ readonly type: "number";
733
+ readonly title: "SweepAngle";
734
+ readonly description: "Sweep angle parameter.";
735
+ };
736
+ };
737
+ readonly additionalProperties: false;
738
+ readonly title: "OneOf";
739
+ readonly description: "One of parameter.";
740
+ }];
741
+ };
742
+ readonly SupplierReference: {
743
+ readonly type: "object";
744
+ readonly required: readonly ["supplier", "partNumber"];
745
+ readonly properties: {
746
+ readonly supplier: {
747
+ readonly type: "string";
748
+ readonly minLength: 1;
749
+ readonly title: "Supplier";
750
+ readonly description: "Supplier parameter.";
751
+ };
752
+ readonly partNumber: {
753
+ readonly type: "string";
754
+ readonly minLength: 1;
755
+ readonly title: "PartNumber";
756
+ readonly description: "Part number parameter.";
757
+ };
758
+ readonly url: {
759
+ readonly type: "string";
760
+ readonly format: "uri";
761
+ readonly title: "Url";
762
+ readonly description: "Url parameter.";
763
+ };
764
+ readonly description: {
765
+ readonly type: "string";
766
+ readonly title: "Description";
767
+ readonly description: "Description parameter.";
768
+ };
769
+ };
770
+ readonly additionalProperties: false;
771
+ readonly title: "SupplierReference";
772
+ readonly description: " supplier reference parameter.";
773
+ };
774
+ readonly HardwareItem: {
775
+ readonly type: "object";
776
+ readonly required: readonly ["id", "kind", "quantity"];
777
+ readonly properties: {
778
+ readonly id: {
779
+ readonly type: "string";
780
+ readonly minLength: 1;
781
+ readonly title: "Id";
782
+ readonly description: "Id parameter.";
783
+ };
784
+ readonly kind: {
785
+ readonly type: "string";
786
+ readonly minLength: 1;
787
+ readonly title: "Kind";
788
+ readonly description: "Kind parameter.";
789
+ };
790
+ readonly standard: {
791
+ readonly type: "string";
792
+ readonly title: "Standard";
793
+ readonly description: "Standard parameter.";
794
+ };
795
+ readonly size: {
796
+ readonly type: "string";
797
+ readonly title: "Size";
798
+ readonly description: "Size parameter.";
799
+ };
800
+ readonly quantity: {
801
+ readonly type: "integer";
802
+ readonly minimum: 1;
803
+ readonly maximum: 10000;
804
+ readonly title: "Quantity";
805
+ readonly description: "Quantity parameter.";
806
+ };
807
+ readonly role: {
808
+ readonly type: "string";
809
+ readonly title: "Role";
810
+ readonly description: "Role parameter.";
811
+ };
812
+ readonly supplierReferences: {
813
+ readonly type: "array";
814
+ readonly items: {
815
+ readonly $ref: "#/$defs/SupplierReference";
816
+ readonly title: "Items";
817
+ readonly description: "Items parameter.";
818
+ };
819
+ readonly title: "SupplierReferences";
820
+ readonly description: "Supplier references parameter.";
821
+ };
822
+ };
823
+ readonly additionalProperties: false;
824
+ readonly title: "HardwareItem";
825
+ readonly description: " hardware item parameter.";
826
+ };
827
+ };
828
+ readonly title: "Common Printspec Definitions";
829
+ readonly description: "Reusable JSON Schema definitions shared by printspec schemas.";
830
+ };
831
+ readonly "composable-part.schema.json": {
832
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
833
+ readonly type: "object";
834
+ readonly required: readonly ["type", "label", "components"];
835
+ readonly properties: {
836
+ readonly type: {
837
+ readonly const: "composable_part";
838
+ readonly title: "Part type";
839
+ readonly description: "Stable printspec part family identifier.";
840
+ };
841
+ readonly label: {
842
+ readonly type: "string";
843
+ readonly title: "Label";
844
+ readonly description: "Human-readable name for this part.";
845
+ };
846
+ readonly description: {
847
+ readonly type: "string";
848
+ readonly title: "Description";
849
+ readonly description: "Optional human-readable notes for this part.";
850
+ };
851
+ readonly components: {
852
+ readonly type: "array";
853
+ readonly minItems: 1;
854
+ readonly items: {
855
+ readonly type: "object";
856
+ readonly required: readonly ["id", "kind", "operation", "dimensions"];
857
+ readonly properties: {
858
+ readonly id: {
859
+ readonly type: "string";
860
+ };
861
+ readonly name: {
862
+ readonly type: "string";
863
+ };
864
+ readonly description: {
865
+ readonly type: "string";
866
+ };
867
+ readonly kind: {
868
+ readonly enum: readonly ["box", "rounded_box", "cylinder", "tube", "plate", "tab", "boss", "rib", "wedge"];
869
+ };
870
+ readonly operation: {
871
+ readonly enum: readonly ["add", "subtract"];
872
+ };
873
+ readonly dimensions: {
874
+ readonly type: "object";
875
+ readonly additionalProperties: {
876
+ readonly type: "number";
877
+ readonly exclusiveMinimum: 0;
878
+ };
879
+ };
880
+ readonly position: {
881
+ readonly $ref: "common.schema.json#/$defs/Point3D";
882
+ };
883
+ readonly relation: {
884
+ readonly type: "object";
885
+ readonly properties: {
886
+ readonly type: {
887
+ readonly enum: readonly ["absolute", "on_top_of", "attached_to_face", "centered_on", "aligned_with", "offset_from", "mirrored_from"];
888
+ };
889
+ readonly target: {
890
+ readonly type: "string";
891
+ };
892
+ readonly face: {
893
+ readonly type: "string";
894
+ };
895
+ };
896
+ readonly additionalProperties: true;
897
+ };
898
+ readonly pattern: {
899
+ readonly $ref: "common.schema.json#/$defs/Pattern";
900
+ };
901
+ readonly materialRole: {
902
+ readonly enum: readonly ["body", "mount", "support", "cutout", "reference"];
903
+ };
904
+ };
905
+ readonly additionalProperties: false;
906
+ };
907
+ };
908
+ readonly features: {
909
+ readonly type: "array";
910
+ readonly items: {
911
+ readonly type: "object";
912
+ readonly required: readonly ["id", "kind", "target"];
913
+ readonly properties: {
914
+ readonly id: {
915
+ readonly type: "string";
916
+ };
917
+ readonly kind: {
918
+ readonly enum: readonly ["hole", "slot", "counterbore", "countersink", "fillet", "chamfer", "text"];
919
+ };
920
+ readonly target: {
921
+ readonly type: "string";
922
+ };
923
+ readonly position: {
924
+ readonly $ref: "common.schema.json#/$defs/Point3D";
925
+ };
926
+ readonly relation: {
927
+ readonly type: "object";
928
+ };
929
+ readonly pattern: {
930
+ readonly $ref: "common.schema.json#/$defs/Pattern";
931
+ };
932
+ readonly parameters: {
933
+ readonly type: "object";
934
+ };
935
+ };
936
+ readonly additionalProperties: false;
937
+ };
938
+ };
939
+ readonly constraints: {
940
+ readonly type: "array";
941
+ readonly items: {
942
+ readonly type: "object";
943
+ };
944
+ };
945
+ readonly hardware: {
946
+ readonly type: "array";
947
+ readonly items: {
948
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
949
+ };
950
+ };
951
+ };
952
+ readonly additionalProperties: false;
953
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/composable-part.schema.json";
954
+ readonly title: "Composable Part";
955
+ readonly description: "Composable Part schema for printspec documents.";
956
+ };
957
+ readonly "drill-guide.schema.json": {
958
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
959
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/drill-guide.schema.json";
960
+ readonly type: "object";
961
+ readonly required: readonly ["type", "label", "parameters"];
962
+ readonly properties: {
963
+ readonly type: {
964
+ readonly const: "drill_guide";
965
+ readonly title: "Part type";
966
+ readonly description: "Stable printspec part family identifier.";
967
+ };
968
+ readonly label: {
969
+ readonly type: "string";
970
+ readonly minLength: 1;
971
+ readonly title: "Label";
972
+ readonly description: "Human-readable name for this part.";
973
+ };
974
+ readonly description: {
975
+ readonly type: "string";
976
+ readonly title: "Description";
977
+ readonly description: "Optional human-readable notes for this part.";
978
+ };
979
+ readonly parameters: {
980
+ readonly type: "object";
981
+ readonly required: readonly ["length", "width", "height", "holeDiameter", "holeCount", "holeSpacing"];
982
+ readonly properties: {
983
+ readonly length: {
984
+ readonly type: "number";
985
+ readonly exclusiveMinimum: 0;
986
+ readonly maximum: 10000;
987
+ readonly title: "Length";
988
+ readonly description: "Length in millimeters.";
989
+ readonly "x-printspec-control": "number";
990
+ readonly "x-printspec-unit": "mm";
991
+ readonly "x-printspec-step": 0.1;
992
+ readonly "x-printspec-priority": "primary";
993
+ readonly examples: readonly [100];
994
+ };
995
+ readonly width: {
996
+ readonly type: "number";
997
+ readonly exclusiveMinimum: 0;
998
+ readonly maximum: 10000;
999
+ readonly title: "Width";
1000
+ readonly description: "Width in millimeters.";
1001
+ readonly "x-printspec-control": "number";
1002
+ readonly "x-printspec-unit": "mm";
1003
+ readonly "x-printspec-step": 0.1;
1004
+ readonly "x-printspec-priority": "primary";
1005
+ readonly examples: readonly [50];
1006
+ };
1007
+ readonly height: {
1008
+ readonly type: "number";
1009
+ readonly exclusiveMinimum: 0;
1010
+ readonly maximum: 10000;
1011
+ readonly title: "Height";
1012
+ readonly description: "Height in millimeters.";
1013
+ readonly "x-printspec-control": "number";
1014
+ readonly "x-printspec-unit": "mm";
1015
+ readonly "x-printspec-step": 0.1;
1016
+ readonly "x-printspec-priority": "primary";
1017
+ readonly examples: readonly [10];
1018
+ };
1019
+ readonly holeDiameter: {
1020
+ readonly type: "number";
1021
+ readonly exclusiveMinimum: 0;
1022
+ readonly maximum: 10000;
1023
+ readonly title: "Hole diameter";
1024
+ readonly description: "Hole diameter in millimeters.";
1025
+ readonly "x-printspec-control": "number";
1026
+ readonly "x-printspec-unit": "mm";
1027
+ readonly "x-printspec-step": 0.1;
1028
+ readonly "x-printspec-priority": "primary";
1029
+ readonly examples: readonly [3.2];
1030
+ };
1031
+ readonly holeCount: {
1032
+ readonly type: "integer";
1033
+ readonly minimum: 1;
1034
+ readonly maximum: 50;
1035
+ readonly title: "Hole count";
1036
+ readonly description: "Hole count for the part.";
1037
+ readonly "x-printspec-control": "integer";
1038
+ readonly "x-printspec-unit": "count";
1039
+ readonly "x-printspec-step": 1;
1040
+ readonly "x-printspec-priority": "primary";
1041
+ };
1042
+ readonly holeSpacing: {
1043
+ readonly type: "number";
1044
+ readonly exclusiveMinimum: 0;
1045
+ readonly maximum: 10000;
1046
+ readonly title: "Hole spacing";
1047
+ readonly description: "Hole spacing in millimeters.";
1048
+ readonly "x-printspec-control": "number";
1049
+ readonly "x-printspec-unit": "mm";
1050
+ readonly "x-printspec-step": 0.1;
1051
+ readonly "x-printspec-priority": "primary";
1052
+ };
1053
+ readonly bushingDiameter: {
1054
+ readonly type: "number";
1055
+ readonly exclusiveMinimum: 0;
1056
+ readonly maximum: 10000;
1057
+ readonly title: "Bushing diameter";
1058
+ readonly description: "Bushing diameter in millimeters.";
1059
+ readonly "x-printspec-control": "number";
1060
+ readonly "x-printspec-unit": "mm";
1061
+ readonly "x-printspec-step": 0.1;
1062
+ readonly "x-printspec-priority": "advanced";
1063
+ };
1064
+ readonly holes: {
1065
+ readonly type: "array";
1066
+ readonly items: {
1067
+ readonly $ref: "common.schema.json#/$defs/Hole";
1068
+ };
1069
+ readonly title: "Holes";
1070
+ readonly description: "Optional hole features to include in the generated part.";
1071
+ readonly "x-printspec-control": "hole-list";
1072
+ readonly "x-printspec-priority": "advanced";
1073
+ readonly default: readonly [];
1074
+ };
1075
+ readonly slots: {
1076
+ readonly type: "array";
1077
+ readonly items: {
1078
+ readonly $ref: "common.schema.json#/$defs/Slot";
1079
+ };
1080
+ readonly title: "Slots";
1081
+ readonly description: "Optional slot features to include in the generated part.";
1082
+ readonly "x-printspec-control": "slot-list";
1083
+ readonly "x-printspec-priority": "advanced";
1084
+ readonly default: readonly [];
1085
+ };
1086
+ readonly chamfer: {
1087
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
1088
+ readonly title: "Chamfer";
1089
+ readonly description: "Optional chamfer edge finishing request.";
1090
+ readonly "x-printspec-control": "number";
1091
+ readonly "x-printspec-priority": "advanced";
1092
+ };
1093
+ readonly fillet: {
1094
+ readonly $ref: "common.schema.json#/$defs/Fillet";
1095
+ readonly title: "Fillet";
1096
+ readonly description: "Optional fillet edge finishing request.";
1097
+ readonly "x-printspec-control": "number";
1098
+ readonly "x-printspec-priority": "advanced";
1099
+ };
1100
+ readonly cornerRadius: {
1101
+ readonly type: "number";
1102
+ readonly exclusiveMinimum: 0;
1103
+ readonly maximum: 10000;
1104
+ readonly title: "Corner radius";
1105
+ readonly description: "Corner radius in millimeters.";
1106
+ readonly "x-printspec-control": "number";
1107
+ readonly "x-printspec-unit": "mm";
1108
+ readonly "x-printspec-step": 0.1;
1109
+ readonly "x-printspec-priority": "advanced";
1110
+ readonly examples: readonly [4];
1111
+ };
1112
+ };
1113
+ readonly additionalProperties: false;
1114
+ readonly title: "Parameters";
1115
+ readonly description: "Editable parameters for Drill Guide.";
1116
+ readonly "x-printspec-ui": {
1117
+ readonly order: readonly ["length", "width", "height", "holeDiameter", "holeCount", "holeSpacing", "bushingDiameter", "holes", "slots", "chamfer", "fillet", "cornerRadius"];
1118
+ readonly groups: readonly [{
1119
+ readonly id: "parameters";
1120
+ readonly title: "Parameters";
1121
+ readonly fields: readonly ["length", "width", "height", "holeDiameter", "holeCount", "holeSpacing", "bushingDiameter", "holes", "slots", "chamfer", "fillet", "cornerRadius"];
1122
+ }];
1123
+ };
1124
+ };
1125
+ readonly hardware: {
1126
+ readonly type: "array";
1127
+ readonly items: {
1128
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1129
+ };
1130
+ };
1131
+ };
1132
+ readonly additionalProperties: false;
1133
+ readonly title: "Drill Guide";
1134
+ readonly description: "Block used to guide repeated drilled holes.";
1135
+ };
1136
+ readonly "electronics-standoff.schema.json": {
1137
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1138
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/electronics-standoff.schema.json";
1139
+ readonly type: "object";
1140
+ readonly required: readonly ["type", "label", "parameters"];
1141
+ readonly properties: {
1142
+ readonly type: {
1143
+ readonly const: "electronics_standoff";
1144
+ readonly title: "Part type";
1145
+ readonly description: "Stable printspec part family identifier.";
1146
+ };
1147
+ readonly label: {
1148
+ readonly type: "string";
1149
+ readonly minLength: 1;
1150
+ readonly title: "Label";
1151
+ readonly description: "Human-readable name for this part.";
1152
+ };
1153
+ readonly description: {
1154
+ readonly type: "string";
1155
+ readonly title: "Description";
1156
+ readonly description: "Optional human-readable notes for this part.";
1157
+ };
1158
+ readonly parameters: {
1159
+ readonly type: "object";
1160
+ readonly required: readonly ["outerDiameter", "height", "holeDiameter"];
1161
+ readonly properties: {
1162
+ readonly outerDiameter: {
1163
+ readonly type: "number";
1164
+ readonly exclusiveMinimum: 0;
1165
+ readonly maximum: 10000;
1166
+ readonly title: "Outer diameter";
1167
+ readonly description: "Outer diameter in millimeters.";
1168
+ readonly "x-printspec-control": "number";
1169
+ readonly "x-printspec-unit": "mm";
1170
+ readonly "x-printspec-step": 0.1;
1171
+ readonly "x-printspec-priority": "primary";
1172
+ readonly examples: readonly [12];
1173
+ };
1174
+ readonly height: {
1175
+ readonly type: "number";
1176
+ readonly exclusiveMinimum: 0;
1177
+ readonly maximum: 10000;
1178
+ readonly title: "Height";
1179
+ readonly description: "Height in millimeters.";
1180
+ readonly "x-printspec-control": "number";
1181
+ readonly "x-printspec-unit": "mm";
1182
+ readonly "x-printspec-step": 0.1;
1183
+ readonly "x-printspec-priority": "primary";
1184
+ readonly examples: readonly [10];
1185
+ };
1186
+ readonly holeDiameter: {
1187
+ readonly type: "number";
1188
+ readonly exclusiveMinimum: 0;
1189
+ readonly maximum: 10000;
1190
+ readonly title: "Hole diameter";
1191
+ readonly description: "Hole diameter in millimeters.";
1192
+ readonly "x-printspec-control": "number";
1193
+ readonly "x-printspec-unit": "mm";
1194
+ readonly "x-printspec-step": 0.1;
1195
+ readonly "x-printspec-priority": "primary";
1196
+ readonly examples: readonly [3.2];
1197
+ };
1198
+ readonly baseDiameter: {
1199
+ readonly type: "number";
1200
+ readonly exclusiveMinimum: 0;
1201
+ readonly maximum: 10000;
1202
+ readonly title: "Base diameter";
1203
+ readonly description: "Base diameter in millimeters.";
1204
+ readonly "x-printspec-control": "number";
1205
+ readonly "x-printspec-unit": "mm";
1206
+ readonly "x-printspec-step": 0.1;
1207
+ readonly "x-printspec-priority": "advanced";
1208
+ };
1209
+ readonly baseHeight: {
1210
+ readonly type: "number";
1211
+ readonly exclusiveMinimum: 0;
1212
+ readonly maximum: 10000;
1213
+ readonly title: "Base height";
1214
+ readonly description: "Base height in millimeters.";
1215
+ readonly "x-printspec-control": "number";
1216
+ readonly "x-printspec-unit": "mm";
1217
+ readonly "x-printspec-step": 0.1;
1218
+ readonly "x-printspec-priority": "advanced";
1219
+ };
1220
+ readonly holes: {
1221
+ readonly type: "array";
1222
+ readonly items: {
1223
+ readonly $ref: "common.schema.json#/$defs/Hole";
1224
+ };
1225
+ readonly title: "Holes";
1226
+ readonly description: "Optional hole features to include in the generated part.";
1227
+ readonly "x-printspec-control": "hole-list";
1228
+ readonly "x-printspec-priority": "advanced";
1229
+ readonly default: readonly [];
1230
+ };
1231
+ readonly slots: {
1232
+ readonly type: "array";
1233
+ readonly items: {
1234
+ readonly $ref: "common.schema.json#/$defs/Slot";
1235
+ };
1236
+ readonly title: "Slots";
1237
+ readonly description: "Optional slot features to include in the generated part.";
1238
+ readonly "x-printspec-control": "slot-list";
1239
+ readonly "x-printspec-priority": "advanced";
1240
+ readonly default: readonly [];
1241
+ };
1242
+ readonly chamfer: {
1243
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
1244
+ readonly title: "Chamfer";
1245
+ readonly description: "Optional chamfer edge finishing request.";
1246
+ readonly "x-printspec-control": "number";
1247
+ readonly "x-printspec-priority": "advanced";
1248
+ };
1249
+ readonly fillet: {
1250
+ readonly $ref: "common.schema.json#/$defs/Fillet";
1251
+ readonly title: "Fillet";
1252
+ readonly description: "Optional fillet edge finishing request.";
1253
+ readonly "x-printspec-control": "number";
1254
+ readonly "x-printspec-priority": "advanced";
1255
+ };
1256
+ readonly cornerRadius: {
1257
+ readonly type: "number";
1258
+ readonly exclusiveMinimum: 0;
1259
+ readonly maximum: 10000;
1260
+ readonly title: "Corner radius";
1261
+ readonly description: "Corner radius in millimeters.";
1262
+ readonly "x-printspec-control": "number";
1263
+ readonly "x-printspec-unit": "mm";
1264
+ readonly "x-printspec-step": 0.1;
1265
+ readonly "x-printspec-priority": "advanced";
1266
+ readonly examples: readonly [4];
1267
+ };
1268
+ };
1269
+ readonly additionalProperties: false;
1270
+ readonly title: "Parameters";
1271
+ readonly description: "Editable parameters for Electronics Standoff.";
1272
+ readonly "x-printspec-ui": {
1273
+ readonly order: readonly ["outerDiameter", "height", "holeDiameter", "baseDiameter", "baseHeight", "cornerRadius", "holes", "slots", "chamfer", "fillet"];
1274
+ readonly groups: readonly [{
1275
+ readonly id: "dimensions";
1276
+ readonly title: "Dimensions";
1277
+ readonly fields: readonly ["outerDiameter", "height", "holeDiameter", "baseDiameter", "baseHeight", "cornerRadius"];
1278
+ }, {
1279
+ readonly id: "features";
1280
+ readonly title: "Features";
1281
+ readonly fields: readonly ["holes", "slots"];
1282
+ }, {
1283
+ readonly id: "finishing";
1284
+ readonly title: "Finishing";
1285
+ readonly fields: readonly ["chamfer", "fillet"];
1286
+ }];
1287
+ };
1288
+ };
1289
+ readonly hardware: {
1290
+ readonly type: "array";
1291
+ readonly items: {
1292
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1293
+ };
1294
+ };
1295
+ };
1296
+ readonly additionalProperties: false;
1297
+ readonly title: "Electronics Standoff";
1298
+ readonly description: "Round standoff with optional base for supporting circuit boards.";
1299
+ };
1300
+ readonly "l-bracket.schema.json": {
1301
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1302
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/l-bracket.schema.json";
1303
+ readonly type: "object";
1304
+ readonly required: readonly ["type", "label", "parameters"];
1305
+ readonly properties: {
1306
+ readonly type: {
1307
+ readonly const: "l_bracket";
1308
+ readonly title: "Part type";
1309
+ readonly description: "Stable printspec part family identifier.";
1310
+ };
1311
+ readonly label: {
1312
+ readonly type: "string";
1313
+ readonly minLength: 1;
1314
+ readonly title: "Label";
1315
+ readonly description: "Human-readable name for this part.";
1316
+ };
1317
+ readonly description: {
1318
+ readonly type: "string";
1319
+ readonly title: "Description";
1320
+ readonly description: "Optional human-readable notes for this part.";
1321
+ };
1322
+ readonly parameters: {
1323
+ readonly type: "object";
1324
+ readonly required: readonly ["legLengthA", "legLengthB", "width", "thickness"];
1325
+ readonly properties: {
1326
+ readonly legLengthA: {
1327
+ readonly type: "number";
1328
+ readonly exclusiveMinimum: 0;
1329
+ readonly maximum: 10000;
1330
+ readonly title: "Leg A length";
1331
+ readonly description: "Leg A length in millimeters.";
1332
+ readonly "x-printspec-control": "number";
1333
+ readonly "x-printspec-unit": "mm";
1334
+ readonly "x-printspec-step": 0.1;
1335
+ readonly "x-printspec-priority": "primary";
1336
+ };
1337
+ readonly legLengthB: {
1338
+ readonly type: "number";
1339
+ readonly exclusiveMinimum: 0;
1340
+ readonly maximum: 10000;
1341
+ readonly title: "Leg B length";
1342
+ readonly description: "Leg B length in millimeters.";
1343
+ readonly "x-printspec-control": "number";
1344
+ readonly "x-printspec-unit": "mm";
1345
+ readonly "x-printspec-step": 0.1;
1346
+ readonly "x-printspec-priority": "primary";
1347
+ };
1348
+ readonly width: {
1349
+ readonly type: "number";
1350
+ readonly exclusiveMinimum: 0;
1351
+ readonly maximum: 10000;
1352
+ readonly title: "Width";
1353
+ readonly description: "Width in millimeters.";
1354
+ readonly "x-printspec-control": "number";
1355
+ readonly "x-printspec-unit": "mm";
1356
+ readonly "x-printspec-step": 0.1;
1357
+ readonly "x-printspec-priority": "primary";
1358
+ readonly examples: readonly [50];
1359
+ };
1360
+ readonly thickness: {
1361
+ readonly type: "number";
1362
+ readonly exclusiveMinimum: 0;
1363
+ readonly maximum: 10000;
1364
+ readonly title: "Thickness";
1365
+ readonly description: "Thickness in millimeters.";
1366
+ readonly "x-printspec-control": "number";
1367
+ readonly "x-printspec-unit": "mm";
1368
+ readonly "x-printspec-step": 0.1;
1369
+ readonly "x-printspec-priority": "primary";
1370
+ readonly examples: readonly [3];
1371
+ };
1372
+ readonly holes: {
1373
+ readonly type: "array";
1374
+ readonly items: {
1375
+ readonly $ref: "common.schema.json#/$defs/Hole";
1376
+ };
1377
+ readonly title: "Holes";
1378
+ readonly description: "Optional hole features to include in the generated part.";
1379
+ readonly "x-printspec-control": "hole-list";
1380
+ readonly "x-printspec-priority": "advanced";
1381
+ readonly default: readonly [];
1382
+ };
1383
+ readonly slots: {
1384
+ readonly type: "array";
1385
+ readonly items: {
1386
+ readonly $ref: "common.schema.json#/$defs/Slot";
1387
+ };
1388
+ readonly title: "Slots";
1389
+ readonly description: "Optional slot features to include in the generated part.";
1390
+ readonly "x-printspec-control": "slot-list";
1391
+ readonly "x-printspec-priority": "advanced";
1392
+ readonly default: readonly [];
1393
+ };
1394
+ readonly chamfer: {
1395
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
1396
+ readonly title: "Chamfer";
1397
+ readonly description: "Optional chamfer edge finishing request.";
1398
+ readonly "x-printspec-control": "number";
1399
+ readonly "x-printspec-priority": "advanced";
1400
+ };
1401
+ readonly fillet: {
1402
+ readonly $ref: "common.schema.json#/$defs/Fillet";
1403
+ readonly title: "Fillet";
1404
+ readonly description: "Optional fillet edge finishing request.";
1405
+ readonly "x-printspec-control": "number";
1406
+ readonly "x-printspec-priority": "advanced";
1407
+ };
1408
+ readonly cornerRadius: {
1409
+ readonly type: "number";
1410
+ readonly exclusiveMinimum: 0;
1411
+ readonly maximum: 10000;
1412
+ readonly title: "Corner radius";
1413
+ readonly description: "Corner radius in millimeters.";
1414
+ readonly "x-printspec-control": "number";
1415
+ readonly "x-printspec-unit": "mm";
1416
+ readonly "x-printspec-step": 0.1;
1417
+ readonly "x-printspec-priority": "advanced";
1418
+ readonly examples: readonly [4];
1419
+ };
1420
+ readonly rib: {
1421
+ readonly type: "object";
1422
+ readonly properties: {
1423
+ readonly enabled: {
1424
+ readonly type: "boolean";
1425
+ };
1426
+ readonly thickness: {
1427
+ readonly type: "number";
1428
+ readonly exclusiveMinimum: 0;
1429
+ readonly maximum: 10000;
1430
+ };
1431
+ };
1432
+ readonly additionalProperties: false;
1433
+ readonly title: "Rib";
1434
+ readonly description: "Rib parameter.";
1435
+ readonly "x-printspec-control": "number";
1436
+ readonly "x-printspec-priority": "advanced";
1437
+ };
1438
+ };
1439
+ readonly additionalProperties: false;
1440
+ readonly title: "Parameters";
1441
+ readonly description: "Editable parameters for L Bracket.";
1442
+ readonly "x-printspec-ui": {
1443
+ readonly order: readonly ["legLengthA", "legLengthB", "width", "thickness", "holes", "slots", "chamfer", "fillet", "cornerRadius", "rib"];
1444
+ readonly groups: readonly [{
1445
+ readonly id: "parameters";
1446
+ readonly title: "Parameters";
1447
+ readonly fields: readonly ["legLengthA", "legLengthB", "width", "thickness", "holes", "slots", "chamfer", "fillet", "cornerRadius", "rib"];
1448
+ }];
1449
+ };
1450
+ };
1451
+ readonly hardware: {
1452
+ readonly type: "array";
1453
+ readonly items: {
1454
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1455
+ };
1456
+ };
1457
+ };
1458
+ readonly additionalProperties: false;
1459
+ readonly title: "L Bracket";
1460
+ readonly description: "Two-leg right-angle bracket with optional mounting features.";
1461
+ };
1462
+ readonly "part-family.schema.json": {
1463
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1464
+ readonly oneOf: readonly [{
1465
+ readonly $ref: "rounded-rectangular-plate.schema.json";
1466
+ }, {
1467
+ readonly $ref: "spacer-block.schema.json";
1468
+ }, {
1469
+ readonly $ref: "round-spacer.schema.json";
1470
+ }, {
1471
+ readonly $ref: "electronics-standoff.schema.json";
1472
+ }, {
1473
+ readonly $ref: "l-bracket.schema.json";
1474
+ }, {
1475
+ readonly $ref: "cable-comb.schema.json";
1476
+ }, {
1477
+ readonly $ref: "cable-clip.schema.json";
1478
+ }, {
1479
+ readonly $ref: "drill-guide.schema.json";
1480
+ }, {
1481
+ readonly $ref: "simple-box.schema.json";
1482
+ }, {
1483
+ readonly $ref: "simple-lid.schema.json";
1484
+ }];
1485
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/part-family.schema.json";
1486
+ readonly title: "Part Family";
1487
+ readonly description: "Part Family schema for printspec documents.";
1488
+ };
1489
+ readonly "printspec.schema.json": {
1490
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1491
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/printspec.schema.json";
1492
+ readonly type: "object";
1493
+ readonly required: readonly ["printspecVersion", "units"];
1494
+ readonly properties: {
1495
+ readonly printspecVersion: {
1496
+ readonly const: "0.1.0";
1497
+ };
1498
+ readonly units: {
1499
+ readonly const: "mm";
1500
+ };
1501
+ readonly part: {
1502
+ readonly oneOf: readonly [{
1503
+ readonly $ref: "part-family.schema.json";
1504
+ }, {
1505
+ readonly $ref: "composable-part.schema.json";
1506
+ }];
1507
+ };
1508
+ readonly project: {
1509
+ readonly $ref: "project.schema.json";
1510
+ };
1511
+ readonly print: {
1512
+ readonly type: "object";
1513
+ readonly properties: {
1514
+ readonly intendedMaterial: {
1515
+ readonly type: "string";
1516
+ };
1517
+ readonly recommendedOrientation: {
1518
+ readonly type: "string";
1519
+ };
1520
+ readonly notes: {
1521
+ readonly type: "array";
1522
+ readonly items: {
1523
+ readonly type: "string";
1524
+ };
1525
+ };
1526
+ };
1527
+ readonly additionalProperties: false;
1528
+ };
1529
+ readonly hardware: {
1530
+ readonly type: "array";
1531
+ readonly items: {
1532
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1533
+ };
1534
+ };
1535
+ readonly metadata: {
1536
+ readonly type: "object";
1537
+ readonly additionalProperties: true;
1538
+ };
1539
+ };
1540
+ readonly oneOf: readonly [{
1541
+ readonly required: readonly ["part"];
1542
+ }, {
1543
+ readonly required: readonly ["project"];
1544
+ }];
1545
+ readonly additionalProperties: false;
1546
+ readonly title: "Printspec";
1547
+ readonly description: "Printspec schema for printspec documents.";
1548
+ };
1549
+ readonly "project.schema.json": {
1550
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1551
+ readonly type: "object";
1552
+ readonly required: readonly ["type", "label", "parts"];
1553
+ readonly properties: {
1554
+ readonly type: {
1555
+ readonly const: "project";
1556
+ readonly title: "Part type";
1557
+ readonly description: "Stable printspec part family identifier.";
1558
+ };
1559
+ readonly label: {
1560
+ readonly type: "string";
1561
+ readonly title: "Label";
1562
+ readonly description: "Human-readable name for this part.";
1563
+ };
1564
+ readonly description: {
1565
+ readonly type: "string";
1566
+ readonly title: "Description";
1567
+ readonly description: "Optional human-readable notes for this part.";
1568
+ };
1569
+ readonly parts: {
1570
+ readonly type: "array";
1571
+ readonly minItems: 1;
1572
+ readonly items: {
1573
+ readonly type: "object";
1574
+ readonly required: readonly ["id", "label"];
1575
+ readonly properties: {
1576
+ readonly id: {
1577
+ readonly type: "string";
1578
+ };
1579
+ readonly label: {
1580
+ readonly type: "string";
1581
+ };
1582
+ readonly spec: {
1583
+ readonly $ref: "printspec.schema.json";
1584
+ };
1585
+ readonly specPath: {
1586
+ readonly type: "string";
1587
+ };
1588
+ readonly role: {
1589
+ readonly type: "string";
1590
+ };
1591
+ readonly quantity: {
1592
+ readonly type: "integer";
1593
+ readonly minimum: 1;
1594
+ readonly default: 1;
1595
+ };
1596
+ };
1597
+ readonly oneOf: readonly [{
1598
+ readonly required: readonly ["spec"];
1599
+ }, {
1600
+ readonly required: readonly ["specPath"];
1601
+ }];
1602
+ readonly additionalProperties: false;
1603
+ };
1604
+ };
1605
+ readonly hardware: {
1606
+ readonly type: "array";
1607
+ readonly items: {
1608
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1609
+ };
1610
+ };
1611
+ readonly relationships: {
1612
+ readonly type: "array";
1613
+ readonly items: {
1614
+ readonly type: "object";
1615
+ readonly required: readonly ["type", "partA"];
1616
+ readonly properties: {
1617
+ readonly type: {
1618
+ readonly enum: readonly ["mates_with", "fastens", "inserts_into", "aligns_with"];
1619
+ };
1620
+ readonly partA: {
1621
+ readonly type: "string";
1622
+ };
1623
+ readonly partB: {
1624
+ readonly type: "string";
1625
+ };
1626
+ readonly hardware: {
1627
+ readonly type: "string";
1628
+ };
1629
+ readonly notes: {
1630
+ readonly type: "string";
1631
+ };
1632
+ };
1633
+ readonly additionalProperties: false;
1634
+ };
1635
+ };
1636
+ readonly package: {
1637
+ readonly type: "object";
1638
+ };
1639
+ readonly partcad: {
1640
+ readonly type: "object";
1641
+ readonly properties: {
1642
+ readonly packageName: {
1643
+ readonly type: "string";
1644
+ };
1645
+ readonly packageVersion: {
1646
+ readonly type: "string";
1647
+ };
1648
+ readonly description: {
1649
+ readonly type: "string";
1650
+ };
1651
+ };
1652
+ readonly additionalProperties: false;
1653
+ };
1654
+ };
1655
+ readonly additionalProperties: false;
1656
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/project.schema.json";
1657
+ readonly title: "Project";
1658
+ readonly description: "Project schema for printspec documents.";
1659
+ };
1660
+ readonly "round-spacer.schema.json": {
1661
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1662
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/round-spacer.schema.json";
1663
+ readonly type: "object";
1664
+ readonly required: readonly ["type", "label", "parameters"];
1665
+ readonly properties: {
1666
+ readonly type: {
1667
+ readonly const: "round_spacer";
1668
+ readonly title: "Part type";
1669
+ readonly description: "Stable printspec part family identifier.";
1670
+ };
1671
+ readonly label: {
1672
+ readonly type: "string";
1673
+ readonly minLength: 1;
1674
+ readonly title: "Label";
1675
+ readonly description: "Human-readable name for this part.";
1676
+ };
1677
+ readonly description: {
1678
+ readonly type: "string";
1679
+ readonly title: "Description";
1680
+ readonly description: "Optional human-readable notes for this part.";
1681
+ };
1682
+ readonly parameters: {
1683
+ readonly type: "object";
1684
+ readonly required: readonly ["outerDiameter", "height"];
1685
+ readonly properties: {
1686
+ readonly outerDiameter: {
1687
+ readonly type: "number";
1688
+ readonly exclusiveMinimum: 0;
1689
+ readonly maximum: 10000;
1690
+ readonly title: "Outer diameter";
1691
+ readonly description: "Outer diameter in millimeters.";
1692
+ readonly "x-printspec-control": "number";
1693
+ readonly "x-printspec-unit": "mm";
1694
+ readonly "x-printspec-step": 0.1;
1695
+ readonly "x-printspec-priority": "primary";
1696
+ readonly examples: readonly [12];
1697
+ };
1698
+ readonly innerDiameter: {
1699
+ readonly type: "number";
1700
+ readonly exclusiveMinimum: 0;
1701
+ readonly maximum: 10000;
1702
+ readonly title: "Inner diameter";
1703
+ readonly description: "Inner diameter in millimeters.";
1704
+ readonly "x-printspec-control": "number";
1705
+ readonly "x-printspec-unit": "mm";
1706
+ readonly "x-printspec-step": 0.1;
1707
+ readonly "x-printspec-priority": "advanced";
1708
+ readonly examples: readonly [4];
1709
+ };
1710
+ readonly height: {
1711
+ readonly type: "number";
1712
+ readonly exclusiveMinimum: 0;
1713
+ readonly maximum: 10000;
1714
+ readonly title: "Height";
1715
+ readonly description: "Height in millimeters.";
1716
+ readonly "x-printspec-control": "number";
1717
+ readonly "x-printspec-unit": "mm";
1718
+ readonly "x-printspec-step": 0.1;
1719
+ readonly "x-printspec-priority": "primary";
1720
+ readonly examples: readonly [10];
1721
+ };
1722
+ readonly holes: {
1723
+ readonly type: "array";
1724
+ readonly items: {
1725
+ readonly $ref: "common.schema.json#/$defs/Hole";
1726
+ };
1727
+ readonly title: "Holes";
1728
+ readonly description: "Optional hole features to include in the generated part.";
1729
+ readonly "x-printspec-control": "hole-list";
1730
+ readonly "x-printspec-priority": "advanced";
1731
+ readonly default: readonly [];
1732
+ };
1733
+ readonly slots: {
1734
+ readonly type: "array";
1735
+ readonly items: {
1736
+ readonly $ref: "common.schema.json#/$defs/Slot";
1737
+ };
1738
+ readonly title: "Slots";
1739
+ readonly description: "Optional slot features to include in the generated part.";
1740
+ readonly "x-printspec-control": "slot-list";
1741
+ readonly "x-printspec-priority": "advanced";
1742
+ readonly default: readonly [];
1743
+ };
1744
+ readonly chamfer: {
1745
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
1746
+ readonly title: "Chamfer";
1747
+ readonly description: "Optional chamfer edge finishing request.";
1748
+ readonly "x-printspec-control": "number";
1749
+ readonly "x-printspec-priority": "advanced";
1750
+ };
1751
+ readonly fillet: {
1752
+ readonly $ref: "common.schema.json#/$defs/Fillet";
1753
+ readonly title: "Fillet";
1754
+ readonly description: "Optional fillet edge finishing request.";
1755
+ readonly "x-printspec-control": "number";
1756
+ readonly "x-printspec-priority": "advanced";
1757
+ };
1758
+ readonly cornerRadius: {
1759
+ readonly type: "number";
1760
+ readonly exclusiveMinimum: 0;
1761
+ readonly maximum: 10000;
1762
+ readonly title: "Corner radius";
1763
+ readonly description: "Corner radius in millimeters.";
1764
+ readonly "x-printspec-control": "number";
1765
+ readonly "x-printspec-unit": "mm";
1766
+ readonly "x-printspec-step": 0.1;
1767
+ readonly "x-printspec-priority": "advanced";
1768
+ readonly examples: readonly [4];
1769
+ };
1770
+ };
1771
+ readonly additionalProperties: false;
1772
+ readonly title: "Parameters";
1773
+ readonly description: "Editable parameters for Round Spacer.";
1774
+ readonly "x-printspec-ui": {
1775
+ readonly order: readonly ["outerDiameter", "innerDiameter", "height", "cornerRadius", "holes", "slots", "chamfer", "fillet"];
1776
+ readonly groups: readonly [{
1777
+ readonly id: "dimensions";
1778
+ readonly title: "Dimensions";
1779
+ readonly fields: readonly ["outerDiameter", "innerDiameter", "height", "cornerRadius"];
1780
+ }, {
1781
+ readonly id: "features";
1782
+ readonly title: "Features";
1783
+ readonly fields: readonly ["holes", "slots"];
1784
+ }, {
1785
+ readonly id: "finishing";
1786
+ readonly title: "Finishing";
1787
+ readonly fields: readonly ["chamfer", "fillet"];
1788
+ }];
1789
+ };
1790
+ };
1791
+ readonly hardware: {
1792
+ readonly type: "array";
1793
+ readonly items: {
1794
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1795
+ };
1796
+ };
1797
+ };
1798
+ readonly additionalProperties: false;
1799
+ readonly title: "Round Spacer";
1800
+ readonly description: "Cylindrical spacer or bushing with a central clearance hole.";
1801
+ };
1802
+ readonly "rounded-rectangular-plate.schema.json": {
1803
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1804
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/rounded-rectangular-plate.schema.json";
1805
+ readonly type: "object";
1806
+ readonly required: readonly ["type", "label", "parameters"];
1807
+ readonly properties: {
1808
+ readonly type: {
1809
+ readonly const: "rounded_rectangular_plate";
1810
+ readonly title: "Part type";
1811
+ readonly description: "Stable printspec part family identifier.";
1812
+ };
1813
+ readonly label: {
1814
+ readonly type: "string";
1815
+ readonly minLength: 1;
1816
+ readonly title: "Label";
1817
+ readonly description: "Human-readable name for this part.";
1818
+ };
1819
+ readonly description: {
1820
+ readonly type: "string";
1821
+ readonly title: "Description";
1822
+ readonly description: "Optional human-readable notes for this part.";
1823
+ };
1824
+ readonly parameters: {
1825
+ readonly type: "object";
1826
+ readonly required: readonly ["length", "width", "thickness", "cornerRadius"];
1827
+ readonly properties: {
1828
+ readonly length: {
1829
+ readonly type: "number";
1830
+ readonly exclusiveMinimum: 0;
1831
+ readonly maximum: 10000;
1832
+ readonly title: "Length";
1833
+ readonly description: "Length in millimeters.";
1834
+ readonly "x-printspec-control": "number";
1835
+ readonly "x-printspec-unit": "mm";
1836
+ readonly "x-printspec-step": 0.1;
1837
+ readonly "x-printspec-priority": "primary";
1838
+ readonly examples: readonly [100];
1839
+ };
1840
+ readonly width: {
1841
+ readonly type: "number";
1842
+ readonly exclusiveMinimum: 0;
1843
+ readonly maximum: 10000;
1844
+ readonly title: "Width";
1845
+ readonly description: "Width in millimeters.";
1846
+ readonly "x-printspec-control": "number";
1847
+ readonly "x-printspec-unit": "mm";
1848
+ readonly "x-printspec-step": 0.1;
1849
+ readonly "x-printspec-priority": "primary";
1850
+ readonly examples: readonly [50];
1851
+ };
1852
+ readonly thickness: {
1853
+ readonly type: "number";
1854
+ readonly exclusiveMinimum: 0;
1855
+ readonly maximum: 10000;
1856
+ readonly title: "Thickness";
1857
+ readonly description: "Thickness in millimeters.";
1858
+ readonly "x-printspec-control": "number";
1859
+ readonly "x-printspec-unit": "mm";
1860
+ readonly "x-printspec-step": 0.1;
1861
+ readonly "x-printspec-priority": "primary";
1862
+ readonly examples: readonly [3];
1863
+ };
1864
+ readonly cornerRadius: {
1865
+ readonly type: "number";
1866
+ readonly exclusiveMinimum: 0;
1867
+ readonly maximum: 10000;
1868
+ readonly title: "Corner radius";
1869
+ readonly description: "Corner radius in millimeters.";
1870
+ readonly "x-printspec-control": "number";
1871
+ readonly "x-printspec-unit": "mm";
1872
+ readonly "x-printspec-step": 0.1;
1873
+ readonly "x-printspec-priority": "primary";
1874
+ readonly examples: readonly [4];
1875
+ };
1876
+ readonly holes: {
1877
+ readonly type: "array";
1878
+ readonly items: {
1879
+ readonly $ref: "common.schema.json#/$defs/Hole";
1880
+ };
1881
+ readonly title: "Holes";
1882
+ readonly description: "Optional hole features to include in the generated part.";
1883
+ readonly "x-printspec-control": "hole-list";
1884
+ readonly "x-printspec-priority": "advanced";
1885
+ readonly default: readonly [];
1886
+ };
1887
+ readonly slots: {
1888
+ readonly type: "array";
1889
+ readonly items: {
1890
+ readonly $ref: "common.schema.json#/$defs/Slot";
1891
+ };
1892
+ readonly title: "Slots";
1893
+ readonly description: "Optional slot features to include in the generated part.";
1894
+ readonly "x-printspec-control": "slot-list";
1895
+ readonly "x-printspec-priority": "advanced";
1896
+ readonly default: readonly [];
1897
+ };
1898
+ readonly chamfer: {
1899
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
1900
+ readonly title: "Chamfer";
1901
+ readonly description: "Optional chamfer edge finishing request.";
1902
+ readonly "x-printspec-control": "number";
1903
+ readonly "x-printspec-priority": "advanced";
1904
+ };
1905
+ readonly fillet: {
1906
+ readonly $ref: "common.schema.json#/$defs/Fillet";
1907
+ readonly title: "Fillet";
1908
+ readonly description: "Optional fillet edge finishing request.";
1909
+ readonly "x-printspec-control": "number";
1910
+ readonly "x-printspec-priority": "advanced";
1911
+ };
1912
+ };
1913
+ readonly additionalProperties: false;
1914
+ readonly title: "Parameters";
1915
+ readonly description: "Editable parameters for Rounded Rectangular Plate.";
1916
+ readonly "x-printspec-ui": {
1917
+ readonly order: readonly ["length", "width", "thickness", "cornerRadius", "holes", "slots", "chamfer", "fillet"];
1918
+ readonly groups: readonly [{
1919
+ readonly id: "dimensions";
1920
+ readonly title: "Dimensions";
1921
+ readonly fields: readonly ["length", "width", "thickness", "cornerRadius"];
1922
+ }, {
1923
+ readonly id: "features";
1924
+ readonly title: "Features";
1925
+ readonly fields: readonly ["holes", "slots"];
1926
+ }, {
1927
+ readonly id: "finishing";
1928
+ readonly title: "Finishing";
1929
+ readonly fields: readonly ["chamfer", "fillet"];
1930
+ }];
1931
+ };
1932
+ readonly "x-printspec-warnings": readonly [{
1933
+ readonly condition: "cornerRadius > min(length, width) / 2";
1934
+ readonly message: "Corner radius should be no more than half the smaller side.";
1935
+ }];
1936
+ };
1937
+ readonly hardware: {
1938
+ readonly type: "array";
1939
+ readonly items: {
1940
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
1941
+ };
1942
+ };
1943
+ };
1944
+ readonly additionalProperties: false;
1945
+ readonly title: "Rounded Rectangular Plate";
1946
+ readonly description: "Flat plate with rounded outside corners and optional hole or slot features.";
1947
+ };
1948
+ readonly "simple-box.schema.json": {
1949
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1950
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/simple-box.schema.json";
1951
+ readonly type: "object";
1952
+ readonly required: readonly ["type", "label", "parameters"];
1953
+ readonly properties: {
1954
+ readonly type: {
1955
+ readonly const: "simple_box";
1956
+ readonly title: "Part type";
1957
+ readonly description: "Stable printspec part family identifier.";
1958
+ };
1959
+ readonly label: {
1960
+ readonly type: "string";
1961
+ readonly minLength: 1;
1962
+ readonly title: "Label";
1963
+ readonly description: "Human-readable name for this part.";
1964
+ };
1965
+ readonly description: {
1966
+ readonly type: "string";
1967
+ readonly title: "Description";
1968
+ readonly description: "Optional human-readable notes for this part.";
1969
+ };
1970
+ readonly parameters: {
1971
+ readonly type: "object";
1972
+ readonly required: readonly ["outerLength", "outerWidth", "outerHeight", "wallThickness"];
1973
+ readonly properties: {
1974
+ readonly outerLength: {
1975
+ readonly type: "number";
1976
+ readonly exclusiveMinimum: 0;
1977
+ readonly maximum: 10000;
1978
+ readonly title: "Outer length";
1979
+ readonly description: "Outer length in millimeters.";
1980
+ readonly "x-printspec-control": "number";
1981
+ readonly "x-printspec-unit": "mm";
1982
+ readonly "x-printspec-step": 0.1;
1983
+ readonly "x-printspec-priority": "primary";
1984
+ };
1985
+ readonly outerWidth: {
1986
+ readonly type: "number";
1987
+ readonly exclusiveMinimum: 0;
1988
+ readonly maximum: 10000;
1989
+ readonly title: "Outer width";
1990
+ readonly description: "Outer width in millimeters.";
1991
+ readonly "x-printspec-control": "number";
1992
+ readonly "x-printspec-unit": "mm";
1993
+ readonly "x-printspec-step": 0.1;
1994
+ readonly "x-printspec-priority": "primary";
1995
+ };
1996
+ readonly outerHeight: {
1997
+ readonly type: "number";
1998
+ readonly exclusiveMinimum: 0;
1999
+ readonly maximum: 10000;
2000
+ readonly title: "Outer height";
2001
+ readonly description: "Outer height in millimeters.";
2002
+ readonly "x-printspec-control": "number";
2003
+ readonly "x-printspec-unit": "mm";
2004
+ readonly "x-printspec-step": 0.1;
2005
+ readonly "x-printspec-priority": "primary";
2006
+ };
2007
+ readonly wallThickness: {
2008
+ readonly type: "number";
2009
+ readonly exclusiveMinimum: 0;
2010
+ readonly maximum: 10000;
2011
+ readonly title: "Wall thickness";
2012
+ readonly description: "Wall thickness in millimeters.";
2013
+ readonly "x-printspec-control": "number";
2014
+ readonly "x-printspec-unit": "mm";
2015
+ readonly "x-printspec-step": 0.1;
2016
+ readonly "x-printspec-priority": "primary";
2017
+ readonly examples: readonly [2];
2018
+ };
2019
+ readonly holes: {
2020
+ readonly type: "array";
2021
+ readonly items: {
2022
+ readonly $ref: "common.schema.json#/$defs/Hole";
2023
+ };
2024
+ readonly title: "Holes";
2025
+ readonly description: "Optional hole features to include in the generated part.";
2026
+ readonly "x-printspec-control": "hole-list";
2027
+ readonly "x-printspec-priority": "advanced";
2028
+ readonly default: readonly [];
2029
+ };
2030
+ readonly slots: {
2031
+ readonly type: "array";
2032
+ readonly items: {
2033
+ readonly $ref: "common.schema.json#/$defs/Slot";
2034
+ };
2035
+ readonly title: "Slots";
2036
+ readonly description: "Optional slot features to include in the generated part.";
2037
+ readonly "x-printspec-control": "slot-list";
2038
+ readonly "x-printspec-priority": "advanced";
2039
+ readonly default: readonly [];
2040
+ };
2041
+ readonly chamfer: {
2042
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
2043
+ readonly title: "Chamfer";
2044
+ readonly description: "Optional chamfer edge finishing request.";
2045
+ readonly "x-printspec-control": "number";
2046
+ readonly "x-printspec-priority": "advanced";
2047
+ };
2048
+ readonly fillet: {
2049
+ readonly $ref: "common.schema.json#/$defs/Fillet";
2050
+ readonly title: "Fillet";
2051
+ readonly description: "Optional fillet edge finishing request.";
2052
+ readonly "x-printspec-control": "number";
2053
+ readonly "x-printspec-priority": "advanced";
2054
+ };
2055
+ readonly cornerRadius: {
2056
+ readonly type: "number";
2057
+ readonly exclusiveMinimum: 0;
2058
+ readonly maximum: 10000;
2059
+ readonly title: "Corner radius";
2060
+ readonly description: "Corner radius in millimeters.";
2061
+ readonly "x-printspec-control": "number";
2062
+ readonly "x-printspec-unit": "mm";
2063
+ readonly "x-printspec-step": 0.1;
2064
+ readonly "x-printspec-priority": "advanced";
2065
+ readonly examples: readonly [4];
2066
+ };
2067
+ readonly mountingBosses: {
2068
+ readonly type: "array";
2069
+ readonly items: {
2070
+ readonly type: "object";
2071
+ };
2072
+ readonly title: "Mounting bosses";
2073
+ readonly description: "Mounting bosses parameter.";
2074
+ readonly "x-printspec-control": "array";
2075
+ readonly "x-printspec-priority": "advanced";
2076
+ readonly default: readonly [];
2077
+ };
2078
+ readonly cableCutouts: {
2079
+ readonly type: "array";
2080
+ readonly items: {
2081
+ readonly $ref: "common.schema.json#/$defs/Slot";
2082
+ };
2083
+ readonly title: "Cable cutouts";
2084
+ readonly description: "Cable cutouts parameter.";
2085
+ readonly "x-printspec-control": "array";
2086
+ readonly "x-printspec-priority": "advanced";
2087
+ readonly default: readonly [];
2088
+ };
2089
+ };
2090
+ readonly additionalProperties: false;
2091
+ readonly title: "Parameters";
2092
+ readonly description: "Editable parameters for Simple Box.";
2093
+ readonly "x-printspec-ui": {
2094
+ readonly order: readonly ["outerLength", "outerWidth", "outerHeight", "wallThickness", "cornerRadius", "mountingBosses", "cableCutouts", "holes", "slots", "chamfer", "fillet"];
2095
+ readonly groups: readonly [{
2096
+ readonly id: "dimensions";
2097
+ readonly title: "Dimensions";
2098
+ readonly fields: readonly ["outerLength", "outerWidth", "outerHeight", "wallThickness", "cornerRadius"];
2099
+ }, {
2100
+ readonly id: "features";
2101
+ readonly title: "Features";
2102
+ readonly fields: readonly ["mountingBosses", "cableCutouts", "holes", "slots"];
2103
+ }, {
2104
+ readonly id: "finishing";
2105
+ readonly title: "Finishing";
2106
+ readonly fields: readonly ["chamfer", "fillet"];
2107
+ }];
2108
+ };
2109
+ };
2110
+ readonly hardware: {
2111
+ readonly type: "array";
2112
+ readonly items: {
2113
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
2114
+ };
2115
+ };
2116
+ };
2117
+ readonly additionalProperties: false;
2118
+ readonly title: "Simple Box";
2119
+ readonly description: "Open-top box or enclosure body with walls and optional cutouts.";
2120
+ };
2121
+ readonly "simple-lid.schema.json": {
2122
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2123
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/simple-lid.schema.json";
2124
+ readonly type: "object";
2125
+ readonly required: readonly ["type", "label", "parameters"];
2126
+ readonly properties: {
2127
+ readonly type: {
2128
+ readonly const: "simple_lid";
2129
+ readonly title: "Part type";
2130
+ readonly description: "Stable printspec part family identifier.";
2131
+ };
2132
+ readonly label: {
2133
+ readonly type: "string";
2134
+ readonly minLength: 1;
2135
+ readonly title: "Label";
2136
+ readonly description: "Human-readable name for this part.";
2137
+ };
2138
+ readonly description: {
2139
+ readonly type: "string";
2140
+ readonly title: "Description";
2141
+ readonly description: "Optional human-readable notes for this part.";
2142
+ };
2143
+ readonly parameters: {
2144
+ readonly type: "object";
2145
+ readonly required: readonly ["length", "width", "thickness"];
2146
+ readonly properties: {
2147
+ readonly length: {
2148
+ readonly type: "number";
2149
+ readonly exclusiveMinimum: 0;
2150
+ readonly maximum: 10000;
2151
+ readonly title: "Length";
2152
+ readonly description: "Length in millimeters.";
2153
+ readonly "x-printspec-control": "number";
2154
+ readonly "x-printspec-unit": "mm";
2155
+ readonly "x-printspec-step": 0.1;
2156
+ readonly "x-printspec-priority": "primary";
2157
+ readonly examples: readonly [100];
2158
+ };
2159
+ readonly width: {
2160
+ readonly type: "number";
2161
+ readonly exclusiveMinimum: 0;
2162
+ readonly maximum: 10000;
2163
+ readonly title: "Width";
2164
+ readonly description: "Width in millimeters.";
2165
+ readonly "x-printspec-control": "number";
2166
+ readonly "x-printspec-unit": "mm";
2167
+ readonly "x-printspec-step": 0.1;
2168
+ readonly "x-printspec-priority": "primary";
2169
+ readonly examples: readonly [50];
2170
+ };
2171
+ readonly thickness: {
2172
+ readonly type: "number";
2173
+ readonly exclusiveMinimum: 0;
2174
+ readonly maximum: 10000;
2175
+ readonly title: "Thickness";
2176
+ readonly description: "Thickness in millimeters.";
2177
+ readonly "x-printspec-control": "number";
2178
+ readonly "x-printspec-unit": "mm";
2179
+ readonly "x-printspec-step": 0.1;
2180
+ readonly "x-printspec-priority": "primary";
2181
+ readonly examples: readonly [3];
2182
+ };
2183
+ readonly lipHeight: {
2184
+ readonly type: "number";
2185
+ readonly exclusiveMinimum: 0;
2186
+ readonly maximum: 10000;
2187
+ readonly title: "Lip height";
2188
+ readonly description: "Lip height in millimeters.";
2189
+ readonly "x-printspec-control": "number";
2190
+ readonly "x-printspec-unit": "mm";
2191
+ readonly "x-printspec-step": 0.1;
2192
+ readonly "x-printspec-priority": "advanced";
2193
+ };
2194
+ readonly lipClearance: {
2195
+ readonly type: "number";
2196
+ readonly exclusiveMinimum: 0;
2197
+ readonly maximum: 10000;
2198
+ readonly title: "Lip clearance";
2199
+ readonly description: "Lip clearance in millimeters.";
2200
+ readonly "x-printspec-control": "number";
2201
+ readonly "x-printspec-unit": "mm";
2202
+ readonly "x-printspec-step": 0.1;
2203
+ readonly "x-printspec-priority": "advanced";
2204
+ };
2205
+ readonly holes: {
2206
+ readonly type: "array";
2207
+ readonly items: {
2208
+ readonly $ref: "common.schema.json#/$defs/Hole";
2209
+ };
2210
+ readonly title: "Holes";
2211
+ readonly description: "Optional hole features to include in the generated part.";
2212
+ readonly "x-printspec-control": "hole-list";
2213
+ readonly "x-printspec-priority": "advanced";
2214
+ readonly default: readonly [];
2215
+ };
2216
+ readonly slots: {
2217
+ readonly type: "array";
2218
+ readonly items: {
2219
+ readonly $ref: "common.schema.json#/$defs/Slot";
2220
+ };
2221
+ readonly title: "Slots";
2222
+ readonly description: "Optional slot features to include in the generated part.";
2223
+ readonly "x-printspec-control": "slot-list";
2224
+ readonly "x-printspec-priority": "advanced";
2225
+ readonly default: readonly [];
2226
+ };
2227
+ readonly chamfer: {
2228
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
2229
+ readonly title: "Chamfer";
2230
+ readonly description: "Optional chamfer edge finishing request.";
2231
+ readonly "x-printspec-control": "number";
2232
+ readonly "x-printspec-priority": "advanced";
2233
+ };
2234
+ readonly fillet: {
2235
+ readonly $ref: "common.schema.json#/$defs/Fillet";
2236
+ readonly title: "Fillet";
2237
+ readonly description: "Optional fillet edge finishing request.";
2238
+ readonly "x-printspec-control": "number";
2239
+ readonly "x-printspec-priority": "advanced";
2240
+ };
2241
+ readonly cornerRadius: {
2242
+ readonly type: "number";
2243
+ readonly exclusiveMinimum: 0;
2244
+ readonly maximum: 10000;
2245
+ readonly title: "Corner radius";
2246
+ readonly description: "Corner radius in millimeters.";
2247
+ readonly "x-printspec-control": "number";
2248
+ readonly "x-printspec-unit": "mm";
2249
+ readonly "x-printspec-step": 0.1;
2250
+ readonly "x-printspec-priority": "advanced";
2251
+ readonly examples: readonly [4];
2252
+ };
2253
+ };
2254
+ readonly additionalProperties: false;
2255
+ readonly title: "Parameters";
2256
+ readonly description: "Editable parameters for Simple Lid.";
2257
+ readonly "x-printspec-ui": {
2258
+ readonly order: readonly ["length", "width", "thickness", "lipHeight", "lipClearance", "cornerRadius", "holes", "slots", "chamfer", "fillet"];
2259
+ readonly groups: readonly [{
2260
+ readonly id: "dimensions";
2261
+ readonly title: "Dimensions";
2262
+ readonly fields: readonly ["length", "width", "thickness", "lipHeight", "lipClearance", "cornerRadius"];
2263
+ }, {
2264
+ readonly id: "features";
2265
+ readonly title: "Features";
2266
+ readonly fields: readonly ["holes", "slots"];
2267
+ }, {
2268
+ readonly id: "finishing";
2269
+ readonly title: "Finishing";
2270
+ readonly fields: readonly ["chamfer", "fillet"];
2271
+ }];
2272
+ };
2273
+ };
2274
+ readonly hardware: {
2275
+ readonly type: "array";
2276
+ readonly items: {
2277
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
2278
+ };
2279
+ };
2280
+ };
2281
+ readonly additionalProperties: false;
2282
+ readonly title: "Simple Lid";
2283
+ readonly description: "Flat lid with optional lip, holes, and edge finishing.";
2284
+ };
2285
+ readonly "spacer-block.schema.json": {
2286
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2287
+ readonly $id: "https://schemas.invisra.ai/printspec/0.1.0/spacer-block.schema.json";
2288
+ readonly type: "object";
2289
+ readonly required: readonly ["type", "label", "parameters"];
2290
+ readonly properties: {
2291
+ readonly type: {
2292
+ readonly const: "spacer_block";
2293
+ readonly title: "Part type";
2294
+ readonly description: "Stable printspec part family identifier.";
2295
+ };
2296
+ readonly label: {
2297
+ readonly type: "string";
2298
+ readonly minLength: 1;
2299
+ readonly title: "Label";
2300
+ readonly description: "Human-readable name for this part.";
2301
+ };
2302
+ readonly description: {
2303
+ readonly type: "string";
2304
+ readonly title: "Description";
2305
+ readonly description: "Optional human-readable notes for this part.";
2306
+ };
2307
+ readonly parameters: {
2308
+ readonly type: "object";
2309
+ readonly required: readonly ["length", "width", "height"];
2310
+ readonly properties: {
2311
+ readonly length: {
2312
+ readonly type: "number";
2313
+ readonly exclusiveMinimum: 0;
2314
+ readonly maximum: 10000;
2315
+ readonly title: "Length";
2316
+ readonly description: "Length in millimeters.";
2317
+ readonly "x-printspec-control": "number";
2318
+ readonly "x-printspec-unit": "mm";
2319
+ readonly "x-printspec-step": 0.1;
2320
+ readonly "x-printspec-priority": "primary";
2321
+ readonly examples: readonly [100];
2322
+ };
2323
+ readonly width: {
2324
+ readonly type: "number";
2325
+ readonly exclusiveMinimum: 0;
2326
+ readonly maximum: 10000;
2327
+ readonly title: "Width";
2328
+ readonly description: "Width in millimeters.";
2329
+ readonly "x-printspec-control": "number";
2330
+ readonly "x-printspec-unit": "mm";
2331
+ readonly "x-printspec-step": 0.1;
2332
+ readonly "x-printspec-priority": "primary";
2333
+ readonly examples: readonly [50];
2334
+ };
2335
+ readonly height: {
2336
+ readonly type: "number";
2337
+ readonly exclusiveMinimum: 0;
2338
+ readonly maximum: 10000;
2339
+ readonly title: "Height";
2340
+ readonly description: "Height in millimeters.";
2341
+ readonly "x-printspec-control": "number";
2342
+ readonly "x-printspec-unit": "mm";
2343
+ readonly "x-printspec-step": 0.1;
2344
+ readonly "x-printspec-priority": "primary";
2345
+ readonly examples: readonly [10];
2346
+ };
2347
+ readonly holes: {
2348
+ readonly type: "array";
2349
+ readonly items: {
2350
+ readonly $ref: "common.schema.json#/$defs/Hole";
2351
+ };
2352
+ readonly title: "Holes";
2353
+ readonly description: "Optional hole features to include in the generated part.";
2354
+ readonly "x-printspec-control": "hole-list";
2355
+ readonly "x-printspec-priority": "advanced";
2356
+ readonly default: readonly [];
2357
+ };
2358
+ readonly slots: {
2359
+ readonly type: "array";
2360
+ readonly items: {
2361
+ readonly $ref: "common.schema.json#/$defs/Slot";
2362
+ };
2363
+ readonly title: "Slots";
2364
+ readonly description: "Optional slot features to include in the generated part.";
2365
+ readonly "x-printspec-control": "slot-list";
2366
+ readonly "x-printspec-priority": "advanced";
2367
+ readonly default: readonly [];
2368
+ };
2369
+ readonly chamfer: {
2370
+ readonly $ref: "common.schema.json#/$defs/Chamfer";
2371
+ readonly title: "Chamfer";
2372
+ readonly description: "Optional chamfer edge finishing request.";
2373
+ readonly "x-printspec-control": "number";
2374
+ readonly "x-printspec-priority": "advanced";
2375
+ };
2376
+ readonly fillet: {
2377
+ readonly $ref: "common.schema.json#/$defs/Fillet";
2378
+ readonly title: "Fillet";
2379
+ readonly description: "Optional fillet edge finishing request.";
2380
+ readonly "x-printspec-control": "number";
2381
+ readonly "x-printspec-priority": "advanced";
2382
+ };
2383
+ readonly cornerRadius: {
2384
+ readonly type: "number";
2385
+ readonly exclusiveMinimum: 0;
2386
+ readonly maximum: 10000;
2387
+ readonly title: "Corner radius";
2388
+ readonly description: "Corner radius in millimeters.";
2389
+ readonly "x-printspec-control": "number";
2390
+ readonly "x-printspec-unit": "mm";
2391
+ readonly "x-printspec-step": 0.1;
2392
+ readonly "x-printspec-priority": "advanced";
2393
+ readonly examples: readonly [4];
2394
+ };
2395
+ };
2396
+ readonly additionalProperties: false;
2397
+ readonly title: "Parameters";
2398
+ readonly description: "Editable parameters for Spacer Block.";
2399
+ readonly "x-printspec-ui": {
2400
+ readonly order: readonly ["length", "width", "height", "cornerRadius", "holes", "slots", "chamfer", "fillet"];
2401
+ readonly groups: readonly [{
2402
+ readonly id: "dimensions";
2403
+ readonly title: "Dimensions";
2404
+ readonly fields: readonly ["length", "width", "height", "cornerRadius"];
2405
+ }, {
2406
+ readonly id: "features";
2407
+ readonly title: "Features";
2408
+ readonly fields: readonly ["holes", "slots"];
2409
+ }, {
2410
+ readonly id: "finishing";
2411
+ readonly title: "Finishing";
2412
+ readonly fields: readonly ["chamfer", "fillet"];
2413
+ }];
2414
+ };
2415
+ };
2416
+ readonly hardware: {
2417
+ readonly type: "array";
2418
+ readonly items: {
2419
+ readonly $ref: "common.schema.json#/$defs/HardwareItem";
2420
+ };
2421
+ };
2422
+ };
2423
+ readonly additionalProperties: false;
2424
+ readonly title: "Spacer Block";
2425
+ readonly description: "Rectangular spacer block with optional holes, slots, and edge finishing.";
2426
+ };
2427
+ };
2428
+ export declare const bundledSchemaFiles: readonly ["cable-clip.schema.json", "cable-comb.schema.json", "common.schema.json", "composable-part.schema.json", "drill-guide.schema.json", "electronics-standoff.schema.json", "l-bracket.schema.json", "part-family.schema.json", "printspec.schema.json", "project.schema.json", "round-spacer.schema.json", "rounded-rectangular-plate.schema.json", "simple-box.schema.json", "simple-lid.schema.json", "spacer-block.schema.json"];