altium-toolkit 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +18 -6
  2. package/docs/api.md +78 -16
  3. package/docs/model-format.md +229 -8
  4. package/docs/schemas/altium_toolkit/netlist_a1.schema.json +47 -0
  5. package/docs/schemas/altium_toolkit/normalized_model_a1.schema.json +1661 -104
  6. package/docs/schemas/altium_toolkit/pcb_svg_semantics_a1.schema.json +59 -0
  7. package/docs/schemas/altium_toolkit/project_bundle_a1.schema.json +57 -0
  8. package/docs/schemas/altium_toolkit/schematic_svg_semantics_a1.schema.json +50 -0
  9. package/docs/testing.md +9 -3
  10. package/package.json +1 -1
  11. package/spec/library-scope.md +7 -1
  12. package/src/core/altium/AltiumLayoutParser.mjs +104 -8
  13. package/src/core/altium/AltiumParser.mjs +191 -45
  14. package/src/core/altium/EmbeddedFileInventoryBuilder.mjs +255 -0
  15. package/src/core/altium/IntLibModelParser.mjs +240 -0
  16. package/src/core/altium/IntLibStreamExtractor.mjs +366 -0
  17. package/src/core/altium/LibraryRenderManifestBuilder.mjs +417 -0
  18. package/src/core/altium/LibrarySearchIndex.mjs +215 -0
  19. package/src/core/altium/NormalizedModelSchema.mjs +36 -0
  20. package/src/core/altium/PcbCustomPadShapeParser.mjs +244 -0
  21. package/src/core/altium/PcbDefaultsParser.mjs +171 -0
  22. package/src/core/altium/PcbDimensionParser.mjs +229 -0
  23. package/src/core/altium/PcbEmbeddedModelExtractor.mjs +232 -6
  24. package/src/core/altium/PcbExtendedPrimitiveInformationParser.mjs +256 -0
  25. package/src/core/altium/PcbLibModelParser.mjs +235 -14
  26. package/src/core/altium/PcbLibStreamExtractor.mjs +62 -4
  27. package/src/core/altium/PcbMaskPasteResolver.mjs +354 -0
  28. package/src/core/altium/PcbMechanicalLayerPairParser.mjs +204 -0
  29. package/src/core/altium/PcbModelParser.mjs +466 -28
  30. package/src/core/altium/PcbOwnershipGraphBuilder.mjs +245 -0
  31. package/src/core/altium/PcbPadPrimitiveParser.mjs +78 -65
  32. package/src/core/altium/PcbPadStackParser.mjs +58 -0
  33. package/src/core/altium/PcbPickPlacePositionResolver.mjs +217 -0
  34. package/src/core/altium/PcbPrimitiveParameterParser.mjs +3 -2
  35. package/src/core/altium/PcbRawRecordRegistry.mjs +121 -130
  36. package/src/core/altium/PcbRegionPrimitiveParser.mjs +5 -1
  37. package/src/core/altium/PcbRuleParser.mjs +354 -33
  38. package/src/core/altium/PcbSidecarRecordParser.mjs +177 -0
  39. package/src/core/altium/PcbSpecialStringResolver.mjs +220 -0
  40. package/src/core/altium/PcbStatisticsBuilder.mjs +532 -0
  41. package/src/core/altium/PcbStreamExtractor.mjs +111 -4
  42. package/src/core/altium/PcbTextPrimitiveParser.mjs +60 -0
  43. package/src/core/altium/PcbUnionParser.mjs +307 -0
  44. package/src/core/altium/PcbViaStackParser.mjs +98 -10
  45. package/src/core/altium/PcbViaStructureParser.mjs +335 -0
  46. package/src/core/altium/PrintableTextDecoder.mjs +53 -3
  47. package/src/core/altium/PrjPcbModelParser.mjs +257 -5
  48. package/src/core/altium/ProjectAnnotationParser.mjs +205 -0
  49. package/src/core/altium/ProjectDesignBundleBuilder.mjs +477 -0
  50. package/src/core/altium/ProjectNetlistExporter.mjs +499 -0
  51. package/src/core/altium/ProjectOutJobDigestBuilder.mjs +109 -0
  52. package/src/core/altium/ProjectVariantViewBuilder.mjs +334 -0
  53. package/src/core/altium/SchematicBindingProvenanceParser.mjs +223 -0
  54. package/src/core/altium/SchematicComponentOwnerTextResolver.mjs +312 -0
  55. package/src/core/altium/SchematicComponentTextResolver.mjs +72 -19
  56. package/src/core/altium/SchematicConnectivityQaBuilder.mjs +271 -0
  57. package/src/core/altium/SchematicCrossSheetConnectorParser.mjs +140 -0
  58. package/src/core/altium/SchematicDirectiveParser.mjs +312 -0
  59. package/src/core/altium/SchematicDisplayModeCatalogParser.mjs +231 -0
  60. package/src/core/altium/SchematicHarnessParser.mjs +302 -0
  61. package/src/core/altium/SchematicImageParser.mjs +474 -3
  62. package/src/core/altium/SchematicImplementationParser.mjs +518 -0
  63. package/src/core/altium/SchematicNetlistBuilder.mjs +15 -2
  64. package/src/core/altium/SchematicOwnershipGraphParser.mjs +195 -0
  65. package/src/core/altium/SchematicPinParser.mjs +84 -1
  66. package/src/core/altium/SchematicPrimitiveParser.mjs +301 -0
  67. package/src/core/altium/SchematicProjectParameterResolver.mjs +361 -0
  68. package/src/core/altium/SchematicQaReportBuilder.mjs +284 -0
  69. package/src/core/altium/SchematicRecordTypeRegistry.mjs +137 -0
  70. package/src/core/altium/SchematicRepeatedChannelParser.mjs +229 -0
  71. package/src/core/altium/SchematicStreamExtractor.mjs +10 -1
  72. package/src/core/altium/SchematicTemplateParser.mjs +256 -0
  73. package/src/core/altium/SchematicTextParser.mjs +123 -0
  74. package/src/core/ole/OleCompoundDocument.mjs +20 -0
  75. package/src/parser.mjs +29 -0
  76. package/src/renderers.mjs +3 -0
  77. package/src/styles/altium-renderers.css +25 -0
  78. package/src/ui/PcbBarcodeTextRenderer.mjs +436 -0
  79. package/src/ui/PcbInteractionGeometry.mjs +350 -0
  80. package/src/ui/PcbInteractionIndex.mjs +593 -0
  81. package/src/ui/PcbInteractionItemRegistry.mjs +66 -0
  82. package/src/ui/PcbInteractionLayerModel.mjs +99 -0
  83. package/src/ui/PcbScene3dBoardOutlineRefiner.mjs +74 -9
  84. package/src/ui/PcbScene3dBuilder.mjs +169 -7
  85. package/src/ui/PcbScene3dModelRegistry.mjs +74 -0
  86. package/src/ui/PcbSvgRenderer.mjs +1187 -34
  87. package/src/ui/PcbTextPrimitiveRenderer.mjs +193 -7
  88. package/src/ui/SchematicNoteRenderer.mjs +9 -2
  89. package/src/ui/SchematicOwnerPinLabelLayout.mjs +206 -0
  90. package/src/ui/SchematicShapeRenderer.mjs +362 -0
  91. package/src/ui/SchematicSvgRenderer.mjs +1442 -92
  92. package/src/ui/SchematicTypography.mjs +48 -5
  93. package/src/ui/TextGeometrySidecarBuilder.mjs +147 -0
@@ -19,10 +19,26 @@
19
19
  "const": "urn:altium-toolkit:normalized-model:a1"
20
20
  },
21
21
  "kind": {
22
- "enum": ["schematic", "pcb", "pcb-library", "project"]
22
+ "enum": [
23
+ "schematic",
24
+ "pcb",
25
+ "pcb-library",
26
+ "project",
27
+ "project-annotation",
28
+ "integrated-library",
29
+ "design-bundle"
30
+ ]
23
31
  },
24
32
  "fileType": {
25
- "enum": ["SchDoc", "PcbDoc", "PcbLib", "PrjPcb"]
33
+ "enum": [
34
+ "SchDoc",
35
+ "PcbDoc",
36
+ "PcbLib",
37
+ "PrjPcb",
38
+ "Annotation",
39
+ "IntLib",
40
+ "ProjectDesignBundle"
41
+ ]
26
42
  },
27
43
  "fileName": {
28
44
  "type": "string"
@@ -39,6 +55,9 @@
39
55
  "type": "object",
40
56
  "required": ["severity", "message"],
41
57
  "properties": {
58
+ "code": {
59
+ "type": "string"
60
+ },
42
61
  "severity": {
43
62
  "enum": ["info", "warning"]
44
63
  },
@@ -50,17 +69,124 @@
50
69
  }
51
70
  },
52
71
  "schematic": {
53
- "type": "object"
72
+ "type": "object",
73
+ "properties": {
74
+ "recordTypes": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "#/$defs/schematicRecordType"
78
+ }
79
+ },
80
+ "images": {
81
+ "type": "array",
82
+ "items": {
83
+ "$ref": "#/$defs/schematicImage"
84
+ }
85
+ },
86
+ "roundedRectangles": {
87
+ "type": "array",
88
+ "items": {
89
+ "type": "object",
90
+ "additionalProperties": true
91
+ }
92
+ },
93
+ "ieeeSymbols": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "object",
97
+ "additionalProperties": true
98
+ }
99
+ },
100
+ "renderDiagnostics": {
101
+ "$ref": "#/$defs/schematicRenderDiagnostics"
102
+ },
103
+ "directiveSemantics": {
104
+ "type": "object",
105
+ "properties": {
106
+ "noErc": {
107
+ "type": "array"
108
+ },
109
+ "parameterSets": {
110
+ "type": "array"
111
+ },
112
+ "differentialPairs": {
113
+ "type": "array"
114
+ },
115
+ "compileMasks": {
116
+ "type": "array"
117
+ },
118
+ "blankets": {
119
+ "type": "array"
120
+ }
121
+ },
122
+ "additionalProperties": true
123
+ },
124
+ "ownership": {
125
+ "$ref": "#/$defs/ownershipSidecar"
126
+ }
127
+ },
128
+ "additionalProperties": true
54
129
  },
55
130
  "pcb": {
56
131
  "type": "object",
57
132
  "properties": {
133
+ "vias": {
134
+ "type": "array",
135
+ "items": {
136
+ "$ref": "#/$defs/pcbVia"
137
+ }
138
+ },
139
+ "pads": {
140
+ "type": "array",
141
+ "items": {
142
+ "$ref": "#/$defs/pcbPad"
143
+ }
144
+ },
145
+ "viaStructures": {
146
+ "$ref": "#/$defs/pcbViaStructures"
147
+ },
148
+ "extendedPrimitiveInformation": {
149
+ "$ref": "#/$defs/pcbExtendedPrimitiveInformation"
150
+ },
151
+ "customPadShapes": {
152
+ "$ref": "#/$defs/pcbCustomPadShapes"
153
+ },
154
+ "unions": {
155
+ "$ref": "#/$defs/pcbUnions"
156
+ },
58
157
  "components": {
59
158
  "type": "array",
60
159
  "items": {
61
160
  "$ref": "#/$defs/pcbComponent"
62
161
  }
63
162
  },
163
+ "rules": {
164
+ "type": "array",
165
+ "items": {
166
+ "$ref": "#/$defs/pcbRule"
167
+ }
168
+ },
169
+ "dimensions": {
170
+ "type": "array",
171
+ "items": {
172
+ "$ref": "#/$defs/pcbDimension"
173
+ }
174
+ },
175
+ "differentialPairs": {
176
+ "type": "array",
177
+ "items": {
178
+ "$ref": "#/$defs/pcbDifferentialPair"
179
+ }
180
+ },
181
+ "differentialPairClasses": {
182
+ "type": "array",
183
+ "items": {
184
+ "$ref": "#/$defs/pcbDifferentialPairClass"
185
+ }
186
+ },
187
+ "pickPlace": {
188
+ "$ref": "#/$defs/pickPlaceModel"
189
+ },
64
190
  "embeddedFonts": {
65
191
  "$ref": "#/$defs/embeddedFonts"
66
192
  },
@@ -73,6 +199,17 @@
73
199
  "boardRegionContexts": {
74
200
  "$ref": "#/$defs/boardRegionContexts"
75
201
  },
202
+ "mechanicalLayerPairs": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "object",
206
+ "additionalProperties": true
207
+ }
208
+ },
209
+ "layerFlipMetadata": {
210
+ "type": "object",
211
+ "additionalProperties": true
212
+ },
76
213
  "componentPrimitives": {
77
214
  "type": "array",
78
215
  "items": {
@@ -92,6 +229,12 @@
92
229
  "$ref": "#/$defs/componentPrimitiveGroup"
93
230
  }
94
231
  },
232
+ "ownership": {
233
+ "$ref": "#/$defs/ownershipSidecar"
234
+ },
235
+ "statistics": {
236
+ "$ref": "#/$defs/pcbStatistics"
237
+ },
95
238
  "texts": {
96
239
  "type": "array",
97
240
  "items": {
@@ -107,6 +250,20 @@
107
250
  "embeddedFonts": {
108
251
  "$ref": "#/$defs/embeddedFonts"
109
252
  },
253
+ "embeddedModels": {
254
+ "type": "array",
255
+ "items": {
256
+ "type": "object",
257
+ "additionalProperties": true
258
+ }
259
+ },
260
+ "componentBodies": {
261
+ "type": "array",
262
+ "items": {
263
+ "type": "object",
264
+ "additionalProperties": true
265
+ }
266
+ },
110
267
  "footprints": {
111
268
  "type": "array",
112
269
  "items": {
@@ -118,6 +275,12 @@
118
275
  },
119
276
  "additionalProperties": true
120
277
  }
278
+ },
279
+ "indexes": {
280
+ "$ref": "#/$defs/libraryIndexes"
281
+ },
282
+ "renderManifest": {
283
+ "$ref": "#/$defs/libraryRenderManifest"
121
284
  }
122
285
  },
123
286
  "additionalProperties": true
@@ -125,11 +288,55 @@
125
288
  "project": {
126
289
  "type": "object"
127
290
  },
291
+ "variants": {
292
+ "type": "array",
293
+ "items": {
294
+ "type": "object",
295
+ "additionalProperties": true
296
+ }
297
+ },
298
+ "sheets": {
299
+ "type": "array",
300
+ "items": {
301
+ "$ref": "#/$defs/designBundleSheet"
302
+ }
303
+ },
304
+ "components": {
305
+ "type": "array",
306
+ "items": {
307
+ "$ref": "#/$defs/designBundleComponent"
308
+ }
309
+ },
310
+ "schematic_hierarchy": {
311
+ "$ref": "#/$defs/schematicHierarchy"
312
+ },
313
+ "nets": {
314
+ "type": "array",
315
+ "items": {
316
+ "$ref": "#/$defs/designBundleNet"
317
+ }
318
+ },
319
+ "indexes": {
320
+ "$ref": "#/$defs/designBundleIndexes"
321
+ },
322
+ "effectiveVariant": {
323
+ "$ref": "#/$defs/effectiveVariantView"
324
+ },
325
+ "annotations": {
326
+ "type": "object",
327
+ "additionalProperties": true
328
+ },
329
+ "integratedLibrary": {
330
+ "$ref": "#/$defs/integratedLibrary"
331
+ },
128
332
  "bom": {
129
333
  "type": "array",
130
334
  "items": {
131
335
  "type": "object"
132
336
  }
337
+ },
338
+ "pnp": {
339
+ "$ref": "#/$defs/pickPlaceModel"
133
340
  }
134
341
  },
135
342
  "oneOf": [
@@ -176,88 +383,750 @@
176
383
  "const": "PrjPcb"
177
384
  }
178
385
  }
386
+ },
387
+ {
388
+ "required": ["annotations"],
389
+ "properties": {
390
+ "kind": {
391
+ "const": "project-annotation"
392
+ },
393
+ "fileType": {
394
+ "const": "Annotation"
395
+ }
396
+ }
397
+ },
398
+ {
399
+ "required": ["integratedLibrary"],
400
+ "properties": {
401
+ "kind": {
402
+ "const": "integrated-library"
403
+ },
404
+ "fileType": {
405
+ "const": "IntLib"
406
+ }
407
+ }
408
+ },
409
+ {
410
+ "required": ["project", "sheets", "schematic_hierarchy", "indexes"],
411
+ "properties": {
412
+ "kind": {
413
+ "const": "design-bundle"
414
+ },
415
+ "fileType": {
416
+ "const": "ProjectDesignBundle"
417
+ }
418
+ }
179
419
  }
180
420
  ],
181
421
  "$defs": {
182
- "rawRecords": {
183
- "type": "array",
184
- "items": {
185
- "type": "object",
186
- "required": [
187
- "registryId",
188
- "source",
189
- "sourceStream",
190
- "family",
191
- "type",
192
- "recordIndex",
193
- "offset",
194
- "byteLength",
195
- "encoding",
196
- "supported",
197
- "parsed",
198
- "rawBase64"
199
- ],
200
- "properties": {
201
- "registryId": {
202
- "type": "string"
203
- },
204
- "source": {
205
- "enum": ["pcbdoc", "pcblib"]
206
- },
207
- "sourceStorage": {
208
- "type": "string"
209
- },
210
- "sourceStream": {
211
- "type": "string"
212
- },
213
- "headerStream": {
214
- "type": "string"
215
- },
216
- "family": {
217
- "type": "string"
218
- },
219
- "type": {
220
- "type": "string"
221
- },
222
- "typeId": {
223
- "type": ["number", "null"]
224
- },
225
- "recordIndex": {
226
- "type": "number"
227
- },
228
- "offset": {
229
- "type": "number"
230
- },
231
- "byteLength": {
232
- "type": "number"
233
- },
234
- "payloadByteLength": {
235
- "type": ["number", "null"]
236
- },
237
- "encoding": {
238
- "type": "string"
239
- },
240
- "supported": {
241
- "type": "boolean"
242
- },
243
- "parsed": {
244
- "type": "boolean"
245
- },
246
- "rawBase64": {
247
- "type": "string"
248
- }
422
+ "schematicRecordType": {
423
+ "type": "object",
424
+ "required": ["recordType", "name", "family", "supported", "count"],
425
+ "properties": {
426
+ "recordType": {
427
+ "type": "number"
249
428
  },
250
- "additionalProperties": true
251
- }
429
+ "name": {
430
+ "type": "string"
431
+ },
432
+ "family": {
433
+ "type": "string"
434
+ },
435
+ "supported": {
436
+ "type": "boolean"
437
+ },
438
+ "count": {
439
+ "type": "number"
440
+ }
441
+ },
442
+ "additionalProperties": true
252
443
  },
253
- "pcbComponent": {
444
+ "ownershipSidecar": {
445
+ "type": "object",
446
+ "required": ["schema"],
447
+ "properties": {
448
+ "schema": {
449
+ "type": "string"
450
+ }
451
+ },
452
+ "additionalProperties": true
453
+ },
454
+ "schematicRenderDiagnostics": {
455
+ "type": "object",
456
+ "required": ["schema", "fontFallbacks"],
457
+ "properties": {
458
+ "schema": {
459
+ "const": "altium-toolkit.schematic.render-diagnostics.a1"
460
+ },
461
+ "fontFallbacks": {
462
+ "type": "array",
463
+ "items": {
464
+ "type": "object",
465
+ "required": [
466
+ "code",
467
+ "severity",
468
+ "fontId",
469
+ "sourceFamily",
470
+ "resolvedFamily",
471
+ "message"
472
+ ],
473
+ "properties": {
474
+ "code": {
475
+ "const": "schematic.font.family-fallback"
476
+ },
477
+ "severity": {
478
+ "enum": ["warning"]
479
+ },
480
+ "fontId": {
481
+ "type": "string"
482
+ },
483
+ "sourceFamily": {
484
+ "type": "string"
485
+ },
486
+ "resolvedFamily": {
487
+ "type": "string"
488
+ },
489
+ "message": {
490
+ "type": "string"
491
+ }
492
+ },
493
+ "additionalProperties": true
494
+ }
495
+ }
496
+ },
497
+ "additionalProperties": true
498
+ },
499
+ "schematicImage": {
254
500
  "type": "object",
255
501
  "required": [
256
- "componentIndex",
257
- "designator",
258
502
  "x",
259
503
  "y",
260
- "layer",
504
+ "cornerX",
505
+ "cornerY",
506
+ "fileName",
507
+ "embedded",
508
+ "keepAspect",
509
+ "mimeType",
510
+ "dataBase64",
511
+ "renderOrder",
512
+ "diagnosticState"
513
+ ],
514
+ "properties": {
515
+ "x": {
516
+ "type": "number"
517
+ },
518
+ "y": {
519
+ "type": "number"
520
+ },
521
+ "cornerX": {
522
+ "type": "number"
523
+ },
524
+ "cornerY": {
525
+ "type": "number"
526
+ },
527
+ "fileName": {
528
+ "type": "string"
529
+ },
530
+ "embedded": {
531
+ "type": "boolean"
532
+ },
533
+ "keepAspect": {
534
+ "type": "boolean"
535
+ },
536
+ "mimeType": {
537
+ "type": "string"
538
+ },
539
+ "sourceMimeType": {
540
+ "type": "string"
541
+ },
542
+ "nativeClass": {
543
+ "type": "string"
544
+ },
545
+ "hasAlpha": {
546
+ "type": "boolean"
547
+ },
548
+ "dataBase64": {
549
+ "type": "string"
550
+ },
551
+ "renderOrder": {
552
+ "type": "number"
553
+ },
554
+ "diagnosticState": {
555
+ "type": "string"
556
+ }
557
+ },
558
+ "additionalProperties": true
559
+ },
560
+ "holeTolerance": {
561
+ "type": "object",
562
+ "properties": {
563
+ "positive": {
564
+ "type": "number"
565
+ },
566
+ "negative": {
567
+ "type": "number"
568
+ }
569
+ },
570
+ "additionalProperties": false
571
+ },
572
+ "pcbVia": {
573
+ "type": "object",
574
+ "properties": {
575
+ "positiveTolerance": {
576
+ "type": "number"
577
+ },
578
+ "negativeTolerance": {
579
+ "type": "number"
580
+ },
581
+ "holeTolerance": {
582
+ "$ref": "#/$defs/holeTolerance"
583
+ },
584
+ "propagationDelayPs": {
585
+ "type": "number"
586
+ },
587
+ "viaStructureIndex": {
588
+ "type": "number"
589
+ },
590
+ "ipc4761Type": {
591
+ "type": ["number", "string"]
592
+ },
593
+ "viaProtection": {
594
+ "$ref": "#/$defs/pcbViaProtection"
595
+ },
596
+ "drill": {
597
+ "$ref": "#/$defs/drillMetadata"
598
+ }
599
+ },
600
+ "additionalProperties": true
601
+ },
602
+ "pcbPad": {
603
+ "type": "object",
604
+ "properties": {
605
+ "positiveTolerance": {
606
+ "type": "number"
607
+ },
608
+ "negativeTolerance": {
609
+ "type": "number"
610
+ },
611
+ "holeTolerance": {
612
+ "$ref": "#/$defs/holeTolerance"
613
+ },
614
+ "customShape": {
615
+ "type": "object",
616
+ "additionalProperties": true
617
+ },
618
+ "extendedPrimitiveInformation": {
619
+ "$ref": "#/$defs/pcbExtendedPrimitiveInformationEntry"
620
+ }
621
+ },
622
+ "additionalProperties": true
623
+ },
624
+ "drillMetadata": {
625
+ "type": "object",
626
+ "properties": {
627
+ "holeKind": {
628
+ "enum": ["pad", "via"]
629
+ },
630
+ "plating": {
631
+ "enum": ["plated", "non-plated"]
632
+ },
633
+ "renderState": {
634
+ "enum": ["open", "covered", "filled", "capped"]
635
+ },
636
+ "ipc4761Type": {
637
+ "type": ["number", "string"]
638
+ }
639
+ },
640
+ "additionalProperties": true
641
+ },
642
+ "pcbDimension": {
643
+ "type": "object",
644
+ "required": [
645
+ "dimensionIndex",
646
+ "kind",
647
+ "kindCode",
648
+ "references",
649
+ "raw"
650
+ ],
651
+ "properties": {
652
+ "dimensionIndex": {
653
+ "type": "number"
654
+ },
655
+ "kind": {
656
+ "enum": [
657
+ "linear",
658
+ "angular",
659
+ "radial",
660
+ "datum",
661
+ "baseline",
662
+ "ordinate"
663
+ ]
664
+ },
665
+ "kindCode": {
666
+ "type": "string"
667
+ },
668
+ "name": {
669
+ "type": "string"
670
+ },
671
+ "layer": {
672
+ "type": "string"
673
+ },
674
+ "text": {
675
+ "type": "string"
676
+ },
677
+ "prefix": {
678
+ "type": "string"
679
+ },
680
+ "suffix": {
681
+ "type": "string"
682
+ },
683
+ "precision": {
684
+ "type": ["number", "null"]
685
+ },
686
+ "measuredValue": {
687
+ "type": ["number", "null"]
688
+ },
689
+ "angleValue": {
690
+ "type": ["number", "null"]
691
+ },
692
+ "unit": {
693
+ "type": "string"
694
+ },
695
+ "references": {
696
+ "type": "array",
697
+ "items": {
698
+ "$ref": "#/$defs/indexedPoint"
699
+ }
700
+ },
701
+ "textLocation": {
702
+ "anyOf": [
703
+ {
704
+ "$ref": "#/$defs/point"
705
+ },
706
+ {
707
+ "type": "null"
708
+ }
709
+ ]
710
+ },
711
+ "raw": {
712
+ "type": "object",
713
+ "additionalProperties": true
714
+ }
715
+ },
716
+ "additionalProperties": true
717
+ },
718
+ "point": {
719
+ "type": "object",
720
+ "required": ["x", "y"],
721
+ "properties": {
722
+ "x": {
723
+ "type": "number"
724
+ },
725
+ "y": {
726
+ "type": "number"
727
+ }
728
+ },
729
+ "additionalProperties": true
730
+ },
731
+ "indexedPoint": {
732
+ "allOf": [
733
+ {
734
+ "$ref": "#/$defs/point"
735
+ },
736
+ {
737
+ "type": "object",
738
+ "required": ["index"],
739
+ "properties": {
740
+ "index": {
741
+ "type": "number"
742
+ }
743
+ },
744
+ "additionalProperties": true
745
+ }
746
+ ]
747
+ },
748
+ "pcbExtendedPrimitiveInformation": {
749
+ "type": "object",
750
+ "required": ["entries", "byPrimitiveIndex", "byPrimitiveKey"],
751
+ "properties": {
752
+ "entries": {
753
+ "type": "array",
754
+ "items": {
755
+ "$ref": "#/$defs/pcbExtendedPrimitiveInformationEntry"
756
+ }
757
+ },
758
+ "byPrimitiveIndex": {
759
+ "type": "object",
760
+ "additionalProperties": {
761
+ "$ref": "#/$defs/pcbExtendedPrimitiveInformationEntry"
762
+ }
763
+ },
764
+ "byPrimitiveKey": {
765
+ "type": "object",
766
+ "additionalProperties": {
767
+ "$ref": "#/$defs/pcbExtendedPrimitiveInformationEntry"
768
+ }
769
+ }
770
+ },
771
+ "additionalProperties": true
772
+ },
773
+ "pcbExtendedPrimitiveInformationEntry": {
774
+ "type": "object",
775
+ "required": [
776
+ "primitiveIndex",
777
+ "primitiveObjectId",
778
+ "sourceStream",
779
+ "maskExpansion"
780
+ ],
781
+ "properties": {
782
+ "primitiveIndex": {
783
+ "type": "number"
784
+ },
785
+ "primitiveObjectId": {
786
+ "type": ["number", "null"]
787
+ },
788
+ "primitiveType": {
789
+ "type": "string"
790
+ },
791
+ "type": {
792
+ "type": "string"
793
+ },
794
+ "sourceStream": {
795
+ "const": "ExtendedPrimitiveInformation/Data"
796
+ },
797
+ "maskExpansion": {
798
+ "type": "object",
799
+ "properties": {
800
+ "paste": {
801
+ "$ref": "#/$defs/pcbMaskExpansionSidecar"
802
+ },
803
+ "solder": {
804
+ "$ref": "#/$defs/pcbMaskExpansionSidecar"
805
+ }
806
+ },
807
+ "additionalProperties": true
808
+ }
809
+ },
810
+ "additionalProperties": true
811
+ },
812
+ "pcbMaskExpansionSidecar": {
813
+ "type": "object",
814
+ "properties": {
815
+ "mode": {
816
+ "type": ["number", "null"]
817
+ },
818
+ "source": {
819
+ "type": "string"
820
+ },
821
+ "manualExpansion": {
822
+ "type": ["number", "null"]
823
+ }
824
+ },
825
+ "additionalProperties": true
826
+ },
827
+ "pcbCustomPadShapes": {
828
+ "type": "object",
829
+ "required": ["entries", "byPrimitiveIndex"],
830
+ "properties": {
831
+ "entries": {
832
+ "type": "array",
833
+ "items": {
834
+ "type": "object",
835
+ "additionalProperties": true
836
+ }
837
+ },
838
+ "byPrimitiveIndex": {
839
+ "type": "object",
840
+ "additionalProperties": {
841
+ "type": "array"
842
+ }
843
+ }
844
+ },
845
+ "additionalProperties": true
846
+ },
847
+ "pcbUnions": {
848
+ "type": "object",
849
+ "required": [
850
+ "userUnions",
851
+ "smartUnions",
852
+ "byIndex",
853
+ "smartByIndex",
854
+ "membersByPrimitiveKey"
855
+ ],
856
+ "properties": {
857
+ "userUnions": {
858
+ "type": "array",
859
+ "items": {
860
+ "$ref": "#/$defs/pcbUserUnion"
861
+ }
862
+ },
863
+ "smartUnions": {
864
+ "type": "array",
865
+ "items": {
866
+ "$ref": "#/$defs/pcbSmartUnion"
867
+ }
868
+ },
869
+ "byIndex": {
870
+ "type": "object"
871
+ },
872
+ "smartByIndex": {
873
+ "type": "object"
874
+ },
875
+ "membersByPrimitiveKey": {
876
+ "type": "object"
877
+ }
878
+ },
879
+ "additionalProperties": true
880
+ },
881
+ "pcbUserUnion": {
882
+ "type": "object",
883
+ "required": ["index", "name", "sourceStream"],
884
+ "properties": {
885
+ "index": {
886
+ "type": "number"
887
+ },
888
+ "name": {
889
+ "type": "string"
890
+ },
891
+ "sourceStream": {
892
+ "const": "UnionNames/Data"
893
+ }
894
+ },
895
+ "additionalProperties": true
896
+ },
897
+ "pcbSmartUnion": {
898
+ "type": "object",
899
+ "required": [
900
+ "index",
901
+ "name",
902
+ "type",
903
+ "typeName",
904
+ "sourceStream",
905
+ "members"
906
+ ],
907
+ "properties": {
908
+ "index": {
909
+ "type": "number"
910
+ },
911
+ "name": {
912
+ "type": "string"
913
+ },
914
+ "type": {
915
+ "type": ["number", "string"]
916
+ },
917
+ "typeName": {
918
+ "type": "string"
919
+ },
920
+ "sourceStream": {
921
+ "const": "SmartUnions/Data"
922
+ },
923
+ "members": {
924
+ "type": "array",
925
+ "items": {
926
+ "$ref": "#/$defs/pcbSmartUnionMember"
927
+ }
928
+ }
929
+ },
930
+ "additionalProperties": true
931
+ },
932
+ "pcbSmartUnionMember": {
933
+ "type": "object",
934
+ "required": ["primitiveObjectId", "primitiveIndex"],
935
+ "properties": {
936
+ "primitiveObjectId": {
937
+ "type": "number"
938
+ },
939
+ "primitiveIndex": {
940
+ "type": "number"
941
+ }
942
+ },
943
+ "additionalProperties": true
944
+ },
945
+ "pcbViaStructures": {
946
+ "type": "object",
947
+ "required": ["structures", "links", "byPrimitiveIndex"],
948
+ "properties": {
949
+ "structures": {
950
+ "type": "array",
951
+ "items": {
952
+ "$ref": "#/$defs/pcbViaStructure"
953
+ }
954
+ },
955
+ "links": {
956
+ "type": "array",
957
+ "items": {
958
+ "$ref": "#/$defs/pcbViaStructureLink"
959
+ }
960
+ },
961
+ "byPrimitiveIndex": {
962
+ "type": "object",
963
+ "additionalProperties": {
964
+ "$ref": "#/$defs/pcbViaProtection"
965
+ }
966
+ }
967
+ },
968
+ "additionalProperties": true
969
+ },
970
+ "pcbViaStructure": {
971
+ "type": "object",
972
+ "required": ["index", "sourceStream", "features"],
973
+ "properties": {
974
+ "index": {
975
+ "type": "number"
976
+ },
977
+ "ipc4761Type": {
978
+ "type": ["number", "string"]
979
+ },
980
+ "structureType": {
981
+ "type": ["number", "string"]
982
+ },
983
+ "sourceStream": {
984
+ "type": "string"
985
+ },
986
+ "features": {
987
+ "type": "array",
988
+ "items": {
989
+ "$ref": "#/$defs/pcbViaProtectionFeature"
990
+ }
991
+ }
992
+ },
993
+ "additionalProperties": true
994
+ },
995
+ "pcbViaStructureLink": {
996
+ "type": "object",
997
+ "required": ["primitiveIndex", "viaStructureIndex", "sourceStream"],
998
+ "properties": {
999
+ "primitiveIndex": {
1000
+ "type": "number"
1001
+ },
1002
+ "viaStructureIndex": {
1003
+ "type": "number"
1004
+ },
1005
+ "sourceStream": {
1006
+ "type": "string"
1007
+ }
1008
+ },
1009
+ "additionalProperties": true
1010
+ },
1011
+ "pcbViaProtection": {
1012
+ "type": "object",
1013
+ "properties": {
1014
+ "viaStructureIndex": {
1015
+ "type": "number"
1016
+ },
1017
+ "ipc4761Type": {
1018
+ "type": ["number", "string"]
1019
+ },
1020
+ "structureType": {
1021
+ "type": ["number", "string"]
1022
+ },
1023
+ "features": {
1024
+ "type": "array",
1025
+ "items": {
1026
+ "$ref": "#/$defs/pcbViaProtectionFeature"
1027
+ }
1028
+ }
1029
+ },
1030
+ "additionalProperties": true
1031
+ },
1032
+ "pcbViaProtectionFeature": {
1033
+ "type": "object",
1034
+ "required": ["index", "type", "side", "material"],
1035
+ "properties": {
1036
+ "index": {
1037
+ "type": "number"
1038
+ },
1039
+ "type": {
1040
+ "type": "string"
1041
+ },
1042
+ "side": {
1043
+ "type": "string"
1044
+ },
1045
+ "material": {
1046
+ "type": "string"
1047
+ }
1048
+ },
1049
+ "additionalProperties": true
1050
+ },
1051
+ "rawRecords": {
1052
+ "type": "array",
1053
+ "items": {
1054
+ "type": "object",
1055
+ "required": [
1056
+ "registryId",
1057
+ "source",
1058
+ "sourceStream",
1059
+ "family",
1060
+ "type",
1061
+ "recordIndex",
1062
+ "offset",
1063
+ "byteLength",
1064
+ "encoding",
1065
+ "supported",
1066
+ "parsed",
1067
+ "rawBase64"
1068
+ ],
1069
+ "properties": {
1070
+ "registryId": {
1071
+ "type": "string"
1072
+ },
1073
+ "source": {
1074
+ "enum": ["pcbdoc", "pcblib"]
1075
+ },
1076
+ "sourceStorage": {
1077
+ "type": "string"
1078
+ },
1079
+ "sourceStream": {
1080
+ "type": "string"
1081
+ },
1082
+ "headerStream": {
1083
+ "type": "string"
1084
+ },
1085
+ "family": {
1086
+ "type": "string"
1087
+ },
1088
+ "type": {
1089
+ "type": "string"
1090
+ },
1091
+ "typeId": {
1092
+ "type": ["number", "null"]
1093
+ },
1094
+ "recordIndex": {
1095
+ "type": "number"
1096
+ },
1097
+ "offset": {
1098
+ "type": "number"
1099
+ },
1100
+ "byteLength": {
1101
+ "type": "number"
1102
+ },
1103
+ "payloadByteLength": {
1104
+ "type": ["number", "null"]
1105
+ },
1106
+ "encoding": {
1107
+ "type": "string"
1108
+ },
1109
+ "supported": {
1110
+ "type": "boolean"
1111
+ },
1112
+ "parsed": {
1113
+ "type": "boolean"
1114
+ },
1115
+ "rawBase64": {
1116
+ "type": "string"
1117
+ }
1118
+ },
1119
+ "additionalProperties": true
1120
+ }
1121
+ },
1122
+ "pcbComponent": {
1123
+ "type": "object",
1124
+ "required": [
1125
+ "componentIndex",
1126
+ "designator",
1127
+ "x",
1128
+ "y",
1129
+ "layer",
261
1130
  "pattern",
262
1131
  "rotation",
263
1132
  "source",
@@ -271,26 +1140,372 @@
271
1140
  "designator": {
272
1141
  "type": "string"
273
1142
  },
274
- "baseDesignator": {
275
- "type": "string"
276
- },
277
- "displayDesignator": {
1143
+ "baseDesignator": {
1144
+ "type": "string"
1145
+ },
1146
+ "displayDesignator": {
1147
+ "type": "string"
1148
+ },
1149
+ "designatorSource": {
1150
+ "const": "Texts6/Data"
1151
+ },
1152
+ "uniqueId": {
1153
+ "type": "string"
1154
+ },
1155
+ "parameters": {
1156
+ "type": "object",
1157
+ "additionalProperties": {
1158
+ "type": "string"
1159
+ }
1160
+ },
1161
+ "parameterSource": {
1162
+ "const": "PrimitiveParameters/Data"
1163
+ },
1164
+ "x": {
1165
+ "type": "number"
1166
+ },
1167
+ "y": {
1168
+ "type": "number"
1169
+ },
1170
+ "layer": {
1171
+ "type": "string"
1172
+ },
1173
+ "pattern": {
1174
+ "type": "string"
1175
+ },
1176
+ "rotation": {
1177
+ "type": "number"
1178
+ },
1179
+ "source": {
1180
+ "type": "string"
1181
+ },
1182
+ "description": {
1183
+ "type": "string"
1184
+ },
1185
+ "height": {
1186
+ "type": ["number", "null"]
1187
+ },
1188
+ "provenance": {
1189
+ "$ref": "#/$defs/pcbComponentProvenance"
1190
+ }
1191
+ },
1192
+ "additionalProperties": true
1193
+ },
1194
+ "pcbComponentProvenance": {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "channelOffset": {
1198
+ "type": "number"
1199
+ },
1200
+ "sourceDesignator": {
1201
+ "type": "string"
1202
+ },
1203
+ "sourceUniqueId": {
1204
+ "type": "string"
1205
+ },
1206
+ "sourceUniqueIdSegments": {
1207
+ "type": "array",
1208
+ "items": {
1209
+ "type": "string"
1210
+ }
1211
+ },
1212
+ "sourceHierarchicalPath": {
1213
+ "type": "string"
1214
+ },
1215
+ "sourceHierarchySegments": {
1216
+ "type": "array",
1217
+ "items": {
1218
+ "type": "string"
1219
+ }
1220
+ },
1221
+ "sourceFootprintLibrary": {
1222
+ "type": "string"
1223
+ },
1224
+ "sourceFootprintLibraryName": {
1225
+ "type": "string"
1226
+ },
1227
+ "sourceLibReference": {
1228
+ "type": "string"
1229
+ },
1230
+ "sourceComponentLibrary": {
1231
+ "type": "string"
1232
+ },
1233
+ "sourceComponentLibraryIdentifierKind": {
1234
+ "type": "number"
1235
+ },
1236
+ "sourceComponentLibraryIdentifier": {
1237
+ "type": "string"
1238
+ },
1239
+ "footprintDescription": {
1240
+ "type": "string"
1241
+ },
1242
+ "nameAutoPosition": {
1243
+ "type": "number"
1244
+ },
1245
+ "commentAutoPosition": {
1246
+ "type": "number"
1247
+ },
1248
+ "lockStrings": {
1249
+ "type": "boolean"
1250
+ },
1251
+ "enablePinSwapping": {
1252
+ "type": "boolean"
1253
+ },
1254
+ "enablePartSwapping": {
1255
+ "type": "boolean"
1256
+ }
1257
+ },
1258
+ "additionalProperties": true
1259
+ },
1260
+ "pcbRule": {
1261
+ "type": "object",
1262
+ "required": [
1263
+ "ruleIndex",
1264
+ "name",
1265
+ "ruleKind",
1266
+ "ruleType",
1267
+ "constraints",
1268
+ "constraintValues",
1269
+ "typedConstraints"
1270
+ ],
1271
+ "properties": {
1272
+ "ruleIndex": {
1273
+ "type": "number"
1274
+ },
1275
+ "name": {
1276
+ "type": "string"
1277
+ },
1278
+ "ruleKind": {
1279
+ "type": "string"
1280
+ },
1281
+ "enabled": {
1282
+ "type": ["boolean", "null"]
1283
+ },
1284
+ "priority": {
1285
+ "type": ["number", "null"]
1286
+ },
1287
+ "uniqueId": {
1288
+ "type": "string"
1289
+ },
1290
+ "scope1": {
1291
+ "$ref": "#/$defs/pcbRuleScope"
1292
+ },
1293
+ "scope2": {
1294
+ "$ref": "#/$defs/pcbRuleScope"
1295
+ },
1296
+ "ruleType": {
1297
+ "$ref": "#/$defs/pcbRuleType"
1298
+ },
1299
+ "constraints": {
1300
+ "type": "object",
1301
+ "additionalProperties": {
1302
+ "type": "string"
1303
+ }
1304
+ },
1305
+ "constraintValues": {
1306
+ "type": "object",
1307
+ "additionalProperties": {
1308
+ "type": "object",
1309
+ "additionalProperties": true
1310
+ }
1311
+ },
1312
+ "typedConstraints": {
1313
+ "type": "object",
1314
+ "additionalProperties": {
1315
+ "type": "object",
1316
+ "additionalProperties": true
1317
+ }
1318
+ }
1319
+ },
1320
+ "additionalProperties": true
1321
+ },
1322
+ "pcbRuleScope": {
1323
+ "type": "object",
1324
+ "required": ["rawExpression", "predicate", "arguments", "isAll"],
1325
+ "properties": {
1326
+ "rawExpression": {
1327
+ "type": "string"
1328
+ },
1329
+ "predicate": {
1330
+ "type": "string"
1331
+ },
1332
+ "arguments": {
1333
+ "type": "array",
1334
+ "items": {
1335
+ "type": "string"
1336
+ }
1337
+ },
1338
+ "isAll": {
1339
+ "type": "boolean"
1340
+ }
1341
+ },
1342
+ "additionalProperties": true
1343
+ },
1344
+ "pcbRuleType": {
1345
+ "type": "object",
1346
+ "required": ["rawKind", "kind", "category", "displayName"],
1347
+ "properties": {
1348
+ "rawKind": {
1349
+ "type": "string"
1350
+ },
1351
+ "kind": {
1352
+ "type": "string"
1353
+ },
1354
+ "category": {
1355
+ "type": "string"
1356
+ },
1357
+ "displayName": {
1358
+ "type": "string"
1359
+ }
1360
+ },
1361
+ "additionalProperties": true
1362
+ },
1363
+ "pcbDifferentialPair": {
1364
+ "type": "object",
1365
+ "required": [
1366
+ "pairIndex",
1367
+ "name",
1368
+ "positiveNetName",
1369
+ "negativeNetName",
1370
+ "netNames",
1371
+ "gatherControl",
1372
+ "classNames"
1373
+ ],
1374
+ "properties": {
1375
+ "pairIndex": {
1376
+ "type": "number"
1377
+ },
1378
+ "name": {
1379
+ "type": "string"
1380
+ },
1381
+ "positiveNetName": {
1382
+ "type": "string"
1383
+ },
1384
+ "negativeNetName": {
1385
+ "type": "string"
1386
+ },
1387
+ "netNames": {
1388
+ "type": "array",
1389
+ "items": {
1390
+ "type": "string"
1391
+ }
1392
+ },
1393
+ "gatherControl": {
1394
+ "type": "boolean"
1395
+ },
1396
+ "uniqueId": {
1397
+ "type": "string"
1398
+ },
1399
+ "classNames": {
1400
+ "type": "array",
1401
+ "items": {
1402
+ "type": "string"
1403
+ }
1404
+ }
1405
+ },
1406
+ "additionalProperties": true
1407
+ },
1408
+ "pcbDifferentialPairClass": {
1409
+ "type": "object",
1410
+ "required": [
1411
+ "classIndex",
1412
+ "name",
1413
+ "members",
1414
+ "pairNames",
1415
+ "unresolvedMembers"
1416
+ ],
1417
+ "properties": {
1418
+ "classIndex": {
1419
+ "type": "number"
1420
+ },
1421
+ "name": {
1422
+ "type": "string"
1423
+ },
1424
+ "members": {
1425
+ "type": "array",
1426
+ "items": {
1427
+ "type": "string"
1428
+ }
1429
+ },
1430
+ "pairNames": {
1431
+ "type": "array",
1432
+ "items": {
1433
+ "type": "string"
1434
+ }
1435
+ },
1436
+ "unresolvedMembers": {
1437
+ "type": "array",
1438
+ "items": {
1439
+ "type": "string"
1440
+ }
1441
+ }
1442
+ },
1443
+ "additionalProperties": true
1444
+ },
1445
+ "pickPlaceModel": {
1446
+ "type": "object",
1447
+ "required": ["positionMode", "entries", "modes"],
1448
+ "properties": {
1449
+ "positionMode": {
1450
+ "enum": ["altium-pick-place", "component-origin"]
1451
+ },
1452
+ "entries": {
1453
+ "type": "array",
1454
+ "items": {
1455
+ "$ref": "#/$defs/pickPlaceEntry"
1456
+ }
1457
+ },
1458
+ "modes": {
1459
+ "type": "object",
1460
+ "properties": {
1461
+ "componentOrigin": {
1462
+ "type": "object",
1463
+ "required": ["positionMode", "entries"],
1464
+ "properties": {
1465
+ "positionMode": {
1466
+ "const": "component-origin"
1467
+ },
1468
+ "entries": {
1469
+ "type": "array",
1470
+ "items": {
1471
+ "$ref": "#/$defs/pickPlaceEntry"
1472
+ }
1473
+ }
1474
+ },
1475
+ "additionalProperties": true
1476
+ }
1477
+ },
1478
+ "additionalProperties": true
1479
+ }
1480
+ },
1481
+ "additionalProperties": true
1482
+ },
1483
+ "pickPlaceEntry": {
1484
+ "type": "object",
1485
+ "required": [
1486
+ "designator",
1487
+ "pattern",
1488
+ "layer",
1489
+ "rotation",
1490
+ "x",
1491
+ "y",
1492
+ "componentOriginX",
1493
+ "componentOriginY",
1494
+ "padAnchorCount",
1495
+ "positionSource"
1496
+ ],
1497
+ "properties": {
1498
+ "designator": {
1499
+ "type": "string"
1500
+ },
1501
+ "pattern": {
278
1502
  "type": "string"
279
1503
  },
280
- "designatorSource": {
281
- "const": "Texts6/Data"
282
- },
283
- "uniqueId": {
1504
+ "layer": {
284
1505
  "type": "string"
285
1506
  },
286
- "parameters": {
287
- "type": "object",
288
- "additionalProperties": {
289
- "type": "string"
290
- }
291
- },
292
- "parameterSource": {
293
- "const": "PrimitiveParameters/Data"
1507
+ "rotation": {
1508
+ "type": "number"
294
1509
  },
295
1510
  "x": {
296
1511
  "type": "number"
@@ -298,23 +1513,17 @@
298
1513
  "y": {
299
1514
  "type": "number"
300
1515
  },
301
- "layer": {
302
- "type": "string"
303
- },
304
- "pattern": {
305
- "type": "string"
1516
+ "componentOriginX": {
1517
+ "type": "number"
306
1518
  },
307
- "rotation": {
1519
+ "componentOriginY": {
308
1520
  "type": "number"
309
1521
  },
310
- "source": {
311
- "type": "string"
1522
+ "padAnchorCount": {
1523
+ "type": "number"
312
1524
  },
313
- "description": {
1525
+ "positionSource": {
314
1526
  "type": "string"
315
- },
316
- "height": {
317
- "type": ["number", "null"]
318
1527
  }
319
1528
  },
320
1529
  "additionalProperties": true
@@ -325,6 +1534,16 @@
325
1534
  "text": {
326
1535
  "type": "string"
327
1536
  },
1537
+ "rawText": {
1538
+ "type": "string"
1539
+ },
1540
+ "resolvedText": {
1541
+ "type": "string"
1542
+ },
1543
+ "specialString": {
1544
+ "type": "object",
1545
+ "additionalProperties": true
1546
+ },
328
1547
  "textSource": {
329
1548
  "const": "WideStrings6/Data"
330
1549
  },
@@ -547,6 +1766,344 @@
547
1766
  }
548
1767
  },
549
1768
  "additionalProperties": true
1769
+ },
1770
+ "designBundleSheet": {
1771
+ "type": "object",
1772
+ "required": ["bundleIndex", "fileName", "title"],
1773
+ "properties": {
1774
+ "bundleIndex": {
1775
+ "type": "number"
1776
+ },
1777
+ "fileName": {
1778
+ "type": "string"
1779
+ },
1780
+ "title": {
1781
+ "type": "string"
1782
+ },
1783
+ "documentPath": {
1784
+ "type": "string"
1785
+ },
1786
+ "uniqueId": {
1787
+ "type": "string"
1788
+ },
1789
+ "componentCount": {
1790
+ "type": "number"
1791
+ },
1792
+ "netCount": {
1793
+ "type": "number"
1794
+ }
1795
+ },
1796
+ "additionalProperties": true
1797
+ },
1798
+ "designBundleComponent": {
1799
+ "type": "object",
1800
+ "required": ["bundleIndex", "designator"],
1801
+ "properties": {
1802
+ "bundleIndex": {
1803
+ "type": "number"
1804
+ },
1805
+ "designator": {
1806
+ "type": "string"
1807
+ },
1808
+ "schematic": {
1809
+ "type": ["object", "null"],
1810
+ "additionalProperties": true
1811
+ },
1812
+ "pcb": {
1813
+ "type": ["object", "null"],
1814
+ "additionalProperties": true
1815
+ }
1816
+ },
1817
+ "additionalProperties": true
1818
+ },
1819
+ "schematicHierarchy": {
1820
+ "type": "object",
1821
+ "required": ["mode", "modeName", "sheets", "sheetSymbols"],
1822
+ "properties": {
1823
+ "mode": {
1824
+ "type": "string"
1825
+ },
1826
+ "modeName": {
1827
+ "type": "string"
1828
+ },
1829
+ "sheets": {
1830
+ "type": "array",
1831
+ "items": {
1832
+ "type": "object",
1833
+ "additionalProperties": true
1834
+ }
1835
+ },
1836
+ "sheetSymbols": {
1837
+ "type": "array",
1838
+ "items": {
1839
+ "type": "object",
1840
+ "additionalProperties": true
1841
+ }
1842
+ }
1843
+ },
1844
+ "additionalProperties": true
1845
+ },
1846
+ "designBundleNet": {
1847
+ "type": "object",
1848
+ "required": ["bundleIndex", "name", "schematic", "pcb", "pins"],
1849
+ "properties": {
1850
+ "bundleIndex": {
1851
+ "type": "number"
1852
+ },
1853
+ "name": {
1854
+ "type": "string"
1855
+ },
1856
+ "schematic": {
1857
+ "type": "array"
1858
+ },
1859
+ "pcb": {
1860
+ "type": "array"
1861
+ },
1862
+ "pins": {
1863
+ "type": "array"
1864
+ }
1865
+ },
1866
+ "additionalProperties": true
1867
+ },
1868
+ "designBundleIndexes": {
1869
+ "type": "object",
1870
+ "properties": {
1871
+ "documentsByPath": {
1872
+ "type": "object"
1873
+ },
1874
+ "sheetsByFileName": {
1875
+ "type": "object"
1876
+ },
1877
+ "componentsByDesignator": {
1878
+ "type": "object"
1879
+ },
1880
+ "netsByName": {
1881
+ "type": "object"
1882
+ },
1883
+ "pnpByDesignator": {
1884
+ "type": "object"
1885
+ }
1886
+ },
1887
+ "additionalProperties": true
1888
+ },
1889
+ "effectiveVariantView": {
1890
+ "type": "object",
1891
+ "required": [
1892
+ "name",
1893
+ "dnp",
1894
+ "parameterOverrides",
1895
+ "bom",
1896
+ "pnp",
1897
+ "nets",
1898
+ "components"
1899
+ ],
1900
+ "properties": {
1901
+ "name": {
1902
+ "type": "string"
1903
+ },
1904
+ "uniqueId": {
1905
+ "type": "string"
1906
+ },
1907
+ "dnp": {
1908
+ "type": "array",
1909
+ "items": {
1910
+ "type": "string"
1911
+ }
1912
+ },
1913
+ "parameterOverrides": {
1914
+ "type": "object"
1915
+ },
1916
+ "bom": {
1917
+ "type": "array"
1918
+ },
1919
+ "pnp": {
1920
+ "$ref": "#/$defs/pickPlaceModel"
1921
+ },
1922
+ "nets": {
1923
+ "type": "array"
1924
+ },
1925
+ "components": {
1926
+ "type": "array"
1927
+ }
1928
+ },
1929
+ "additionalProperties": true
1930
+ },
1931
+ "pcbStatistics": {
1932
+ "type": "object",
1933
+ "properties": {
1934
+ "schema": {
1935
+ "const": "altium-toolkit.pcb.statistics.a1"
1936
+ },
1937
+ "board": {
1938
+ "type": "object",
1939
+ "additionalProperties": true
1940
+ },
1941
+ "drills": {
1942
+ "type": "object",
1943
+ "additionalProperties": true
1944
+ },
1945
+ "primitiveWidths": {
1946
+ "type": "object",
1947
+ "additionalProperties": true
1948
+ },
1949
+ "layers": {
1950
+ "type": "object",
1951
+ "additionalProperties": true
1952
+ },
1953
+ "planning": {
1954
+ "type": "object",
1955
+ "additionalProperties": true
1956
+ }
1957
+ },
1958
+ "additionalProperties": true
1959
+ },
1960
+ "libraryRenderManifest": {
1961
+ "type": "object",
1962
+ "properties": {
1963
+ "schema": {
1964
+ "const": "altium-toolkit.library.render-manifest.a1"
1965
+ },
1966
+ "libraryKind": {
1967
+ "enum": ["schematic-symbols", "pcb-footprints"]
1968
+ },
1969
+ "outputs": {
1970
+ "type": "array",
1971
+ "items": {
1972
+ "type": "object",
1973
+ "additionalProperties": true
1974
+ }
1975
+ },
1976
+ "embeddedAssets": {
1977
+ "type": "array",
1978
+ "items": {
1979
+ "type": "object",
1980
+ "additionalProperties": true
1981
+ }
1982
+ }
1983
+ },
1984
+ "additionalProperties": true
1985
+ },
1986
+ "libraryIndexes": {
1987
+ "type": "object",
1988
+ "properties": {
1989
+ "footprintsByName": {
1990
+ "type": "object"
1991
+ }
1992
+ },
1993
+ "additionalProperties": true
1994
+ },
1995
+ "integratedLibraryIndexes": {
1996
+ "type": "object",
1997
+ "properties": {
1998
+ "sourcesByFileName": {
1999
+ "type": "object"
2000
+ },
2001
+ "sourcesByKind": {
2002
+ "type": "object"
2003
+ },
2004
+ "modelsByComponent": {
2005
+ "type": "object"
2006
+ },
2007
+ "symbolsByComponent": {
2008
+ "type": "object"
2009
+ },
2010
+ "footprintsByComponent": {
2011
+ "type": "object"
2012
+ }
2013
+ },
2014
+ "additionalProperties": true
2015
+ },
2016
+ "integratedLibrary": {
2017
+ "type": "object",
2018
+ "required": [
2019
+ "version",
2020
+ "streamNames",
2021
+ "crossReferences",
2022
+ "parameters",
2023
+ "parameterRecords",
2024
+ "sources"
2025
+ ],
2026
+ "properties": {
2027
+ "version": {
2028
+ "type": "string"
2029
+ },
2030
+ "streamNames": {
2031
+ "type": "array",
2032
+ "items": {
2033
+ "type": "string"
2034
+ }
2035
+ },
2036
+ "crossReferences": {
2037
+ "type": "array",
2038
+ "items": {
2039
+ "type": "object",
2040
+ "additionalProperties": true
2041
+ }
2042
+ },
2043
+ "parameters": {
2044
+ "type": "object",
2045
+ "additionalProperties": {
2046
+ "type": "string"
2047
+ }
2048
+ },
2049
+ "parameterRecords": {
2050
+ "type": "array",
2051
+ "items": {
2052
+ "type": "object",
2053
+ "additionalProperties": true
2054
+ }
2055
+ },
2056
+ "indexes": {
2057
+ "$ref": "#/$defs/integratedLibraryIndexes"
2058
+ },
2059
+ "sources": {
2060
+ "type": "array",
2061
+ "items": {
2062
+ "$ref": "#/$defs/integratedLibrarySource"
2063
+ }
2064
+ }
2065
+ },
2066
+ "additionalProperties": true
2067
+ },
2068
+ "integratedLibrarySource": {
2069
+ "type": "object",
2070
+ "required": [
2071
+ "path",
2072
+ "fileName",
2073
+ "fileType",
2074
+ "libraryKind",
2075
+ "compression",
2076
+ "byteLength",
2077
+ "payloadBase64",
2078
+ "payloadText"
2079
+ ],
2080
+ "properties": {
2081
+ "path": {
2082
+ "type": "string"
2083
+ },
2084
+ "fileName": {
2085
+ "type": "string"
2086
+ },
2087
+ "fileType": {
2088
+ "type": "string"
2089
+ },
2090
+ "libraryKind": {
2091
+ "type": "string"
2092
+ },
2093
+ "compression": {
2094
+ "enum": ["none", "zlib", "zlib-wrapper"]
2095
+ },
2096
+ "byteLength": {
2097
+ "type": "number"
2098
+ },
2099
+ "payloadBase64": {
2100
+ "type": "string"
2101
+ },
2102
+ "payloadText": {
2103
+ "type": "string"
2104
+ }
2105
+ },
2106
+ "additionalProperties": true
550
2107
  }
551
2108
  },
552
2109
  "additionalProperties": true