{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://cdsl.local/schema/cad.cdsl.llm.v1", "title": "CDSL semantic document", "description": "Complete self-contained CDSL. Runtime-supported operations can be rebuilt by the local CDSL-only engine; deferred operations are retained for future engine implementations.", "type": "object", "properties": { "schema": {"const": "cad.cdsl.llm.v1"}, "schema_version": {"type": "string"}, "kind": {"type": "string", "minLength": 1}, "part_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{3,80}$"}, "meta": {"type": "object"}, "geometry": { "type": "object", "properties": { "sketches": {"type": "array", "items": {"$ref": "#/$defs/sketch"}} }, "required": ["sketches"], "additionalProperties": false }, "features": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/feature"}} }, "required": ["schema", "geometry", "features"], "additionalProperties": false, "$defs": { "number": {"type": "number"}, "positive": {"type": "number", "exclusiveMinimum": 0}, "positiveInteger": {"type": "integer", "minimum": 1}, "point2": {"type": "array", "items": {"$ref": "#/$defs/number"}, "minItems": 2, "maxItems": 2}, "point3": {"type": "array", "items": {"$ref": "#/$defs/number"}, "minItems": 3, "maxItems": 3}, "circleItem": { "type": "object", "properties": {"center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}}, "required": ["radius_mm"], "additionalProperties": false }, "workplane": { "type": "object", "properties": { "origin_mm": {"$ref": "#/$defs/point3"}, "x_dir": {"$ref": "#/$defs/point3"}, "y_dir": {"$ref": "#/$defs/point3"}, "normal": {"$ref": "#/$defs/point3"} }, "required": ["origin_mm", "x_dir", "normal"], "additionalProperties": false }, "hostFace": { "oneOf": [ { "type": "object", "properties": { "frame": { "type": "object", "properties": { "origin_mm": {"$ref": "#/$defs/point3"}, "x_dir": {"$ref": "#/$defs/point3"}, "y_dir": {"$ref": "#/$defs/point3"}, "normal": {"$ref": "#/$defs/point3"} }, "required": ["origin_mm", "x_dir", "y_dir", "normal"], "additionalProperties": false } }, "required": ["frame"], "additionalProperties": false }, {"$ref": "#/$defs/selectorRef"} ] }, "holePosition": { "type": "object", "properties": {"mm": {"$ref": "#/$defs/point3"}}, "required": ["mm"], "additionalProperties": false }, "axis": { "type": "object", "properties": {"origin_mm": {"$ref": "#/$defs/point3"}, "direction": {"$ref": "#/$defs/point3"}, "selector": {"$ref": "#/$defs/selectorRef"}, "unresolved": {"type": "string", "minLength": 1}}, "anyOf": [{"required": ["origin_mm", "direction"]}, {"required": ["selector"]}, {"required": ["unresolved"]}], "additionalProperties": false }, "endCondition": { "type": "object", "properties": { "type": {"type": "string", "minLength": 1}, "solidworks_code": {"type": "integer"}, "reference": {"$ref": "#/$defs/selectorRef"}, "offset_mm": {"type": "number", "minimum": 0} }, "required": ["type", "solidworks_code"], "additionalProperties": false }, "selectorOrUnresolved": { "oneOf": [ {"$ref": "#/$defs/selectorRef"}, {"type": "object", "properties": {"unresolved": {"type": "string", "minLength": 1}}, "required": ["unresolved"], "additionalProperties": false} ] }, "extrudeParams": { "type": "object", "properties": {"distance_mm": {"$ref": "#/$defs/number"}, "reverse": {"type": "boolean"}, "reverse_distance_mm": {"$ref": "#/$defs/number"}, "end_condition": {"$ref": "#/$defs/endCondition"}, "reverse_end_condition": {"$ref": "#/$defs/endCondition"}, "draft": {"$ref": "#/$defs/extrudeDraft"}, "result_mode": {"enum": ["fuse", "new_body"]}}, "required": ["distance_mm"], "additionalProperties": false }, "extrudeDraft": { "type": "object", "properties": {"angle_deg": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 90}, "pull_direction": {"type": "boolean"}}, "required": ["angle_deg", "pull_direction"], "additionalProperties": false }, "extrudeCutThroughParams": { "type": "object", "properties": {"reverse": {"type": "boolean"}, "end_condition": {"$ref": "#/$defs/endCondition"}}, "required": ["end_condition"], "additionalProperties": false }, "loftParams": { "type": "object", "properties": { "profile_sketch_ids": { "type": "array", "minItems": 2, "maxItems": 16, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"} } }, "required": ["profile_sketch_ids"], "additionalProperties": false }, "loftCapFaceParams": { "type": "object", "properties": { "profile_sketch_ids": { "type": "array", "minItems": 1, "maxItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"} } }, "required": ["profile_sketch_ids"], "additionalProperties": false }, "sweepPath": { "type": "object", "properties": { "workplane": {"$ref": "#/$defs/workplane"}, "segment": {"$ref": "#/$defs/analyticSegment"} }, "required": ["workplane", "segment"], "additionalProperties": false }, "sweepParams": { "type": "object", "properties": { "path": {"$ref": "#/$defs/sweepPath"}, "is_frenet": {"type": "boolean"}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["path"], "additionalProperties": false }, "revolveParams": { "type": "object", "properties": {"angle_deg": {"type": "number", "minimum": 0, "maximum": 360}, "axis": {"$ref": "#/$defs/axis"}, "reverse": {"type": "boolean"}, "end_condition": {"$ref": "#/$defs/endCondition"}, "result_mode": {"enum": ["fuse", "new_body"]}}, "required": ["angle_deg", "axis"], "additionalProperties": false }, "revolveSurfaceParams": { "type": "object", "properties": {"angle_deg": {"type": "number", "minimum": 0, "maximum": 360}, "axis": {"$ref": "#/$defs/axis"}, "reverse": {"type": "boolean"}}, "required": ["angle_deg", "axis"], "additionalProperties": false }, "extrudeSurfaceParams": { "type": "object", "properties": {"distance_mm": {"type": "number", "exclusiveMinimum": 0}, "reverse": {"type": "boolean"}, "reverse_distance_mm": {"type": "number", "exclusiveMinimum": 0}}, "required": ["distance_mm"], "additionalProperties": false }, "sphereParams": { "type": "object", "properties": { "radius_mm": {"$ref": "#/$defs/positive"}, "center_mm": {"$ref": "#/$defs/point3"}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["radius_mm", "center_mm"], "additionalProperties": false }, "boxParams": { "type": "object", "properties": { "length_mm": {"$ref": "#/$defs/positive"}, "width_mm": {"$ref": "#/$defs/positive"}, "height_mm": {"$ref": "#/$defs/positive"}, "center_mm": {"$ref": "#/$defs/point3"}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["length_mm", "width_mm", "height_mm", "center_mm"], "additionalProperties": false }, "cylinderParams": { "type": "object", "properties": { "radius_mm": {"$ref": "#/$defs/positive"}, "height_mm": {"$ref": "#/$defs/positive"}, "axis": {"$ref": "#/$defs/axis"}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["radius_mm", "height_mm"], "additionalProperties": false }, "bendChainLeg": { "type": "object", "properties": { "leg_mm": {"$ref": "#/$defs/positive"}, "bend_angle_deg": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 180}, "inner_radius_mm": {"type": "number", "minimum": 0}, "side": {"type": "integer", "enum": [1, -1]} }, "required": ["leg_mm"], "additionalProperties": false }, "bendAddParams": { "type": "object", "properties": { "thickness_mm": {"$ref": "#/$defs/positive"}, "width_mm": {"$ref": "#/$defs/positive"}, "chain": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/bendChainLeg"}}, "frame": { "type": "object", "properties": { "origin_mm": {"$ref": "#/$defs/point3"}, "x_dir": {"$ref": "#/$defs/point3"}, "y_dir": {"$ref": "#/$defs/point3"}, "normal": {"$ref": "#/$defs/point3"} }, "required": ["origin_mm", "x_dir", "y_dir", "normal"], "additionalProperties": false }, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["thickness_mm", "width_mm", "chain"], "additionalProperties": false }, "gearAddParams": { "type": "object", "properties": { "module_mm": {"$ref": "#/$defs/positive"}, "teeth_count": {"type": "integer", "minimum": 8, "maximum": 200}, "width_mm": {"$ref": "#/$defs/positive"}, "axis": {"$ref": "#/$defs/axis"}, "helix_angle_rad": {"type": "number", "minimum": 0, "exclusiveMaximum": 0.7853981633974483}, "pressure_angle_rad": {"type": "number", "exclusiveMinimum": 0, "maximum": 0.6108652381980153}, "herringbone": {"type": "boolean"}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["module_mm", "teeth_count", "width_mm", "axis"], "additionalProperties": false }, "rackAddParams": { "type": "object", "properties": { "module_mm": {"$ref": "#/$defs/positive"}, "teeth_count": {"type": "integer", "minimum": 1, "maximum": 2000}, "thickness_mm": {"$ref": "#/$defs/positive"}, "axis": {"$ref": "#/$defs/axis"}, "pressure_angle_rad": {"type": "number", "exclusiveMinimum": 0, "maximum": 0.6108652381980153}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["module_mm", "teeth_count", "thickness_mm", "axis"], "additionalProperties": false }, "threadAddParams": { "type": "object", "properties": { "major_diameter_mm": {"$ref": "#/$defs/positive"}, "minor_diameter_mm": {"$ref": "#/$defs/positive"}, "pitch_mm": {"$ref": "#/$defs/positive"}, "length_mm": {"$ref": "#/$defs/positive"}, "axis": {"$ref": "#/$defs/axis"}, "angle_deg": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 180}, "lefthand": {"type": "boolean"}, "relief_length_mm": {"type": "number", "minimum": 0}, "crest_radius_mm": {"type": "number", "minimum": 0}, "root_radius_mm": {"type": "number", "minimum": 0}, "result_mode": {"enum": ["fuse", "new_body"]} }, "required": ["major_diameter_mm", "minor_diameter_mm", "pitch_mm", "length_mm", "axis"], "additionalProperties": false }, "threadCutParams": { "type": "object", "properties": { "major_diameter_mm": {"$ref": "#/$defs/positive"}, "minor_diameter_mm": {"$ref": "#/$defs/positive"}, "pitch_mm": {"$ref": "#/$defs/positive"}, "length_mm": {"$ref": "#/$defs/positive"}, "axis": {"$ref": "#/$defs/axis"}, "angle_deg": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 180}, "lefthand": {"type": "boolean"}, "crest_radius_mm": {"type": "number", "minimum": 0}, "root_radius_mm": {"type": "number", "minimum": 0} }, "required": ["major_diameter_mm", "minor_diameter_mm", "pitch_mm", "length_mm", "axis"], "additionalProperties": false }, "holeBaseParams": { "type": "object", "properties": { "diameter_mm": {"$ref": "#/$defs/positive"}, "depth_mm": {"$ref": "#/$defs/positive"}, "positions": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/holePosition"}}, "host_face": {"$ref": "#/$defs/hostFace"}, "drill_angle_rad": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 3.141592653589793} }, "required": ["diameter_mm", "depth_mm", "positions"] }, "holeBlindParams": { "type": "object", "properties": { "diameter_mm": {"$ref": "#/$defs/positive"}, "depth_mm": {"$ref": "#/$defs/positive"}, "positions": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/holePosition"}}, "host_face": {"$ref": "#/$defs/hostFace"}, "drill_angle_rad": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 3.141592653589793} }, "required": ["diameter_mm", "depth_mm", "positions"], "additionalProperties": false }, "holeCountersinkParams": { "allOf": [ {"$ref": "#/$defs/holeBaseParams"}, { "type": "object", "properties": { "diameter_mm": {"$ref": "#/$defs/positive"}, "depth_mm": {"$ref": "#/$defs/positive"}, "positions": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/holePosition"}}, "host_face": {"$ref": "#/$defs/hostFace"}, "drill_angle_rad": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 3.141592653589793}, "countersink_diameter_mm": {"$ref": "#/$defs/positive"}, "countersink_angle_rad": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 3.141592653589793} }, "required": ["diameter_mm", "depth_mm", "positions", "countersink_diameter_mm", "countersink_angle_rad"], "additionalProperties": false } ] }, "holeCounterboreParams": { "allOf": [ {"$ref": "#/$defs/holeBaseParams"}, { "type": "object", "properties": { "diameter_mm": {"$ref": "#/$defs/positive"}, "depth_mm": {"$ref": "#/$defs/positive"}, "positions": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/holePosition"}}, "host_face": {"$ref": "#/$defs/hostFace"}, "drill_angle_rad": {"type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 3.141592653589793}, "counterbore_diameter_mm": {"$ref": "#/$defs/positive"}, "counterbore_depth_mm": {"$ref": "#/$defs/positive"} }, "required": ["diameter_mm", "depth_mm", "positions", "counterbore_diameter_mm", "counterbore_depth_mm"], "additionalProperties": false } ] }, "filletParams": { "type": "object", "properties": {"radius_mm": {"type": "number", "minimum": 0}, "tangent_propagation": {"type": "boolean"}}, "required": ["radius_mm"], "additionalProperties": false }, "chamferParams": { "type": "object", "properties": {"distance_mm": {"type": "number", "minimum": 0}, "distance_2_mm": {"type": "number", "minimum": 0}, "angle_rad": {"type": "number", "minimum": 0, "maximum": 3.141592653589793}, "tangent_propagation": {"type": "boolean"}}, "required": ["distance_mm"], "additionalProperties": false }, "shellParams": { "type": "object", "properties": {"thickness_mm": {"type": "number", "exclusiveMinimum": 0}, "inward": {"type": "boolean"}}, "required": ["thickness_mm"], "additionalProperties": false }, "booleanBodiesParams": { "type": "object", "properties": { "operation": {"enum": ["union", "subtract", "intersect"]}, "target_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "tool_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "keep_tools": {"type": "boolean"} }, "required": ["operation", "target_feature_ids", "tool_feature_ids"], "additionalProperties": false }, "linearPatternParams": { "type": "object", "properties": { "source_feature_ids": {"type": "array", "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "direction_1": {"$ref": "#/$defs/point3"}, "spacing_1_mm": {"type": "number", "minimum": 0}, "pattern_count_1": {"type": "integer", "minimum": 1}, "direction_2": {"$ref": "#/$defs/point3"}, "spacing_2_mm": {"type": "number", "minimum": 0}, "pattern_count_2": {"type": "integer", "minimum": 1} }, "required": ["source_feature_ids", "direction_1", "spacing_1_mm", "pattern_count_1"], "additionalProperties": false }, "mirrorPatternParams": { "type": "object", "properties": { "source_feature_ids": {"type": "array", "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "mirror_plane": {"$ref": "#/$defs/selectorOrUnresolved"}, "mirror_current_body": {"type": "boolean"} }, "required": ["source_feature_ids", "mirror_plane"], "additionalProperties": false }, "circularPatternParams": { "type": "object", "properties": { "source_feature_ids": {"type": "array", "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "axis": {"$ref": "#/$defs/axis"}, "pattern_count": {"type": "integer", "minimum": 1}, "sweep_angle_deg": {"type": "number", "minimum": -360, "maximum": 360}, "operation_mode": {"enum": ["add", "remove"]}, "excluded_instance_indices": {"type": "array", "items": {"type": "integer", "minimum": 1}, "uniqueItems": true} }, "required": ["source_feature_ids", "axis", "pattern_count"], "additionalProperties": false }, "referencePlaneParams": { "type": "object", "properties": { "plane": {"oneOf": [{"$ref": "#/$defs/workplane"}, {"type": "object", "properties": {"unresolved": {"type": "string", "minLength": 1}}, "required": ["unresolved"], "additionalProperties": false}]}, "references": {"type": "array", "items": {"$ref": "#/$defs/selectorRef"}}, "derived_from_sketch_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "derived_from_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "plane_inference": {"enum": ["solidworks_origin_plane_order", "parent_reference_plane"]}, "offset_mm": {"type": "number"}, "angle_rad": {"type": "number"}, "reverse": {"type": "boolean"}, "solidworks_type": {"type": "integer"} }, "required": ["plane"], "additionalProperties": false }, "referenceAxisParams": { "type": "object", "properties": {"axis": {"$ref": "#/$defs/axis"}}, "required": ["axis"], "additionalProperties": false }, "holeWizardParams": { "type": "object", "properties": { "hole_type": {"type": "string", "minLength": 1}, "diameter_mm": {"type": "number", "minimum": 0}, "depth_mm": {"type": "number", "minimum": 0}, "end_condition": {"$ref": "#/$defs/endCondition"}, "positions": {"type": "array", "items": {"$ref": "#/$defs/holePosition"}}, "host_face": {"$ref": "#/$defs/hostFace"}, "thread": {"type": "object"}, "countersink": {"type": "object"}, "counterbore": {"type": "object"} }, "required": ["hole_type", "diameter_mm", "depth_mm", "end_condition"], "additionalProperties": false }, "selectorRef": { "type": "object", "properties": { "kind": {"enum": ["face", "edge", "axis", "plane", "feature", "vertex", "body"]}, "stable_id": {"type": "string", "minLength": 1}, "owner_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_.:-]{1,160}$"}, "geometry": {"type": "object"}, "source": {"enum": ["solidworks", "inferred_from_step", "runtime_snapshot", "viewer_selection"]}, "snapshot_id": {"type": "string", "minLength": 1}, "binding_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "match_mode": {"enum": ["unique", "all"]}, "matched_selectors": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/selectorRef"}}, "intersection_of": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/selectorRef"}}, "confidence": {"type": "number", "minimum": 0, "maximum": 1} }, "required": ["kind", "stable_id", "source", "confidence"], "additionalProperties": false }, "analyticSegment": { "type": "object", "properties": { "type": {"enum": ["line", "arc", "circle", "ellipse", "bspline"]}, "start": {"$ref": "#/$defs/point2"}, "end": {"$ref": "#/$defs/point2"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}, "major_radius_mm": {"$ref": "#/$defs/positive"}, "minor_radius_mm": {"$ref": "#/$defs/positive"}, "major_axis": {"$ref": "#/$defs/point2"}, "points": {"type": "array", "minItems": 3, "items": {"$ref": "#/$defs/point2"}}, "parameters": {"type": "array", "minItems": 3, "items": {"type": "number"}}, "periodic": {"type": "boolean"}, "parameterization": {"enum": ["chord", "centripetal"]}, "clockwise": {"type": "boolean"}, "start_tangent": {"$ref": "#/$defs/point2"}, "end_tangent": {"$ref": "#/$defs/point2"} }, "required": ["type"], "allOf": [ {"if": {"properties": {"type": {"const": "line"}}}, "then": {"required": ["start", "end"]}}, {"if": {"properties": {"type": {"const": "arc"}}}, "then": {"required": ["start", "end", "center", "radius_mm"]}}, {"if": {"properties": {"type": {"const": "circle"}}}, "then": {"required": ["center", "radius_mm"]}}, {"if": {"properties": {"type": {"const": "ellipse"}}}, "then": {"required": ["center", "major_radius_mm", "minor_radius_mm", "major_axis"]}}, {"if": {"properties": {"type": {"const": "bspline"}}}, "then": {"required": ["start", "end", "points"]}} ], "additionalProperties": false }, "constructionBsplineSegment": { "type": "object", "properties": { "type": {"const": "bspline"}, "degree": {"type": "integer", "minimum": 1}, "control_points": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/point2"}}, "knots": {"type": "array", "minItems": 2, "items": {"type": "number"}}, "periodic": {"type": "boolean"}, "weights": {"type": "array", "minItems": 2, "items": {"type": "number", "exclusiveMinimum": 0}} }, "required": ["type", "degree", "control_points", "knots", "periodic"], "additionalProperties": false }, "constructionSegment": { "oneOf": [ {"$ref": "#/$defs/analyticSegment"}, {"$ref": "#/$defs/constructionBsplineSegment"} ] }, "analyticContour": { "type": "object", "properties": { "role": {"enum": ["outer", "inner", "open", "unknown"]}, "closed": {"type": "boolean"}, "segments": {"type": "array", "items": {"$ref": "#/$defs/analyticSegment"}} }, "required": ["role", "closed", "segments"], "additionalProperties": false }, "analyticProfile": { "type": "object", "properties": { "type": {"const": "analytic_contours"}, "contours": {"type": "array", "items": {"$ref": "#/$defs/analyticContour"}}, "construction": {"type": "array", "items": {"$ref": "#/$defs/constructionSegment"}} }, "required": ["type", "contours"], "additionalProperties": false }, "feature_atomic_ids": {"enum": ["extrude_add_blind", "extrude_add_two_sided", "extrude_cut_blind", "extrude_cut_two_sided", "extrude_cut_through", "loft_add", "sweep_add", "revolve_add", "revolve_cut", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "box_add", "cylinder_add", "thread_add", "thread_cut", "bend_add", "gear_add", "rack_add", "fillet", "chamfer", "pattern_linear", "pattern_mirror", "pattern_circular", "boolean_bodies", "reference_plane", "reference_axis", "hole_wizard"]}, "feature": { "type": "object", "properties": { "id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "name": {"type": "string"}, "atomic_id": {"$ref": "#/$defs/feature_atomic_ids"}, "depends_on": {"type": "array", "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "sketch_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "params": {"type": "object"}, "execution_status": {"enum": ["supported", "deferred"]}, "selectors": {"type": "array", "items": {"$ref": "#/$defs/selectorRef"}}, "unresolved": {"type": "array", "items": {"type": "string", "minLength": 1}} }, "required": ["id", "atomic_id", "depends_on", "params"], "additionalProperties": false, "allOf": [ {"if": {"properties": {"atomic_id": {"const": "extrude_add_blind"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_add_blind_with_hole"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_add_two_sided"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_cut_blind"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_cut_through"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeCutThroughParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_cut_two_sided"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "loft_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "loft_add_with_cap_face"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftCapFaceParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "sweep_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/sweepParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "revolve_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "revolve_cut"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "revolve_surface"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveSurfaceParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "extrude_surface"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeSurfaceParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "sphere_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/sphereParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "box_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/boxParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "cylinder_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/cylinderParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "bend_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/bendAddParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "gear_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/gearAddParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "rack_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/rackAddParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "thread_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/threadAddParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "thread_cut"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/threadCutParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "hole_blind"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeBlindParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "hole_countersink"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeCountersinkParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "hole_counterbore"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeCounterboreParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "fillet"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/filletParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "chamfer"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/chamferParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "shell"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/shellParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "boolean_bodies"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/booleanBodiesParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "pattern_linear"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/linearPatternParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "pattern_mirror"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/mirrorPatternParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "pattern_circular"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/circularPatternParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "reference_plane"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referencePlaneParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "reference_axis"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referenceAxisParams"}}}}, {"if": {"properties": {"atomic_id": {"const": "hole_wizard"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeWizardParams"}}}} ] }, "profile_type": {"enum": ["circle", "polygon", "analytic_contours"]}, "profile": { "oneOf": [ {"type": "object", "properties": {"type": {"const": "circle"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}}, "required": ["type", "radius_mm"], "additionalProperties": false}, {"type": "object", "properties": {"type": {"const": "polygon"}, "vertices": {"type": "array", "minItems": 3, "items": {"$ref": "#/$defs/point2"}}}, "required": ["type", "vertices"], "additionalProperties": false}, {"$ref": "#/$defs/analyticProfile"} ] }, "sketch": { "type": "object", "properties": {"id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}, "name": {"type": "string"}, "workplane": {"$ref": "#/$defs/workplane"}, "profile": {"$ref": "#/$defs/profile"}, "role": {"enum": ["profile", "reference"]}, "attachment": {"$ref": "#/$defs/selectorRef"}, "profile_from": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}}, "required": ["id", "workplane", "profile"], "additionalProperties": false } } }