circuit-json 0.0.178 → 0.0.180

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
@@ -842,8 +842,25 @@ var schematic_manual_edit_conflict_warning = z47.object({
842
842
  );
843
843
  expectTypesMatch(true);
844
844
 
845
- // src/pcb/properties/layer_ref.ts
845
+ // src/schematic/schematic_group.ts
846
846
  import { z as z48 } from "zod";
847
+ var schematic_group = z48.object({
848
+ type: z48.literal("schematic_group"),
849
+ schematic_group_id: getZodPrefixedIdWithDefault("schematic_group"),
850
+ source_group_id: z48.string(),
851
+ is_subcircuit: z48.boolean().optional(),
852
+ subcircuit_id: z48.string().optional(),
853
+ width: length,
854
+ height: length,
855
+ center: point,
856
+ schematic_component_ids: z48.array(z48.string()),
857
+ name: z48.string().optional(),
858
+ description: z48.string().optional()
859
+ }).describe("Defines a group of components on the schematic");
860
+ expectTypesMatch(true);
861
+
862
+ // src/pcb/properties/layer_ref.ts
863
+ import { z as z49 } from "zod";
847
864
  var all_layers = [
848
865
  "top",
849
866
  "bottom",
@@ -854,9 +871,9 @@ var all_layers = [
854
871
  "inner5",
855
872
  "inner6"
856
873
  ];
857
- var layer_string = z48.enum(all_layers);
874
+ var layer_string = z49.enum(all_layers);
858
875
  var layer_ref = layer_string.or(
859
- z48.object({
876
+ z49.object({
860
877
  name: layer_string
861
878
  })
862
879
  ).transform((layer) => {
@@ -865,52 +882,52 @@ var layer_ref = layer_string.or(
865
882
  }
866
883
  return layer.name;
867
884
  });
868
- var visible_layer = z48.enum(["top", "bottom"]);
885
+ var visible_layer = z49.enum(["top", "bottom"]);
869
886
 
870
887
  // src/pcb/properties/pcb_route_hints.ts
871
- import { z as z49 } from "zod";
872
- var pcb_route_hint = z49.object({
888
+ import { z as z50 } from "zod";
889
+ var pcb_route_hint = z50.object({
873
890
  x: distance,
874
891
  y: distance,
875
- via: z49.boolean().optional(),
892
+ via: z50.boolean().optional(),
876
893
  via_to_layer: layer_ref.optional()
877
894
  });
878
- var pcb_route_hints = z49.array(pcb_route_hint);
895
+ var pcb_route_hints = z50.array(pcb_route_hint);
879
896
 
880
897
  // src/pcb/properties/route_hint_point.ts
881
- import { z as z50 } from "zod";
882
- var route_hint_point = z50.object({
898
+ import { z as z51 } from "zod";
899
+ var route_hint_point = z51.object({
883
900
  x: distance,
884
901
  y: distance,
885
- via: z50.boolean().optional(),
902
+ via: z51.boolean().optional(),
886
903
  to_layer: layer_ref.optional(),
887
904
  trace_width: distance.optional()
888
905
  });
889
906
 
890
907
  // src/pcb/pcb_component.ts
891
- import { z as z51 } from "zod";
892
- var pcb_component = z51.object({
893
- type: z51.literal("pcb_component"),
908
+ import { z as z52 } from "zod";
909
+ var pcb_component = z52.object({
910
+ type: z52.literal("pcb_component"),
894
911
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
895
- source_component_id: z51.string(),
912
+ source_component_id: z52.string(),
896
913
  center: point,
897
914
  layer: layer_ref,
898
915
  rotation,
899
916
  width: length,
900
917
  height: length,
901
- subcircuit_id: z51.string().optional()
918
+ subcircuit_id: z52.string().optional()
902
919
  }).describe("Defines a component on the PCB");
903
920
  expectTypesMatch(true);
904
921
 
905
922
  // src/pcb/pcb_hole.ts
906
- import { z as z52 } from "zod";
907
- var pcb_hole_circle_or_square = z52.object({
908
- type: z52.literal("pcb_hole"),
923
+ import { z as z53 } from "zod";
924
+ var pcb_hole_circle_or_square = z53.object({
925
+ type: z53.literal("pcb_hole"),
909
926
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
910
- pcb_group_id: z52.string().optional(),
911
- subcircuit_id: z52.string().optional(),
912
- hole_shape: z52.enum(["circle", "square"]),
913
- hole_diameter: z52.number(),
927
+ pcb_group_id: z53.string().optional(),
928
+ subcircuit_id: z53.string().optional(),
929
+ hole_shape: z53.enum(["circle", "square"]),
930
+ hole_diameter: z53.number(),
914
931
  x: distance,
915
932
  y: distance
916
933
  });
@@ -918,14 +935,14 @@ var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
918
935
  "Defines a circular or square hole on the PCB"
919
936
  );
920
937
  expectTypesMatch(true);
921
- var pcb_hole_oval = z52.object({
922
- type: z52.literal("pcb_hole"),
938
+ var pcb_hole_oval = z53.object({
939
+ type: z53.literal("pcb_hole"),
923
940
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
924
- pcb_group_id: z52.string().optional(),
925
- subcircuit_id: z52.string().optional(),
926
- hole_shape: z52.literal("oval"),
927
- hole_width: z52.number(),
928
- hole_height: z52.number(),
941
+ pcb_group_id: z53.string().optional(),
942
+ subcircuit_id: z53.string().optional(),
943
+ hole_shape: z53.literal("oval"),
944
+ hole_width: z53.number(),
945
+ hole_height: z53.number(),
929
946
  x: distance,
930
947
  y: distance
931
948
  });
@@ -936,77 +953,77 @@ expectTypesMatch(true);
936
953
  var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval);
937
954
 
938
955
  // src/pcb/pcb_plated_hole.ts
939
- import { z as z53 } from "zod";
940
- var pcb_plated_hole_circle = z53.object({
941
- type: z53.literal("pcb_plated_hole"),
942
- shape: z53.literal("circle"),
943
- pcb_group_id: z53.string().optional(),
944
- subcircuit_id: z53.string().optional(),
945
- outer_diameter: z53.number(),
946
- hole_diameter: z53.number(),
956
+ import { z as z54 } from "zod";
957
+ var pcb_plated_hole_circle = z54.object({
958
+ type: z54.literal("pcb_plated_hole"),
959
+ shape: z54.literal("circle"),
960
+ pcb_group_id: z54.string().optional(),
961
+ subcircuit_id: z54.string().optional(),
962
+ outer_diameter: z54.number(),
963
+ hole_diameter: z54.number(),
947
964
  x: distance,
948
965
  y: distance,
949
- layers: z53.array(layer_ref),
950
- port_hints: z53.array(z53.string()).optional(),
951
- pcb_component_id: z53.string().optional(),
952
- pcb_port_id: z53.string().optional(),
966
+ layers: z54.array(layer_ref),
967
+ port_hints: z54.array(z54.string()).optional(),
968
+ pcb_component_id: z54.string().optional(),
969
+ pcb_port_id: z54.string().optional(),
953
970
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
954
971
  });
955
- var pcb_plated_hole_oval = z53.object({
956
- type: z53.literal("pcb_plated_hole"),
957
- shape: z53.enum(["oval", "pill"]),
958
- pcb_group_id: z53.string().optional(),
959
- subcircuit_id: z53.string().optional(),
960
- outer_width: z53.number(),
961
- outer_height: z53.number(),
962
- hole_width: z53.number(),
963
- hole_height: z53.number(),
972
+ var pcb_plated_hole_oval = z54.object({
973
+ type: z54.literal("pcb_plated_hole"),
974
+ shape: z54.enum(["oval", "pill"]),
975
+ pcb_group_id: z54.string().optional(),
976
+ subcircuit_id: z54.string().optional(),
977
+ outer_width: z54.number(),
978
+ outer_height: z54.number(),
979
+ hole_width: z54.number(),
980
+ hole_height: z54.number(),
964
981
  x: distance,
965
982
  y: distance,
966
- layers: z53.array(layer_ref),
967
- port_hints: z53.array(z53.string()).optional(),
968
- pcb_component_id: z53.string().optional(),
969
- pcb_port_id: z53.string().optional(),
983
+ layers: z54.array(layer_ref),
984
+ port_hints: z54.array(z54.string()).optional(),
985
+ pcb_component_id: z54.string().optional(),
986
+ pcb_port_id: z54.string().optional(),
970
987
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
971
988
  });
972
- var pcb_circular_hole_with_rect_pad = z53.object({
973
- type: z53.literal("pcb_plated_hole"),
974
- shape: z53.literal("circular_hole_with_rect_pad"),
975
- pcb_group_id: z53.string().optional(),
976
- subcircuit_id: z53.string().optional(),
977
- hole_shape: z53.literal("circle"),
978
- pad_shape: z53.literal("rect"),
979
- hole_diameter: z53.number(),
980
- rect_pad_width: z53.number(),
981
- rect_pad_height: z53.number(),
989
+ var pcb_circular_hole_with_rect_pad = z54.object({
990
+ type: z54.literal("pcb_plated_hole"),
991
+ shape: z54.literal("circular_hole_with_rect_pad"),
992
+ pcb_group_id: z54.string().optional(),
993
+ subcircuit_id: z54.string().optional(),
994
+ hole_shape: z54.literal("circle"),
995
+ pad_shape: z54.literal("rect"),
996
+ hole_diameter: z54.number(),
997
+ rect_pad_width: z54.number(),
998
+ rect_pad_height: z54.number(),
982
999
  x: distance,
983
1000
  y: distance,
984
- layers: z53.array(layer_ref),
985
- port_hints: z53.array(z53.string()).optional(),
986
- pcb_component_id: z53.string().optional(),
987
- pcb_port_id: z53.string().optional(),
1001
+ layers: z54.array(layer_ref),
1002
+ port_hints: z54.array(z54.string()).optional(),
1003
+ pcb_component_id: z54.string().optional(),
1004
+ pcb_port_id: z54.string().optional(),
988
1005
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
989
1006
  });
990
- var pcb_pill_hole_with_rect_pad = z53.object({
991
- type: z53.literal("pcb_plated_hole"),
992
- shape: z53.literal("pill_hole_with_rect_pad"),
993
- pcb_group_id: z53.string().optional(),
994
- subcircuit_id: z53.string().optional(),
995
- hole_shape: z53.literal("pill"),
996
- pad_shape: z53.literal("rect"),
997
- hole_width: z53.number(),
998
- hole_height: z53.number(),
999
- rect_pad_width: z53.number(),
1000
- rect_pad_height: z53.number(),
1007
+ var pcb_pill_hole_with_rect_pad = z54.object({
1008
+ type: z54.literal("pcb_plated_hole"),
1009
+ shape: z54.literal("pill_hole_with_rect_pad"),
1010
+ pcb_group_id: z54.string().optional(),
1011
+ subcircuit_id: z54.string().optional(),
1012
+ hole_shape: z54.literal("pill"),
1013
+ pad_shape: z54.literal("rect"),
1014
+ hole_width: z54.number(),
1015
+ hole_height: z54.number(),
1016
+ rect_pad_width: z54.number(),
1017
+ rect_pad_height: z54.number(),
1001
1018
  x: distance,
1002
1019
  y: distance,
1003
- layers: z53.array(layer_ref),
1004
- port_hints: z53.array(z53.string()).optional(),
1005
- pcb_component_id: z53.string().optional(),
1006
- pcb_port_id: z53.string().optional(),
1020
+ layers: z54.array(layer_ref),
1021
+ port_hints: z54.array(z54.string()).optional(),
1022
+ pcb_component_id: z54.string().optional(),
1023
+ pcb_port_id: z54.string().optional(),
1007
1024
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
1008
1025
  });
1009
- var pcb_plated_hole = z53.union([
1026
+ var pcb_plated_hole = z54.union([
1010
1027
  pcb_plated_hole_circle,
1011
1028
  pcb_plated_hole_oval,
1012
1029
  pcb_circular_hole_with_rect_pad,
@@ -1020,84 +1037,84 @@ expectTypesMatch(true);
1020
1037
  expectTypesMatch(true);
1021
1038
 
1022
1039
  // src/pcb/pcb_port.ts
1023
- import { z as z54 } from "zod";
1024
- var pcb_port = z54.object({
1025
- type: z54.literal("pcb_port"),
1040
+ import { z as z55 } from "zod";
1041
+ var pcb_port = z55.object({
1042
+ type: z55.literal("pcb_port"),
1026
1043
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
1027
- pcb_group_id: z54.string().optional(),
1028
- subcircuit_id: z54.string().optional(),
1029
- source_port_id: z54.string(),
1030
- pcb_component_id: z54.string(),
1044
+ pcb_group_id: z55.string().optional(),
1045
+ subcircuit_id: z55.string().optional(),
1046
+ source_port_id: z55.string(),
1047
+ pcb_component_id: z55.string(),
1031
1048
  x: distance,
1032
1049
  y: distance,
1033
- layers: z54.array(layer_ref)
1050
+ layers: z55.array(layer_ref)
1034
1051
  }).describe("Defines a port on the PCB");
1035
1052
  expectTypesMatch(true);
1036
1053
 
1037
1054
  // src/pcb/pcb_smtpad.ts
1038
- import { z as z55 } from "zod";
1039
- var pcb_smtpad_circle = z55.object({
1040
- type: z55.literal("pcb_smtpad"),
1041
- shape: z55.literal("circle"),
1055
+ import { z as z56 } from "zod";
1056
+ var pcb_smtpad_circle = z56.object({
1057
+ type: z56.literal("pcb_smtpad"),
1058
+ shape: z56.literal("circle"),
1042
1059
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
1043
- pcb_group_id: z55.string().optional(),
1044
- subcircuit_id: z55.string().optional(),
1060
+ pcb_group_id: z56.string().optional(),
1061
+ subcircuit_id: z56.string().optional(),
1045
1062
  x: distance,
1046
1063
  y: distance,
1047
- radius: z55.number(),
1064
+ radius: z56.number(),
1048
1065
  layer: layer_ref,
1049
- port_hints: z55.array(z55.string()).optional(),
1050
- pcb_component_id: z55.string().optional(),
1051
- pcb_port_id: z55.string().optional()
1066
+ port_hints: z56.array(z56.string()).optional(),
1067
+ pcb_component_id: z56.string().optional(),
1068
+ pcb_port_id: z56.string().optional()
1052
1069
  });
1053
- var pcb_smtpad_rect = z55.object({
1054
- type: z55.literal("pcb_smtpad"),
1055
- shape: z55.literal("rect"),
1070
+ var pcb_smtpad_rect = z56.object({
1071
+ type: z56.literal("pcb_smtpad"),
1072
+ shape: z56.literal("rect"),
1056
1073
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
1057
- pcb_group_id: z55.string().optional(),
1058
- subcircuit_id: z55.string().optional(),
1074
+ pcb_group_id: z56.string().optional(),
1075
+ subcircuit_id: z56.string().optional(),
1059
1076
  x: distance,
1060
1077
  y: distance,
1061
- width: z55.number(),
1062
- height: z55.number(),
1078
+ width: z56.number(),
1079
+ height: z56.number(),
1063
1080
  layer: layer_ref,
1064
- port_hints: z55.array(z55.string()).optional(),
1065
- pcb_component_id: z55.string().optional(),
1066
- pcb_port_id: z55.string().optional()
1081
+ port_hints: z56.array(z56.string()).optional(),
1082
+ pcb_component_id: z56.string().optional(),
1083
+ pcb_port_id: z56.string().optional()
1067
1084
  });
1068
- var pcb_smtpad_rotated_rect = z55.object({
1069
- type: z55.literal("pcb_smtpad"),
1070
- shape: z55.literal("rotated_rect"),
1085
+ var pcb_smtpad_rotated_rect = z56.object({
1086
+ type: z56.literal("pcb_smtpad"),
1087
+ shape: z56.literal("rotated_rect"),
1071
1088
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
1072
- pcb_group_id: z55.string().optional(),
1073
- subcircuit_id: z55.string().optional(),
1089
+ pcb_group_id: z56.string().optional(),
1090
+ subcircuit_id: z56.string().optional(),
1074
1091
  x: distance,
1075
1092
  y: distance,
1076
- width: z55.number(),
1077
- height: z55.number(),
1093
+ width: z56.number(),
1094
+ height: z56.number(),
1078
1095
  ccw_rotation: rotation,
1079
1096
  layer: layer_ref,
1080
- port_hints: z55.array(z55.string()).optional(),
1081
- pcb_component_id: z55.string().optional(),
1082
- pcb_port_id: z55.string().optional()
1097
+ port_hints: z56.array(z56.string()).optional(),
1098
+ pcb_component_id: z56.string().optional(),
1099
+ pcb_port_id: z56.string().optional()
1083
1100
  });
1084
- var pcb_smtpad_pill = z55.object({
1085
- type: z55.literal("pcb_smtpad"),
1086
- shape: z55.literal("pill"),
1101
+ var pcb_smtpad_pill = z56.object({
1102
+ type: z56.literal("pcb_smtpad"),
1103
+ shape: z56.literal("pill"),
1087
1104
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
1088
- pcb_group_id: z55.string().optional(),
1089
- subcircuit_id: z55.string().optional(),
1105
+ pcb_group_id: z56.string().optional(),
1106
+ subcircuit_id: z56.string().optional(),
1090
1107
  x: distance,
1091
1108
  y: distance,
1092
- width: z55.number(),
1093
- height: z55.number(),
1094
- radius: z55.number(),
1109
+ width: z56.number(),
1110
+ height: z56.number(),
1111
+ radius: z56.number(),
1095
1112
  layer: layer_ref,
1096
- port_hints: z55.array(z55.string()).optional(),
1097
- pcb_component_id: z55.string().optional(),
1098
- pcb_port_id: z55.string().optional()
1113
+ port_hints: z56.array(z56.string()).optional(),
1114
+ pcb_component_id: z56.string().optional(),
1115
+ pcb_port_id: z56.string().optional()
1099
1116
  });
1100
- var pcb_smtpad = z55.union([
1117
+ var pcb_smtpad = z56.union([
1101
1118
  pcb_smtpad_circle,
1102
1119
  pcb_smtpad_rect,
1103
1120
  pcb_smtpad_rotated_rect,
@@ -1109,79 +1126,79 @@ expectTypesMatch(true);
1109
1126
  expectTypesMatch(true);
1110
1127
 
1111
1128
  // src/pcb/pcb_solder_paste.ts
1112
- import { z as z56 } from "zod";
1113
- var pcb_solder_paste_circle = z56.object({
1114
- type: z56.literal("pcb_solder_paste"),
1115
- shape: z56.literal("circle"),
1129
+ import { z as z57 } from "zod";
1130
+ var pcb_solder_paste_circle = z57.object({
1131
+ type: z57.literal("pcb_solder_paste"),
1132
+ shape: z57.literal("circle"),
1116
1133
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
1117
- pcb_group_id: z56.string().optional(),
1118
- subcircuit_id: z56.string().optional(),
1134
+ pcb_group_id: z57.string().optional(),
1135
+ subcircuit_id: z57.string().optional(),
1119
1136
  x: distance,
1120
1137
  y: distance,
1121
- radius: z56.number(),
1138
+ radius: z57.number(),
1122
1139
  layer: layer_ref,
1123
- pcb_component_id: z56.string().optional(),
1124
- pcb_smtpad_id: z56.string().optional()
1140
+ pcb_component_id: z57.string().optional(),
1141
+ pcb_smtpad_id: z57.string().optional()
1125
1142
  });
1126
- var pcb_solder_paste_rect = z56.object({
1127
- type: z56.literal("pcb_solder_paste"),
1128
- shape: z56.literal("rect"),
1143
+ var pcb_solder_paste_rect = z57.object({
1144
+ type: z57.literal("pcb_solder_paste"),
1145
+ shape: z57.literal("rect"),
1129
1146
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
1130
- pcb_group_id: z56.string().optional(),
1131
- subcircuit_id: z56.string().optional(),
1147
+ pcb_group_id: z57.string().optional(),
1148
+ subcircuit_id: z57.string().optional(),
1132
1149
  x: distance,
1133
1150
  y: distance,
1134
- width: z56.number(),
1135
- height: z56.number(),
1151
+ width: z57.number(),
1152
+ height: z57.number(),
1136
1153
  layer: layer_ref,
1137
- pcb_component_id: z56.string().optional(),
1138
- pcb_smtpad_id: z56.string().optional()
1154
+ pcb_component_id: z57.string().optional(),
1155
+ pcb_smtpad_id: z57.string().optional()
1139
1156
  });
1140
- var pcb_solder_paste_pill = z56.object({
1141
- type: z56.literal("pcb_solder_paste"),
1142
- shape: z56.literal("pill"),
1157
+ var pcb_solder_paste_pill = z57.object({
1158
+ type: z57.literal("pcb_solder_paste"),
1159
+ shape: z57.literal("pill"),
1143
1160
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
1144
- pcb_group_id: z56.string().optional(),
1145
- subcircuit_id: z56.string().optional(),
1161
+ pcb_group_id: z57.string().optional(),
1162
+ subcircuit_id: z57.string().optional(),
1146
1163
  x: distance,
1147
1164
  y: distance,
1148
- width: z56.number(),
1149
- height: z56.number(),
1150
- radius: z56.number(),
1165
+ width: z57.number(),
1166
+ height: z57.number(),
1167
+ radius: z57.number(),
1151
1168
  layer: layer_ref,
1152
- pcb_component_id: z56.string().optional(),
1153
- pcb_smtpad_id: z56.string().optional()
1169
+ pcb_component_id: z57.string().optional(),
1170
+ pcb_smtpad_id: z57.string().optional()
1154
1171
  });
1155
- var pcb_solder_paste_rotated_rect = z56.object({
1156
- type: z56.literal("pcb_solder_paste"),
1157
- shape: z56.literal("rotated_rect"),
1172
+ var pcb_solder_paste_rotated_rect = z57.object({
1173
+ type: z57.literal("pcb_solder_paste"),
1174
+ shape: z57.literal("rotated_rect"),
1158
1175
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
1159
- pcb_group_id: z56.string().optional(),
1160
- subcircuit_id: z56.string().optional(),
1176
+ pcb_group_id: z57.string().optional(),
1177
+ subcircuit_id: z57.string().optional(),
1161
1178
  x: distance,
1162
1179
  y: distance,
1163
- width: z56.number(),
1164
- height: z56.number(),
1180
+ width: z57.number(),
1181
+ height: z57.number(),
1165
1182
  ccw_rotation: distance,
1166
1183
  layer: layer_ref,
1167
- pcb_component_id: z56.string().optional(),
1168
- pcb_smtpad_id: z56.string().optional()
1184
+ pcb_component_id: z57.string().optional(),
1185
+ pcb_smtpad_id: z57.string().optional()
1169
1186
  });
1170
- var pcb_solder_paste_oval = z56.object({
1171
- type: z56.literal("pcb_solder_paste"),
1172
- shape: z56.literal("oval"),
1187
+ var pcb_solder_paste_oval = z57.object({
1188
+ type: z57.literal("pcb_solder_paste"),
1189
+ shape: z57.literal("oval"),
1173
1190
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
1174
- pcb_group_id: z56.string().optional(),
1175
- subcircuit_id: z56.string().optional(),
1191
+ pcb_group_id: z57.string().optional(),
1192
+ subcircuit_id: z57.string().optional(),
1176
1193
  x: distance,
1177
1194
  y: distance,
1178
- width: z56.number(),
1179
- height: z56.number(),
1195
+ width: z57.number(),
1196
+ height: z57.number(),
1180
1197
  layer: layer_ref,
1181
- pcb_component_id: z56.string().optional(),
1182
- pcb_smtpad_id: z56.string().optional()
1198
+ pcb_component_id: z57.string().optional(),
1199
+ pcb_smtpad_id: z57.string().optional()
1183
1200
  });
1184
- var pcb_solder_paste = z56.union([
1201
+ var pcb_solder_paste = z57.union([
1185
1202
  pcb_solder_paste_circle,
1186
1203
  pcb_solder_paste_rect,
1187
1204
  pcb_solder_paste_pill,
@@ -1197,95 +1214,95 @@ expectTypesMatch(
1197
1214
  expectTypesMatch(true);
1198
1215
 
1199
1216
  // src/pcb/pcb_text.ts
1200
- import { z as z57 } from "zod";
1201
- var pcb_text = z57.object({
1202
- type: z57.literal("pcb_text"),
1217
+ import { z as z58 } from "zod";
1218
+ var pcb_text = z58.object({
1219
+ type: z58.literal("pcb_text"),
1203
1220
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
1204
- pcb_group_id: z57.string().optional(),
1205
- subcircuit_id: z57.string().optional(),
1206
- text: z57.string(),
1221
+ pcb_group_id: z58.string().optional(),
1222
+ subcircuit_id: z58.string().optional(),
1223
+ text: z58.string(),
1207
1224
  center: point,
1208
1225
  layer: layer_ref,
1209
1226
  width: length,
1210
1227
  height: length,
1211
- lines: z57.number(),
1228
+ lines: z58.number(),
1212
1229
  // @ts-ignore
1213
- align: z57.enum(["bottom-left"])
1230
+ align: z58.enum(["bottom-left"])
1214
1231
  }).describe("Defines text on the PCB");
1215
1232
  expectTypesMatch(true);
1216
1233
 
1217
1234
  // src/pcb/pcb_trace.ts
1218
- import { z as z58 } from "zod";
1219
- var pcb_trace_route_point_wire = z58.object({
1220
- route_type: z58.literal("wire"),
1235
+ import { z as z59 } from "zod";
1236
+ var pcb_trace_route_point_wire = z59.object({
1237
+ route_type: z59.literal("wire"),
1221
1238
  x: distance,
1222
1239
  y: distance,
1223
1240
  width: distance,
1224
- start_pcb_port_id: z58.string().optional(),
1225
- end_pcb_port_id: z58.string().optional(),
1241
+ start_pcb_port_id: z59.string().optional(),
1242
+ end_pcb_port_id: z59.string().optional(),
1226
1243
  layer: layer_ref
1227
1244
  });
1228
- var pcb_trace_route_point_via = z58.object({
1229
- route_type: z58.literal("via"),
1245
+ var pcb_trace_route_point_via = z59.object({
1246
+ route_type: z59.literal("via"),
1230
1247
  x: distance,
1231
1248
  y: distance,
1232
1249
  hole_diameter: distance.optional(),
1233
1250
  outer_diameter: distance.optional(),
1234
- from_layer: z58.string(),
1235
- to_layer: z58.string()
1251
+ from_layer: z59.string(),
1252
+ to_layer: z59.string()
1236
1253
  });
1237
- var pcb_trace_route_point = z58.union([
1254
+ var pcb_trace_route_point = z59.union([
1238
1255
  pcb_trace_route_point_wire,
1239
1256
  pcb_trace_route_point_via
1240
1257
  ]);
1241
- var pcb_trace = z58.object({
1242
- type: z58.literal("pcb_trace"),
1243
- source_trace_id: z58.string().optional(),
1244
- pcb_component_id: z58.string().optional(),
1258
+ var pcb_trace = z59.object({
1259
+ type: z59.literal("pcb_trace"),
1260
+ source_trace_id: z59.string().optional(),
1261
+ pcb_component_id: z59.string().optional(),
1245
1262
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
1246
- pcb_group_id: z58.string().optional(),
1247
- subcircuit_id: z58.string().optional(),
1248
- route_thickness_mode: z58.enum(["constant", "interpolated"]).default("constant").optional(),
1249
- route_order_index: z58.number().optional(),
1250
- should_round_corners: z58.boolean().optional(),
1251
- trace_length: z58.number().optional(),
1252
- route: z58.array(pcb_trace_route_point)
1263
+ pcb_group_id: z59.string().optional(),
1264
+ subcircuit_id: z59.string().optional(),
1265
+ route_thickness_mode: z59.enum(["constant", "interpolated"]).default("constant").optional(),
1266
+ route_order_index: z59.number().optional(),
1267
+ should_round_corners: z59.boolean().optional(),
1268
+ trace_length: z59.number().optional(),
1269
+ route: z59.array(pcb_trace_route_point)
1253
1270
  }).describe("Defines a trace on the PCB");
1254
1271
  expectTypesMatch(true);
1255
1272
  expectTypesMatch(true);
1256
1273
 
1257
1274
  // src/pcb/pcb_trace_error.ts
1258
- import { z as z59 } from "zod";
1259
- var pcb_trace_error = z59.object({
1260
- type: z59.literal("pcb_trace_error"),
1275
+ import { z as z60 } from "zod";
1276
+ var pcb_trace_error = z60.object({
1277
+ type: z60.literal("pcb_trace_error"),
1261
1278
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
1262
- error_type: z59.literal("pcb_trace_error"),
1263
- message: z59.string(),
1279
+ error_type: z60.literal("pcb_trace_error"),
1280
+ message: z60.string(),
1264
1281
  center: point.optional(),
1265
- pcb_trace_id: z59.string(),
1266
- source_trace_id: z59.string(),
1267
- pcb_component_ids: z59.array(z59.string()),
1268
- pcb_port_ids: z59.array(z59.string())
1282
+ pcb_trace_id: z60.string(),
1283
+ source_trace_id: z60.string(),
1284
+ pcb_component_ids: z60.array(z60.string()),
1285
+ pcb_port_ids: z60.array(z60.string())
1269
1286
  }).describe("Defines a trace error on the PCB");
1270
1287
  expectTypesMatch(true);
1271
1288
 
1272
1289
  // src/pcb/pcb_port_not_matched_error.ts
1273
- import { z as z60 } from "zod";
1274
- var pcb_port_not_matched_error = z60.object({
1275
- type: z60.literal("pcb_port_not_matched_error"),
1290
+ import { z as z61 } from "zod";
1291
+ var pcb_port_not_matched_error = z61.object({
1292
+ type: z61.literal("pcb_port_not_matched_error"),
1276
1293
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
1277
- message: z60.string(),
1278
- pcb_component_ids: z60.array(z60.string())
1294
+ message: z61.string(),
1295
+ pcb_component_ids: z61.array(z61.string())
1279
1296
  }).describe("Defines a trace error on the PCB where a port is not matched");
1280
1297
  expectTypesMatch(true);
1281
1298
 
1282
1299
  // src/pcb/pcb_via.ts
1283
- import { z as z61 } from "zod";
1284
- var pcb_via = z61.object({
1285
- type: z61.literal("pcb_via"),
1300
+ import { z as z62 } from "zod";
1301
+ var pcb_via = z62.object({
1302
+ type: z62.literal("pcb_via"),
1286
1303
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
1287
- pcb_group_id: z61.string().optional(),
1288
- subcircuit_id: z61.string().optional(),
1304
+ pcb_group_id: z62.string().optional(),
1305
+ subcircuit_id: z62.string().optional(),
1289
1306
  x: distance,
1290
1307
  y: distance,
1291
1308
  outer_diameter: distance.default("0.6mm"),
@@ -1294,56 +1311,56 @@ var pcb_via = z61.object({
1294
1311
  from_layer: layer_ref.optional(),
1295
1312
  /** @deprecated */
1296
1313
  to_layer: layer_ref.optional(),
1297
- layers: z61.array(layer_ref),
1298
- pcb_trace_id: z61.string().optional()
1314
+ layers: z62.array(layer_ref),
1315
+ pcb_trace_id: z62.string().optional()
1299
1316
  }).describe("Defines a via on the PCB");
1300
1317
  expectTypesMatch(true);
1301
1318
 
1302
1319
  // src/pcb/pcb_board.ts
1303
- import { z as z62 } from "zod";
1304
- var pcb_board = z62.object({
1305
- type: z62.literal("pcb_board"),
1320
+ import { z as z63 } from "zod";
1321
+ var pcb_board = z63.object({
1322
+ type: z63.literal("pcb_board"),
1306
1323
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
1307
- is_subcircuit: z62.boolean().optional(),
1308
- subcircuit_id: z62.string().optional(),
1324
+ is_subcircuit: z63.boolean().optional(),
1325
+ subcircuit_id: z63.string().optional(),
1309
1326
  width: length,
1310
1327
  height: length,
1311
1328
  center: point,
1312
1329
  thickness: length.optional().default(1.4),
1313
- num_layers: z62.number().optional().default(4),
1314
- outline: z62.array(point).optional(),
1315
- material: z62.enum(["fr4", "fr1"]).default("fr4")
1330
+ num_layers: z63.number().optional().default(4),
1331
+ outline: z63.array(point).optional(),
1332
+ material: z63.enum(["fr4", "fr1"]).default("fr4")
1316
1333
  }).describe("Defines the board outline of the PCB");
1317
1334
  expectTypesMatch(true);
1318
1335
 
1319
1336
  // src/pcb/pcb_placement_error.ts
1320
- import { z as z63 } from "zod";
1321
- var pcb_placement_error = z63.object({
1322
- type: z63.literal("pcb_placement_error"),
1337
+ import { z as z64 } from "zod";
1338
+ var pcb_placement_error = z64.object({
1339
+ type: z64.literal("pcb_placement_error"),
1323
1340
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
1324
- message: z63.string()
1341
+ message: z64.string()
1325
1342
  }).describe("Defines a placement error on the PCB");
1326
1343
  expectTypesMatch(true);
1327
1344
 
1328
1345
  // src/pcb/pcb_trace_hint.ts
1329
- import { z as z64 } from "zod";
1330
- var pcb_trace_hint = z64.object({
1331
- type: z64.literal("pcb_trace_hint"),
1346
+ import { z as z65 } from "zod";
1347
+ var pcb_trace_hint = z65.object({
1348
+ type: z65.literal("pcb_trace_hint"),
1332
1349
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
1333
- pcb_port_id: z64.string(),
1334
- pcb_component_id: z64.string(),
1335
- route: z64.array(route_hint_point)
1350
+ pcb_port_id: z65.string(),
1351
+ pcb_component_id: z65.string(),
1352
+ route: z65.array(route_hint_point)
1336
1353
  }).describe("A hint that can be used during generation of a PCB trace");
1337
1354
  expectTypesMatch(true);
1338
1355
 
1339
1356
  // src/pcb/pcb_silkscreen_line.ts
1340
- import { z as z65 } from "zod";
1341
- var pcb_silkscreen_line = z65.object({
1342
- type: z65.literal("pcb_silkscreen_line"),
1357
+ import { z as z66 } from "zod";
1358
+ var pcb_silkscreen_line = z66.object({
1359
+ type: z66.literal("pcb_silkscreen_line"),
1343
1360
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
1344
- pcb_component_id: z65.string(),
1345
- pcb_group_id: z65.string().optional(),
1346
- subcircuit_id: z65.string().optional(),
1361
+ pcb_component_id: z66.string(),
1362
+ pcb_group_id: z66.string().optional(),
1363
+ subcircuit_id: z66.string().optional(),
1347
1364
  stroke_width: distance.default("0.1mm"),
1348
1365
  x1: distance,
1349
1366
  y1: distance,
@@ -1354,46 +1371,46 @@ var pcb_silkscreen_line = z65.object({
1354
1371
  expectTypesMatch(true);
1355
1372
 
1356
1373
  // src/pcb/pcb_silkscreen_path.ts
1357
- import { z as z66 } from "zod";
1358
- var pcb_silkscreen_path = z66.object({
1359
- type: z66.literal("pcb_silkscreen_path"),
1374
+ import { z as z67 } from "zod";
1375
+ var pcb_silkscreen_path = z67.object({
1376
+ type: z67.literal("pcb_silkscreen_path"),
1360
1377
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
1361
- pcb_component_id: z66.string(),
1362
- pcb_group_id: z66.string().optional(),
1363
- subcircuit_id: z66.string().optional(),
1378
+ pcb_component_id: z67.string(),
1379
+ pcb_group_id: z67.string().optional(),
1380
+ subcircuit_id: z67.string().optional(),
1364
1381
  layer: visible_layer,
1365
- route: z66.array(point),
1382
+ route: z67.array(point),
1366
1383
  stroke_width: length
1367
1384
  }).describe("Defines a silkscreen path on the PCB");
1368
1385
  expectTypesMatch(true);
1369
1386
 
1370
1387
  // src/pcb/pcb_silkscreen_text.ts
1371
- import { z as z67 } from "zod";
1372
- var pcb_silkscreen_text = z67.object({
1373
- type: z67.literal("pcb_silkscreen_text"),
1388
+ import { z as z68 } from "zod";
1389
+ var pcb_silkscreen_text = z68.object({
1390
+ type: z68.literal("pcb_silkscreen_text"),
1374
1391
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
1375
- pcb_group_id: z67.string().optional(),
1376
- subcircuit_id: z67.string().optional(),
1377
- font: z67.literal("tscircuit2024").default("tscircuit2024"),
1392
+ pcb_group_id: z68.string().optional(),
1393
+ subcircuit_id: z68.string().optional(),
1394
+ font: z68.literal("tscircuit2024").default("tscircuit2024"),
1378
1395
  font_size: distance.default("0.2mm"),
1379
- pcb_component_id: z67.string(),
1380
- text: z67.string(),
1381
- ccw_rotation: z67.number().optional(),
1396
+ pcb_component_id: z68.string(),
1397
+ text: z68.string(),
1398
+ ccw_rotation: z68.number().optional(),
1382
1399
  layer: layer_ref,
1383
- is_mirrored: z67.boolean().default(false).optional(),
1400
+ is_mirrored: z68.boolean().default(false).optional(),
1384
1401
  anchor_position: point.default({ x: 0, y: 0 }),
1385
- anchor_alignment: z67.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center")
1402
+ anchor_alignment: z68.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center")
1386
1403
  }).describe("Defines silkscreen text on the PCB");
1387
1404
  expectTypesMatch(true);
1388
1405
 
1389
1406
  // src/pcb/pcb_silkscreen_rect.ts
1390
- import { z as z68 } from "zod";
1391
- var pcb_silkscreen_rect = z68.object({
1392
- type: z68.literal("pcb_silkscreen_rect"),
1407
+ import { z as z69 } from "zod";
1408
+ var pcb_silkscreen_rect = z69.object({
1409
+ type: z69.literal("pcb_silkscreen_rect"),
1393
1410
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
1394
- pcb_component_id: z68.string(),
1395
- pcb_group_id: z68.string().optional(),
1396
- subcircuit_id: z68.string().optional(),
1411
+ pcb_component_id: z69.string(),
1412
+ pcb_group_id: z69.string().optional(),
1413
+ subcircuit_id: z69.string().optional(),
1397
1414
  center: point,
1398
1415
  width: length,
1399
1416
  height: length,
@@ -1403,15 +1420,15 @@ var pcb_silkscreen_rect = z68.object({
1403
1420
  expectTypesMatch(true);
1404
1421
 
1405
1422
  // src/pcb/pcb_silkscreen_circle.ts
1406
- import { z as z69 } from "zod";
1407
- var pcb_silkscreen_circle = z69.object({
1408
- type: z69.literal("pcb_silkscreen_circle"),
1423
+ import { z as z70 } from "zod";
1424
+ var pcb_silkscreen_circle = z70.object({
1425
+ type: z70.literal("pcb_silkscreen_circle"),
1409
1426
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
1410
1427
  "pcb_silkscreen_circle"
1411
1428
  ),
1412
- pcb_component_id: z69.string(),
1413
- pcb_group_id: z69.string().optional(),
1414
- subcircuit_id: z69.string().optional(),
1429
+ pcb_component_id: z70.string(),
1430
+ pcb_group_id: z70.string().optional(),
1431
+ subcircuit_id: z70.string().optional(),
1415
1432
  center: point,
1416
1433
  radius: length,
1417
1434
  layer: visible_layer,
@@ -1420,13 +1437,13 @@ var pcb_silkscreen_circle = z69.object({
1420
1437
  expectTypesMatch(true);
1421
1438
 
1422
1439
  // src/pcb/pcb_silkscreen_oval.ts
1423
- import { z as z70 } from "zod";
1424
- var pcb_silkscreen_oval = z70.object({
1425
- type: z70.literal("pcb_silkscreen_oval"),
1440
+ import { z as z71 } from "zod";
1441
+ var pcb_silkscreen_oval = z71.object({
1442
+ type: z71.literal("pcb_silkscreen_oval"),
1426
1443
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
1427
- pcb_component_id: z70.string(),
1428
- pcb_group_id: z70.string().optional(),
1429
- subcircuit_id: z70.string().optional(),
1444
+ pcb_component_id: z71.string(),
1445
+ pcb_group_id: z71.string().optional(),
1446
+ subcircuit_id: z71.string().optional(),
1430
1447
  center: point,
1431
1448
  radius_x: distance,
1432
1449
  radius_y: distance,
@@ -1435,158 +1452,192 @@ var pcb_silkscreen_oval = z70.object({
1435
1452
  expectTypesMatch(true);
1436
1453
 
1437
1454
  // src/pcb/pcb_fabrication_note_text.ts
1438
- import { z as z71 } from "zod";
1439
- var pcb_fabrication_note_text = z71.object({
1440
- type: z71.literal("pcb_fabrication_note_text"),
1455
+ import { z as z72 } from "zod";
1456
+ var pcb_fabrication_note_text = z72.object({
1457
+ type: z72.literal("pcb_fabrication_note_text"),
1441
1458
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
1442
1459
  "pcb_fabrication_note_text"
1443
1460
  ),
1444
- subcircuit_id: z71.string().optional(),
1445
- pcb_group_id: z71.string().optional(),
1446
- font: z71.literal("tscircuit2024").default("tscircuit2024"),
1461
+ subcircuit_id: z72.string().optional(),
1462
+ pcb_group_id: z72.string().optional(),
1463
+ font: z72.literal("tscircuit2024").default("tscircuit2024"),
1447
1464
  font_size: distance.default("1mm"),
1448
- pcb_component_id: z71.string(),
1449
- text: z71.string(),
1465
+ pcb_component_id: z72.string(),
1466
+ text: z72.string(),
1450
1467
  layer: visible_layer,
1451
1468
  anchor_position: point.default({ x: 0, y: 0 }),
1452
- anchor_alignment: z71.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1453
- color: z71.string().optional()
1469
+ anchor_alignment: z72.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1470
+ color: z72.string().optional()
1454
1471
  }).describe(
1455
1472
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
1456
1473
  );
1457
1474
  expectTypesMatch(true);
1458
1475
 
1459
1476
  // src/pcb/pcb_fabrication_note_path.ts
1460
- import { z as z72 } from "zod";
1461
- var pcb_fabrication_note_path = z72.object({
1462
- type: z72.literal("pcb_fabrication_note_path"),
1477
+ import { z as z73 } from "zod";
1478
+ var pcb_fabrication_note_path = z73.object({
1479
+ type: z73.literal("pcb_fabrication_note_path"),
1463
1480
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
1464
1481
  "pcb_fabrication_note_path"
1465
1482
  ),
1466
- pcb_component_id: z72.string(),
1467
- subcircuit_id: z72.string().optional(),
1483
+ pcb_component_id: z73.string(),
1484
+ subcircuit_id: z73.string().optional(),
1468
1485
  layer: layer_ref,
1469
- route: z72.array(point),
1486
+ route: z73.array(point),
1470
1487
  stroke_width: length,
1471
- color: z72.string().optional()
1488
+ color: z73.string().optional()
1472
1489
  }).describe(
1473
1490
  "Defines a fabrication path on the PCB for fabricators or assemblers"
1474
1491
  );
1475
1492
  expectTypesMatch(true);
1476
1493
 
1477
1494
  // src/pcb/pcb_keepout.ts
1478
- import { z as z73 } from "zod";
1479
- var pcb_keepout = z73.object({
1480
- type: z73.literal("pcb_keepout"),
1481
- shape: z73.literal("rect"),
1482
- pcb_group_id: z73.string().optional(),
1483
- subcircuit_id: z73.string().optional(),
1495
+ import { z as z74 } from "zod";
1496
+ var pcb_keepout = z74.object({
1497
+ type: z74.literal("pcb_keepout"),
1498
+ shape: z74.literal("rect"),
1499
+ pcb_group_id: z74.string().optional(),
1500
+ subcircuit_id: z74.string().optional(),
1484
1501
  center: point,
1485
1502
  width: distance,
1486
1503
  height: distance,
1487
- pcb_keepout_id: z73.string(),
1488
- layers: z73.array(z73.string()),
1504
+ pcb_keepout_id: z74.string(),
1505
+ layers: z74.array(z74.string()),
1489
1506
  // Specify layers where the keepout applies
1490
- description: z73.string().optional()
1507
+ description: z74.string().optional()
1491
1508
  // Optional description of the keepout
1492
1509
  }).or(
1493
- z73.object({
1494
- type: z73.literal("pcb_keepout"),
1495
- shape: z73.literal("circle"),
1496
- pcb_group_id: z73.string().optional(),
1497
- subcircuit_id: z73.string().optional(),
1510
+ z74.object({
1511
+ type: z74.literal("pcb_keepout"),
1512
+ shape: z74.literal("circle"),
1513
+ pcb_group_id: z74.string().optional(),
1514
+ subcircuit_id: z74.string().optional(),
1498
1515
  center: point,
1499
1516
  radius: distance,
1500
- pcb_keepout_id: z73.string(),
1501
- layers: z73.array(z73.string()),
1517
+ pcb_keepout_id: z74.string(),
1518
+ layers: z74.array(z74.string()),
1502
1519
  // Specify layers where the keepout applies
1503
- description: z73.string().optional()
1520
+ description: z74.string().optional()
1504
1521
  // Optional description of the keepout
1505
1522
  })
1506
1523
  );
1507
1524
 
1525
+ // src/pcb/pcb_cutout.ts
1526
+ import { z as z75 } from "zod";
1527
+ var pcb_cutout_base = z75.object({
1528
+ type: z75.literal("pcb_cutout"),
1529
+ pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
1530
+ pcb_group_id: z75.string().optional(),
1531
+ subcircuit_id: z75.string().optional()
1532
+ });
1533
+ var pcb_cutout_rect = pcb_cutout_base.extend({
1534
+ shape: z75.literal("rect"),
1535
+ center: point,
1536
+ width: length,
1537
+ height: length,
1538
+ rotation: rotation.optional()
1539
+ });
1540
+ expectTypesMatch(true);
1541
+ var pcb_cutout_circle = pcb_cutout_base.extend({
1542
+ shape: z75.literal("circle"),
1543
+ center: point,
1544
+ radius: length
1545
+ });
1546
+ expectTypesMatch(true);
1547
+ var pcb_cutout_polygon = pcb_cutout_base.extend({
1548
+ shape: z75.literal("polygon"),
1549
+ points: z75.array(point)
1550
+ });
1551
+ expectTypesMatch(true);
1552
+ var pcb_cutout = z75.discriminatedUnion("shape", [
1553
+ pcb_cutout_rect,
1554
+ pcb_cutout_circle,
1555
+ pcb_cutout_polygon
1556
+ ]).describe("Defines a cutout on the PCB, removing board material.");
1557
+ expectTypesMatch(true);
1558
+
1508
1559
  // src/pcb/pcb_missing_footprint_error.ts
1509
- import { z as z74 } from "zod";
1510
- var pcb_missing_footprint_error = z74.object({
1511
- type: z74.literal("pcb_missing_footprint_error"),
1560
+ import { z as z76 } from "zod";
1561
+ var pcb_missing_footprint_error = z76.object({
1562
+ type: z76.literal("pcb_missing_footprint_error"),
1512
1563
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
1513
1564
  "pcb_missing_footprint_error"
1514
1565
  ),
1515
- pcb_group_id: z74.string().optional(),
1516
- subcircuit_id: z74.string().optional(),
1517
- error_type: z74.literal("pcb_missing_footprint_error"),
1518
- source_component_id: z74.string(),
1519
- message: z74.string()
1566
+ pcb_group_id: z76.string().optional(),
1567
+ subcircuit_id: z76.string().optional(),
1568
+ error_type: z76.literal("pcb_missing_footprint_error"),
1569
+ source_component_id: z76.string(),
1570
+ message: z76.string()
1520
1571
  }).describe("Defines a missing footprint error on the PCB");
1521
1572
  expectTypesMatch(
1522
1573
  true
1523
1574
  );
1524
1575
 
1525
1576
  // src/pcb/pcb_group.ts
1526
- import { z as z75 } from "zod";
1527
- var pcb_group = z75.object({
1528
- type: z75.literal("pcb_group"),
1577
+ import { z as z77 } from "zod";
1578
+ var pcb_group = z77.object({
1579
+ type: z77.literal("pcb_group"),
1529
1580
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
1530
- source_group_id: z75.string(),
1531
- is_subcircuit: z75.boolean().optional(),
1532
- subcircuit_id: z75.string().optional(),
1581
+ source_group_id: z77.string(),
1582
+ is_subcircuit: z77.boolean().optional(),
1583
+ subcircuit_id: z77.string().optional(),
1533
1584
  width: length,
1534
1585
  height: length,
1535
1586
  center: point,
1536
- pcb_component_ids: z75.array(z75.string()),
1537
- name: z75.string().optional(),
1538
- description: z75.string().optional()
1587
+ pcb_component_ids: z77.array(z77.string()),
1588
+ name: z77.string().optional(),
1589
+ description: z77.string().optional()
1539
1590
  }).describe("Defines a group of components on the PCB");
1540
1591
  expectTypesMatch(true);
1541
1592
 
1542
1593
  // src/pcb/pcb_autorouting_error.ts
1543
- import { z as z76 } from "zod";
1544
- var pcb_autorouting_error = z76.object({
1545
- type: z76.literal("pcb_autorouting_error"),
1594
+ import { z as z78 } from "zod";
1595
+ var pcb_autorouting_error = z78.object({
1596
+ type: z78.literal("pcb_autorouting_error"),
1546
1597
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
1547
- message: z76.string()
1598
+ message: z78.string()
1548
1599
  }).describe("The autorouting has failed to route a portion of the board");
1549
1600
  expectTypesMatch(true);
1550
1601
 
1551
1602
  // src/pcb/pcb_manual_edit_conflict_warning.ts
1552
- import { z as z77 } from "zod";
1553
- var pcb_manual_edit_conflict_warning = z77.object({
1554
- type: z77.literal("pcb_manual_edit_conflict_warning"),
1603
+ import { z as z79 } from "zod";
1604
+ var pcb_manual_edit_conflict_warning = z79.object({
1605
+ type: z79.literal("pcb_manual_edit_conflict_warning"),
1555
1606
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
1556
1607
  "pcb_manual_edit_conflict_warning"
1557
1608
  ),
1558
- message: z77.string(),
1559
- pcb_component_id: z77.string(),
1560
- pcb_group_id: z77.string().optional(),
1561
- subcircuit_id: z77.string().optional(),
1562
- source_component_id: z77.string()
1609
+ message: z79.string(),
1610
+ pcb_component_id: z79.string(),
1611
+ pcb_group_id: z79.string().optional(),
1612
+ subcircuit_id: z79.string().optional(),
1613
+ source_component_id: z79.string()
1563
1614
  }).describe(
1564
1615
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
1565
1616
  );
1566
1617
  expectTypesMatch(true);
1567
1618
 
1568
1619
  // src/cad/cad_component.ts
1569
- import { z as z78 } from "zod";
1570
- var cad_component = z78.object({
1571
- type: z78.literal("cad_component"),
1572
- cad_component_id: z78.string(),
1573
- pcb_component_id: z78.string(),
1574
- source_component_id: z78.string(),
1620
+ import { z as z80 } from "zod";
1621
+ var cad_component = z80.object({
1622
+ type: z80.literal("cad_component"),
1623
+ cad_component_id: z80.string(),
1624
+ pcb_component_id: z80.string(),
1625
+ source_component_id: z80.string(),
1575
1626
  position: point3,
1576
1627
  rotation: point3.optional(),
1577
1628
  size: point3.optional(),
1578
1629
  layer: layer_ref.optional(),
1579
1630
  // These are all ways to generate/load the 3d model
1580
- footprinter_string: z78.string().optional(),
1581
- model_obj_url: z78.string().optional(),
1582
- model_stl_url: z78.string().optional(),
1583
- model_3mf_url: z78.string().optional(),
1584
- model_jscad: z78.any().optional()
1631
+ footprinter_string: z80.string().optional(),
1632
+ model_obj_url: z80.string().optional(),
1633
+ model_stl_url: z80.string().optional(),
1634
+ model_3mf_url: z80.string().optional(),
1635
+ model_jscad: z80.any().optional()
1585
1636
  }).describe("Defines a component on the PCB");
1586
1637
 
1587
1638
  // src/any_circuit_element.ts
1588
- import { z as z79 } from "zod";
1589
- var any_circuit_element = z79.union([
1639
+ import { z as z81 } from "zod";
1640
+ var any_circuit_element = z81.union([
1590
1641
  source_trace,
1591
1642
  source_port,
1592
1643
  any_source_component,
@@ -1636,6 +1687,7 @@ var any_circuit_element = z79.union([
1636
1687
  pcb_fabrication_note_path,
1637
1688
  pcb_fabrication_note_text,
1638
1689
  pcb_autorouting_error,
1690
+ pcb_cutout,
1639
1691
  schematic_box,
1640
1692
  schematic_text,
1641
1693
  schematic_line,
@@ -1648,6 +1700,7 @@ var any_circuit_element = z79.union([
1648
1700
  schematic_debug_object,
1649
1701
  schematic_voltage_probe,
1650
1702
  schematic_manual_edit_conflict_warning,
1703
+ schematic_group,
1651
1704
  cad_component
1652
1705
  ]);
1653
1706
  var any_soup_element = any_circuit_element;
@@ -1672,6 +1725,10 @@ export {
1672
1725
  pcb_autorouting_error,
1673
1726
  pcb_board,
1674
1727
  pcb_component,
1728
+ pcb_cutout,
1729
+ pcb_cutout_circle,
1730
+ pcb_cutout_polygon,
1731
+ pcb_cutout_rect,
1675
1732
  pcb_fabrication_note_path,
1676
1733
  pcb_fabrication_note_text,
1677
1734
  pcb_group,
@@ -1722,6 +1779,7 @@ export {
1722
1779
  schematic_debug_point,
1723
1780
  schematic_debug_rect,
1724
1781
  schematic_error,
1782
+ schematic_group,
1725
1783
  schematic_line,
1726
1784
  schematic_manual_edit_conflict_warning,
1727
1785
  schematic_net_label,