{ "schema": "cdsl.engine.schema.v1", "schema_version": "1.3.0", "cdsl_json_schema_file": "cdsl_schema.json", "maintenance_rule": "The semantic CDSL contract is a superset of the current runtime. runtime_supported_atomic_ids and runtime_supported_profiles must stay synchronized with runtime.py EXECUTORS, sketch_solver.py SHAPE_GENERATORS, and the package-level capability tests. Legacy llm_compiler.py and llm_engine.py are not the CDSL-only runtime contract.", "coordinate_convention": "All profile dimensions use millimetres. Two-dimensional points are [u, v] in the sketch workplane.", "runtime_supported_atomic_ids": ["extrude_add_blind", "extrude_add_two_sided", "extrude_cut_blind", "revolve_add", "revolve_cut", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "reference_plane", "reference_axis", "hole_wizard", "fillet", "chamfer", "pattern_linear", "pattern_mirror"], "runtime_supported_profiles": ["circle", "annulus", "circles", "circle_grid", "rectangle", "rectangle_with_circles", "rectangle_with_fillets", "obround", "polygon", "ibone", "rectangle_with_symmetric_notches", "revolve_chamfer", "revolve_chamfer_slanted", "circle_with_arc_notches", "circular_sector_slot", "circle_with_radial_tabs", "filleted_rect_side_slots", "d_shape", "partial_ring", "partial_ring_with_arc_island", "arc_chain", "radial_slot", "patterned_cutouts", "compound_patterned_cutouts", "analytic_contours", "complex_arc_shape", "unknown_shape"], "feature_atomic_ids": { "extrude_add_blind": {"summary": "Add the closed profile by one signed extrusion distance.", "required_params": ["distance_mm"], "optional_params": ["reverse"], "requires_sketch": true}, "extrude_add_two_sided": {"summary": "Add the closed profile with independently captured forward and reverse terminations.", "required_params": ["distance_mm", "reverse_distance_mm"], "optional_params": ["reverse", "end_condition", "reverse_end_condition"], "requires_sketch": true}, "extrude_cut_blind": {"summary": "Remove the closed profile by one signed extrusion distance.", "required_params": ["distance_mm"], "optional_params": ["reverse"], "requires_sketch": true}, "revolve_add": {"summary": "Add the closed profile by revolving it around an axis.", "required_params": ["angle_deg", "axis"], "optional_params": ["reverse"], "requires_sketch": true}, "revolve_cut": {"summary": "Remove the closed profile by revolving it around an axis.", "required_params": ["angle_deg", "axis"], "optional_params": ["reverse"], "requires_sketch": true}, "hole_blind": {"summary": "Cut one or more blind cylindrical holes in the current body.", "required_params": ["diameter_mm", "depth_mm", "positions", "host_face"], "optional_params": ["drill_angle_rad"], "position_format": "positions is a non-empty array of objects: [{\"mm\":[u_mm,v_mm,w_mm]}]. A bare coordinate array is invalid. host_face must provide a strict selector or an explicit frame.", "requires_sketch": true}, "hole_countersink": {"summary": "Cut one or more blind holes with countersink dimensions.", "required_params": ["diameter_mm", "depth_mm", "positions", "countersink_diameter_mm", "countersink_angle_rad", "host_face"], "optional_params": ["drill_angle_rad"], "position_format": "positions is a non-empty array of objects: [{\"mm\":[u_mm,v_mm,w_mm]}]. A bare coordinate array is invalid. host_face must provide a strict selector or an explicit frame.", "requires_sketch": true}, "hole_counterbore": {"summary": "Cut one or more blind holes with counterbore dimensions.", "required_params": ["diameter_mm", "depth_mm", "positions", "counterbore_diameter_mm", "counterbore_depth_mm", "host_face"], "optional_params": ["drill_angle_rad"], "position_format": "positions is a non-empty array of objects: [{\"mm\":[u_mm,v_mm,w_mm]}]. A bare coordinate array is invalid. host_face must provide a strict selector or an explicit frame.", "requires_sketch": true}, "sphere_add": {"summary": "Add one spherical solid at an explicit model-space center.", "required_params": ["radius_mm", "center_mm"], "optional_params": [], "requires_sketch": true}, "fillet": {"summary": "Apply a radius to selected edges or faces.", "required_params": ["radius_mm"], "optional_params": ["tangent_propagation"], "requires_sketch": false}, "chamfer": {"summary": "Apply an equal-distance or angle-distance chamfer to selected edges or faces.", "required_params": ["distance_mm"], "optional_params": ["distance_2_mm", "angle_rad"], "requires_sketch": false}, "pattern_linear": {"summary": "Repeat source features along one or two directions.", "required_params": ["source_feature_ids", "direction_1", "spacing_1_mm", "pattern_count_1"], "optional_params": ["direction_2", "spacing_2_mm", "pattern_count_2"], "requires_sketch": false}, "pattern_mirror": {"summary": "Mirror source features about a selected plane.", "required_params": ["source_feature_ids", "mirror_plane"], "optional_params": [], "requires_sketch": false}, "reference_plane": {"summary": "A named reference plane used by sketches or patterns.", "required_params": ["plane"], "optional_params": [], "requires_sketch": false}, "reference_axis": {"summary": "A named reference axis used by revolve or pattern features.", "required_params": ["axis"], "optional_params": [], "requires_sketch": false}, "hole_wizard": {"summary": "A SolidWorks Hole Wizard feature including its typed dimensional contract and placement selectors.", "required_params": ["hole_type", "diameter_mm", "depth_mm"], "optional_params": ["positions", "host_face", "thread", "countersink", "counterbore"], "requires_sketch": false} }, "profiles": { "circle": { "agent_allowed": true, "summary": "A single circular closed profile.", "required": ["radius_mm"], "optional": ["center"], "constraints": ["radius_mm > 0", "center defaults to [0, 0]"] }, "annulus": { "agent_allowed": true, "summary": "A concentric ring.", "required": ["inner_radius_mm", "outer_radius_mm"], "optional": ["center"], "constraints": ["0 < inner_radius_mm < outer_radius_mm"] }, "circles": { "agent_allowed": true, "summary": "A non-empty list of circles.", "required": ["items"], "item_schema": {"required": ["radius_mm"], "optional": ["center"]} }, "circle_grid": { "agent_allowed": true, "summary": "A rectangular grid of equal circles.", "required": ["radius_mm", "count_x", "count_y", "spacing_x_mm", "spacing_y_mm"], "optional": ["origin_mm", "center_mm"], "constraints": ["radius_mm > 0", "count_x and count_y are integers >= 1", "use origin_mm or center_mm, not both"] }, "rectangle": { "agent_allowed": true, "summary": "An axis-aligned rectangle.", "one_of": [["center", "width_mm", "height_mm"], ["min_mm", "max_mm"]], "constraints": ["width_mm > 0 and height_mm > 0 when using center"] }, "rectangle_with_circles": { "agent_allowed": true, "summary": "A rectangle or filleted rectangle with optional internal circles.", "required": ["boundary"], "optional": ["circles"], "nested": {"boundary": "rectangle schema plus optional type=rectangle|rectangle_with_fillets and fillet_radius_mm"} }, "rectangle_with_fillets": { "agent_allowed": true, "summary": "An axis-aligned rectangle with corner fillets and optional internal circles.", "one_of": [["center", "width_mm", "height_mm"], ["min_mm", "max_mm"]], "optional": ["fillet_radius_mm", "circles"], "constraints": ["fillet_radius_mm defaults to 0"] }, "obround": { "agent_allowed": true, "summary": "A horizontal capsule/slot.", "required": ["length_mm", "width_mm"], "optional": ["center"], "constraints": ["length_mm > 0", "width_mm > 0", "center defaults to [0, 0]"] }, "polygon": { "agent_allowed": true, "summary": "A closed straight-edge polygon.", "required": ["vertices"], "constraints": ["vertices contains at least three [u, v] points"] }, "ibone": { "agent_allowed": true, "summary": "I-shaped lug with optional four holes.", "required": ["body_width_mm", "body_height_mm", "flange_width_mm", "flange_height_mm", "corner_radius_mm"], "optional": ["hole_radius_mm"] }, "rectangle_with_symmetric_notches": { "agent_allowed": true, "summary": "A rectangular plate with four symmetric side notches.", "required": ["width_mm", "height_mm", "notch"], "nested": {"notch": {"required": ["y_start", "y_end", "depth_mm"], "optional": ["inner_radius_mm", "corner_radius_mm"]}} }, "revolve_chamfer": { "agent_allowed": true, "summary": "Five-edge trapezoid profile for a revolve cut.", "required": ["axis_height_mm", "top_width_mm", "bottom_width_mm"], "optional": ["wall_inset_mm", "step_inset_mm", "on_axis_side"], "constraints": ["on_axis_side is left or right"] }, "revolve_chamfer_slanted": { "agent_allowed": true, "summary": "Five-edge slanted profile for a revolve cut.", "required": ["axis_height_mm", "top_width_mm", "wall_height_mm", "wall_width_mm"], "optional": ["wall_inset_mm", "on_axis_side"], "constraints": ["on_axis_side is left or right"] }, "circle_with_arc_notches": { "agent_allowed": true, "summary": "A circular boundary with arc-shaped notches.", "required": ["outer_radius_mm", "notch_radius_mm"], "optional": ["notch_angles_deg", "circles"], "constraints": ["notch_angles_deg defaults to [0, 90, 180, 270]"] }, "circular_sector_slot": { "agent_allowed": true, "summary": "A circular-sector boundary with a central rectangular slot.", "required": ["arc_radius_mm", "slot_half_width_mm", "chord_half_mm"], "optional": ["circles"] }, "circle_with_radial_tabs": { "agent_allowed": true, "summary": "A circle with two mirrored radial tabs.", "required": ["outer_radius_mm"], "optional": ["tab_u_half_mm", "tab_v_offset_mm", "circles"] }, "filleted_rect_side_slots": { "agent_allowed": true, "summary": "A filleted rectangle with one semicircular slot at each side centre.", "required": ["half_width_mm", "half_height_mm", "corner_radius_mm"], "optional": ["slot_radius_mm", "circles"] }, "d_shape": { "agent_allowed": true, "summary": "A D-shaped boundary made from one chord and one arc.", "required": ["radius_mm"], "optional": ["chord_sign", "chord_x_mm", "circles"], "constraints": ["chord_sign is left or right"] }, "partial_ring": { "agent_allowed": true, "summary": "An annular sector.", "required": ["inner_radius_mm", "outer_radius_mm"], "optional": ["half_angle_deg", "circles"], "constraints": ["0 < inner_radius_mm < outer_radius_mm"] }, "partial_ring_with_arc_island": { "agent_allowed": true, "summary": "One or more annular sectors with an arc island.", "required": ["inner_radius_mm", "outer_radius_mm", "island_radius_mm"], "optional": ["half_angle_deg", "island_gap_mm", "center_angles_deg", "replicas"], "nested": {"replicas": {"required": ["center_angle_deg"]}} }, "arc_chain": { "agent_allowed": true, "summary": "A closed chain of two or more arcs, commonly used for revolve sections.", "required": ["arcs"], "optional": ["circles"], "item_schema": {"required": ["radius_mm", "start_angle_deg", "end_angle_deg"], "optional": ["center"]}, "constraints": ["arcs contains at least two endpoint-connected arcs"] }, "radial_slot": { "agent_allowed": true, "summary": "A rounded annular sector slot.", "required": ["inner_radius_mm", "outer_radius_mm", "start_angle_deg", "end_angle_deg"], "optional": ["circles"], "constraints": ["0 < inner_radius_mm < outer_radius_mm"] }, "patterned_cutouts": { "agent_allowed": true, "summary": "One procedural cutout motif repeated by one procedural layout.", "required": ["motif", "layout"], "nested": {"motif": "See motif_types", "layout": "See layout_types"} }, "compound_patterned_cutouts": { "agent_allowed": true, "summary": "Multiple procedural motif/layout pairs merged into one cutout sketch.", "required": ["patterns"], "nested": {"patterns": "Non-empty list of {motif, layout}; see patterned_cutouts."} }, "complex_arc_shape": { "agent_allowed": false, "summary": "Legacy compiler-context fallback only. Never generate it." }, "analytic_contours": { "agent_allowed": false, "summary": "Exact analytic line, arc and circle contours emitted by the Evidence v2 converter. The runtime resolves them into closed regions without compiler_context; B-spline currently produces an explicit unsupported diagnostic." }, "unknown_shape": { "agent_allowed": false, "summary": "Legacy compiler-context fallback only. Never generate it." } }, "motif_types": { "circle": ["radius_mm"], "square": ["width_mm"], "rectangle": ["width_mm", "height_mm"], "obround": ["length_mm", "width_mm"], "cross": ["size_mm", "arm_width_mm"], "d_shape_polygon": ["stem_length_mm", "nose_depth_mm", "half_height_mm"], "regular_hexagon": ["radius_mm"], "skew_hexagon": ["nominal_radius_mm"], "triangle": ["radius_mm"], "teardrop_polygon": ["width_mm", "height_mm"], "trapezoid": ["bottom_width_mm", "top_width_mm", "height_mm"], "annular_sector_polygon": ["inner_radius_mm", "outer_radius_mm", "half_angle_deg"] }, "layout_types": { "ring": ["radius_mm", "count"], "angular": ["count"], "concentric_rings": ["rings"], "disc_grid": ["count_x", "count_y", "spacing_x_mm", "spacing_y_mm"], "open_arc": ["radius_mm", "count", "start_angle_deg", "end_angle_deg"], "spiral": ["count", "start_radius_mm", "radius_step_mm", "angle_step_deg"], "cross_lines": ["count_per_axis", "spacing_mm"], "x_field": ["levels", "spacing_mm"], "twin_strips": ["x_offset_mm", "count_y", "y_start_mm", "y_end_mm"], "corner_clusters": ["levels_mm"], "diamond_field": ["manhattan_radius", "spacing_mm"] } }