altium-toolkit 1.0.10 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/docs/api.md +6 -2
  2. package/docs/model-format.md +29 -4
  3. package/docs/schemas/altium_toolkit/ci_artifact_bundle_a1.schema.json +4 -0
  4. package/docs/schemas/altium_toolkit/contract_gate_a1.schema.json +34 -0
  5. package/docs/schemas/altium_toolkit/draftsman_board_view_cache_a1.schema.json +115 -0
  6. package/docs/schemas/altium_toolkit/draftsman_digest_a1.schema.json +132 -1
  7. package/docs/schemas/altium_toolkit/host_capabilities_a1.schema.json +39 -0
  8. package/docs/schemas/altium_toolkit/library_merge_plan_a1.schema.json +56 -0
  9. package/docs/schemas/altium_toolkit/library_qa_a1.schema.json +70 -0
  10. package/docs/schemas/altium_toolkit/normalized_model_a1.schema.json +692 -2
  11. package/docs/schemas/altium_toolkit/pcb_bom_profile_a1.schema.json +48 -0
  12. package/docs/schemas/altium_toolkit/pcb_layer_stack_a1.schema.json +98 -0
  13. package/docs/schemas/altium_toolkit/pcb_layer_stack_fidelity_a1.schema.json +66 -0
  14. package/docs/schemas/altium_toolkit/pcb_placed_footprint_extraction_a1.schema.json +31 -0
  15. package/docs/schemas/altium_toolkit/pcb_review_metadata_a1.schema.json +62 -0
  16. package/docs/schemas/altium_toolkit/pcb_rigid_flex_topology_a1.schema.json +52 -0
  17. package/docs/schemas/altium_toolkit/pcblib_parity_a1.schema.json +24 -0
  18. package/docs/schemas/altium_toolkit/project_bom_pnp_reconciliation_a1.schema.json +63 -0
  19. package/docs/schemas/altium_toolkit/project_outjob_digest_a1.schema.json +46 -0
  20. package/docs/schemas/altium_toolkit/project_script_a1.schema.json +50 -0
  21. package/docs/schemas/altium_toolkit/schematic_render_ops_a1.schema.json +55 -0
  22. package/docs/schemas/altium_toolkit/schematic_template_extraction_a1.schema.json +37 -0
  23. package/package.json +1 -1
  24. package/src/core/altium/AltiumParser.mjs +7 -2
  25. package/src/core/altium/CiArtifactBundleBuilder.mjs +16 -5
  26. package/src/core/altium/ContractGateReportBuilder.mjs +351 -0
  27. package/src/core/altium/DraftsmanBoardViewMetadataBuilder.mjs +653 -0
  28. package/src/core/altium/DraftsmanDigestParser.mjs +246 -7
  29. package/src/core/altium/DraftsmanImagePayloadManifestBuilder.mjs +178 -0
  30. package/src/core/altium/HostCapabilityDiagnosticsBuilder.mjs +271 -0
  31. package/src/core/altium/LibraryQaReportBuilder.mjs +504 -0
  32. package/src/core/altium/LibraryRenderManifestBuilder.mjs +172 -2
  33. package/src/core/altium/PcbBomProfileBuilder.mjs +263 -0
  34. package/src/core/altium/PcbComponentKindPolicy.mjs +146 -0
  35. package/src/core/altium/PcbLayerStackFidelityReportBuilder.mjs +141 -0
  36. package/src/core/altium/PcbLayerStackInterchangeParser.mjs +453 -0
  37. package/src/core/altium/PcbLayerStackQueryHelper.mjs +195 -0
  38. package/src/core/altium/PcbLayerStackReadModelBuilder.mjs +906 -0
  39. package/src/core/altium/PcbLayerStackSourceMetadataParser.mjs +488 -0
  40. package/src/core/altium/PcbLibModelParser.mjs +2 -0
  41. package/src/core/altium/PcbLibParityReportBuilder.mjs +242 -0
  42. package/src/core/altium/PcbModelParser.mjs +182 -18
  43. package/src/core/altium/PcbPickPlacePositionResolver.mjs +3 -0
  44. package/src/core/altium/PcbPlacedFootprintManifestBuilder.mjs +338 -0
  45. package/src/core/altium/PcbPolygonRecordParser.mjs +120 -0
  46. package/src/core/altium/PcbReviewDrillMetadataBuilder.mjs +301 -0
  47. package/src/core/altium/PcbReviewMetadataBuilder.mjs +373 -0
  48. package/src/core/altium/PcbReviewPolygonRealizationBuilder.mjs +269 -0
  49. package/src/core/altium/PcbReviewRouteHighlightProfileBuilder.mjs +298 -0
  50. package/src/core/altium/PcbRigidFlexTopologyBuilder.mjs +171 -0
  51. package/src/core/altium/PrintableTextDecoder.mjs +70 -6
  52. package/src/core/altium/PrjPcbModelParser.mjs +45 -0
  53. package/src/core/altium/PrjScrModelParser.mjs +386 -0
  54. package/src/core/altium/ProjectBomPnpReconciliationBuilder.mjs +237 -0
  55. package/src/core/altium/ProjectDesignBundleBuilder.mjs +61 -2
  56. package/src/core/altium/ProjectOutJobDigestBuilder.mjs +424 -13
  57. package/src/core/altium/SvgModelCrossLinkValidator.mjs +35 -2
  58. package/src/core/circuit-json/CircuitJsonModelAdapter.mjs +164 -0
  59. package/src/parser.mjs +15 -0
  60. package/src/ui/PcbFootprintPrimitiveSelector.mjs +13 -1
  61. package/src/ui/PcbScene3dBuilder.mjs +26 -4
  62. package/src/ui/SchematicRenderOpsSidecarBuilder.mjs +554 -0
  63. package/src/ui/SchematicSvgRenderer.mjs +48 -2
@@ -24,6 +24,7 @@
24
24
  "pcb",
25
25
  "pcb-library",
26
26
  "project",
27
+ "project-script",
27
28
  "project-annotation",
28
29
  "integrated-library",
29
30
  "draftsman",
@@ -36,6 +37,7 @@
36
37
  "PcbDoc",
37
38
  "PcbLib",
38
39
  "PrjPcb",
40
+ "PrjScr",
39
41
  "Annotation",
40
42
  "IntLib",
41
43
  "PCBDwf",
@@ -159,7 +161,16 @@
159
161
  "components": {
160
162
  "type": "array",
161
163
  "items": {
162
- "$ref": "#/$defs/pcbComponent"
164
+ "allOf": [
165
+ {
166
+ "$ref": "#/$defs/pcbComponent"
167
+ }
168
+ ],
169
+ "properties": {
170
+ "componentKind": {
171
+ "$ref": "#/$defs/componentKindPolicy"
172
+ }
173
+ }
163
174
  }
164
175
  },
165
176
  "rules": {
@@ -168,6 +179,9 @@
168
179
  "$ref": "#/$defs/pcbRule"
169
180
  }
170
181
  },
182
+ "bomProfile": {
183
+ "$ref": "#/$defs/pcbBomProfile"
184
+ },
171
185
  "dimensions": {
172
186
  "type": "array",
173
187
  "items": {
@@ -192,6 +206,12 @@
192
206
  "routeAnalysis": {
193
207
  "$ref": "#/$defs/pcbRouteAnalysis"
194
208
  },
209
+ "reviewMetadata": {
210
+ "$ref": "#/$defs/pcbReviewMetadata"
211
+ },
212
+ "footprintExtractionManifest": {
213
+ "$ref": "#/$defs/pcbPlacedFootprintExtraction"
214
+ },
195
215
  "embeddedFonts": {
196
216
  "$ref": "#/$defs/embeddedFonts"
197
217
  },
@@ -201,6 +221,12 @@
201
221
  "layerSubstacks": {
202
222
  "$ref": "#/$defs/layerSubstacks"
203
223
  },
224
+ "layerStackReadModel": {
225
+ "$ref": "#/$defs/pcbLayerStackReadModel"
226
+ },
227
+ "rigidFlexTopology": {
228
+ "$ref": "#/$defs/pcbRigidFlexTopology"
229
+ },
204
230
  "boardRegionContexts": {
205
231
  "$ref": "#/$defs/boardRegionContexts"
206
232
  },
@@ -286,6 +312,9 @@
286
312
  },
287
313
  "renderManifest": {
288
314
  "$ref": "#/$defs/libraryRenderManifest"
315
+ },
316
+ "parityReport": {
317
+ "$ref": "#/$defs/pcbLibraryParityReport"
289
318
  }
290
319
  },
291
320
  "additionalProperties": true
@@ -295,6 +324,39 @@
295
324
  "properties": {
296
325
  "documentGraph": {
297
326
  "$ref": "#/$defs/projectDocumentGraph"
327
+ },
328
+ "outJobDigest": {
329
+ "$ref": "#/$defs/projectOutJobDigest"
330
+ }
331
+ },
332
+ "additionalProperties": true
333
+ },
334
+ "projectScript": {
335
+ "type": "object",
336
+ "properties": {
337
+ "name": {
338
+ "type": "string"
339
+ },
340
+ "documents": {
341
+ "type": "array",
342
+ "items": {
343
+ "type": "object",
344
+ "additionalProperties": true
345
+ }
346
+ },
347
+ "scripts": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "object",
351
+ "additionalProperties": true
352
+ }
353
+ },
354
+ "sections": {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "object",
358
+ "additionalProperties": true
359
+ }
298
360
  }
299
361
  },
300
362
  "additionalProperties": true
@@ -344,7 +406,12 @@
344
406
  "$ref": "#/$defs/integratedLibrary"
345
407
  },
346
408
  "draftsman": {
347
- "$ref": "#/$defs/draftsmanDigest"
409
+ "$ref": "#/$defs/draftsmanDigest",
410
+ "properties": {
411
+ "boardViewMetadata": {
412
+ "$ref": "#/$defs/draftsmanBoardViewCache"
413
+ }
414
+ }
348
415
  },
349
416
  "bom": {
350
417
  "type": "array",
@@ -354,6 +421,9 @@
354
421
  },
355
422
  "pnp": {
356
423
  "$ref": "#/$defs/pickPlaceModel"
424
+ },
425
+ "reconciliation": {
426
+ "$ref": "#/$defs/projectBomPnpReconciliation"
357
427
  }
358
428
  },
359
429
  "oneOf": [
@@ -508,6 +578,49 @@
508
578
  },
509
579
  "additionalProperties": true
510
580
  },
581
+ "projectOutJobDigest": {
582
+ "type": "object",
583
+ "required": [
584
+ "schema",
585
+ "summary",
586
+ "documents",
587
+ "outputGroups",
588
+ "expectedArtifacts",
589
+ "outputsByDocumentPath"
590
+ ],
591
+ "properties": {
592
+ "schema": {
593
+ "const": "altium-toolkit.project.outjob-digest.a1"
594
+ },
595
+ "summary": {
596
+ "type": "object",
597
+ "additionalProperties": true
598
+ },
599
+ "documents": {
600
+ "type": "array",
601
+ "items": {
602
+ "type": "object",
603
+ "additionalProperties": true
604
+ }
605
+ },
606
+ "outputGroups": {
607
+ "type": "array",
608
+ "items": {
609
+ "type": "object",
610
+ "additionalProperties": true
611
+ }
612
+ },
613
+ "expectedArtifacts": {
614
+ "type": "object",
615
+ "additionalProperties": true
616
+ },
617
+ "outputsByDocumentPath": {
618
+ "type": "object",
619
+ "additionalProperties": true
620
+ }
621
+ },
622
+ "additionalProperties": true
623
+ },
511
624
  "draftsmanDigest": {
512
625
  "type": "object",
513
626
  "required": ["schema", "pages"],
@@ -525,6 +638,13 @@
525
638
  "additionalProperties": true
526
639
  }
527
640
  },
641
+ "styles": {
642
+ "type": "object",
643
+ "additionalProperties": true
644
+ },
645
+ "boardViewMetadata": {
646
+ "$ref": "#/$defs/draftsmanBoardViewCache"
647
+ },
528
648
  "indexes": {
529
649
  "type": "object",
530
650
  "additionalProperties": true
@@ -532,6 +652,118 @@
532
652
  },
533
653
  "additionalProperties": true
534
654
  },
655
+ "draftsmanBoardViewCache": {
656
+ "type": "object",
657
+ "required": [
658
+ "schema",
659
+ "summary",
660
+ "layerColors",
661
+ "pcbParameters",
662
+ "boardAssemblyViews",
663
+ "boardFabricationViews",
664
+ "boardProjections",
665
+ "generatedGeometry",
666
+ "cacheLayers",
667
+ "displayLayers",
668
+ "cachePrimitives",
669
+ "highlightGroups",
670
+ "layerTiles",
671
+ "diagnostics"
672
+ ],
673
+ "properties": {
674
+ "schema": {
675
+ "const": "altium-toolkit.draftsman.board-view-cache.a1"
676
+ },
677
+ "summary": {
678
+ "type": "object",
679
+ "additionalProperties": true
680
+ },
681
+ "layerColors": {
682
+ "type": "array",
683
+ "items": {
684
+ "type": "object",
685
+ "additionalProperties": true
686
+ }
687
+ },
688
+ "pcbParameters": {
689
+ "type": "object",
690
+ "additionalProperties": {
691
+ "type": "string"
692
+ }
693
+ },
694
+ "boardAssemblyViews": {
695
+ "type": "array",
696
+ "items": {
697
+ "type": "object",
698
+ "additionalProperties": true
699
+ }
700
+ },
701
+ "boardFabricationViews": {
702
+ "type": "array",
703
+ "items": {
704
+ "type": "object",
705
+ "additionalProperties": true
706
+ }
707
+ },
708
+ "boardProjections": {
709
+ "type": "array",
710
+ "items": {
711
+ "type": "object",
712
+ "additionalProperties": true
713
+ }
714
+ },
715
+ "generatedGeometry": {
716
+ "type": "array",
717
+ "items": {
718
+ "type": "object",
719
+ "additionalProperties": true
720
+ }
721
+ },
722
+ "cacheLayers": {
723
+ "type": "array",
724
+ "items": {
725
+ "type": "object",
726
+ "additionalProperties": true
727
+ }
728
+ },
729
+ "displayLayers": {
730
+ "type": "array",
731
+ "items": {
732
+ "type": "object",
733
+ "additionalProperties": true
734
+ }
735
+ },
736
+ "cachePrimitives": {
737
+ "type": "array",
738
+ "items": {
739
+ "type": "object",
740
+ "additionalProperties": true
741
+ }
742
+ },
743
+ "highlightGroups": {
744
+ "type": "array",
745
+ "items": {
746
+ "type": "object",
747
+ "additionalProperties": true
748
+ }
749
+ },
750
+ "layerTiles": {
751
+ "type": "array",
752
+ "items": {
753
+ "type": "object",
754
+ "additionalProperties": true
755
+ }
756
+ },
757
+ "diagnostics": {
758
+ "type": "array",
759
+ "items": {
760
+ "type": "object",
761
+ "additionalProperties": true
762
+ }
763
+ }
764
+ },
765
+ "additionalProperties": true
766
+ },
535
767
  "schematicRenderDiagnostics": {
536
768
  "type": "object",
537
769
  "required": ["schema", "fontFallbacks"],
@@ -1299,12 +1531,47 @@
1299
1531
  "height": {
1300
1532
  "type": ["number", "null"]
1301
1533
  },
1534
+ "componentKind": {
1535
+ "$ref": "#/$defs/componentKindPolicy"
1536
+ },
1302
1537
  "provenance": {
1303
1538
  "$ref": "#/$defs/pcbComponentProvenance"
1304
1539
  }
1305
1540
  },
1306
1541
  "additionalProperties": true
1307
1542
  },
1543
+ "componentKindPolicy": {
1544
+ "type": "object",
1545
+ "required": [
1546
+ "value",
1547
+ "name",
1548
+ "displayName",
1549
+ "includeInBom",
1550
+ "includeInNetlist",
1551
+ "includeInPnp"
1552
+ ],
1553
+ "properties": {
1554
+ "value": {
1555
+ "type": "number"
1556
+ },
1557
+ "name": {
1558
+ "type": "string"
1559
+ },
1560
+ "displayName": {
1561
+ "type": "string"
1562
+ },
1563
+ "includeInBom": {
1564
+ "type": "boolean"
1565
+ },
1566
+ "includeInNetlist": {
1567
+ "type": "boolean"
1568
+ },
1569
+ "includeInPnp": {
1570
+ "type": "boolean"
1571
+ }
1572
+ },
1573
+ "additionalProperties": true
1574
+ },
1308
1575
  "pcbComponentProvenance": {
1309
1576
  "type": "object",
1310
1577
  "properties": {
@@ -1644,6 +1911,9 @@
1644
1911
  },
1645
1912
  "positionSource": {
1646
1913
  "type": "string"
1914
+ },
1915
+ "componentKind": {
1916
+ "$ref": "#/$defs/componentKindPolicy"
1647
1917
  }
1648
1918
  },
1649
1919
  "additionalProperties": true
@@ -1777,6 +2047,252 @@
1777
2047
  "additionalProperties": true
1778
2048
  }
1779
2049
  },
2050
+ "pcbBomProfile": {
2051
+ "type": "object",
2052
+ "required": [
2053
+ "schema",
2054
+ "source",
2055
+ "summary",
2056
+ "groups",
2057
+ "components",
2058
+ "exclusions"
2059
+ ],
2060
+ "properties": {
2061
+ "schema": {
2062
+ "const": "altium-toolkit.pcb.bom-profile.a1"
2063
+ },
2064
+ "source": {
2065
+ "type": "string"
2066
+ },
2067
+ "summary": {
2068
+ "type": "object",
2069
+ "additionalProperties": true
2070
+ },
2071
+ "groups": {
2072
+ "type": "array",
2073
+ "items": {
2074
+ "type": "object",
2075
+ "additionalProperties": true
2076
+ }
2077
+ },
2078
+ "components": {
2079
+ "type": "array",
2080
+ "items": {
2081
+ "type": "object",
2082
+ "additionalProperties": true
2083
+ }
2084
+ },
2085
+ "exclusions": {
2086
+ "type": "array",
2087
+ "items": {
2088
+ "type": "object",
2089
+ "additionalProperties": true
2090
+ }
2091
+ }
2092
+ },
2093
+ "additionalProperties": true
2094
+ },
2095
+ "pcbLayerStackReadModel": {
2096
+ "type": "object",
2097
+ "required": [
2098
+ "schema",
2099
+ "summary",
2100
+ "source",
2101
+ "layers",
2102
+ "substacks",
2103
+ "branches",
2104
+ "impedanceProfiles",
2105
+ "transmissionLines",
2106
+ "viaSpans",
2107
+ "backdrillSpans",
2108
+ "diagnostics"
2109
+ ],
2110
+ "properties": {
2111
+ "schema": {
2112
+ "const": "altium-toolkit.pcb.layer-stack.a1"
2113
+ },
2114
+ "summary": {
2115
+ "type": "object",
2116
+ "additionalProperties": true
2117
+ },
2118
+ "source": {
2119
+ "type": "object",
2120
+ "additionalProperties": true
2121
+ },
2122
+ "layers": {
2123
+ "type": "array",
2124
+ "items": {
2125
+ "type": "object",
2126
+ "additionalProperties": true
2127
+ }
2128
+ },
2129
+ "substacks": {
2130
+ "type": "array",
2131
+ "items": {
2132
+ "type": "object",
2133
+ "additionalProperties": true
2134
+ }
2135
+ },
2136
+ "branches": {
2137
+ "type": "array",
2138
+ "items": {
2139
+ "type": "object",
2140
+ "additionalProperties": true
2141
+ }
2142
+ },
2143
+ "impedanceProfiles": {
2144
+ "type": "array",
2145
+ "items": {
2146
+ "type": "object",
2147
+ "additionalProperties": true
2148
+ }
2149
+ },
2150
+ "transmissionLines": {
2151
+ "type": "array",
2152
+ "items": {
2153
+ "type": "object",
2154
+ "additionalProperties": true
2155
+ }
2156
+ },
2157
+ "viaSpans": {
2158
+ "type": "array",
2159
+ "items": {
2160
+ "type": "object",
2161
+ "additionalProperties": true
2162
+ }
2163
+ },
2164
+ "backdrillSpans": {
2165
+ "type": "array",
2166
+ "items": {
2167
+ "type": "object",
2168
+ "additionalProperties": true
2169
+ }
2170
+ },
2171
+ "fidelityReport": {
2172
+ "$ref": "#/$defs/pcbLayerStackFidelityReport"
2173
+ },
2174
+ "diagnostics": {
2175
+ "type": "array",
2176
+ "items": {
2177
+ "type": "object",
2178
+ "additionalProperties": true
2179
+ }
2180
+ }
2181
+ },
2182
+ "additionalProperties": true
2183
+ },
2184
+ "pcbLayerStackFidelityReport": {
2185
+ "type": "object",
2186
+ "required": [
2187
+ "schema",
2188
+ "sourceDocument",
2189
+ "summary",
2190
+ "capabilities",
2191
+ "semanticSections",
2192
+ "nativeCacheSections",
2193
+ "interchangeOnlySections",
2194
+ "unsupportedRegeneration",
2195
+ "diagnostics"
2196
+ ],
2197
+ "properties": {
2198
+ "schema": {
2199
+ "const": "altium-toolkit.pcb.layer-stack-fidelity.a1"
2200
+ },
2201
+ "sourceDocument": {
2202
+ "type": "string"
2203
+ },
2204
+ "summary": {
2205
+ "type": "object",
2206
+ "additionalProperties": true
2207
+ },
2208
+ "capabilities": {
2209
+ "type": "object",
2210
+ "additionalProperties": true
2211
+ },
2212
+ "semanticSections": {
2213
+ "type": "array",
2214
+ "items": {
2215
+ "type": "string"
2216
+ }
2217
+ },
2218
+ "nativeCacheSections": {
2219
+ "type": "array",
2220
+ "items": {
2221
+ "type": "string"
2222
+ }
2223
+ },
2224
+ "interchangeOnlySections": {
2225
+ "type": "array",
2226
+ "items": {
2227
+ "type": "string"
2228
+ }
2229
+ },
2230
+ "unsupportedRegeneration": {
2231
+ "type": "array",
2232
+ "items": {
2233
+ "type": "object",
2234
+ "additionalProperties": true
2235
+ }
2236
+ },
2237
+ "diagnostics": {
2238
+ "type": "array",
2239
+ "items": {
2240
+ "type": "object",
2241
+ "additionalProperties": true
2242
+ }
2243
+ }
2244
+ },
2245
+ "additionalProperties": true
2246
+ },
2247
+ "pcbRigidFlexTopology": {
2248
+ "type": "object",
2249
+ "required": [
2250
+ "schema",
2251
+ "summary",
2252
+ "substackRegionJoins",
2253
+ "branchGraph",
2254
+ "bendLines",
2255
+ "diagnostics"
2256
+ ],
2257
+ "properties": {
2258
+ "schema": {
2259
+ "const": "altium-toolkit.pcb.rigid-flex-topology.a1"
2260
+ },
2261
+ "summary": {
2262
+ "type": "object",
2263
+ "additionalProperties": true
2264
+ },
2265
+ "substackRegionJoins": {
2266
+ "type": "array",
2267
+ "items": {
2268
+ "type": "object",
2269
+ "additionalProperties": true
2270
+ }
2271
+ },
2272
+ "branchGraph": {
2273
+ "type": "array",
2274
+ "items": {
2275
+ "type": "object",
2276
+ "additionalProperties": true
2277
+ }
2278
+ },
2279
+ "bendLines": {
2280
+ "type": "array",
2281
+ "items": {
2282
+ "type": "object",
2283
+ "additionalProperties": true
2284
+ }
2285
+ },
2286
+ "diagnostics": {
2287
+ "type": "array",
2288
+ "items": {
2289
+ "type": "object",
2290
+ "additionalProperties": true
2291
+ }
2292
+ }
2293
+ },
2294
+ "additionalProperties": true
2295
+ },
1780
2296
  "embeddedFonts": {
1781
2297
  "type": "array",
1782
2298
  "items": {
@@ -2110,6 +2626,159 @@
2110
2626
  },
2111
2627
  "additionalProperties": true
2112
2628
  },
2629
+ "pcbReviewMetadata": {
2630
+ "type": "object",
2631
+ "required": [
2632
+ "schema",
2633
+ "summary",
2634
+ "routeGroups",
2635
+ "routeHighlightProfiles",
2636
+ "polygonRealizations",
2637
+ "drillReview",
2638
+ "boardAssemblyViews",
2639
+ "indexes"
2640
+ ],
2641
+ "properties": {
2642
+ "schema": {
2643
+ "const": "altium-toolkit.pcb.review-metadata.a1"
2644
+ },
2645
+ "summary": {
2646
+ "type": "object",
2647
+ "additionalProperties": true
2648
+ },
2649
+ "routeGroups": {
2650
+ "type": "array",
2651
+ "items": {
2652
+ "type": "object",
2653
+ "additionalProperties": true
2654
+ }
2655
+ },
2656
+ "routeHighlightProfiles": {
2657
+ "type": "array",
2658
+ "items": {
2659
+ "type": "object",
2660
+ "additionalProperties": true
2661
+ }
2662
+ },
2663
+ "polygonRealizations": {
2664
+ "type": "array",
2665
+ "items": {
2666
+ "type": "object",
2667
+ "additionalProperties": true
2668
+ }
2669
+ },
2670
+ "drillReview": {
2671
+ "type": "object",
2672
+ "additionalProperties": true
2673
+ },
2674
+ "boardAssemblyViews": {
2675
+ "type": "array",
2676
+ "items": {
2677
+ "type": "object",
2678
+ "additionalProperties": true
2679
+ }
2680
+ },
2681
+ "indexes": {
2682
+ "type": "object",
2683
+ "additionalProperties": true
2684
+ }
2685
+ },
2686
+ "additionalProperties": true
2687
+ },
2688
+ "pcbPlacedFootprintExtraction": {
2689
+ "type": "object",
2690
+ "required": [
2691
+ "schema",
2692
+ "sourceDocument",
2693
+ "summary",
2694
+ "outputs",
2695
+ "indexes"
2696
+ ],
2697
+ "properties": {
2698
+ "schema": {
2699
+ "const": "altium-toolkit.pcb.placed-footprint-extraction.a1"
2700
+ },
2701
+ "sourceDocument": {
2702
+ "type": "string"
2703
+ },
2704
+ "summary": {
2705
+ "type": "object",
2706
+ "additionalProperties": true
2707
+ },
2708
+ "outputs": {
2709
+ "type": "array",
2710
+ "items": {
2711
+ "type": "object",
2712
+ "additionalProperties": true
2713
+ }
2714
+ },
2715
+ "indexes": {
2716
+ "type": "object",
2717
+ "additionalProperties": true
2718
+ }
2719
+ },
2720
+ "additionalProperties": true
2721
+ },
2722
+ "projectBomPnpReconciliation": {
2723
+ "type": "object",
2724
+ "required": [
2725
+ "schema",
2726
+ "summary",
2727
+ "schematicBomDesignators",
2728
+ "pcbBomDesignators",
2729
+ "pnpDesignators",
2730
+ "effectiveBomDesignators",
2731
+ "noBomDesignators",
2732
+ "issues"
2733
+ ],
2734
+ "properties": {
2735
+ "schema": {
2736
+ "const": "altium-toolkit.project.bom-pnp-reconciliation.a1"
2737
+ },
2738
+ "summary": {
2739
+ "type": "object",
2740
+ "additionalProperties": true
2741
+ },
2742
+ "schematicBomDesignators": {
2743
+ "type": "array",
2744
+ "items": {
2745
+ "type": "string"
2746
+ }
2747
+ },
2748
+ "pcbBomDesignators": {
2749
+ "type": "array",
2750
+ "items": {
2751
+ "type": "string"
2752
+ }
2753
+ },
2754
+ "pnpDesignators": {
2755
+ "type": "array",
2756
+ "items": {
2757
+ "type": "string"
2758
+ }
2759
+ },
2760
+ "effectiveBomDesignators": {
2761
+ "type": "array",
2762
+ "items": {
2763
+ "type": "string"
2764
+ }
2765
+ },
2766
+ "noBomDesignators": {
2767
+ "type": "array",
2768
+ "items": {
2769
+ "type": "string"
2770
+ }
2771
+ },
2772
+ "issues": {
2773
+ "type": "array",
2774
+ "items": {
2775
+ "type": "object",
2776
+ "additionalProperties": true
2777
+ }
2778
+ }
2779
+ },
2780
+ "additionalProperties": true
2781
+ },
2113
2782
  "units": {
2114
2783
  "type": "object",
2115
2784
  "additionalProperties": {
@@ -2142,6 +2811,27 @@
2142
2811
  },
2143
2812
  "additionalProperties": true
2144
2813
  },
2814
+ "pcbLibraryParityReport": {
2815
+ "type": "object",
2816
+ "required": ["schema", "summary", "footprints"],
2817
+ "properties": {
2818
+ "schema": {
2819
+ "const": "altium-toolkit.pcblib.parity.a1"
2820
+ },
2821
+ "summary": {
2822
+ "type": "object",
2823
+ "additionalProperties": true
2824
+ },
2825
+ "footprints": {
2826
+ "type": "array",
2827
+ "items": {
2828
+ "type": "object",
2829
+ "additionalProperties": true
2830
+ }
2831
+ }
2832
+ },
2833
+ "additionalProperties": true
2834
+ },
2145
2835
  "libraryIndexes": {
2146
2836
  "type": "object",
2147
2837
  "properties": {