circuit-json 0.0.413 → 0.0.415

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.
package/dist/index.mjs CHANGED
@@ -1714,28 +1714,38 @@ var route_hint_point = z91.object({
1714
1714
  });
1715
1715
  expectTypesMatch(true);
1716
1716
 
1717
- // src/pcb/pcb_component.ts
1717
+ // src/pcb/properties/manufacturing_drc_properties.ts
1718
1718
  import { z as z92 } from "zod";
1719
- var pcb_component = z92.object({
1720
- type: z92.literal("pcb_component"),
1719
+ var manufacturing_drc_properties = z92.object({
1720
+ min_via_to_via_spacing: length.optional(),
1721
+ min_trace_to_pad_spacing: length.optional(),
1722
+ min_pad_to_pad_spacing: length.optional(),
1723
+ min_via_hole_diameter: length.optional(),
1724
+ min_via_pad_diameter: length.optional()
1725
+ });
1726
+
1727
+ // src/pcb/pcb_component.ts
1728
+ import { z as z93 } from "zod";
1729
+ var pcb_component = z93.object({
1730
+ type: z93.literal("pcb_component"),
1721
1731
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
1722
- source_component_id: z92.string(),
1732
+ source_component_id: z93.string(),
1723
1733
  center: point,
1724
1734
  layer: layer_ref,
1725
1735
  rotation,
1726
- display_offset_x: z92.string().optional().describe(
1736
+ display_offset_x: z93.string().optional().describe(
1727
1737
  "How to display the x offset for this part, usually corresponding with how the user specified it"
1728
1738
  ),
1729
- display_offset_y: z92.string().optional().describe(
1739
+ display_offset_y: z93.string().optional().describe(
1730
1740
  "How to display the y offset for this part, usually corresponding with how the user specified it"
1731
1741
  ),
1732
1742
  width: length,
1733
1743
  height: length,
1734
- do_not_place: z92.boolean().optional(),
1735
- is_allowed_to_be_off_board: z92.boolean().optional(),
1736
- subcircuit_id: z92.string().optional(),
1737
- pcb_group_id: z92.string().optional(),
1738
- position_mode: z92.enum([
1744
+ do_not_place: z93.boolean().optional(),
1745
+ is_allowed_to_be_off_board: z93.boolean().optional(),
1746
+ subcircuit_id: z93.string().optional(),
1747
+ pcb_group_id: z93.string().optional(),
1748
+ position_mode: z93.enum([
1739
1749
  "packed",
1740
1750
  "relative_to_group_anchor",
1741
1751
  "relative_to_another_component",
@@ -1743,129 +1753,129 @@ var pcb_component = z92.object({
1743
1753
  ]).optional(),
1744
1754
  anchor_position: point.optional(),
1745
1755
  anchor_alignment: ninePointAnchor.optional(),
1746
- positioned_relative_to_pcb_group_id: z92.string().optional(),
1747
- positioned_relative_to_pcb_board_id: z92.string().optional(),
1756
+ positioned_relative_to_pcb_group_id: z93.string().optional(),
1757
+ positioned_relative_to_pcb_board_id: z93.string().optional(),
1748
1758
  cable_insertion_center: point.optional(),
1749
- insertion_direction: z92.enum([
1759
+ insertion_direction: z93.enum([
1750
1760
  "from_above",
1751
1761
  "from_left",
1752
1762
  "from_right",
1753
1763
  "from_front",
1754
1764
  "from_back"
1755
1765
  ]).optional(),
1756
- metadata: z92.object({
1766
+ metadata: z93.object({
1757
1767
  kicad_footprint: kicadFootprintMetadata.optional()
1758
1768
  }).optional(),
1759
- obstructs_within_bounds: z92.boolean().default(true).describe(
1769
+ obstructs_within_bounds: z93.boolean().default(true).describe(
1760
1770
  "Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
1761
1771
  )
1762
1772
  }).describe("Defines a component on the PCB");
1763
1773
  expectTypesMatch(true);
1764
1774
 
1765
1775
  // src/pcb/pcb_hole.ts
1766
- import { z as z93 } from "zod";
1767
- var pcb_hole_circle = z93.object({
1768
- type: z93.literal("pcb_hole"),
1776
+ import { z as z94 } from "zod";
1777
+ var pcb_hole_circle = z94.object({
1778
+ type: z94.literal("pcb_hole"),
1769
1779
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1770
- pcb_group_id: z93.string().optional(),
1771
- subcircuit_id: z93.string().optional(),
1772
- pcb_component_id: z93.string().optional(),
1773
- hole_shape: z93.literal("circle"),
1774
- hole_diameter: z93.number(),
1780
+ pcb_group_id: z94.string().optional(),
1781
+ subcircuit_id: z94.string().optional(),
1782
+ pcb_component_id: z94.string().optional(),
1783
+ hole_shape: z94.literal("circle"),
1784
+ hole_diameter: z94.number(),
1775
1785
  x: distance,
1776
1786
  y: distance,
1777
- is_covered_with_solder_mask: z93.boolean().optional(),
1778
- soldermask_margin: z93.number().optional()
1787
+ is_covered_with_solder_mask: z94.boolean().optional(),
1788
+ soldermask_margin: z94.number().optional()
1779
1789
  });
1780
1790
  var pcb_hole_circle_shape = pcb_hole_circle.describe(
1781
1791
  "Defines a circular hole on the PCB"
1782
1792
  );
1783
1793
  expectTypesMatch(true);
1784
- var pcb_hole_rect = z93.object({
1785
- type: z93.literal("pcb_hole"),
1794
+ var pcb_hole_rect = z94.object({
1795
+ type: z94.literal("pcb_hole"),
1786
1796
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1787
- pcb_group_id: z93.string().optional(),
1788
- subcircuit_id: z93.string().optional(),
1789
- pcb_component_id: z93.string().optional(),
1790
- hole_shape: z93.literal("rect"),
1791
- hole_width: z93.number(),
1792
- hole_height: z93.number(),
1797
+ pcb_group_id: z94.string().optional(),
1798
+ subcircuit_id: z94.string().optional(),
1799
+ pcb_component_id: z94.string().optional(),
1800
+ hole_shape: z94.literal("rect"),
1801
+ hole_width: z94.number(),
1802
+ hole_height: z94.number(),
1793
1803
  x: distance,
1794
1804
  y: distance,
1795
- is_covered_with_solder_mask: z93.boolean().optional(),
1796
- soldermask_margin: z93.number().optional()
1805
+ is_covered_with_solder_mask: z94.boolean().optional(),
1806
+ soldermask_margin: z94.number().optional()
1797
1807
  });
1798
1808
  var pcb_hole_rect_shape = pcb_hole_rect.describe(
1799
1809
  "Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."
1800
1810
  );
1801
1811
  expectTypesMatch(true);
1802
- var pcb_hole_circle_or_square = z93.object({
1803
- type: z93.literal("pcb_hole"),
1812
+ var pcb_hole_circle_or_square = z94.object({
1813
+ type: z94.literal("pcb_hole"),
1804
1814
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1805
- pcb_group_id: z93.string().optional(),
1806
- subcircuit_id: z93.string().optional(),
1807
- pcb_component_id: z93.string().optional(),
1808
- hole_shape: z93.enum(["circle", "square"]),
1809
- hole_diameter: z93.number(),
1815
+ pcb_group_id: z94.string().optional(),
1816
+ subcircuit_id: z94.string().optional(),
1817
+ pcb_component_id: z94.string().optional(),
1818
+ hole_shape: z94.enum(["circle", "square"]),
1819
+ hole_diameter: z94.number(),
1810
1820
  x: distance,
1811
1821
  y: distance,
1812
- is_covered_with_solder_mask: z93.boolean().optional(),
1813
- soldermask_margin: z93.number().optional()
1822
+ is_covered_with_solder_mask: z94.boolean().optional(),
1823
+ soldermask_margin: z94.number().optional()
1814
1824
  });
1815
1825
  var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
1816
1826
  "Defines a circular or square hole on the PCB"
1817
1827
  );
1818
1828
  expectTypesMatch(true);
1819
- var pcb_hole_oval = z93.object({
1820
- type: z93.literal("pcb_hole"),
1829
+ var pcb_hole_oval = z94.object({
1830
+ type: z94.literal("pcb_hole"),
1821
1831
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1822
- pcb_group_id: z93.string().optional(),
1823
- subcircuit_id: z93.string().optional(),
1824
- pcb_component_id: z93.string().optional(),
1825
- hole_shape: z93.literal("oval"),
1826
- hole_width: z93.number(),
1827
- hole_height: z93.number(),
1832
+ pcb_group_id: z94.string().optional(),
1833
+ subcircuit_id: z94.string().optional(),
1834
+ pcb_component_id: z94.string().optional(),
1835
+ hole_shape: z94.literal("oval"),
1836
+ hole_width: z94.number(),
1837
+ hole_height: z94.number(),
1828
1838
  x: distance,
1829
1839
  y: distance,
1830
- is_covered_with_solder_mask: z93.boolean().optional(),
1831
- soldermask_margin: z93.number().optional()
1840
+ is_covered_with_solder_mask: z94.boolean().optional(),
1841
+ soldermask_margin: z94.number().optional()
1832
1842
  });
1833
1843
  var pcb_hole_oval_shape = pcb_hole_oval.describe(
1834
1844
  "Defines an oval hole on the PCB"
1835
1845
  );
1836
1846
  expectTypesMatch(true);
1837
- var pcb_hole_pill = z93.object({
1838
- type: z93.literal("pcb_hole"),
1847
+ var pcb_hole_pill = z94.object({
1848
+ type: z94.literal("pcb_hole"),
1839
1849
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1840
- pcb_group_id: z93.string().optional(),
1841
- subcircuit_id: z93.string().optional(),
1842
- pcb_component_id: z93.string().optional(),
1843
- hole_shape: z93.literal("pill"),
1844
- hole_width: z93.number(),
1845
- hole_height: z93.number(),
1850
+ pcb_group_id: z94.string().optional(),
1851
+ subcircuit_id: z94.string().optional(),
1852
+ pcb_component_id: z94.string().optional(),
1853
+ hole_shape: z94.literal("pill"),
1854
+ hole_width: z94.number(),
1855
+ hole_height: z94.number(),
1846
1856
  x: distance,
1847
1857
  y: distance,
1848
- is_covered_with_solder_mask: z93.boolean().optional(),
1849
- soldermask_margin: z93.number().optional()
1858
+ is_covered_with_solder_mask: z94.boolean().optional(),
1859
+ soldermask_margin: z94.number().optional()
1850
1860
  });
1851
1861
  var pcb_hole_pill_shape = pcb_hole_pill.describe(
1852
1862
  "Defines a pill-shaped hole on the PCB"
1853
1863
  );
1854
1864
  expectTypesMatch(true);
1855
- var pcb_hole_rotated_pill = z93.object({
1856
- type: z93.literal("pcb_hole"),
1865
+ var pcb_hole_rotated_pill = z94.object({
1866
+ type: z94.literal("pcb_hole"),
1857
1867
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1858
- pcb_group_id: z93.string().optional(),
1859
- subcircuit_id: z93.string().optional(),
1860
- pcb_component_id: z93.string().optional(),
1861
- hole_shape: z93.literal("rotated_pill"),
1862
- hole_width: z93.number(),
1863
- hole_height: z93.number(),
1868
+ pcb_group_id: z94.string().optional(),
1869
+ subcircuit_id: z94.string().optional(),
1870
+ pcb_component_id: z94.string().optional(),
1871
+ hole_shape: z94.literal("rotated_pill"),
1872
+ hole_width: z94.number(),
1873
+ hole_height: z94.number(),
1864
1874
  x: distance,
1865
1875
  y: distance,
1866
1876
  ccw_rotation: rotation,
1867
- is_covered_with_solder_mask: z93.boolean().optional(),
1868
- soldermask_margin: z93.number().optional()
1877
+ is_covered_with_solder_mask: z94.boolean().optional(),
1878
+ soldermask_margin: z94.number().optional()
1869
1879
  });
1870
1880
  var pcb_hole_rotated_pill_shape = pcb_hole_rotated_pill.describe(
1871
1881
  "Defines a rotated pill-shaped hole on the PCB"
@@ -1874,147 +1884,147 @@ expectTypesMatch(true);
1874
1884
  var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval).or(pcb_hole_pill).or(pcb_hole_rotated_pill).or(pcb_hole_circle).or(pcb_hole_rect);
1875
1885
 
1876
1886
  // src/pcb/pcb_plated_hole.ts
1877
- import { z as z94 } from "zod";
1878
- var pcb_plated_hole_circle = z94.object({
1879
- type: z94.literal("pcb_plated_hole"),
1880
- shape: z94.literal("circle"),
1881
- pcb_group_id: z94.string().optional(),
1882
- subcircuit_id: z94.string().optional(),
1883
- outer_diameter: z94.number(),
1884
- hole_diameter: z94.number(),
1885
- is_covered_with_solder_mask: z94.boolean().optional(),
1887
+ import { z as z95 } from "zod";
1888
+ var pcb_plated_hole_circle = z95.object({
1889
+ type: z95.literal("pcb_plated_hole"),
1890
+ shape: z95.literal("circle"),
1891
+ pcb_group_id: z95.string().optional(),
1892
+ subcircuit_id: z95.string().optional(),
1893
+ outer_diameter: z95.number(),
1894
+ hole_diameter: z95.number(),
1895
+ is_covered_with_solder_mask: z95.boolean().optional(),
1886
1896
  x: distance,
1887
1897
  y: distance,
1888
- layers: z94.array(layer_ref),
1889
- port_hints: z94.array(z94.string()).optional(),
1890
- pcb_component_id: z94.string().optional(),
1891
- pcb_port_id: z94.string().optional(),
1898
+ layers: z95.array(layer_ref),
1899
+ port_hints: z95.array(z95.string()).optional(),
1900
+ pcb_component_id: z95.string().optional(),
1901
+ pcb_port_id: z95.string().optional(),
1892
1902
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1893
- soldermask_margin: z94.number().optional()
1903
+ soldermask_margin: z95.number().optional()
1894
1904
  });
1895
- var pcb_plated_hole_oval = z94.object({
1896
- type: z94.literal("pcb_plated_hole"),
1897
- shape: z94.enum(["oval", "pill"]),
1898
- pcb_group_id: z94.string().optional(),
1899
- subcircuit_id: z94.string().optional(),
1900
- outer_width: z94.number(),
1901
- outer_height: z94.number(),
1902
- hole_width: z94.number(),
1903
- hole_height: z94.number(),
1904
- is_covered_with_solder_mask: z94.boolean().optional(),
1905
+ var pcb_plated_hole_oval = z95.object({
1906
+ type: z95.literal("pcb_plated_hole"),
1907
+ shape: z95.enum(["oval", "pill"]),
1908
+ pcb_group_id: z95.string().optional(),
1909
+ subcircuit_id: z95.string().optional(),
1910
+ outer_width: z95.number(),
1911
+ outer_height: z95.number(),
1912
+ hole_width: z95.number(),
1913
+ hole_height: z95.number(),
1914
+ is_covered_with_solder_mask: z95.boolean().optional(),
1905
1915
  x: distance,
1906
1916
  y: distance,
1907
1917
  ccw_rotation: rotation,
1908
- layers: z94.array(layer_ref),
1909
- port_hints: z94.array(z94.string()).optional(),
1910
- pcb_component_id: z94.string().optional(),
1911
- pcb_port_id: z94.string().optional(),
1918
+ layers: z95.array(layer_ref),
1919
+ port_hints: z95.array(z95.string()).optional(),
1920
+ pcb_component_id: z95.string().optional(),
1921
+ pcb_port_id: z95.string().optional(),
1912
1922
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1913
- soldermask_margin: z94.number().optional()
1923
+ soldermask_margin: z95.number().optional()
1914
1924
  });
1915
- var pcb_circular_hole_with_rect_pad = z94.object({
1916
- type: z94.literal("pcb_plated_hole"),
1917
- shape: z94.literal("circular_hole_with_rect_pad"),
1918
- pcb_group_id: z94.string().optional(),
1919
- subcircuit_id: z94.string().optional(),
1920
- hole_shape: z94.literal("circle"),
1921
- pad_shape: z94.literal("rect"),
1922
- hole_diameter: z94.number(),
1923
- rect_pad_width: z94.number(),
1924
- rect_pad_height: z94.number(),
1925
- rect_border_radius: z94.number().optional(),
1925
+ var pcb_circular_hole_with_rect_pad = z95.object({
1926
+ type: z95.literal("pcb_plated_hole"),
1927
+ shape: z95.literal("circular_hole_with_rect_pad"),
1928
+ pcb_group_id: z95.string().optional(),
1929
+ subcircuit_id: z95.string().optional(),
1930
+ hole_shape: z95.literal("circle"),
1931
+ pad_shape: z95.literal("rect"),
1932
+ hole_diameter: z95.number(),
1933
+ rect_pad_width: z95.number(),
1934
+ rect_pad_height: z95.number(),
1935
+ rect_border_radius: z95.number().optional(),
1926
1936
  hole_offset_x: distance.default(0),
1927
1937
  hole_offset_y: distance.default(0),
1928
- is_covered_with_solder_mask: z94.boolean().optional(),
1938
+ is_covered_with_solder_mask: z95.boolean().optional(),
1929
1939
  x: distance,
1930
1940
  y: distance,
1931
- layers: z94.array(layer_ref),
1932
- port_hints: z94.array(z94.string()).optional(),
1933
- pcb_component_id: z94.string().optional(),
1934
- pcb_port_id: z94.string().optional(),
1941
+ layers: z95.array(layer_ref),
1942
+ port_hints: z95.array(z95.string()).optional(),
1943
+ pcb_component_id: z95.string().optional(),
1944
+ pcb_port_id: z95.string().optional(),
1935
1945
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1936
- soldermask_margin: z94.number().optional(),
1946
+ soldermask_margin: z95.number().optional(),
1937
1947
  rect_ccw_rotation: rotation.optional()
1938
1948
  });
1939
- var pcb_pill_hole_with_rect_pad = z94.object({
1940
- type: z94.literal("pcb_plated_hole"),
1941
- shape: z94.literal("pill_hole_with_rect_pad"),
1942
- pcb_group_id: z94.string().optional(),
1943
- subcircuit_id: z94.string().optional(),
1944
- hole_shape: z94.literal("pill"),
1945
- pad_shape: z94.literal("rect"),
1946
- hole_width: z94.number(),
1947
- hole_height: z94.number(),
1948
- rect_pad_width: z94.number(),
1949
- rect_pad_height: z94.number(),
1950
- rect_border_radius: z94.number().optional(),
1949
+ var pcb_pill_hole_with_rect_pad = z95.object({
1950
+ type: z95.literal("pcb_plated_hole"),
1951
+ shape: z95.literal("pill_hole_with_rect_pad"),
1952
+ pcb_group_id: z95.string().optional(),
1953
+ subcircuit_id: z95.string().optional(),
1954
+ hole_shape: z95.literal("pill"),
1955
+ pad_shape: z95.literal("rect"),
1956
+ hole_width: z95.number(),
1957
+ hole_height: z95.number(),
1958
+ rect_pad_width: z95.number(),
1959
+ rect_pad_height: z95.number(),
1960
+ rect_border_radius: z95.number().optional(),
1951
1961
  hole_offset_x: distance.default(0),
1952
1962
  hole_offset_y: distance.default(0),
1953
- is_covered_with_solder_mask: z94.boolean().optional(),
1963
+ is_covered_with_solder_mask: z95.boolean().optional(),
1954
1964
  x: distance,
1955
1965
  y: distance,
1956
- layers: z94.array(layer_ref),
1957
- port_hints: z94.array(z94.string()).optional(),
1958
- pcb_component_id: z94.string().optional(),
1959
- pcb_port_id: z94.string().optional(),
1966
+ layers: z95.array(layer_ref),
1967
+ port_hints: z95.array(z95.string()).optional(),
1968
+ pcb_component_id: z95.string().optional(),
1969
+ pcb_port_id: z95.string().optional(),
1960
1970
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1961
- soldermask_margin: z94.number().optional()
1971
+ soldermask_margin: z95.number().optional()
1962
1972
  });
1963
- var pcb_rotated_pill_hole_with_rect_pad = z94.object({
1964
- type: z94.literal("pcb_plated_hole"),
1965
- shape: z94.literal("rotated_pill_hole_with_rect_pad"),
1966
- pcb_group_id: z94.string().optional(),
1967
- subcircuit_id: z94.string().optional(),
1968
- hole_shape: z94.literal("rotated_pill"),
1969
- pad_shape: z94.literal("rect"),
1970
- hole_width: z94.number(),
1971
- hole_height: z94.number(),
1973
+ var pcb_rotated_pill_hole_with_rect_pad = z95.object({
1974
+ type: z95.literal("pcb_plated_hole"),
1975
+ shape: z95.literal("rotated_pill_hole_with_rect_pad"),
1976
+ pcb_group_id: z95.string().optional(),
1977
+ subcircuit_id: z95.string().optional(),
1978
+ hole_shape: z95.literal("rotated_pill"),
1979
+ pad_shape: z95.literal("rect"),
1980
+ hole_width: z95.number(),
1981
+ hole_height: z95.number(),
1972
1982
  hole_ccw_rotation: rotation,
1973
- rect_pad_width: z94.number(),
1974
- rect_pad_height: z94.number(),
1975
- rect_border_radius: z94.number().optional(),
1983
+ rect_pad_width: z95.number(),
1984
+ rect_pad_height: z95.number(),
1985
+ rect_border_radius: z95.number().optional(),
1976
1986
  rect_ccw_rotation: rotation,
1977
1987
  hole_offset_x: distance.default(0),
1978
1988
  hole_offset_y: distance.default(0),
1979
- is_covered_with_solder_mask: z94.boolean().optional(),
1989
+ is_covered_with_solder_mask: z95.boolean().optional(),
1980
1990
  x: distance,
1981
1991
  y: distance,
1982
- layers: z94.array(layer_ref),
1983
- port_hints: z94.array(z94.string()).optional(),
1984
- pcb_component_id: z94.string().optional(),
1985
- pcb_port_id: z94.string().optional(),
1992
+ layers: z95.array(layer_ref),
1993
+ port_hints: z95.array(z95.string()).optional(),
1994
+ pcb_component_id: z95.string().optional(),
1995
+ pcb_port_id: z95.string().optional(),
1986
1996
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1987
- soldermask_margin: z94.number().optional()
1997
+ soldermask_margin: z95.number().optional()
1988
1998
  });
1989
- var pcb_hole_with_polygon_pad = z94.object({
1990
- type: z94.literal("pcb_plated_hole"),
1991
- shape: z94.literal("hole_with_polygon_pad"),
1992
- pcb_group_id: z94.string().optional(),
1993
- subcircuit_id: z94.string().optional(),
1994
- hole_shape: z94.enum(["circle", "oval", "pill", "rotated_pill"]),
1995
- hole_diameter: z94.number().optional(),
1996
- hole_width: z94.number().optional(),
1997
- hole_height: z94.number().optional(),
1998
- pad_outline: z94.array(
1999
- z94.object({
1999
+ var pcb_hole_with_polygon_pad = z95.object({
2000
+ type: z95.literal("pcb_plated_hole"),
2001
+ shape: z95.literal("hole_with_polygon_pad"),
2002
+ pcb_group_id: z95.string().optional(),
2003
+ subcircuit_id: z95.string().optional(),
2004
+ hole_shape: z95.enum(["circle", "oval", "pill", "rotated_pill"]),
2005
+ hole_diameter: z95.number().optional(),
2006
+ hole_width: z95.number().optional(),
2007
+ hole_height: z95.number().optional(),
2008
+ pad_outline: z95.array(
2009
+ z95.object({
2000
2010
  x: distance,
2001
2011
  y: distance
2002
2012
  })
2003
2013
  ).min(3),
2004
2014
  hole_offset_x: distance.default(0),
2005
2015
  hole_offset_y: distance.default(0),
2006
- is_covered_with_solder_mask: z94.boolean().optional(),
2016
+ is_covered_with_solder_mask: z95.boolean().optional(),
2007
2017
  x: distance,
2008
2018
  y: distance,
2009
- layers: z94.array(layer_ref),
2010
- port_hints: z94.array(z94.string()).optional(),
2011
- pcb_component_id: z94.string().optional(),
2012
- pcb_port_id: z94.string().optional(),
2019
+ layers: z95.array(layer_ref),
2020
+ port_hints: z95.array(z95.string()).optional(),
2021
+ pcb_component_id: z95.string().optional(),
2022
+ pcb_port_id: z95.string().optional(),
2013
2023
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
2014
- soldermask_margin: z94.number().optional(),
2024
+ soldermask_margin: z95.number().optional(),
2015
2025
  ccw_rotation: rotation.optional()
2016
2026
  });
2017
- var pcb_plated_hole = z94.union([
2027
+ var pcb_plated_hole = z95.union([
2018
2028
  pcb_plated_hole_circle,
2019
2029
  pcb_plated_hole_oval,
2020
2030
  pcb_circular_hole_with_rect_pad,
@@ -2032,138 +2042,138 @@ expectTypesMatch(true);
2032
2042
  expectTypesMatch(true);
2033
2043
 
2034
2044
  // src/pcb/pcb_port.ts
2035
- import { z as z95 } from "zod";
2036
- var pcb_port = z95.object({
2037
- type: z95.literal("pcb_port"),
2045
+ import { z as z96 } from "zod";
2046
+ var pcb_port = z96.object({
2047
+ type: z96.literal("pcb_port"),
2038
2048
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
2039
- pcb_group_id: z95.string().optional(),
2040
- subcircuit_id: z95.string().optional(),
2041
- source_port_id: z95.string(),
2042
- pcb_component_id: z95.string().optional(),
2049
+ pcb_group_id: z96.string().optional(),
2050
+ subcircuit_id: z96.string().optional(),
2051
+ source_port_id: z96.string(),
2052
+ pcb_component_id: z96.string().optional(),
2043
2053
  x: distance,
2044
2054
  y: distance,
2045
- layers: z95.array(layer_ref),
2046
- is_board_pinout: z95.boolean().optional()
2055
+ layers: z96.array(layer_ref),
2056
+ is_board_pinout: z96.boolean().optional()
2047
2057
  }).describe("Defines a port on the PCB");
2048
2058
  expectTypesMatch(true);
2049
2059
 
2050
2060
  // src/pcb/pcb_smtpad.ts
2051
- import { z as z96 } from "zod";
2052
- var pcb_smtpad_circle = z96.object({
2053
- type: z96.literal("pcb_smtpad"),
2054
- shape: z96.literal("circle"),
2061
+ import { z as z97 } from "zod";
2062
+ var pcb_smtpad_circle = z97.object({
2063
+ type: z97.literal("pcb_smtpad"),
2064
+ shape: z97.literal("circle"),
2055
2065
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2056
- pcb_group_id: z96.string().optional(),
2057
- subcircuit_id: z96.string().optional(),
2066
+ pcb_group_id: z97.string().optional(),
2067
+ subcircuit_id: z97.string().optional(),
2058
2068
  x: distance,
2059
2069
  y: distance,
2060
- radius: z96.number(),
2070
+ radius: z97.number(),
2061
2071
  layer: layer_ref,
2062
- port_hints: z96.array(z96.string()).optional(),
2063
- pcb_component_id: z96.string().optional(),
2064
- pcb_port_id: z96.string().optional(),
2065
- is_covered_with_solder_mask: z96.boolean().optional(),
2066
- soldermask_margin: z96.number().optional()
2072
+ port_hints: z97.array(z97.string()).optional(),
2073
+ pcb_component_id: z97.string().optional(),
2074
+ pcb_port_id: z97.string().optional(),
2075
+ is_covered_with_solder_mask: z97.boolean().optional(),
2076
+ soldermask_margin: z97.number().optional()
2067
2077
  });
2068
- var pcb_smtpad_rect = z96.object({
2069
- type: z96.literal("pcb_smtpad"),
2070
- shape: z96.literal("rect"),
2078
+ var pcb_smtpad_rect = z97.object({
2079
+ type: z97.literal("pcb_smtpad"),
2080
+ shape: z97.literal("rect"),
2071
2081
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2072
- pcb_group_id: z96.string().optional(),
2073
- subcircuit_id: z96.string().optional(),
2082
+ pcb_group_id: z97.string().optional(),
2083
+ subcircuit_id: z97.string().optional(),
2074
2084
  x: distance,
2075
2085
  y: distance,
2076
- width: z96.number(),
2077
- height: z96.number(),
2078
- rect_border_radius: z96.number().optional(),
2079
- corner_radius: z96.number().optional(),
2086
+ width: z97.number(),
2087
+ height: z97.number(),
2088
+ rect_border_radius: z97.number().optional(),
2089
+ corner_radius: z97.number().optional(),
2080
2090
  layer: layer_ref,
2081
- port_hints: z96.array(z96.string()).optional(),
2082
- pcb_component_id: z96.string().optional(),
2083
- pcb_port_id: z96.string().optional(),
2084
- is_covered_with_solder_mask: z96.boolean().optional(),
2085
- soldermask_margin: z96.number().optional(),
2086
- soldermask_margin_left: z96.number().optional(),
2087
- soldermask_margin_top: z96.number().optional(),
2088
- soldermask_margin_right: z96.number().optional(),
2089
- soldermask_margin_bottom: z96.number().optional()
2090
- });
2091
- var pcb_smtpad_rotated_rect = z96.object({
2092
- type: z96.literal("pcb_smtpad"),
2093
- shape: z96.literal("rotated_rect"),
2091
+ port_hints: z97.array(z97.string()).optional(),
2092
+ pcb_component_id: z97.string().optional(),
2093
+ pcb_port_id: z97.string().optional(),
2094
+ is_covered_with_solder_mask: z97.boolean().optional(),
2095
+ soldermask_margin: z97.number().optional(),
2096
+ soldermask_margin_left: z97.number().optional(),
2097
+ soldermask_margin_top: z97.number().optional(),
2098
+ soldermask_margin_right: z97.number().optional(),
2099
+ soldermask_margin_bottom: z97.number().optional()
2100
+ });
2101
+ var pcb_smtpad_rotated_rect = z97.object({
2102
+ type: z97.literal("pcb_smtpad"),
2103
+ shape: z97.literal("rotated_rect"),
2094
2104
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2095
- pcb_group_id: z96.string().optional(),
2096
- subcircuit_id: z96.string().optional(),
2105
+ pcb_group_id: z97.string().optional(),
2106
+ subcircuit_id: z97.string().optional(),
2097
2107
  x: distance,
2098
2108
  y: distance,
2099
- width: z96.number(),
2100
- height: z96.number(),
2101
- rect_border_radius: z96.number().optional(),
2102
- corner_radius: z96.number().optional(),
2109
+ width: z97.number(),
2110
+ height: z97.number(),
2111
+ rect_border_radius: z97.number().optional(),
2112
+ corner_radius: z97.number().optional(),
2103
2113
  ccw_rotation: rotation,
2104
2114
  layer: layer_ref,
2105
- port_hints: z96.array(z96.string()).optional(),
2106
- pcb_component_id: z96.string().optional(),
2107
- pcb_port_id: z96.string().optional(),
2108
- is_covered_with_solder_mask: z96.boolean().optional(),
2109
- soldermask_margin: z96.number().optional(),
2110
- soldermask_margin_left: z96.number().optional(),
2111
- soldermask_margin_top: z96.number().optional(),
2112
- soldermask_margin_right: z96.number().optional(),
2113
- soldermask_margin_bottom: z96.number().optional()
2114
- });
2115
- var pcb_smtpad_pill = z96.object({
2116
- type: z96.literal("pcb_smtpad"),
2117
- shape: z96.literal("pill"),
2115
+ port_hints: z97.array(z97.string()).optional(),
2116
+ pcb_component_id: z97.string().optional(),
2117
+ pcb_port_id: z97.string().optional(),
2118
+ is_covered_with_solder_mask: z97.boolean().optional(),
2119
+ soldermask_margin: z97.number().optional(),
2120
+ soldermask_margin_left: z97.number().optional(),
2121
+ soldermask_margin_top: z97.number().optional(),
2122
+ soldermask_margin_right: z97.number().optional(),
2123
+ soldermask_margin_bottom: z97.number().optional()
2124
+ });
2125
+ var pcb_smtpad_pill = z97.object({
2126
+ type: z97.literal("pcb_smtpad"),
2127
+ shape: z97.literal("pill"),
2118
2128
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2119
- pcb_group_id: z96.string().optional(),
2120
- subcircuit_id: z96.string().optional(),
2129
+ pcb_group_id: z97.string().optional(),
2130
+ subcircuit_id: z97.string().optional(),
2121
2131
  x: distance,
2122
2132
  y: distance,
2123
- width: z96.number(),
2124
- height: z96.number(),
2125
- radius: z96.number(),
2133
+ width: z97.number(),
2134
+ height: z97.number(),
2135
+ radius: z97.number(),
2126
2136
  layer: layer_ref,
2127
- port_hints: z96.array(z96.string()).optional(),
2128
- pcb_component_id: z96.string().optional(),
2129
- pcb_port_id: z96.string().optional(),
2130
- is_covered_with_solder_mask: z96.boolean().optional(),
2131
- soldermask_margin: z96.number().optional()
2137
+ port_hints: z97.array(z97.string()).optional(),
2138
+ pcb_component_id: z97.string().optional(),
2139
+ pcb_port_id: z97.string().optional(),
2140
+ is_covered_with_solder_mask: z97.boolean().optional(),
2141
+ soldermask_margin: z97.number().optional()
2132
2142
  });
2133
- var pcb_smtpad_rotated_pill = z96.object({
2134
- type: z96.literal("pcb_smtpad"),
2135
- shape: z96.literal("rotated_pill"),
2143
+ var pcb_smtpad_rotated_pill = z97.object({
2144
+ type: z97.literal("pcb_smtpad"),
2145
+ shape: z97.literal("rotated_pill"),
2136
2146
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2137
- pcb_group_id: z96.string().optional(),
2138
- subcircuit_id: z96.string().optional(),
2147
+ pcb_group_id: z97.string().optional(),
2148
+ subcircuit_id: z97.string().optional(),
2139
2149
  x: distance,
2140
2150
  y: distance,
2141
- width: z96.number(),
2142
- height: z96.number(),
2143
- radius: z96.number(),
2151
+ width: z97.number(),
2152
+ height: z97.number(),
2153
+ radius: z97.number(),
2144
2154
  ccw_rotation: rotation,
2145
2155
  layer: layer_ref,
2146
- port_hints: z96.array(z96.string()).optional(),
2147
- pcb_component_id: z96.string().optional(),
2148
- pcb_port_id: z96.string().optional(),
2149
- is_covered_with_solder_mask: z96.boolean().optional(),
2150
- soldermask_margin: z96.number().optional()
2156
+ port_hints: z97.array(z97.string()).optional(),
2157
+ pcb_component_id: z97.string().optional(),
2158
+ pcb_port_id: z97.string().optional(),
2159
+ is_covered_with_solder_mask: z97.boolean().optional(),
2160
+ soldermask_margin: z97.number().optional()
2151
2161
  });
2152
- var pcb_smtpad_polygon = z96.object({
2153
- type: z96.literal("pcb_smtpad"),
2154
- shape: z96.literal("polygon"),
2162
+ var pcb_smtpad_polygon = z97.object({
2163
+ type: z97.literal("pcb_smtpad"),
2164
+ shape: z97.literal("polygon"),
2155
2165
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2156
- pcb_group_id: z96.string().optional(),
2157
- subcircuit_id: z96.string().optional(),
2158
- points: z96.array(point),
2166
+ pcb_group_id: z97.string().optional(),
2167
+ subcircuit_id: z97.string().optional(),
2168
+ points: z97.array(point),
2159
2169
  layer: layer_ref,
2160
- port_hints: z96.array(z96.string()).optional(),
2161
- pcb_component_id: z96.string().optional(),
2162
- pcb_port_id: z96.string().optional(),
2163
- is_covered_with_solder_mask: z96.boolean().optional(),
2164
- soldermask_margin: z96.number().optional()
2170
+ port_hints: z97.array(z97.string()).optional(),
2171
+ pcb_component_id: z97.string().optional(),
2172
+ pcb_port_id: z97.string().optional(),
2173
+ is_covered_with_solder_mask: z97.boolean().optional(),
2174
+ soldermask_margin: z97.number().optional()
2165
2175
  });
2166
- var pcb_smtpad = z96.discriminatedUnion("shape", [
2176
+ var pcb_smtpad = z97.discriminatedUnion("shape", [
2167
2177
  pcb_smtpad_circle,
2168
2178
  pcb_smtpad_rect,
2169
2179
  pcb_smtpad_rotated_rect,
@@ -2179,79 +2189,79 @@ expectTypesMatch(true);
2179
2189
  expectTypesMatch(true);
2180
2190
 
2181
2191
  // src/pcb/pcb_solder_paste.ts
2182
- import { z as z97 } from "zod";
2183
- var pcb_solder_paste_circle = z97.object({
2184
- type: z97.literal("pcb_solder_paste"),
2185
- shape: z97.literal("circle"),
2192
+ import { z as z98 } from "zod";
2193
+ var pcb_solder_paste_circle = z98.object({
2194
+ type: z98.literal("pcb_solder_paste"),
2195
+ shape: z98.literal("circle"),
2186
2196
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2187
- pcb_group_id: z97.string().optional(),
2188
- subcircuit_id: z97.string().optional(),
2197
+ pcb_group_id: z98.string().optional(),
2198
+ subcircuit_id: z98.string().optional(),
2189
2199
  x: distance,
2190
2200
  y: distance,
2191
- radius: z97.number(),
2201
+ radius: z98.number(),
2192
2202
  layer: layer_ref,
2193
- pcb_component_id: z97.string().optional(),
2194
- pcb_smtpad_id: z97.string().optional()
2203
+ pcb_component_id: z98.string().optional(),
2204
+ pcb_smtpad_id: z98.string().optional()
2195
2205
  });
2196
- var pcb_solder_paste_rect = z97.object({
2197
- type: z97.literal("pcb_solder_paste"),
2198
- shape: z97.literal("rect"),
2206
+ var pcb_solder_paste_rect = z98.object({
2207
+ type: z98.literal("pcb_solder_paste"),
2208
+ shape: z98.literal("rect"),
2199
2209
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2200
- pcb_group_id: z97.string().optional(),
2201
- subcircuit_id: z97.string().optional(),
2210
+ pcb_group_id: z98.string().optional(),
2211
+ subcircuit_id: z98.string().optional(),
2202
2212
  x: distance,
2203
2213
  y: distance,
2204
- width: z97.number(),
2205
- height: z97.number(),
2214
+ width: z98.number(),
2215
+ height: z98.number(),
2206
2216
  layer: layer_ref,
2207
- pcb_component_id: z97.string().optional(),
2208
- pcb_smtpad_id: z97.string().optional()
2217
+ pcb_component_id: z98.string().optional(),
2218
+ pcb_smtpad_id: z98.string().optional()
2209
2219
  });
2210
- var pcb_solder_paste_pill = z97.object({
2211
- type: z97.literal("pcb_solder_paste"),
2212
- shape: z97.literal("pill"),
2220
+ var pcb_solder_paste_pill = z98.object({
2221
+ type: z98.literal("pcb_solder_paste"),
2222
+ shape: z98.literal("pill"),
2213
2223
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2214
- pcb_group_id: z97.string().optional(),
2215
- subcircuit_id: z97.string().optional(),
2224
+ pcb_group_id: z98.string().optional(),
2225
+ subcircuit_id: z98.string().optional(),
2216
2226
  x: distance,
2217
2227
  y: distance,
2218
- width: z97.number(),
2219
- height: z97.number(),
2220
- radius: z97.number(),
2228
+ width: z98.number(),
2229
+ height: z98.number(),
2230
+ radius: z98.number(),
2221
2231
  layer: layer_ref,
2222
- pcb_component_id: z97.string().optional(),
2223
- pcb_smtpad_id: z97.string().optional()
2232
+ pcb_component_id: z98.string().optional(),
2233
+ pcb_smtpad_id: z98.string().optional()
2224
2234
  });
2225
- var pcb_solder_paste_rotated_rect = z97.object({
2226
- type: z97.literal("pcb_solder_paste"),
2227
- shape: z97.literal("rotated_rect"),
2235
+ var pcb_solder_paste_rotated_rect = z98.object({
2236
+ type: z98.literal("pcb_solder_paste"),
2237
+ shape: z98.literal("rotated_rect"),
2228
2238
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2229
- pcb_group_id: z97.string().optional(),
2230
- subcircuit_id: z97.string().optional(),
2239
+ pcb_group_id: z98.string().optional(),
2240
+ subcircuit_id: z98.string().optional(),
2231
2241
  x: distance,
2232
2242
  y: distance,
2233
- width: z97.number(),
2234
- height: z97.number(),
2243
+ width: z98.number(),
2244
+ height: z98.number(),
2235
2245
  ccw_rotation: distance,
2236
2246
  layer: layer_ref,
2237
- pcb_component_id: z97.string().optional(),
2238
- pcb_smtpad_id: z97.string().optional()
2247
+ pcb_component_id: z98.string().optional(),
2248
+ pcb_smtpad_id: z98.string().optional()
2239
2249
  });
2240
- var pcb_solder_paste_oval = z97.object({
2241
- type: z97.literal("pcb_solder_paste"),
2242
- shape: z97.literal("oval"),
2250
+ var pcb_solder_paste_oval = z98.object({
2251
+ type: z98.literal("pcb_solder_paste"),
2252
+ shape: z98.literal("oval"),
2243
2253
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2244
- pcb_group_id: z97.string().optional(),
2245
- subcircuit_id: z97.string().optional(),
2254
+ pcb_group_id: z98.string().optional(),
2255
+ subcircuit_id: z98.string().optional(),
2246
2256
  x: distance,
2247
2257
  y: distance,
2248
- width: z97.number(),
2249
- height: z97.number(),
2258
+ width: z98.number(),
2259
+ height: z98.number(),
2250
2260
  layer: layer_ref,
2251
- pcb_component_id: z97.string().optional(),
2252
- pcb_smtpad_id: z97.string().optional()
2261
+ pcb_component_id: z98.string().optional(),
2262
+ pcb_smtpad_id: z98.string().optional()
2253
2263
  });
2254
- var pcb_solder_paste = z97.union([
2264
+ var pcb_solder_paste = z98.union([
2255
2265
  pcb_solder_paste_circle,
2256
2266
  pcb_solder_paste_rect,
2257
2267
  pcb_solder_paste_pill,
@@ -2267,162 +2277,162 @@ expectTypesMatch(
2267
2277
  expectTypesMatch(true);
2268
2278
 
2269
2279
  // src/pcb/pcb_text.ts
2270
- import { z as z98 } from "zod";
2271
- var pcb_text = z98.object({
2272
- type: z98.literal("pcb_text"),
2280
+ import { z as z99 } from "zod";
2281
+ var pcb_text = z99.object({
2282
+ type: z99.literal("pcb_text"),
2273
2283
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
2274
- pcb_group_id: z98.string().optional(),
2275
- subcircuit_id: z98.string().optional(),
2276
- text: z98.string(),
2284
+ pcb_group_id: z99.string().optional(),
2285
+ subcircuit_id: z99.string().optional(),
2286
+ text: z99.string(),
2277
2287
  center: point,
2278
2288
  layer: layer_ref,
2279
2289
  width: length,
2280
2290
  height: length,
2281
- lines: z98.number(),
2291
+ lines: z99.number(),
2282
2292
  // @ts-ignore
2283
- align: z98.enum(["bottom-left"])
2293
+ align: z99.enum(["bottom-left"])
2284
2294
  }).describe("Defines text on the PCB");
2285
2295
  expectTypesMatch(true);
2286
2296
 
2287
2297
  // src/pcb/pcb_trace.ts
2288
- import { z as z99 } from "zod";
2289
- var pcb_trace_route_point_wire = z99.object({
2290
- route_type: z99.literal("wire"),
2298
+ import { z as z100 } from "zod";
2299
+ var pcb_trace_route_point_wire = z100.object({
2300
+ route_type: z100.literal("wire"),
2291
2301
  x: distance,
2292
2302
  y: distance,
2293
2303
  width: distance,
2294
- copper_pour_id: z99.string().optional(),
2295
- is_inside_copper_pour: z99.boolean().optional(),
2296
- start_pcb_port_id: z99.string().optional(),
2297
- end_pcb_port_id: z99.string().optional(),
2304
+ copper_pour_id: z100.string().optional(),
2305
+ is_inside_copper_pour: z100.boolean().optional(),
2306
+ start_pcb_port_id: z100.string().optional(),
2307
+ end_pcb_port_id: z100.string().optional(),
2298
2308
  layer: layer_ref
2299
2309
  });
2300
- var pcb_trace_route_point_via = z99.object({
2301
- route_type: z99.literal("via"),
2310
+ var pcb_trace_route_point_via = z100.object({
2311
+ route_type: z100.literal("via"),
2302
2312
  x: distance,
2303
2313
  y: distance,
2304
- copper_pour_id: z99.string().optional(),
2305
- is_inside_copper_pour: z99.boolean().optional(),
2314
+ copper_pour_id: z100.string().optional(),
2315
+ is_inside_copper_pour: z100.boolean().optional(),
2306
2316
  hole_diameter: distance.optional(),
2307
2317
  outer_diameter: distance.optional(),
2308
2318
  from_layer: layer_ref,
2309
2319
  to_layer: layer_ref
2310
2320
  });
2311
- var pcb_trace_route_point = z99.union([
2321
+ var pcb_trace_route_point = z100.union([
2312
2322
  pcb_trace_route_point_wire,
2313
2323
  pcb_trace_route_point_via
2314
2324
  ]);
2315
- var pcb_trace = z99.object({
2316
- type: z99.literal("pcb_trace"),
2317
- source_trace_id: z99.string().optional(),
2318
- pcb_component_id: z99.string().optional(),
2325
+ var pcb_trace = z100.object({
2326
+ type: z100.literal("pcb_trace"),
2327
+ source_trace_id: z100.string().optional(),
2328
+ pcb_component_id: z100.string().optional(),
2319
2329
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
2320
- pcb_group_id: z99.string().optional(),
2321
- subcircuit_id: z99.string().optional(),
2322
- route_thickness_mode: z99.enum(["constant", "interpolated"]).default("constant").optional(),
2323
- route_order_index: z99.number().optional(),
2324
- should_round_corners: z99.boolean().optional(),
2325
- trace_length: z99.number().optional(),
2326
- highlight_color: z99.string().optional(),
2327
- route: z99.array(pcb_trace_route_point)
2330
+ pcb_group_id: z100.string().optional(),
2331
+ subcircuit_id: z100.string().optional(),
2332
+ route_thickness_mode: z100.enum(["constant", "interpolated"]).default("constant").optional(),
2333
+ route_order_index: z100.number().optional(),
2334
+ should_round_corners: z100.boolean().optional(),
2335
+ trace_length: z100.number().optional(),
2336
+ highlight_color: z100.string().optional(),
2337
+ route: z100.array(pcb_trace_route_point)
2328
2338
  }).describe("Defines a trace on the PCB");
2329
2339
  expectTypesMatch(true);
2330
2340
  expectTypesMatch(true);
2331
2341
 
2332
2342
  // src/pcb/pcb_trace_warning.ts
2333
- import { z as z100 } from "zod";
2334
- var pcb_trace_warning = z100.object({
2335
- type: z100.literal("pcb_trace_warning"),
2343
+ import { z as z101 } from "zod";
2344
+ var pcb_trace_warning = z101.object({
2345
+ type: z101.literal("pcb_trace_warning"),
2336
2346
  pcb_trace_warning_id: getZodPrefixedIdWithDefault("pcb_trace_warning"),
2337
- warning_type: z100.literal("pcb_trace_warning").default("pcb_trace_warning"),
2338
- message: z100.string(),
2347
+ warning_type: z101.literal("pcb_trace_warning").default("pcb_trace_warning"),
2348
+ message: z101.string(),
2339
2349
  center: point.optional(),
2340
- pcb_trace_id: z100.string(),
2341
- source_trace_id: z100.string(),
2342
- pcb_component_ids: z100.array(z100.string()),
2343
- pcb_port_ids: z100.array(z100.string()),
2344
- subcircuit_id: z100.string().optional()
2350
+ pcb_trace_id: z101.string(),
2351
+ source_trace_id: z101.string(),
2352
+ pcb_component_ids: z101.array(z101.string()),
2353
+ pcb_port_ids: z101.array(z101.string()),
2354
+ subcircuit_id: z101.string().optional()
2345
2355
  }).describe("Defines a trace warning on the PCB");
2346
2356
  expectTypesMatch(true);
2347
2357
 
2348
2358
  // src/pcb/pcb_trace_error.ts
2349
- import { z as z101 } from "zod";
2359
+ import { z as z102 } from "zod";
2350
2360
  var pcb_trace_error = base_circuit_json_error.extend({
2351
- type: z101.literal("pcb_trace_error"),
2361
+ type: z102.literal("pcb_trace_error"),
2352
2362
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
2353
- error_type: z101.literal("pcb_trace_error").default("pcb_trace_error"),
2363
+ error_type: z102.literal("pcb_trace_error").default("pcb_trace_error"),
2354
2364
  center: point.optional(),
2355
- pcb_trace_id: z101.string(),
2356
- source_trace_id: z101.string(),
2357
- pcb_component_ids: z101.array(z101.string()),
2358
- pcb_port_ids: z101.array(z101.string()),
2359
- subcircuit_id: z101.string().optional()
2365
+ pcb_trace_id: z102.string(),
2366
+ source_trace_id: z102.string(),
2367
+ pcb_component_ids: z102.array(z102.string()),
2368
+ pcb_port_ids: z102.array(z102.string()),
2369
+ subcircuit_id: z102.string().optional()
2360
2370
  }).describe("Defines a trace error on the PCB");
2361
2371
  expectTypesMatch(true);
2362
2372
 
2363
2373
  // src/pcb/pcb_trace_missing_error.ts
2364
- import { z as z102 } from "zod";
2374
+ import { z as z103 } from "zod";
2365
2375
  var pcb_trace_missing_error = base_circuit_json_error.extend({
2366
- type: z102.literal("pcb_trace_missing_error"),
2376
+ type: z103.literal("pcb_trace_missing_error"),
2367
2377
  pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
2368
2378
  "pcb_trace_missing_error"
2369
2379
  ),
2370
- error_type: z102.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
2380
+ error_type: z103.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
2371
2381
  center: point.optional(),
2372
- source_trace_id: z102.string(),
2373
- pcb_component_ids: z102.array(z102.string()),
2374
- pcb_port_ids: z102.array(z102.string()),
2375
- subcircuit_id: z102.string().optional()
2382
+ source_trace_id: z103.string(),
2383
+ pcb_component_ids: z103.array(z103.string()),
2384
+ pcb_port_ids: z103.array(z103.string()),
2385
+ subcircuit_id: z103.string().optional()
2376
2386
  }).describe(
2377
2387
  "Defines an error when a source trace has no corresponding PCB trace"
2378
2388
  );
2379
2389
  expectTypesMatch(true);
2380
2390
 
2381
2391
  // src/pcb/pcb_port_not_matched_error.ts
2382
- import { z as z103 } from "zod";
2392
+ import { z as z104 } from "zod";
2383
2393
  var pcb_port_not_matched_error = base_circuit_json_error.extend({
2384
- type: z103.literal("pcb_port_not_matched_error"),
2394
+ type: z104.literal("pcb_port_not_matched_error"),
2385
2395
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2386
- error_type: z103.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
2387
- pcb_component_ids: z103.array(z103.string()),
2388
- subcircuit_id: z103.string().optional()
2396
+ error_type: z104.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
2397
+ pcb_component_ids: z104.array(z104.string()),
2398
+ subcircuit_id: z104.string().optional()
2389
2399
  }).describe("Defines a trace error on the PCB where a port is not matched");
2390
2400
  expectTypesMatch(true);
2391
2401
 
2392
2402
  // src/pcb/pcb_port_not_connected_error.ts
2393
- import { z as z104 } from "zod";
2403
+ import { z as z105 } from "zod";
2394
2404
  var pcb_port_not_connected_error = base_circuit_json_error.extend({
2395
- type: z104.literal("pcb_port_not_connected_error"),
2405
+ type: z105.literal("pcb_port_not_connected_error"),
2396
2406
  pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
2397
2407
  "pcb_port_not_connected_error"
2398
2408
  ),
2399
- error_type: z104.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
2400
- pcb_port_ids: z104.array(z104.string()),
2401
- pcb_component_ids: z104.array(z104.string()),
2402
- subcircuit_id: z104.string().optional()
2409
+ error_type: z105.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
2410
+ pcb_port_ids: z105.array(z105.string()),
2411
+ pcb_component_ids: z105.array(z105.string()),
2412
+ subcircuit_id: z105.string().optional()
2403
2413
  }).describe("Defines an error when a pcb port is not connected to any trace");
2404
2414
  expectTypesMatch(
2405
2415
  true
2406
2416
  );
2407
2417
 
2408
2418
  // src/pcb/pcb_net.ts
2409
- import { z as z105 } from "zod";
2410
- var pcb_net = z105.object({
2411
- type: z105.literal("pcb_net"),
2419
+ import { z as z106 } from "zod";
2420
+ var pcb_net = z106.object({
2421
+ type: z106.literal("pcb_net"),
2412
2422
  pcb_net_id: getZodPrefixedIdWithDefault("pcb_net"),
2413
- source_net_id: z105.string().optional(),
2414
- highlight_color: z105.string().optional()
2423
+ source_net_id: z106.string().optional(),
2424
+ highlight_color: z106.string().optional()
2415
2425
  }).describe("Defines a net on the PCB");
2416
2426
  expectTypesMatch(true);
2417
2427
 
2418
2428
  // src/pcb/pcb_via.ts
2419
- import { z as z106 } from "zod";
2420
- var pcb_via = z106.object({
2421
- type: z106.literal("pcb_via"),
2429
+ import { z as z107 } from "zod";
2430
+ var pcb_via = z107.object({
2431
+ type: z107.literal("pcb_via"),
2422
2432
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
2423
- pcb_group_id: z106.string().optional(),
2424
- subcircuit_id: z106.string().optional(),
2425
- subcircuit_connectivity_map_key: z106.string().optional(),
2433
+ pcb_group_id: z107.string().optional(),
2434
+ subcircuit_id: z107.string().optional(),
2435
+ subcircuit_connectivity_map_key: z107.string().optional(),
2426
2436
  x: distance,
2427
2437
  y: distance,
2428
2438
  outer_diameter: distance.default("0.6mm"),
@@ -2431,101 +2441,101 @@ var pcb_via = z106.object({
2431
2441
  from_layer: layer_ref.optional(),
2432
2442
  /** @deprecated */
2433
2443
  to_layer: layer_ref.optional(),
2434
- layers: z106.array(layer_ref),
2435
- pcb_trace_id: z106.string().optional(),
2436
- net_is_assignable: z106.boolean().optional(),
2437
- net_assigned: z106.boolean().optional(),
2438
- is_tented: z106.boolean().optional()
2444
+ layers: z107.array(layer_ref),
2445
+ pcb_trace_id: z107.string().optional(),
2446
+ net_is_assignable: z107.boolean().optional(),
2447
+ net_assigned: z107.boolean().optional(),
2448
+ is_tented: z107.boolean().optional()
2439
2449
  }).describe("Defines a via on the PCB");
2440
2450
  expectTypesMatch(true);
2441
2451
 
2442
2452
  // src/pcb/pcb_board.ts
2443
- import { z as z107 } from "zod";
2444
- var pcb_board = z107.object({
2445
- type: z107.literal("pcb_board"),
2453
+ import { z as z108 } from "zod";
2454
+ var pcb_board = z108.object({
2455
+ type: z108.literal("pcb_board"),
2446
2456
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
2447
- pcb_panel_id: z107.string().optional(),
2448
- carrier_pcb_board_id: z107.string().optional(),
2449
- is_subcircuit: z107.boolean().optional(),
2450
- subcircuit_id: z107.string().optional(),
2451
- is_mounted_to_carrier_board: z107.boolean().optional(),
2457
+ pcb_panel_id: z108.string().optional(),
2458
+ carrier_pcb_board_id: z108.string().optional(),
2459
+ is_subcircuit: z108.boolean().optional(),
2460
+ subcircuit_id: z108.string().optional(),
2461
+ is_mounted_to_carrier_board: z108.boolean().optional(),
2452
2462
  width: length.optional(),
2453
2463
  height: length.optional(),
2454
2464
  center: point,
2455
- display_offset_x: z107.string().optional().describe(
2465
+ display_offset_x: z108.string().optional().describe(
2456
2466
  "How to display the x offset for this board, usually corresponding with how the user specified it"
2457
2467
  ),
2458
- display_offset_y: z107.string().optional().describe(
2468
+ display_offset_y: z108.string().optional().describe(
2459
2469
  "How to display the y offset for this board, usually corresponding with how the user specified it"
2460
2470
  ),
2461
2471
  thickness: length.optional().default(1.4),
2462
- num_layers: z107.number().optional().default(4),
2463
- outline: z107.array(point).optional(),
2464
- shape: z107.enum(["rect", "polygon"]).optional(),
2465
- material: z107.enum(["fr4", "fr1"]).default("fr4"),
2472
+ num_layers: z108.number().optional().default(4),
2473
+ outline: z108.array(point).optional(),
2474
+ shape: z108.enum(["rect", "polygon"]).optional(),
2475
+ material: z108.enum(["fr4", "fr1"]).default("fr4"),
2466
2476
  anchor_position: point.optional(),
2467
2477
  anchor_alignment: ninePointAnchor.optional(),
2468
- position_mode: z107.enum(["relative_to_panel_anchor", "none"]).optional()
2469
- }).describe("Defines the board outline of the PCB");
2478
+ position_mode: z108.enum(["relative_to_panel_anchor", "none"]).optional()
2479
+ }).merge(manufacturing_drc_properties).describe("Defines the board outline of the PCB");
2470
2480
  expectTypesMatch(true);
2471
2481
 
2472
2482
  // src/pcb/pcb_panel.ts
2473
- import { z as z108 } from "zod";
2474
- var pcb_panel = z108.object({
2475
- type: z108.literal("pcb_panel"),
2483
+ import { z as z109 } from "zod";
2484
+ var pcb_panel = z109.object({
2485
+ type: z109.literal("pcb_panel"),
2476
2486
  pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
2477
2487
  width: length,
2478
2488
  height: length,
2479
2489
  center: point,
2480
2490
  thickness: length.optional().default(1.4),
2481
- covered_with_solder_mask: z108.boolean().optional().default(true)
2491
+ covered_with_solder_mask: z109.boolean().optional().default(true)
2482
2492
  }).describe("Defines a PCB panel that can contain multiple boards");
2483
2493
  expectTypesMatch(true);
2484
2494
 
2485
2495
  // src/pcb/pcb_placement_error.ts
2486
- import { z as z109 } from "zod";
2496
+ import { z as z110 } from "zod";
2487
2497
  var pcb_placement_error = base_circuit_json_error.extend({
2488
- type: z109.literal("pcb_placement_error"),
2498
+ type: z110.literal("pcb_placement_error"),
2489
2499
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
2490
- error_type: z109.literal("pcb_placement_error").default("pcb_placement_error"),
2491
- subcircuit_id: z109.string().optional()
2500
+ error_type: z110.literal("pcb_placement_error").default("pcb_placement_error"),
2501
+ subcircuit_id: z110.string().optional()
2492
2502
  }).describe("Defines a placement error on the PCB");
2493
2503
  expectTypesMatch(true);
2494
2504
 
2495
2505
  // src/pcb/pcb_panelization_placement_error.ts
2496
- import { z as z110 } from "zod";
2506
+ import { z as z111 } from "zod";
2497
2507
  var pcb_panelization_placement_error = base_circuit_json_error.extend({
2498
- type: z110.literal("pcb_panelization_placement_error"),
2508
+ type: z111.literal("pcb_panelization_placement_error"),
2499
2509
  pcb_panelization_placement_error_id: getZodPrefixedIdWithDefault(
2500
2510
  "pcb_panelization_placement_error"
2501
2511
  ),
2502
- error_type: z110.literal("pcb_panelization_placement_error").default("pcb_panelization_placement_error"),
2503
- pcb_panel_id: z110.string().optional(),
2504
- pcb_board_id: z110.string().optional(),
2505
- subcircuit_id: z110.string().optional()
2512
+ error_type: z111.literal("pcb_panelization_placement_error").default("pcb_panelization_placement_error"),
2513
+ pcb_panel_id: z111.string().optional(),
2514
+ pcb_board_id: z111.string().optional(),
2515
+ subcircuit_id: z111.string().optional()
2506
2516
  }).describe("Defines a panelization placement error on the PCB");
2507
2517
  expectTypesMatch(true);
2508
2518
 
2509
2519
  // src/pcb/pcb_trace_hint.ts
2510
- import { z as z111 } from "zod";
2511
- var pcb_trace_hint = z111.object({
2512
- type: z111.literal("pcb_trace_hint"),
2520
+ import { z as z112 } from "zod";
2521
+ var pcb_trace_hint = z112.object({
2522
+ type: z112.literal("pcb_trace_hint"),
2513
2523
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
2514
- pcb_port_id: z111.string(),
2515
- pcb_component_id: z111.string(),
2516
- route: z111.array(route_hint_point),
2517
- subcircuit_id: z111.string().optional()
2524
+ pcb_port_id: z112.string(),
2525
+ pcb_component_id: z112.string(),
2526
+ route: z112.array(route_hint_point),
2527
+ subcircuit_id: z112.string().optional()
2518
2528
  }).describe("A hint that can be used during generation of a PCB trace");
2519
2529
  expectTypesMatch(true);
2520
2530
 
2521
2531
  // src/pcb/pcb_silkscreen_line.ts
2522
- import { z as z112 } from "zod";
2523
- var pcb_silkscreen_line = z112.object({
2524
- type: z112.literal("pcb_silkscreen_line"),
2532
+ import { z as z113 } from "zod";
2533
+ var pcb_silkscreen_line = z113.object({
2534
+ type: z113.literal("pcb_silkscreen_line"),
2525
2535
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
2526
- pcb_component_id: z112.string(),
2527
- pcb_group_id: z112.string().optional(),
2528
- subcircuit_id: z112.string().optional(),
2536
+ pcb_component_id: z113.string(),
2537
+ pcb_group_id: z113.string().optional(),
2538
+ subcircuit_id: z113.string().optional(),
2529
2539
  stroke_width: distance.default("0.1mm"),
2530
2540
  x1: distance,
2531
2541
  y1: distance,
@@ -2536,32 +2546,32 @@ var pcb_silkscreen_line = z112.object({
2536
2546
  expectTypesMatch(true);
2537
2547
 
2538
2548
  // src/pcb/pcb_silkscreen_path.ts
2539
- import { z as z113 } from "zod";
2540
- var pcb_silkscreen_path = z113.object({
2541
- type: z113.literal("pcb_silkscreen_path"),
2549
+ import { z as z114 } from "zod";
2550
+ var pcb_silkscreen_path = z114.object({
2551
+ type: z114.literal("pcb_silkscreen_path"),
2542
2552
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
2543
- pcb_component_id: z113.string(),
2544
- pcb_group_id: z113.string().optional(),
2545
- subcircuit_id: z113.string().optional(),
2553
+ pcb_component_id: z114.string(),
2554
+ pcb_group_id: z114.string().optional(),
2555
+ subcircuit_id: z114.string().optional(),
2546
2556
  layer: visible_layer,
2547
- route: z113.array(point),
2557
+ route: z114.array(point),
2548
2558
  stroke_width: length
2549
2559
  }).describe("Defines a silkscreen path on the PCB");
2550
2560
  expectTypesMatch(true);
2551
2561
 
2552
2562
  // src/pcb/pcb_silkscreen_text.ts
2553
- import { z as z114 } from "zod";
2554
- var pcb_silkscreen_text = z114.object({
2555
- type: z114.literal("pcb_silkscreen_text"),
2563
+ import { z as z115 } from "zod";
2564
+ var pcb_silkscreen_text = z115.object({
2565
+ type: z115.literal("pcb_silkscreen_text"),
2556
2566
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
2557
- pcb_group_id: z114.string().optional(),
2558
- subcircuit_id: z114.string().optional(),
2559
- font: z114.literal("tscircuit2024").default("tscircuit2024"),
2567
+ pcb_group_id: z115.string().optional(),
2568
+ subcircuit_id: z115.string().optional(),
2569
+ font: z115.literal("tscircuit2024").default("tscircuit2024"),
2560
2570
  font_size: distance.default("0.2mm"),
2561
- pcb_component_id: z114.string(),
2562
- text: z114.string(),
2563
- is_knockout: z114.boolean().default(false).optional(),
2564
- knockout_padding: z114.object({
2571
+ pcb_component_id: z115.string(),
2572
+ text: z115.string(),
2573
+ is_knockout: z115.boolean().default(false).optional(),
2574
+ knockout_padding: z115.object({
2565
2575
  left: length,
2566
2576
  top: length,
2567
2577
  bottom: length,
@@ -2572,27 +2582,27 @@ var pcb_silkscreen_text = z114.object({
2572
2582
  bottom: "0.2mm",
2573
2583
  right: "0.2mm"
2574
2584
  }).optional(),
2575
- ccw_rotation: z114.number().optional(),
2585
+ ccw_rotation: z115.number().optional(),
2576
2586
  layer: layer_ref,
2577
- is_mirrored: z114.boolean().default(false).optional(),
2587
+ is_mirrored: z115.boolean().default(false).optional(),
2578
2588
  anchor_position: point.default({ x: 0, y: 0 }),
2579
2589
  anchor_alignment: ninePointAnchor.default("center")
2580
2590
  }).describe("Defines silkscreen text on the PCB");
2581
2591
  expectTypesMatch(true);
2582
2592
 
2583
2593
  // src/pcb/pcb_copper_text.ts
2584
- import { z as z115 } from "zod";
2585
- var pcb_copper_text = z115.object({
2586
- type: z115.literal("pcb_copper_text"),
2594
+ import { z as z116 } from "zod";
2595
+ var pcb_copper_text = z116.object({
2596
+ type: z116.literal("pcb_copper_text"),
2587
2597
  pcb_copper_text_id: getZodPrefixedIdWithDefault("pcb_copper_text"),
2588
- pcb_group_id: z115.string().optional(),
2589
- subcircuit_id: z115.string().optional(),
2590
- font: z115.literal("tscircuit2024").default("tscircuit2024"),
2598
+ pcb_group_id: z116.string().optional(),
2599
+ subcircuit_id: z116.string().optional(),
2600
+ font: z116.literal("tscircuit2024").default("tscircuit2024"),
2591
2601
  font_size: distance.default("0.2mm"),
2592
- pcb_component_id: z115.string(),
2593
- text: z115.string(),
2594
- is_knockout: z115.boolean().default(false).optional(),
2595
- knockout_padding: z115.object({
2602
+ pcb_component_id: z116.string(),
2603
+ text: z116.string(),
2604
+ is_knockout: z116.boolean().default(false).optional(),
2605
+ knockout_padding: z116.object({
2596
2606
  left: length,
2597
2607
  top: length,
2598
2608
  bottom: length,
@@ -2603,61 +2613,61 @@ var pcb_copper_text = z115.object({
2603
2613
  bottom: "0.2mm",
2604
2614
  right: "0.2mm"
2605
2615
  }).optional(),
2606
- ccw_rotation: z115.number().optional(),
2616
+ ccw_rotation: z116.number().optional(),
2607
2617
  layer: layer_ref,
2608
- is_mirrored: z115.boolean().default(false).optional(),
2618
+ is_mirrored: z116.boolean().default(false).optional(),
2609
2619
  anchor_position: point.default({ x: 0, y: 0 }),
2610
2620
  anchor_alignment: ninePointAnchor.default("center")
2611
2621
  }).describe("Defines copper text on the PCB");
2612
2622
  expectTypesMatch(true);
2613
2623
 
2614
2624
  // src/pcb/pcb_silkscreen_rect.ts
2615
- import { z as z116 } from "zod";
2616
- var pcb_silkscreen_rect = z116.object({
2617
- type: z116.literal("pcb_silkscreen_rect"),
2625
+ import { z as z117 } from "zod";
2626
+ var pcb_silkscreen_rect = z117.object({
2627
+ type: z117.literal("pcb_silkscreen_rect"),
2618
2628
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
2619
- pcb_component_id: z116.string(),
2620
- pcb_group_id: z116.string().optional(),
2621
- subcircuit_id: z116.string().optional(),
2629
+ pcb_component_id: z117.string(),
2630
+ pcb_group_id: z117.string().optional(),
2631
+ subcircuit_id: z117.string().optional(),
2622
2632
  center: point,
2623
2633
  width: length,
2624
2634
  height: length,
2625
2635
  layer: layer_ref,
2626
2636
  stroke_width: length.default("1mm"),
2627
2637
  corner_radius: length.optional(),
2628
- is_filled: z116.boolean().default(true).optional(),
2629
- has_stroke: z116.boolean().optional(),
2630
- is_stroke_dashed: z116.boolean().optional(),
2631
- ccw_rotation: z116.number().optional()
2638
+ is_filled: z117.boolean().default(true).optional(),
2639
+ has_stroke: z117.boolean().optional(),
2640
+ is_stroke_dashed: z117.boolean().optional(),
2641
+ ccw_rotation: z117.number().optional()
2632
2642
  }).describe("Defines a silkscreen rect on the PCB");
2633
2643
  expectTypesMatch(true);
2634
2644
 
2635
2645
  // src/pcb/pcb_silkscreen_circle.ts
2636
- import { z as z117 } from "zod";
2637
- var pcb_silkscreen_circle = z117.object({
2638
- type: z117.literal("pcb_silkscreen_circle"),
2646
+ import { z as z118 } from "zod";
2647
+ var pcb_silkscreen_circle = z118.object({
2648
+ type: z118.literal("pcb_silkscreen_circle"),
2639
2649
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
2640
2650
  "pcb_silkscreen_circle"
2641
2651
  ),
2642
- pcb_component_id: z117.string(),
2643
- pcb_group_id: z117.string().optional(),
2644
- subcircuit_id: z117.string().optional(),
2652
+ pcb_component_id: z118.string(),
2653
+ pcb_group_id: z118.string().optional(),
2654
+ subcircuit_id: z118.string().optional(),
2645
2655
  center: point,
2646
2656
  radius: length,
2647
2657
  layer: visible_layer,
2648
2658
  stroke_width: length.default("1mm"),
2649
- is_filled: z117.boolean().optional()
2659
+ is_filled: z118.boolean().optional()
2650
2660
  }).describe("Defines a silkscreen circle on the PCB");
2651
2661
  expectTypesMatch(true);
2652
2662
 
2653
2663
  // src/pcb/pcb_silkscreen_oval.ts
2654
- import { z as z118 } from "zod";
2655
- var pcb_silkscreen_oval = z118.object({
2656
- type: z118.literal("pcb_silkscreen_oval"),
2664
+ import { z as z119 } from "zod";
2665
+ var pcb_silkscreen_oval = z119.object({
2666
+ type: z119.literal("pcb_silkscreen_oval"),
2657
2667
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
2658
- pcb_component_id: z118.string(),
2659
- pcb_group_id: z118.string().optional(),
2660
- subcircuit_id: z118.string().optional(),
2668
+ pcb_component_id: z119.string(),
2669
+ pcb_group_id: z119.string().optional(),
2670
+ subcircuit_id: z119.string().optional(),
2661
2671
  center: point,
2662
2672
  radius_x: distance,
2663
2673
  radius_y: distance,
@@ -2667,240 +2677,240 @@ var pcb_silkscreen_oval = z118.object({
2667
2677
  expectTypesMatch(true);
2668
2678
 
2669
2679
  // src/pcb/pcb_silkscreen_pill.ts
2670
- import { z as z119 } from "zod";
2671
- var pcb_silkscreen_pill = z119.object({
2672
- type: z119.literal("pcb_silkscreen_pill"),
2680
+ import { z as z120 } from "zod";
2681
+ var pcb_silkscreen_pill = z120.object({
2682
+ type: z120.literal("pcb_silkscreen_pill"),
2673
2683
  pcb_silkscreen_pill_id: getZodPrefixedIdWithDefault("pcb_silkscreen_pill"),
2674
- pcb_component_id: z119.string(),
2675
- pcb_group_id: z119.string().optional(),
2676
- subcircuit_id: z119.string().optional(),
2684
+ pcb_component_id: z120.string(),
2685
+ pcb_group_id: z120.string().optional(),
2686
+ subcircuit_id: z120.string().optional(),
2677
2687
  center: point,
2678
2688
  width: length,
2679
2689
  height: length,
2680
2690
  layer: layer_ref,
2681
- ccw_rotation: z119.number().optional()
2691
+ ccw_rotation: z120.number().optional()
2682
2692
  }).describe("Defines a silkscreen pill on the PCB");
2683
2693
  expectTypesMatch(true);
2684
2694
 
2685
2695
  // src/pcb/pcb_fabrication_note_text.ts
2686
- import { z as z120 } from "zod";
2687
- var pcb_fabrication_note_text = z120.object({
2688
- type: z120.literal("pcb_fabrication_note_text"),
2696
+ import { z as z121 } from "zod";
2697
+ var pcb_fabrication_note_text = z121.object({
2698
+ type: z121.literal("pcb_fabrication_note_text"),
2689
2699
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
2690
2700
  "pcb_fabrication_note_text"
2691
2701
  ),
2692
- subcircuit_id: z120.string().optional(),
2693
- pcb_group_id: z120.string().optional(),
2694
- font: z120.literal("tscircuit2024").default("tscircuit2024"),
2702
+ subcircuit_id: z121.string().optional(),
2703
+ pcb_group_id: z121.string().optional(),
2704
+ font: z121.literal("tscircuit2024").default("tscircuit2024"),
2695
2705
  font_size: distance.default("1mm"),
2696
- pcb_component_id: z120.string(),
2697
- text: z120.string(),
2706
+ pcb_component_id: z121.string(),
2707
+ text: z121.string(),
2698
2708
  layer: visible_layer,
2699
2709
  anchor_position: point.default({ x: 0, y: 0 }),
2700
- anchor_alignment: z120.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2701
- color: z120.string().optional()
2710
+ anchor_alignment: z121.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2711
+ color: z121.string().optional()
2702
2712
  }).describe(
2703
2713
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
2704
2714
  );
2705
2715
  expectTypesMatch(true);
2706
2716
 
2707
2717
  // src/pcb/pcb_fabrication_note_path.ts
2708
- import { z as z121 } from "zod";
2709
- var pcb_fabrication_note_path = z121.object({
2710
- type: z121.literal("pcb_fabrication_note_path"),
2718
+ import { z as z122 } from "zod";
2719
+ var pcb_fabrication_note_path = z122.object({
2720
+ type: z122.literal("pcb_fabrication_note_path"),
2711
2721
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
2712
2722
  "pcb_fabrication_note_path"
2713
2723
  ),
2714
- pcb_component_id: z121.string(),
2715
- subcircuit_id: z121.string().optional(),
2724
+ pcb_component_id: z122.string(),
2725
+ subcircuit_id: z122.string().optional(),
2716
2726
  layer: layer_ref,
2717
- route: z121.array(point),
2727
+ route: z122.array(point),
2718
2728
  stroke_width: length,
2719
- color: z121.string().optional()
2729
+ color: z122.string().optional()
2720
2730
  }).describe(
2721
2731
  "Defines a fabrication path on the PCB for fabricators or assemblers"
2722
2732
  );
2723
2733
  expectTypesMatch(true);
2724
2734
 
2725
2735
  // src/pcb/pcb_fabrication_note_rect.ts
2726
- import { z as z122 } from "zod";
2727
- var pcb_fabrication_note_rect = z122.object({
2728
- type: z122.literal("pcb_fabrication_note_rect"),
2736
+ import { z as z123 } from "zod";
2737
+ var pcb_fabrication_note_rect = z123.object({
2738
+ type: z123.literal("pcb_fabrication_note_rect"),
2729
2739
  pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
2730
2740
  "pcb_fabrication_note_rect"
2731
2741
  ),
2732
- pcb_component_id: z122.string(),
2733
- pcb_group_id: z122.string().optional(),
2734
- subcircuit_id: z122.string().optional(),
2742
+ pcb_component_id: z123.string(),
2743
+ pcb_group_id: z123.string().optional(),
2744
+ subcircuit_id: z123.string().optional(),
2735
2745
  center: point,
2736
2746
  width: length,
2737
2747
  height: length,
2738
2748
  layer: visible_layer,
2739
2749
  stroke_width: length.default("0.1mm"),
2740
2750
  corner_radius: length.optional(),
2741
- is_filled: z122.boolean().optional(),
2742
- has_stroke: z122.boolean().optional(),
2743
- is_stroke_dashed: z122.boolean().optional(),
2744
- color: z122.string().optional()
2751
+ is_filled: z123.boolean().optional(),
2752
+ has_stroke: z123.boolean().optional(),
2753
+ is_stroke_dashed: z123.boolean().optional(),
2754
+ color: z123.string().optional()
2745
2755
  }).describe("Defines a fabrication note rectangle on the PCB");
2746
2756
  expectTypesMatch(true);
2747
2757
 
2748
2758
  // src/pcb/pcb_fabrication_note_dimension.ts
2749
- import { z as z123 } from "zod";
2750
- var pcb_fabrication_note_dimension = z123.object({
2751
- type: z123.literal("pcb_fabrication_note_dimension"),
2759
+ import { z as z124 } from "zod";
2760
+ var pcb_fabrication_note_dimension = z124.object({
2761
+ type: z124.literal("pcb_fabrication_note_dimension"),
2752
2762
  pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
2753
2763
  "pcb_fabrication_note_dimension"
2754
2764
  ),
2755
- pcb_component_id: z123.string(),
2756
- pcb_group_id: z123.string().optional(),
2757
- subcircuit_id: z123.string().optional(),
2765
+ pcb_component_id: z124.string(),
2766
+ pcb_group_id: z124.string().optional(),
2767
+ subcircuit_id: z124.string().optional(),
2758
2768
  layer: visible_layer,
2759
2769
  from: point,
2760
2770
  to: point,
2761
- text: z123.string().optional(),
2762
- text_ccw_rotation: z123.number().optional(),
2771
+ text: z124.string().optional(),
2772
+ text_ccw_rotation: z124.number().optional(),
2763
2773
  offset: length.optional(),
2764
2774
  offset_distance: length.optional(),
2765
- offset_direction: z123.object({
2766
- x: z123.number(),
2767
- y: z123.number()
2775
+ offset_direction: z124.object({
2776
+ x: z124.number(),
2777
+ y: z124.number()
2768
2778
  }).optional(),
2769
- font: z123.literal("tscircuit2024").default("tscircuit2024"),
2779
+ font: z124.literal("tscircuit2024").default("tscircuit2024"),
2770
2780
  font_size: length.default("1mm"),
2771
- color: z123.string().optional(),
2781
+ color: z124.string().optional(),
2772
2782
  arrow_size: length.default("1mm")
2773
2783
  }).describe("Defines a measurement annotation within PCB fabrication notes");
2774
2784
  expectTypesMatch(true);
2775
2785
 
2776
2786
  // src/pcb/pcb_note_text.ts
2777
- import { z as z124 } from "zod";
2778
- var pcb_note_text = z124.object({
2779
- type: z124.literal("pcb_note_text"),
2780
- pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
2781
- pcb_component_id: z124.string().optional(),
2782
- pcb_group_id: z124.string().optional(),
2783
- subcircuit_id: z124.string().optional(),
2784
- name: z124.string().optional(),
2785
- font: z124.literal("tscircuit2024").default("tscircuit2024"),
2786
- font_size: distance.default("1mm"),
2787
- text: z124.string().optional(),
2788
- anchor_position: point.default({ x: 0, y: 0 }),
2789
- anchor_alignment: z124.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2790
- layer: visible_layer.default("top"),
2791
- color: z124.string().optional()
2792
- }).describe("Defines a documentation note in text on the PCB");
2793
- expectTypesMatch(true);
2794
-
2795
- // src/pcb/pcb_note_rect.ts
2796
2787
  import { z as z125 } from "zod";
2797
- var pcb_note_rect = z125.object({
2798
- type: z125.literal("pcb_note_rect"),
2799
- pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
2788
+ var pcb_note_text = z125.object({
2789
+ type: z125.literal("pcb_note_text"),
2790
+ pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
2800
2791
  pcb_component_id: z125.string().optional(),
2801
2792
  pcb_group_id: z125.string().optional(),
2802
2793
  subcircuit_id: z125.string().optional(),
2803
2794
  name: z125.string().optional(),
2795
+ font: z125.literal("tscircuit2024").default("tscircuit2024"),
2796
+ font_size: distance.default("1mm"),
2804
2797
  text: z125.string().optional(),
2805
- center: point,
2806
- width: length,
2807
- height: length,
2798
+ anchor_position: point.default({ x: 0, y: 0 }),
2799
+ anchor_alignment: z125.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2808
2800
  layer: visible_layer.default("top"),
2809
- stroke_width: length.default("0.1mm"),
2810
- corner_radius: length.optional(),
2811
- is_filled: z125.boolean().optional(),
2812
- has_stroke: z125.boolean().optional(),
2813
- is_stroke_dashed: z125.boolean().optional(),
2814
2801
  color: z125.string().optional()
2815
- }).describe("Defines a rectangular documentation note on the PCB");
2802
+ }).describe("Defines a documentation note in text on the PCB");
2816
2803
  expectTypesMatch(true);
2817
2804
 
2818
- // src/pcb/pcb_note_path.ts
2805
+ // src/pcb/pcb_note_rect.ts
2819
2806
  import { z as z126 } from "zod";
2820
- var pcb_note_path = z126.object({
2821
- type: z126.literal("pcb_note_path"),
2822
- pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
2807
+ var pcb_note_rect = z126.object({
2808
+ type: z126.literal("pcb_note_rect"),
2809
+ pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
2823
2810
  pcb_component_id: z126.string().optional(),
2824
2811
  pcb_group_id: z126.string().optional(),
2825
2812
  subcircuit_id: z126.string().optional(),
2826
2813
  name: z126.string().optional(),
2827
2814
  text: z126.string().optional(),
2828
- route: z126.array(point),
2815
+ center: point,
2816
+ width: length,
2817
+ height: length,
2829
2818
  layer: visible_layer.default("top"),
2830
2819
  stroke_width: length.default("0.1mm"),
2820
+ corner_radius: length.optional(),
2821
+ is_filled: z126.boolean().optional(),
2822
+ has_stroke: z126.boolean().optional(),
2823
+ is_stroke_dashed: z126.boolean().optional(),
2831
2824
  color: z126.string().optional()
2832
- }).describe("Defines a polyline documentation note on the PCB");
2825
+ }).describe("Defines a rectangular documentation note on the PCB");
2833
2826
  expectTypesMatch(true);
2834
2827
 
2835
- // src/pcb/pcb_note_line.ts
2828
+ // src/pcb/pcb_note_path.ts
2836
2829
  import { z as z127 } from "zod";
2837
- var pcb_note_line = z127.object({
2838
- type: z127.literal("pcb_note_line"),
2839
- pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
2830
+ var pcb_note_path = z127.object({
2831
+ type: z127.literal("pcb_note_path"),
2832
+ pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
2840
2833
  pcb_component_id: z127.string().optional(),
2841
2834
  pcb_group_id: z127.string().optional(),
2842
2835
  subcircuit_id: z127.string().optional(),
2843
2836
  name: z127.string().optional(),
2844
2837
  text: z127.string().optional(),
2838
+ route: z127.array(point),
2839
+ layer: visible_layer.default("top"),
2840
+ stroke_width: length.default("0.1mm"),
2841
+ color: z127.string().optional()
2842
+ }).describe("Defines a polyline documentation note on the PCB");
2843
+ expectTypesMatch(true);
2844
+
2845
+ // src/pcb/pcb_note_line.ts
2846
+ import { z as z128 } from "zod";
2847
+ var pcb_note_line = z128.object({
2848
+ type: z128.literal("pcb_note_line"),
2849
+ pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
2850
+ pcb_component_id: z128.string().optional(),
2851
+ pcb_group_id: z128.string().optional(),
2852
+ subcircuit_id: z128.string().optional(),
2853
+ name: z128.string().optional(),
2854
+ text: z128.string().optional(),
2845
2855
  x1: distance,
2846
2856
  y1: distance,
2847
2857
  x2: distance,
2848
2858
  y2: distance,
2849
2859
  layer: visible_layer.default("top"),
2850
2860
  stroke_width: distance.default("0.1mm"),
2851
- color: z127.string().optional(),
2852
- is_dashed: z127.boolean().optional()
2861
+ color: z128.string().optional(),
2862
+ is_dashed: z128.boolean().optional()
2853
2863
  }).describe("Defines a straight documentation note line on the PCB");
2854
2864
  expectTypesMatch(true);
2855
2865
 
2856
2866
  // src/pcb/pcb_note_dimension.ts
2857
- import { z as z128 } from "zod";
2858
- var pcb_note_dimension = z128.object({
2859
- type: z128.literal("pcb_note_dimension"),
2867
+ import { z as z129 } from "zod";
2868
+ var pcb_note_dimension = z129.object({
2869
+ type: z129.literal("pcb_note_dimension"),
2860
2870
  pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
2861
- pcb_component_id: z128.string().optional(),
2862
- pcb_group_id: z128.string().optional(),
2863
- subcircuit_id: z128.string().optional(),
2864
- name: z128.string().optional(),
2871
+ pcb_component_id: z129.string().optional(),
2872
+ pcb_group_id: z129.string().optional(),
2873
+ subcircuit_id: z129.string().optional(),
2874
+ name: z129.string().optional(),
2865
2875
  from: point,
2866
2876
  to: point,
2867
- text: z128.string().optional(),
2868
- text_ccw_rotation: z128.number().optional(),
2877
+ text: z129.string().optional(),
2878
+ text_ccw_rotation: z129.number().optional(),
2869
2879
  offset_distance: length.optional(),
2870
- offset_direction: z128.object({
2871
- x: z128.number(),
2872
- y: z128.number()
2880
+ offset_direction: z129.object({
2881
+ x: z129.number(),
2882
+ y: z129.number()
2873
2883
  }).optional(),
2874
- font: z128.literal("tscircuit2024").default("tscircuit2024"),
2884
+ font: z129.literal("tscircuit2024").default("tscircuit2024"),
2875
2885
  font_size: length.default("1mm"),
2876
2886
  layer: visible_layer.default("top"),
2877
- color: z128.string().optional(),
2887
+ color: z129.string().optional(),
2878
2888
  arrow_size: length.default("1mm")
2879
2889
  }).describe("Defines a measurement annotation within PCB documentation notes");
2880
2890
  expectTypesMatch(true);
2881
2891
 
2882
2892
  // src/pcb/pcb_footprint_overlap_error.ts
2883
- import { z as z129 } from "zod";
2893
+ import { z as z130 } from "zod";
2884
2894
  var pcb_footprint_overlap_error = base_circuit_json_error.extend({
2885
- type: z129.literal("pcb_footprint_overlap_error"),
2895
+ type: z130.literal("pcb_footprint_overlap_error"),
2886
2896
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2887
- error_type: z129.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
2888
- pcb_smtpad_ids: z129.array(z129.string()).optional(),
2889
- pcb_plated_hole_ids: z129.array(z129.string()).optional(),
2890
- pcb_hole_ids: z129.array(z129.string()).optional(),
2891
- pcb_keepout_ids: z129.array(z129.string()).optional()
2897
+ error_type: z130.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
2898
+ pcb_smtpad_ids: z130.array(z130.string()).optional(),
2899
+ pcb_plated_hole_ids: z130.array(z130.string()).optional(),
2900
+ pcb_hole_ids: z130.array(z130.string()).optional(),
2901
+ pcb_keepout_ids: z130.array(z130.string()).optional()
2892
2902
  }).describe("Error emitted when a pcb footprint overlaps with another element");
2893
2903
  expectTypesMatch(
2894
2904
  true
2895
2905
  );
2896
2906
 
2897
2907
  // src/pcb/pcb_courtyard_overlap_error.ts
2898
- import { z as z130 } from "zod";
2908
+ import { z as z131 } from "zod";
2899
2909
  var pcb_courtyard_overlap_error = base_circuit_json_error.extend({
2900
- type: z130.literal("pcb_courtyard_overlap_error"),
2910
+ type: z131.literal("pcb_courtyard_overlap_error"),
2901
2911
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2902
- error_type: z130.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
2903
- pcb_component_ids: z130.tuple([z130.string(), z130.string()])
2912
+ error_type: z131.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
2913
+ pcb_component_ids: z131.tuple([z131.string(), z131.string()])
2904
2914
  }).describe(
2905
2915
  "Error emitted when the courtyard (CrtYd) of one PCB component overlaps with the courtyard of another"
2906
2916
  );
@@ -2909,49 +2919,49 @@ expectTypesMatch(
2909
2919
  );
2910
2920
 
2911
2921
  // src/pcb/pcb_keepout.ts
2912
- import { z as z131 } from "zod";
2913
- var pcb_keepout = z131.object({
2914
- type: z131.literal("pcb_keepout"),
2915
- shape: z131.literal("rect"),
2916
- pcb_group_id: z131.string().optional(),
2917
- subcircuit_id: z131.string().optional(),
2922
+ import { z as z132 } from "zod";
2923
+ var pcb_keepout = z132.object({
2924
+ type: z132.literal("pcb_keepout"),
2925
+ shape: z132.literal("rect"),
2926
+ pcb_group_id: z132.string().optional(),
2927
+ subcircuit_id: z132.string().optional(),
2918
2928
  center: point,
2919
2929
  width: distance,
2920
2930
  height: distance,
2921
- pcb_keepout_id: z131.string(),
2922
- layers: z131.array(z131.string()),
2931
+ pcb_keepout_id: z132.string(),
2932
+ layers: z132.array(z132.string()),
2923
2933
  // Specify layers where the keepout applies
2924
- description: z131.string().optional()
2934
+ description: z132.string().optional()
2925
2935
  // Optional description of the keepout
2926
2936
  }).or(
2927
- z131.object({
2928
- type: z131.literal("pcb_keepout"),
2929
- shape: z131.literal("circle"),
2930
- pcb_group_id: z131.string().optional(),
2931
- subcircuit_id: z131.string().optional(),
2937
+ z132.object({
2938
+ type: z132.literal("pcb_keepout"),
2939
+ shape: z132.literal("circle"),
2940
+ pcb_group_id: z132.string().optional(),
2941
+ subcircuit_id: z132.string().optional(),
2932
2942
  center: point,
2933
2943
  radius: distance,
2934
- pcb_keepout_id: z131.string(),
2935
- layers: z131.array(z131.string()),
2944
+ pcb_keepout_id: z132.string(),
2945
+ layers: z132.array(z132.string()),
2936
2946
  // Specify layers where the keepout applies
2937
- description: z131.string().optional()
2947
+ description: z132.string().optional()
2938
2948
  // Optional description of the keepout
2939
2949
  })
2940
2950
  );
2941
2951
  expectTypesMatch(true);
2942
2952
 
2943
2953
  // src/pcb/pcb_cutout.ts
2944
- import { z as z132 } from "zod";
2945
- var pcb_cutout_base = z132.object({
2946
- type: z132.literal("pcb_cutout"),
2954
+ import { z as z133 } from "zod";
2955
+ var pcb_cutout_base = z133.object({
2956
+ type: z133.literal("pcb_cutout"),
2947
2957
  pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
2948
- pcb_group_id: z132.string().optional(),
2949
- subcircuit_id: z132.string().optional(),
2950
- pcb_board_id: z132.string().optional(),
2951
- pcb_panel_id: z132.string().optional()
2958
+ pcb_group_id: z133.string().optional(),
2959
+ subcircuit_id: z133.string().optional(),
2960
+ pcb_board_id: z133.string().optional(),
2961
+ pcb_panel_id: z133.string().optional()
2952
2962
  });
2953
2963
  var pcb_cutout_rect = pcb_cutout_base.extend({
2954
- shape: z132.literal("rect"),
2964
+ shape: z133.literal("rect"),
2955
2965
  center: point,
2956
2966
  width: length,
2957
2967
  height: length,
@@ -2960,26 +2970,26 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
2960
2970
  });
2961
2971
  expectTypesMatch(true);
2962
2972
  var pcb_cutout_circle = pcb_cutout_base.extend({
2963
- shape: z132.literal("circle"),
2973
+ shape: z133.literal("circle"),
2964
2974
  center: point,
2965
2975
  radius: length
2966
2976
  });
2967
2977
  expectTypesMatch(true);
2968
2978
  var pcb_cutout_polygon = pcb_cutout_base.extend({
2969
- shape: z132.literal("polygon"),
2970
- points: z132.array(point)
2979
+ shape: z133.literal("polygon"),
2980
+ points: z133.array(point)
2971
2981
  });
2972
2982
  expectTypesMatch(true);
2973
2983
  var pcb_cutout_path = pcb_cutout_base.extend({
2974
- shape: z132.literal("path"),
2975
- route: z132.array(point),
2984
+ shape: z133.literal("path"),
2985
+ route: z133.array(point),
2976
2986
  slot_width: length,
2977
2987
  slot_length: length.optional(),
2978
2988
  space_between_slots: length.optional(),
2979
2989
  slot_corner_radius: length.optional()
2980
2990
  });
2981
2991
  expectTypesMatch(true);
2982
- var pcb_cutout = z132.discriminatedUnion("shape", [
2992
+ var pcb_cutout = z133.discriminatedUnion("shape", [
2983
2993
  pcb_cutout_rect,
2984
2994
  pcb_cutout_circle,
2985
2995
  pcb_cutout_polygon,
@@ -2988,147 +2998,147 @@ var pcb_cutout = z132.discriminatedUnion("shape", [
2988
2998
  expectTypesMatch(true);
2989
2999
 
2990
3000
  // src/pcb/pcb_missing_footprint_error.ts
2991
- import { z as z133 } from "zod";
3001
+ import { z as z134 } from "zod";
2992
3002
  var pcb_missing_footprint_error = base_circuit_json_error.extend({
2993
- type: z133.literal("pcb_missing_footprint_error"),
3003
+ type: z134.literal("pcb_missing_footprint_error"),
2994
3004
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
2995
3005
  "pcb_missing_footprint_error"
2996
3006
  ),
2997
- pcb_group_id: z133.string().optional(),
2998
- subcircuit_id: z133.string().optional(),
2999
- error_type: z133.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
3000
- source_component_id: z133.string()
3007
+ pcb_group_id: z134.string().optional(),
3008
+ subcircuit_id: z134.string().optional(),
3009
+ error_type: z134.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
3010
+ source_component_id: z134.string()
3001
3011
  }).describe("Defines a missing footprint error on the PCB");
3002
3012
  expectTypesMatch(
3003
3013
  true
3004
3014
  );
3005
3015
 
3006
3016
  // src/pcb/external_footprint_load_error.ts
3007
- import { z as z134 } from "zod";
3017
+ import { z as z135 } from "zod";
3008
3018
  var external_footprint_load_error = base_circuit_json_error.extend({
3009
- type: z134.literal("external_footprint_load_error"),
3019
+ type: z135.literal("external_footprint_load_error"),
3010
3020
  external_footprint_load_error_id: getZodPrefixedIdWithDefault(
3011
3021
  "external_footprint_load_error"
3012
3022
  ),
3013
- pcb_component_id: z134.string(),
3014
- source_component_id: z134.string(),
3015
- pcb_group_id: z134.string().optional(),
3016
- subcircuit_id: z134.string().optional(),
3017
- footprinter_string: z134.string().optional(),
3018
- error_type: z134.literal("external_footprint_load_error").default("external_footprint_load_error")
3023
+ pcb_component_id: z135.string(),
3024
+ source_component_id: z135.string(),
3025
+ pcb_group_id: z135.string().optional(),
3026
+ subcircuit_id: z135.string().optional(),
3027
+ footprinter_string: z135.string().optional(),
3028
+ error_type: z135.literal("external_footprint_load_error").default("external_footprint_load_error")
3019
3029
  }).describe("Defines an error when an external footprint fails to load");
3020
3030
  expectTypesMatch(true);
3021
3031
 
3022
3032
  // src/pcb/circuit_json_footprint_load_error.ts
3023
- import { z as z135 } from "zod";
3033
+ import { z as z136 } from "zod";
3024
3034
  var circuit_json_footprint_load_error = base_circuit_json_error.extend({
3025
- type: z135.literal("circuit_json_footprint_load_error"),
3035
+ type: z136.literal("circuit_json_footprint_load_error"),
3026
3036
  circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
3027
3037
  "circuit_json_footprint_load_error"
3028
3038
  ),
3029
- pcb_component_id: z135.string(),
3030
- source_component_id: z135.string(),
3031
- pcb_group_id: z135.string().optional(),
3032
- subcircuit_id: z135.string().optional(),
3033
- error_type: z135.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
3034
- circuit_json: z135.array(z135.any()).optional()
3039
+ pcb_component_id: z136.string(),
3040
+ source_component_id: z136.string(),
3041
+ pcb_group_id: z136.string().optional(),
3042
+ subcircuit_id: z136.string().optional(),
3043
+ error_type: z136.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
3044
+ circuit_json: z136.array(z136.any()).optional()
3035
3045
  }).describe("Defines an error when a circuit JSON footprint fails to load");
3036
3046
  expectTypesMatch(true);
3037
3047
 
3038
3048
  // src/pcb/pcb_group.ts
3039
- import { z as z136 } from "zod";
3040
- var pcb_group = z136.object({
3041
- type: z136.literal("pcb_group"),
3049
+ import { z as z137 } from "zod";
3050
+ var pcb_group = z137.object({
3051
+ type: z137.literal("pcb_group"),
3042
3052
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
3043
- source_group_id: z136.string(),
3044
- is_subcircuit: z136.boolean().optional(),
3045
- subcircuit_id: z136.string().optional(),
3053
+ source_group_id: z137.string(),
3054
+ is_subcircuit: z137.boolean().optional(),
3055
+ subcircuit_id: z137.string().optional(),
3046
3056
  width: length.optional(),
3047
3057
  height: length.optional(),
3048
3058
  center: point,
3049
- display_offset_x: z136.string().optional().describe(
3059
+ display_offset_x: z137.string().optional().describe(
3050
3060
  "How to display the x offset for this group, usually corresponding with how the user specified it"
3051
3061
  ),
3052
- display_offset_y: z136.string().optional().describe(
3062
+ display_offset_y: z137.string().optional().describe(
3053
3063
  "How to display the y offset for this group, usually corresponding with how the user specified it"
3054
3064
  ),
3055
- outline: z136.array(point).optional(),
3065
+ outline: z137.array(point).optional(),
3056
3066
  anchor_position: point.optional(),
3057
3067
  anchor_alignment: ninePointAnchor.default("center"),
3058
- position_mode: z136.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
3059
- positioned_relative_to_pcb_group_id: z136.string().optional(),
3060
- positioned_relative_to_pcb_board_id: z136.string().optional(),
3061
- pcb_component_ids: z136.array(z136.string()),
3062
- child_layout_mode: z136.enum(["packed", "none"]).optional(),
3063
- name: z136.string().optional(),
3064
- description: z136.string().optional(),
3065
- layout_mode: z136.string().optional(),
3066
- autorouter_configuration: z136.object({
3068
+ position_mode: z137.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
3069
+ positioned_relative_to_pcb_group_id: z137.string().optional(),
3070
+ positioned_relative_to_pcb_board_id: z137.string().optional(),
3071
+ pcb_component_ids: z137.array(z137.string()),
3072
+ child_layout_mode: z137.enum(["packed", "none"]).optional(),
3073
+ name: z137.string().optional(),
3074
+ description: z137.string().optional(),
3075
+ layout_mode: z137.string().optional(),
3076
+ autorouter_configuration: z137.object({
3067
3077
  trace_clearance: length
3068
3078
  }).optional(),
3069
- autorouter_used_string: z136.string().optional()
3079
+ autorouter_used_string: z137.string().optional()
3070
3080
  }).describe("Defines a group of components on the PCB");
3071
3081
  expectTypesMatch(true);
3072
3082
 
3073
3083
  // src/pcb/pcb_autorouting_error.ts
3074
- import { z as z137 } from "zod";
3084
+ import { z as z138 } from "zod";
3075
3085
  var pcb_autorouting_error = base_circuit_json_error.extend({
3076
- type: z137.literal("pcb_autorouting_error"),
3086
+ type: z138.literal("pcb_autorouting_error"),
3077
3087
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
3078
- error_type: z137.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
3079
- subcircuit_id: z137.string().optional()
3088
+ error_type: z138.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
3089
+ subcircuit_id: z138.string().optional()
3080
3090
  }).describe("The autorouting has failed to route a portion of the board");
3081
3091
  expectTypesMatch(true);
3082
3092
 
3083
3093
  // src/pcb/pcb_manual_edit_conflict_warning.ts
3084
- import { z as z138 } from "zod";
3085
- var pcb_manual_edit_conflict_warning = z138.object({
3086
- type: z138.literal("pcb_manual_edit_conflict_warning"),
3094
+ import { z as z139 } from "zod";
3095
+ var pcb_manual_edit_conflict_warning = z139.object({
3096
+ type: z139.literal("pcb_manual_edit_conflict_warning"),
3087
3097
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
3088
3098
  "pcb_manual_edit_conflict_warning"
3089
3099
  ),
3090
- warning_type: z138.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
3091
- message: z138.string(),
3092
- pcb_component_id: z138.string(),
3093
- pcb_group_id: z138.string().optional(),
3094
- subcircuit_id: z138.string().optional(),
3095
- source_component_id: z138.string()
3100
+ warning_type: z139.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
3101
+ message: z139.string(),
3102
+ pcb_component_id: z139.string(),
3103
+ pcb_group_id: z139.string().optional(),
3104
+ subcircuit_id: z139.string().optional(),
3105
+ source_component_id: z139.string()
3096
3106
  }).describe(
3097
3107
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
3098
3108
  );
3099
3109
  expectTypesMatch(true);
3100
3110
 
3101
3111
  // src/pcb/pcb_connector_not_in_accessible_orientation_warning.ts
3102
- import { z as z139 } from "zod";
3103
- var connectorOrientationDirection = z139.enum(["x-", "x+", "y+", "y-"]);
3104
- var pcb_connector_not_in_accessible_orientation_warning = z139.object({
3105
- type: z139.literal("pcb_connector_not_in_accessible_orientation_warning"),
3112
+ import { z as z140 } from "zod";
3113
+ var connectorOrientationDirection = z140.enum(["x-", "x+", "y+", "y-"]);
3114
+ var pcb_connector_not_in_accessible_orientation_warning = z140.object({
3115
+ type: z140.literal("pcb_connector_not_in_accessible_orientation_warning"),
3106
3116
  pcb_connector_not_in_accessible_orientation_warning_id: getZodPrefixedIdWithDefault(
3107
3117
  "pcb_connector_not_in_accessible_orientation_warning"
3108
3118
  ),
3109
- warning_type: z139.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
3110
- message: z139.string(),
3111
- pcb_component_id: z139.string(),
3112
- source_component_id: z139.string().optional(),
3113
- pcb_board_id: z139.string().optional(),
3119
+ warning_type: z140.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
3120
+ message: z140.string(),
3121
+ pcb_component_id: z140.string(),
3122
+ source_component_id: z140.string().optional(),
3123
+ pcb_board_id: z140.string().optional(),
3114
3124
  facing_direction: connectorOrientationDirection,
3115
3125
  recommended_facing_direction: connectorOrientationDirection,
3116
- subcircuit_id: z139.string().optional()
3126
+ subcircuit_id: z140.string().optional()
3117
3127
  }).describe(
3118
3128
  "Warning emitted when a connector PCB component is facing inward toward the board and should be reoriented to an outward-facing direction"
3119
3129
  );
3120
3130
  expectTypesMatch(true);
3121
3131
 
3122
3132
  // src/pcb/pcb_breakout_point.ts
3123
- import { z as z140 } from "zod";
3124
- var pcb_breakout_point = z140.object({
3125
- type: z140.literal("pcb_breakout_point"),
3133
+ import { z as z141 } from "zod";
3134
+ var pcb_breakout_point = z141.object({
3135
+ type: z141.literal("pcb_breakout_point"),
3126
3136
  pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
3127
- pcb_group_id: z140.string(),
3128
- subcircuit_id: z140.string().optional(),
3129
- source_trace_id: z140.string().optional(),
3130
- source_port_id: z140.string().optional(),
3131
- source_net_id: z140.string().optional(),
3137
+ pcb_group_id: z141.string(),
3138
+ subcircuit_id: z141.string().optional(),
3139
+ source_trace_id: z141.string().optional(),
3140
+ source_port_id: z141.string().optional(),
3141
+ source_net_id: z141.string().optional(),
3132
3142
  x: distance,
3133
3143
  y: distance
3134
3144
  }).describe(
@@ -3137,61 +3147,61 @@ var pcb_breakout_point = z140.object({
3137
3147
  expectTypesMatch(true);
3138
3148
 
3139
3149
  // src/pcb/pcb_ground_plane.ts
3140
- import { z as z141 } from "zod";
3141
- var pcb_ground_plane = z141.object({
3142
- type: z141.literal("pcb_ground_plane"),
3150
+ import { z as z142 } from "zod";
3151
+ var pcb_ground_plane = z142.object({
3152
+ type: z142.literal("pcb_ground_plane"),
3143
3153
  pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
3144
- source_pcb_ground_plane_id: z141.string(),
3145
- source_net_id: z141.string(),
3146
- pcb_group_id: z141.string().optional(),
3147
- subcircuit_id: z141.string().optional()
3154
+ source_pcb_ground_plane_id: z142.string(),
3155
+ source_net_id: z142.string(),
3156
+ pcb_group_id: z142.string().optional(),
3157
+ subcircuit_id: z142.string().optional()
3148
3158
  }).describe("Defines a ground plane on the PCB");
3149
3159
  expectTypesMatch(true);
3150
3160
 
3151
3161
  // src/pcb/pcb_ground_plane_region.ts
3152
- import { z as z142 } from "zod";
3153
- var pcb_ground_plane_region = z142.object({
3154
- type: z142.literal("pcb_ground_plane_region"),
3162
+ import { z as z143 } from "zod";
3163
+ var pcb_ground_plane_region = z143.object({
3164
+ type: z143.literal("pcb_ground_plane_region"),
3155
3165
  pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
3156
3166
  "pcb_ground_plane_region"
3157
3167
  ),
3158
- pcb_ground_plane_id: z142.string(),
3159
- pcb_group_id: z142.string().optional(),
3160
- subcircuit_id: z142.string().optional(),
3168
+ pcb_ground_plane_id: z143.string(),
3169
+ pcb_group_id: z143.string().optional(),
3170
+ subcircuit_id: z143.string().optional(),
3161
3171
  layer: layer_ref,
3162
- points: z142.array(point)
3172
+ points: z143.array(point)
3163
3173
  }).describe("Defines a polygon region of a ground plane");
3164
3174
  expectTypesMatch(true);
3165
3175
 
3166
3176
  // src/pcb/pcb_thermal_spoke.ts
3167
- import { z as z143 } from "zod";
3168
- var pcb_thermal_spoke = z143.object({
3169
- type: z143.literal("pcb_thermal_spoke"),
3177
+ import { z as z144 } from "zod";
3178
+ var pcb_thermal_spoke = z144.object({
3179
+ type: z144.literal("pcb_thermal_spoke"),
3170
3180
  pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
3171
- pcb_ground_plane_id: z143.string(),
3172
- shape: z143.string(),
3173
- spoke_count: z143.number(),
3181
+ pcb_ground_plane_id: z144.string(),
3182
+ shape: z144.string(),
3183
+ spoke_count: z144.number(),
3174
3184
  spoke_thickness: distance,
3175
3185
  spoke_inner_diameter: distance,
3176
3186
  spoke_outer_diameter: distance,
3177
- pcb_plated_hole_id: z143.string().optional(),
3178
- subcircuit_id: z143.string().optional()
3187
+ pcb_plated_hole_id: z144.string().optional(),
3188
+ subcircuit_id: z144.string().optional()
3179
3189
  }).describe("Pattern for connecting a ground plane to a plated hole");
3180
3190
  expectTypesMatch(true);
3181
3191
 
3182
3192
  // src/pcb/pcb_copper_pour.ts
3183
- import { z as z144 } from "zod";
3184
- var pcb_copper_pour_base = z144.object({
3185
- type: z144.literal("pcb_copper_pour"),
3193
+ import { z as z145 } from "zod";
3194
+ var pcb_copper_pour_base = z145.object({
3195
+ type: z145.literal("pcb_copper_pour"),
3186
3196
  pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
3187
- pcb_group_id: z144.string().optional(),
3188
- subcircuit_id: z144.string().optional(),
3197
+ pcb_group_id: z145.string().optional(),
3198
+ subcircuit_id: z145.string().optional(),
3189
3199
  layer: layer_ref,
3190
- source_net_id: z144.string().optional(),
3191
- covered_with_solder_mask: z144.boolean().optional().default(true)
3200
+ source_net_id: z145.string().optional(),
3201
+ covered_with_solder_mask: z145.boolean().optional().default(true)
3192
3202
  });
3193
3203
  var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
3194
- shape: z144.literal("rect"),
3204
+ shape: z145.literal("rect"),
3195
3205
  center: point,
3196
3206
  width: length,
3197
3207
  height: length,
@@ -3199,16 +3209,16 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
3199
3209
  });
3200
3210
  expectTypesMatch(true);
3201
3211
  var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
3202
- shape: z144.literal("brep"),
3212
+ shape: z145.literal("brep"),
3203
3213
  brep_shape
3204
3214
  });
3205
3215
  expectTypesMatch(true);
3206
3216
  var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
3207
- shape: z144.literal("polygon"),
3208
- points: z144.array(point)
3217
+ shape: z145.literal("polygon"),
3218
+ points: z145.array(point)
3209
3219
  });
3210
3220
  expectTypesMatch(true);
3211
- var pcb_copper_pour = z144.discriminatedUnion("shape", [
3221
+ var pcb_copper_pour = z145.discriminatedUnion("shape", [
3212
3222
  pcb_copper_pour_rect,
3213
3223
  pcb_copper_pour_brep,
3214
3224
  pcb_copper_pour_polygon
@@ -3216,190 +3226,216 @@ var pcb_copper_pour = z144.discriminatedUnion("shape", [
3216
3226
  expectTypesMatch(true);
3217
3227
 
3218
3228
  // src/pcb/pcb_component_outside_board_error.ts
3219
- import { z as z145 } from "zod";
3229
+ import { z as z146 } from "zod";
3220
3230
  var pcb_component_outside_board_error = base_circuit_json_error.extend({
3221
- type: z145.literal("pcb_component_outside_board_error"),
3231
+ type: z146.literal("pcb_component_outside_board_error"),
3222
3232
  pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
3223
3233
  "pcb_component_outside_board_error"
3224
3234
  ),
3225
- error_type: z145.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
3226
- pcb_component_id: z145.string(),
3227
- pcb_board_id: z145.string(),
3235
+ error_type: z146.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
3236
+ pcb_component_id: z146.string(),
3237
+ pcb_board_id: z146.string(),
3228
3238
  component_center: point,
3229
- component_bounds: z145.object({
3230
- min_x: z145.number(),
3231
- max_x: z145.number(),
3232
- min_y: z145.number(),
3233
- max_y: z145.number()
3239
+ component_bounds: z146.object({
3240
+ min_x: z146.number(),
3241
+ max_x: z146.number(),
3242
+ min_y: z146.number(),
3243
+ max_y: z146.number()
3234
3244
  }),
3235
- subcircuit_id: z145.string().optional(),
3236
- source_component_id: z145.string().optional()
3245
+ subcircuit_id: z146.string().optional(),
3246
+ source_component_id: z146.string().optional()
3237
3247
  }).describe(
3238
3248
  "Error emitted when a PCB component is placed outside the board boundaries"
3239
3249
  );
3240
3250
  expectTypesMatch(true);
3241
3251
 
3242
3252
  // src/pcb/pcb_component_not_on_board_edge_error.ts
3243
- import { z as z146 } from "zod";
3253
+ import { z as z147 } from "zod";
3244
3254
  var pcb_component_not_on_board_edge_error = base_circuit_json_error.extend({
3245
- type: z146.literal("pcb_component_not_on_board_edge_error"),
3255
+ type: z147.literal("pcb_component_not_on_board_edge_error"),
3246
3256
  pcb_component_not_on_board_edge_error_id: getZodPrefixedIdWithDefault(
3247
3257
  "pcb_component_not_on_board_edge_error"
3248
3258
  ),
3249
- error_type: z146.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
3250
- pcb_component_id: z146.string(),
3251
- pcb_board_id: z146.string(),
3259
+ error_type: z147.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
3260
+ pcb_component_id: z147.string(),
3261
+ pcb_board_id: z147.string(),
3252
3262
  component_center: point,
3253
- pad_to_nearest_board_edge_distance: z146.number(),
3254
- source_component_id: z146.string().optional(),
3255
- subcircuit_id: z146.string().optional()
3263
+ pad_to_nearest_board_edge_distance: z147.number(),
3264
+ source_component_id: z147.string().optional(),
3265
+ subcircuit_id: z147.string().optional()
3256
3266
  }).describe(
3257
3267
  "Error emitted when a component that must be placed on the board edge is centered away from the edge"
3258
3268
  );
3259
3269
  expectTypesMatch(true);
3260
3270
 
3261
3271
  // src/pcb/pcb_component_invalid_layer_error.ts
3262
- import { z as z147 } from "zod";
3272
+ import { z as z148 } from "zod";
3263
3273
  var pcb_component_invalid_layer_error = base_circuit_json_error.extend({
3264
- type: z147.literal("pcb_component_invalid_layer_error"),
3274
+ type: z148.literal("pcb_component_invalid_layer_error"),
3265
3275
  pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
3266
3276
  "pcb_component_invalid_layer_error"
3267
3277
  ),
3268
- error_type: z147.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
3269
- pcb_component_id: z147.string().optional(),
3270
- source_component_id: z147.string(),
3278
+ error_type: z148.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
3279
+ pcb_component_id: z148.string().optional(),
3280
+ source_component_id: z148.string(),
3271
3281
  layer: layer_ref,
3272
- subcircuit_id: z147.string().optional()
3282
+ subcircuit_id: z148.string().optional()
3273
3283
  }).describe(
3274
3284
  "Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
3275
3285
  );
3276
3286
  expectTypesMatch(true);
3277
3287
 
3278
3288
  // src/pcb/pcb_via_clearance_error.ts
3279
- import { z as z148 } from "zod";
3289
+ import { z as z149 } from "zod";
3280
3290
  var pcb_via_clearance_error = base_circuit_json_error.extend({
3281
- type: z148.literal("pcb_via_clearance_error"),
3291
+ type: z149.literal("pcb_via_clearance_error"),
3282
3292
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
3283
- error_type: z148.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
3284
- pcb_via_ids: z148.array(z148.string()).min(2),
3293
+ error_type: z149.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
3294
+ pcb_via_ids: z149.array(z149.string()).min(2),
3285
3295
  minimum_clearance: distance.optional(),
3286
3296
  actual_clearance: distance.optional(),
3287
- pcb_center: z148.object({
3288
- x: z148.number().optional(),
3289
- y: z148.number().optional()
3297
+ pcb_center: z149.object({
3298
+ x: z149.number().optional(),
3299
+ y: z149.number().optional()
3290
3300
  }).optional(),
3291
- subcircuit_id: z148.string().optional()
3301
+ subcircuit_id: z149.string().optional()
3292
3302
  }).describe("Error emitted when vias are closer than the allowed clearance");
3293
3303
  expectTypesMatch(true);
3294
3304
 
3305
+ // src/pcb/pcb_via_trace_clearance_error.ts
3306
+ import { z as z150 } from "zod";
3307
+ var pcb_via_trace_clearance_error = base_circuit_json_error.extend({
3308
+ type: z150.literal("pcb_via_trace_clearance_error"),
3309
+ pcb_via_trace_clearance_error_id: getZodPrefixedIdWithDefault(
3310
+ "pcb_via_trace_clearance_error"
3311
+ ),
3312
+ error_type: z150.literal("pcb_via_trace_clearance_error").default("pcb_via_trace_clearance_error"),
3313
+ pcb_via_id: z150.string(),
3314
+ pcb_trace_id: z150.string(),
3315
+ minimum_clearance: distance.optional(),
3316
+ actual_clearance: distance.optional(),
3317
+ center: z150.object({
3318
+ x: z150.number().optional(),
3319
+ y: z150.number().optional()
3320
+ }).optional(),
3321
+ subcircuit_id: z150.string().optional()
3322
+ }).describe(
3323
+ "Error emitted when a via and trace are closer than the allowed clearance"
3324
+ );
3325
+ expectTypesMatch(
3326
+ true
3327
+ );
3328
+
3295
3329
  // src/pcb/pcb_pad_pad_clearance_error.ts
3296
- import { z as z149 } from "zod";
3330
+ import { z as z151 } from "zod";
3297
3331
  var pcb_pad_pad_clearance_error = base_circuit_json_error.extend({
3298
- type: z149.literal("pcb_pad_pad_clearance_error"),
3332
+ type: z151.literal("pcb_pad_pad_clearance_error"),
3299
3333
  pcb_pad_pad_clearance_error_id: getZodPrefixedIdWithDefault(
3300
3334
  "pcb_pad_pad_clearance_error"
3301
3335
  ),
3302
- error_type: z149.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
3303
- pcb_pad_ids: z149.array(z149.string()).min(2),
3336
+ error_type: z151.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
3337
+ pcb_pad_ids: z151.array(z151.string()).min(2),
3304
3338
  minimum_clearance: distance.optional(),
3305
3339
  actual_clearance: distance.optional(),
3306
- center: z149.object({
3307
- x: z149.number().optional(),
3308
- y: z149.number().optional()
3340
+ center: z151.object({
3341
+ x: z151.number().optional(),
3342
+ y: z151.number().optional()
3309
3343
  }).optional(),
3310
- subcircuit_id: z149.string().optional()
3344
+ subcircuit_id: z151.string().optional()
3311
3345
  }).describe("Error emitted when pads are closer than the allowed clearance");
3312
3346
  expectTypesMatch(true);
3313
3347
 
3314
3348
  // src/pcb/pcb_pad_trace_clearance_error.ts
3315
- import { z as z150 } from "zod";
3349
+ import { z as z152 } from "zod";
3316
3350
  var pcb_pad_trace_clearance_error = base_circuit_json_error.extend({
3317
- type: z150.literal("pcb_pad_trace_clearance_error"),
3351
+ type: z152.literal("pcb_pad_trace_clearance_error"),
3318
3352
  pcb_pad_trace_clearance_error_id: getZodPrefixedIdWithDefault(
3319
3353
  "pcb_pad_trace_clearance_error"
3320
3354
  ),
3321
- error_type: z150.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
3322
- pcb_pad_id: z150.string(),
3323
- pcb_trace_id: z150.string(),
3355
+ error_type: z152.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
3356
+ pcb_pad_id: z152.string(),
3357
+ pcb_trace_id: z152.string(),
3324
3358
  minimum_clearance: distance.optional(),
3325
3359
  actual_clearance: distance.optional(),
3326
- center: z150.object({
3327
- x: z150.number().optional(),
3328
- y: z150.number().optional()
3360
+ center: z152.object({
3361
+ x: z152.number().optional(),
3362
+ y: z152.number().optional()
3329
3363
  }).optional(),
3330
- subcircuit_id: z150.string().optional()
3331
- }).describe("Error emitted when a pad and trace are closer than allowed clearance");
3364
+ subcircuit_id: z152.string().optional()
3365
+ }).describe(
3366
+ "Error emitted when a pad and trace are closer than allowed clearance"
3367
+ );
3332
3368
  expectTypesMatch(
3333
3369
  true
3334
3370
  );
3335
3371
 
3336
3372
  // src/pcb/pcb_courtyard_rect.ts
3337
- import { z as z151 } from "zod";
3338
- var pcb_courtyard_rect = z151.object({
3339
- type: z151.literal("pcb_courtyard_rect"),
3373
+ import { z as z153 } from "zod";
3374
+ var pcb_courtyard_rect = z153.object({
3375
+ type: z153.literal("pcb_courtyard_rect"),
3340
3376
  pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
3341
- pcb_component_id: z151.string(),
3342
- pcb_group_id: z151.string().optional(),
3343
- subcircuit_id: z151.string().optional(),
3377
+ pcb_component_id: z153.string(),
3378
+ pcb_group_id: z153.string().optional(),
3379
+ subcircuit_id: z153.string().optional(),
3344
3380
  center: point,
3345
3381
  width: length,
3346
3382
  height: length,
3347
3383
  layer: visible_layer,
3348
3384
  ccw_rotation: rotation.optional(),
3349
- color: z151.string().optional()
3385
+ color: z153.string().optional()
3350
3386
  }).describe("Defines a courtyard rectangle on the PCB");
3351
3387
  expectTypesMatch(true);
3352
3388
 
3353
3389
  // src/pcb/pcb_courtyard_outline.ts
3354
- import { z as z152 } from "zod";
3355
- var pcb_courtyard_outline = z152.object({
3356
- type: z152.literal("pcb_courtyard_outline"),
3390
+ import { z as z154 } from "zod";
3391
+ var pcb_courtyard_outline = z154.object({
3392
+ type: z154.literal("pcb_courtyard_outline"),
3357
3393
  pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
3358
3394
  "pcb_courtyard_outline"
3359
3395
  ),
3360
- pcb_component_id: z152.string(),
3361
- pcb_group_id: z152.string().optional(),
3362
- subcircuit_id: z152.string().optional(),
3396
+ pcb_component_id: z154.string(),
3397
+ pcb_group_id: z154.string().optional(),
3398
+ subcircuit_id: z154.string().optional(),
3363
3399
  layer: visible_layer,
3364
- outline: z152.array(point).min(2)
3400
+ outline: z154.array(point).min(2)
3365
3401
  }).describe("Defines a courtyard outline on the PCB");
3366
3402
  expectTypesMatch(true);
3367
3403
 
3368
3404
  // src/pcb/pcb_courtyard_polygon.ts
3369
- import { z as z153 } from "zod";
3370
- var pcb_courtyard_polygon = z153.object({
3371
- type: z153.literal("pcb_courtyard_polygon"),
3405
+ import { z as z155 } from "zod";
3406
+ var pcb_courtyard_polygon = z155.object({
3407
+ type: z155.literal("pcb_courtyard_polygon"),
3372
3408
  pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
3373
3409
  "pcb_courtyard_polygon"
3374
3410
  ),
3375
- pcb_component_id: z153.string(),
3376
- pcb_group_id: z153.string().optional(),
3377
- subcircuit_id: z153.string().optional(),
3411
+ pcb_component_id: z155.string(),
3412
+ pcb_group_id: z155.string().optional(),
3413
+ subcircuit_id: z155.string().optional(),
3378
3414
  layer: visible_layer,
3379
- points: z153.array(point).min(3),
3380
- color: z153.string().optional()
3415
+ points: z155.array(point).min(3),
3416
+ color: z155.string().optional()
3381
3417
  }).describe("Defines a courtyard polygon on the PCB");
3382
3418
  expectTypesMatch(true);
3383
3419
 
3384
3420
  // src/pcb/pcb_courtyard_circle.ts
3385
- import { z as z154 } from "zod";
3386
- var pcb_courtyard_circle = z154.object({
3387
- type: z154.literal("pcb_courtyard_circle"),
3421
+ import { z as z156 } from "zod";
3422
+ var pcb_courtyard_circle = z156.object({
3423
+ type: z156.literal("pcb_courtyard_circle"),
3388
3424
  pcb_courtyard_circle_id: getZodPrefixedIdWithDefault(
3389
3425
  "pcb_courtyard_circle"
3390
3426
  ),
3391
- pcb_component_id: z154.string(),
3392
- pcb_group_id: z154.string().optional(),
3393
- subcircuit_id: z154.string().optional(),
3427
+ pcb_component_id: z156.string(),
3428
+ pcb_group_id: z156.string().optional(),
3429
+ subcircuit_id: z156.string().optional(),
3394
3430
  center: point,
3395
3431
  radius: length,
3396
3432
  layer: visible_layer,
3397
- color: z154.string().optional()
3433
+ color: z156.string().optional()
3398
3434
  }).describe("Defines a courtyard circle on the PCB");
3399
3435
  expectTypesMatch(true);
3400
3436
 
3401
3437
  // src/cad/cad_component.ts
3402
- import { z as z155 } from "zod";
3438
+ import { z as z157 } from "zod";
3403
3439
 
3404
3440
  // src/cad/cad_model_conventions.ts
3405
3441
  var cad_model_formats = [
@@ -3430,48 +3466,48 @@ var cadModelDefaultDirectionMap = {
3430
3466
  };
3431
3467
 
3432
3468
  // src/cad/cad_component.ts
3433
- var cad_component = z155.object({
3434
- type: z155.literal("cad_component"),
3435
- cad_component_id: z155.string(),
3436
- pcb_component_id: z155.string(),
3437
- source_component_id: z155.string(),
3469
+ var cad_component = z157.object({
3470
+ type: z157.literal("cad_component"),
3471
+ cad_component_id: z157.string(),
3472
+ pcb_component_id: z157.string(),
3473
+ source_component_id: z157.string(),
3438
3474
  position: point3,
3439
3475
  rotation: point3.optional(),
3440
3476
  size: point3.optional(),
3441
3477
  layer: layer_ref.optional(),
3442
- subcircuit_id: z155.string().optional(),
3478
+ subcircuit_id: z157.string().optional(),
3443
3479
  // These are all ways to generate/load the 3d model
3444
- footprinter_string: z155.string().optional(),
3445
- model_obj_url: z155.string().optional(),
3446
- model_stl_url: z155.string().optional(),
3447
- model_3mf_url: z155.string().optional(),
3448
- model_gltf_url: z155.string().optional(),
3449
- model_glb_url: z155.string().optional(),
3450
- model_step_url: z155.string().optional(),
3451
- model_wrl_url: z155.string().optional(),
3480
+ footprinter_string: z157.string().optional(),
3481
+ model_obj_url: z157.string().optional(),
3482
+ model_stl_url: z157.string().optional(),
3483
+ model_3mf_url: z157.string().optional(),
3484
+ model_gltf_url: z157.string().optional(),
3485
+ model_glb_url: z157.string().optional(),
3486
+ model_step_url: z157.string().optional(),
3487
+ model_wrl_url: z157.string().optional(),
3452
3488
  model_asset: asset.optional(),
3453
- model_unit_to_mm_scale_factor: z155.number().optional(),
3454
- model_board_normal_direction: z155.enum(cad_model_axis_directions).optional().describe(
3489
+ model_unit_to_mm_scale_factor: z157.number().optional(),
3490
+ model_board_normal_direction: z157.enum(cad_model_axis_directions).optional().describe(
3455
3491
  `The direction in the model's coordinate space that is considered "up" or "coming out of the board surface"`
3456
3492
  ),
3457
3493
  model_origin_position: point3.optional(),
3458
- model_origin_alignment: z155.enum([
3494
+ model_origin_alignment: z157.enum([
3459
3495
  "unknown",
3460
3496
  "center",
3461
3497
  "center_of_component_on_board_surface",
3462
3498
  "bottom_center_of_component"
3463
3499
  ]).optional(),
3464
- model_object_fit: z155.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
3465
- model_jscad: z155.any().optional(),
3466
- show_as_translucent_model: z155.boolean().optional(),
3467
- anchor_alignment: z155.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
3500
+ model_object_fit: z157.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
3501
+ model_jscad: z157.any().optional(),
3502
+ show_as_translucent_model: z157.boolean().optional(),
3503
+ anchor_alignment: z157.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
3468
3504
  }).describe("Defines a component on the PCB");
3469
3505
  expectTypesMatch(true);
3470
3506
 
3471
3507
  // src/simulation/simulation_voltage_source.ts
3472
- import { z as z156 } from "zod";
3473
- var wave_shape = z156.enum(["sinewave", "square", "triangle", "sawtooth"]);
3474
- var percentage = z156.union([z156.string(), z156.number()]).transform((val) => {
3508
+ import { z as z158 } from "zod";
3509
+ var wave_shape = z158.enum(["sinewave", "square", "triangle", "sawtooth"]);
3510
+ var percentage = z158.union([z158.string(), z158.number()]).transform((val) => {
3475
3511
  if (typeof val === "string") {
3476
3512
  if (val.endsWith("%")) {
3477
3513
  return parseFloat(val.slice(0, -1)) / 100;
@@ -3480,30 +3516,30 @@ var percentage = z156.union([z156.string(), z156.number()]).transform((val) => {
3480
3516
  }
3481
3517
  return val;
3482
3518
  }).pipe(
3483
- z156.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3519
+ z158.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3484
3520
  );
3485
- var simulation_dc_voltage_source = z156.object({
3486
- type: z156.literal("simulation_voltage_source"),
3521
+ var simulation_dc_voltage_source = z158.object({
3522
+ type: z158.literal("simulation_voltage_source"),
3487
3523
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
3488
3524
  "simulation_voltage_source"
3489
3525
  ),
3490
- is_dc_source: z156.literal(true).optional().default(true),
3491
- positive_source_port_id: z156.string().optional(),
3492
- negative_source_port_id: z156.string().optional(),
3493
- positive_source_net_id: z156.string().optional(),
3494
- negative_source_net_id: z156.string().optional(),
3526
+ is_dc_source: z158.literal(true).optional().default(true),
3527
+ positive_source_port_id: z158.string().optional(),
3528
+ negative_source_port_id: z158.string().optional(),
3529
+ positive_source_net_id: z158.string().optional(),
3530
+ negative_source_net_id: z158.string().optional(),
3495
3531
  voltage
3496
3532
  }).describe("Defines a DC voltage source for simulation");
3497
- var simulation_ac_voltage_source = z156.object({
3498
- type: z156.literal("simulation_voltage_source"),
3533
+ var simulation_ac_voltage_source = z158.object({
3534
+ type: z158.literal("simulation_voltage_source"),
3499
3535
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
3500
3536
  "simulation_voltage_source"
3501
3537
  ),
3502
- is_dc_source: z156.literal(false),
3503
- terminal1_source_port_id: z156.string().optional(),
3504
- terminal2_source_port_id: z156.string().optional(),
3505
- terminal1_source_net_id: z156.string().optional(),
3506
- terminal2_source_net_id: z156.string().optional(),
3538
+ is_dc_source: z158.literal(false),
3539
+ terminal1_source_port_id: z158.string().optional(),
3540
+ terminal2_source_port_id: z158.string().optional(),
3541
+ terminal1_source_net_id: z158.string().optional(),
3542
+ terminal2_source_net_id: z158.string().optional(),
3507
3543
  voltage: voltage.optional(),
3508
3544
  frequency: frequency.optional(),
3509
3545
  peak_to_peak_voltage: voltage.optional(),
@@ -3511,14 +3547,14 @@ var simulation_ac_voltage_source = z156.object({
3511
3547
  phase: rotation.optional(),
3512
3548
  duty_cycle: percentage.optional()
3513
3549
  }).describe("Defines an AC voltage source for simulation");
3514
- var simulation_voltage_source = z156.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
3550
+ var simulation_voltage_source = z158.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
3515
3551
  expectTypesMatch(true);
3516
3552
  expectTypesMatch(true);
3517
3553
  expectTypesMatch(true);
3518
3554
 
3519
3555
  // src/simulation/simulation_current_source.ts
3520
- import { z as z157 } from "zod";
3521
- var percentage2 = z157.union([z157.string(), z157.number()]).transform((val) => {
3556
+ import { z as z159 } from "zod";
3557
+ var percentage2 = z159.union([z159.string(), z159.number()]).transform((val) => {
3522
3558
  if (typeof val === "string") {
3523
3559
  if (val.endsWith("%")) {
3524
3560
  return parseFloat(val.slice(0, -1)) / 100;
@@ -3527,30 +3563,30 @@ var percentage2 = z157.union([z157.string(), z157.number()]).transform((val) =>
3527
3563
  }
3528
3564
  return val;
3529
3565
  }).pipe(
3530
- z157.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3566
+ z159.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3531
3567
  );
3532
- var simulation_dc_current_source = z157.object({
3533
- type: z157.literal("simulation_current_source"),
3568
+ var simulation_dc_current_source = z159.object({
3569
+ type: z159.literal("simulation_current_source"),
3534
3570
  simulation_current_source_id: getZodPrefixedIdWithDefault(
3535
3571
  "simulation_current_source"
3536
3572
  ),
3537
- is_dc_source: z157.literal(true).optional().default(true),
3538
- positive_source_port_id: z157.string().optional(),
3539
- negative_source_port_id: z157.string().optional(),
3540
- positive_source_net_id: z157.string().optional(),
3541
- negative_source_net_id: z157.string().optional(),
3573
+ is_dc_source: z159.literal(true).optional().default(true),
3574
+ positive_source_port_id: z159.string().optional(),
3575
+ negative_source_port_id: z159.string().optional(),
3576
+ positive_source_net_id: z159.string().optional(),
3577
+ negative_source_net_id: z159.string().optional(),
3542
3578
  current
3543
3579
  }).describe("Defines a DC current source for simulation");
3544
- var simulation_ac_current_source = z157.object({
3545
- type: z157.literal("simulation_current_source"),
3580
+ var simulation_ac_current_source = z159.object({
3581
+ type: z159.literal("simulation_current_source"),
3546
3582
  simulation_current_source_id: getZodPrefixedIdWithDefault(
3547
3583
  "simulation_current_source"
3548
3584
  ),
3549
- is_dc_source: z157.literal(false),
3550
- terminal1_source_port_id: z157.string().optional(),
3551
- terminal2_source_port_id: z157.string().optional(),
3552
- terminal1_source_net_id: z157.string().optional(),
3553
- terminal2_source_net_id: z157.string().optional(),
3585
+ is_dc_source: z159.literal(false),
3586
+ terminal1_source_port_id: z159.string().optional(),
3587
+ terminal2_source_port_id: z159.string().optional(),
3588
+ terminal1_source_net_id: z159.string().optional(),
3589
+ terminal2_source_net_id: z159.string().optional(),
3554
3590
  current: current.optional(),
3555
3591
  frequency: frequency.optional(),
3556
3592
  peak_to_peak_current: current.optional(),
@@ -3558,25 +3594,25 @@ var simulation_ac_current_source = z157.object({
3558
3594
  phase: rotation.optional(),
3559
3595
  duty_cycle: percentage2.optional()
3560
3596
  }).describe("Defines an AC current source for simulation");
3561
- var simulation_current_source = z157.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
3597
+ var simulation_current_source = z159.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
3562
3598
  expectTypesMatch(true);
3563
3599
  expectTypesMatch(true);
3564
3600
  expectTypesMatch(true);
3565
3601
 
3566
3602
  // src/simulation/simulation_experiment.ts
3567
- import { z as z158 } from "zod";
3568
- var experiment_type = z158.union([
3569
- z158.literal("spice_dc_sweep"),
3570
- z158.literal("spice_dc_operating_point"),
3571
- z158.literal("spice_transient_analysis"),
3572
- z158.literal("spice_ac_analysis")
3603
+ import { z as z160 } from "zod";
3604
+ var experiment_type = z160.union([
3605
+ z160.literal("spice_dc_sweep"),
3606
+ z160.literal("spice_dc_operating_point"),
3607
+ z160.literal("spice_transient_analysis"),
3608
+ z160.literal("spice_ac_analysis")
3573
3609
  ]);
3574
- var simulation_experiment = z158.object({
3575
- type: z158.literal("simulation_experiment"),
3610
+ var simulation_experiment = z160.object({
3611
+ type: z160.literal("simulation_experiment"),
3576
3612
  simulation_experiment_id: getZodPrefixedIdWithDefault(
3577
3613
  "simulation_experiment"
3578
3614
  ),
3579
- name: z158.string(),
3615
+ name: z160.string(),
3580
3616
  experiment_type,
3581
3617
  time_per_step: duration_ms.optional(),
3582
3618
  start_time_ms: ms.optional(),
@@ -3585,53 +3621,53 @@ var simulation_experiment = z158.object({
3585
3621
  expectTypesMatch(true);
3586
3622
 
3587
3623
  // src/simulation/simulation_transient_voltage_graph.ts
3588
- import { z as z159 } from "zod";
3589
- var simulation_transient_voltage_graph = z159.object({
3590
- type: z159.literal("simulation_transient_voltage_graph"),
3624
+ import { z as z161 } from "zod";
3625
+ var simulation_transient_voltage_graph = z161.object({
3626
+ type: z161.literal("simulation_transient_voltage_graph"),
3591
3627
  simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
3592
3628
  "simulation_transient_voltage_graph"
3593
3629
  ),
3594
- simulation_experiment_id: z159.string(),
3595
- timestamps_ms: z159.array(z159.number()).optional(),
3596
- voltage_levels: z159.array(z159.number()),
3597
- source_component_id: z159.string().optional(),
3598
- subcircuit_connectivity_map_key: z159.string().optional(),
3630
+ simulation_experiment_id: z161.string(),
3631
+ timestamps_ms: z161.array(z161.number()).optional(),
3632
+ voltage_levels: z161.array(z161.number()),
3633
+ source_component_id: z161.string().optional(),
3634
+ subcircuit_connectivity_map_key: z161.string().optional(),
3599
3635
  time_per_step: duration_ms,
3600
3636
  start_time_ms: ms,
3601
3637
  end_time_ms: ms,
3602
- name: z159.string().optional(),
3603
- color: z159.string().optional()
3638
+ name: z161.string().optional(),
3639
+ color: z161.string().optional()
3604
3640
  }).describe("Stores voltage measurements over time for a simulation");
3605
3641
  expectTypesMatch(true);
3606
3642
 
3607
3643
  // src/simulation/simulation_switch.ts
3608
- import { z as z160 } from "zod";
3609
- var simulation_switch = z160.object({
3610
- type: z160.literal("simulation_switch"),
3644
+ import { z as z162 } from "zod";
3645
+ var simulation_switch = z162.object({
3646
+ type: z162.literal("simulation_switch"),
3611
3647
  simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
3612
- source_component_id: z160.string().optional(),
3648
+ source_component_id: z162.string().optional(),
3613
3649
  closes_at: ms.optional(),
3614
3650
  opens_at: ms.optional(),
3615
- starts_closed: z160.boolean().optional(),
3651
+ starts_closed: z162.boolean().optional(),
3616
3652
  switching_frequency: frequency.optional()
3617
3653
  }).describe("Defines a switch for simulation timing control");
3618
3654
  expectTypesMatch(true);
3619
3655
 
3620
3656
  // src/simulation/simulation_voltage_probe.ts
3621
- import { z as z161 } from "zod";
3622
- var simulation_voltage_probe = z161.object({
3623
- type: z161.literal("simulation_voltage_probe"),
3657
+ import { z as z163 } from "zod";
3658
+ var simulation_voltage_probe = z163.object({
3659
+ type: z163.literal("simulation_voltage_probe"),
3624
3660
  simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
3625
3661
  "simulation_voltage_probe"
3626
3662
  ),
3627
- source_component_id: z161.string().optional(),
3628
- name: z161.string().optional(),
3629
- signal_input_source_port_id: z161.string().optional(),
3630
- signal_input_source_net_id: z161.string().optional(),
3631
- reference_input_source_port_id: z161.string().optional(),
3632
- reference_input_source_net_id: z161.string().optional(),
3633
- subcircuit_id: z161.string().optional(),
3634
- color: z161.string().optional()
3663
+ source_component_id: z163.string().optional(),
3664
+ name: z163.string().optional(),
3665
+ signal_input_source_port_id: z163.string().optional(),
3666
+ signal_input_source_net_id: z163.string().optional(),
3667
+ reference_input_source_port_id: z163.string().optional(),
3668
+ reference_input_source_net_id: z163.string().optional(),
3669
+ subcircuit_id: z163.string().optional(),
3670
+ color: z163.string().optional()
3635
3671
  }).describe(
3636
3672
  "Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points."
3637
3673
  ).superRefine((data, ctx) => {
@@ -3641,20 +3677,20 @@ var simulation_voltage_probe = z161.object({
3641
3677
  const has_nets = !!data.signal_input_source_net_id || !!data.reference_input_source_net_id;
3642
3678
  if (has_ports && has_nets) {
3643
3679
  ctx.addIssue({
3644
- code: z161.ZodIssueCode.custom,
3680
+ code: z163.ZodIssueCode.custom,
3645
3681
  message: "Cannot mix port and net connections in a differential probe."
3646
3682
  });
3647
3683
  } else if (has_ports) {
3648
3684
  if (!data.signal_input_source_port_id || !data.reference_input_source_port_id) {
3649
3685
  ctx.addIssue({
3650
- code: z161.ZodIssueCode.custom,
3686
+ code: z163.ZodIssueCode.custom,
3651
3687
  message: "Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."
3652
3688
  });
3653
3689
  }
3654
3690
  } else if (has_nets) {
3655
3691
  if (!data.signal_input_source_net_id || !data.reference_input_source_net_id) {
3656
3692
  ctx.addIssue({
3657
- code: z161.ZodIssueCode.custom,
3693
+ code: z163.ZodIssueCode.custom,
3658
3694
  message: "Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."
3659
3695
  });
3660
3696
  }
@@ -3662,7 +3698,7 @@ var simulation_voltage_probe = z161.object({
3662
3698
  } else {
3663
3699
  if (!!data.signal_input_source_port_id === !!data.signal_input_source_net_id) {
3664
3700
  ctx.addIssue({
3665
- code: z161.ZodIssueCode.custom,
3701
+ code: z163.ZodIssueCode.custom,
3666
3702
  message: "A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."
3667
3703
  });
3668
3704
  }
@@ -3671,35 +3707,35 @@ var simulation_voltage_probe = z161.object({
3671
3707
  expectTypesMatch(true);
3672
3708
 
3673
3709
  // src/simulation/simulation_unknown_experiment_error.ts
3674
- import { z as z162 } from "zod";
3710
+ import { z as z164 } from "zod";
3675
3711
  var simulation_unknown_experiment_error = base_circuit_json_error.extend({
3676
- type: z162.literal("simulation_unknown_experiment_error"),
3712
+ type: z164.literal("simulation_unknown_experiment_error"),
3677
3713
  simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
3678
3714
  "simulation_unknown_experiment_error"
3679
3715
  ),
3680
- error_type: z162.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
3681
- simulation_experiment_id: z162.string().optional(),
3682
- subcircuit_id: z162.string().optional()
3716
+ error_type: z164.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
3717
+ simulation_experiment_id: z164.string().optional(),
3718
+ subcircuit_id: z164.string().optional()
3683
3719
  }).describe("An unknown error occurred during the simulation experiment.");
3684
3720
  expectTypesMatch(true);
3685
3721
 
3686
3722
  // src/simulation/simulation_op_amp.ts
3687
- import { z as z163 } from "zod";
3688
- var simulation_op_amp = z163.object({
3689
- type: z163.literal("simulation_op_amp"),
3723
+ import { z as z165 } from "zod";
3724
+ var simulation_op_amp = z165.object({
3725
+ type: z165.literal("simulation_op_amp"),
3690
3726
  simulation_op_amp_id: getZodPrefixedIdWithDefault("simulation_op_amp"),
3691
- source_component_id: z163.string().optional(),
3692
- inverting_input_source_port_id: z163.string(),
3693
- non_inverting_input_source_port_id: z163.string(),
3694
- output_source_port_id: z163.string(),
3695
- positive_supply_source_port_id: z163.string(),
3696
- negative_supply_source_port_id: z163.string()
3727
+ source_component_id: z165.string().optional(),
3728
+ inverting_input_source_port_id: z165.string(),
3729
+ non_inverting_input_source_port_id: z165.string(),
3730
+ output_source_port_id: z165.string(),
3731
+ positive_supply_source_port_id: z165.string(),
3732
+ negative_supply_source_port_id: z165.string()
3697
3733
  }).describe("Defines a simple ideal operational amplifier for simulation");
3698
3734
  expectTypesMatch(true);
3699
3735
 
3700
3736
  // src/any_circuit_element.ts
3701
- import { z as z164 } from "zod";
3702
- var any_circuit_element = z164.union([
3737
+ import { z as z166 } from "zod";
3738
+ var any_circuit_element = z166.union([
3703
3739
  source_trace,
3704
3740
  source_port,
3705
3741
  source_component_internal_connection,
@@ -3775,6 +3811,7 @@ var any_circuit_element = z164.union([
3775
3811
  pcb_port_not_matched_error,
3776
3812
  pcb_port_not_connected_error,
3777
3813
  pcb_via_clearance_error,
3814
+ pcb_via_trace_clearance_error,
3778
3815
  pcb_pad_pad_clearance_error,
3779
3816
  pcb_pad_trace_clearance_error,
3780
3817
  pcb_fabrication_note_path,
@@ -3877,6 +3914,7 @@ export {
3877
3914
  layer_ref,
3878
3915
  layer_string,
3879
3916
  length,
3917
+ manufacturing_drc_properties,
3880
3918
  ms,
3881
3919
  ninePointAnchor,
3882
3920
  pcbRenderLayer,
@@ -3960,6 +3998,7 @@ export {
3960
3998
  pcb_trace_warning,
3961
3999
  pcb_via,
3962
4000
  pcb_via_clearance_error,
4001
+ pcb_via_trace_clearance_error,
3963
4002
  point,
3964
4003
  point3,
3965
4004
  point_with_bulge,