feat(cadfs): expand selector provenance coverage

This commit is contained in:
2026-09-14 11:00:14 +08:00
parent 994d06aaea
commit de21ee8a5b
45 changed files with 19837 additions and 842 deletions
+411 -19
View File
@@ -95,12 +95,23 @@
"properties": {
"type": {"type": "string", "minLength": 1},
"solidworks_code": {"type": "integer"},
"reference": {"$ref": "#/$defs/selectorRef"},
"reference": {"oneOf": [{"$ref": "#/$defs/selectorRef"}, {"$ref": "#/$defs/sourceVertexDatumRef"}]},
"offset_mm": {"type": "number", "minimum": 0}
},
"required": ["type", "solidworks_code"],
"additionalProperties": false
},
"sourceVertexDatumRef": {
"type": "object",
"properties": {
"kind": {"const": "source_vertex"},
"source_sketch_id": {"type": "string", "minLength": 1, "maxLength": 160},
"source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160},
"point_mm": {"$ref": "#/$defs/point3"}
},
"required": ["kind", "source_sketch_id", "source_entity_id", "point_mm"],
"additionalProperties": false
},
"selectorOrUnresolved": {
"oneOf": [
{"$ref": "#/$defs/selectorRef"},
@@ -140,6 +151,14 @@
"maxItems": 16,
"uniqueItems": true,
"items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
},
"initial_output_roles": {"type": "boolean"},
"cap_output_profile_sources": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
}
},
"required": ["profile_sketch_ids"],
@@ -160,20 +179,92 @@
"additionalProperties": false
},
"sweepPath": {
"type": "object",
"properties": {
"workplane": {"$ref": "#/$defs/workplane"},
"segment": {"$ref": "#/$defs/analyticSegment"}
},
"required": ["workplane", "segment"],
"additionalProperties": false
"oneOf": [
{
"type": "object",
"properties": {
"workplane": {"$ref": "#/$defs/workplane"},
"segment": {"$ref": "#/$defs/analyticSegment"},
"segments": {
"type": "array",
"minItems": 2,
"items": {"$ref": "#/$defs/analyticSegment"}
}
},
"required": ["workplane"],
"oneOf": [
{"required": ["segment"], "not": {"required": ["segments"]}},
{"required": ["segments"], "not": {"required": ["segment"]}}
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"segments": {
"type": "array",
"minItems": 2,
"items": {"$ref": "#/$defs/spatialSweepSegment"}
}
},
"required": ["segments"],
"additionalProperties": false
}
]
},
"sweepParams": {
"type": "object",
"properties": {
"path": {"$ref": "#/$defs/sweepPath"},
"is_frenet": {"type": "boolean"},
"result_mode": {"enum": ["fuse", "new_body"]}
"result_mode": {"enum": ["fuse", "new_body"]},
"initial_output_roles": {"type": "boolean"},
"cap_output_contract": {
"type": "object",
"properties": {
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"profile_entity": {"type": "string", "minLength": 1, "maxLength": 160},
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
"path_reversed": {"type": "boolean"}
},
"required": ["profile_source", "profile_entity", "path_source", "path_entity", "path_reversed"],
"additionalProperties": false
},
"swept_face_contract": {
"type": "object",
"properties": {
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"profile_entities": {
"type": "array",
"items": {"type": "string", "minLength": 1, "maxLength": 160},
"minItems": 1,
"uniqueItems": true
},
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
"path_reversed": {"type": "boolean"}
},
"required": ["profile_source", "profile_entities", "path_source", "path_entity", "path_reversed"],
"additionalProperties": false
},
"swept_edge_contract": {
"type": "object",
"properties": {
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"profile_entities": {
"type": "array",
"items": {"type": "string", "minLength": 1, "maxLength": 160},
"minItems": 2,
"uniqueItems": true
},
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
"path_reversed": {"type": "boolean"}
},
"required": ["profile_source", "profile_entities", "path_source", "path_entity", "path_reversed"],
"additionalProperties": false
}
},
"required": ["path"],
"additionalProperties": false
@@ -405,14 +496,17 @@
"operation": {"enum": ["union", "subtract", "intersect"]},
"target_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
"target_pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
"target_transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
"tool_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
"tool_pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
"keep_tools": {"type": "boolean"}
"tool_transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
"keep_tools": {"type": "boolean"},
"targetless_body_set": {"type": "boolean"}
},
"required": ["operation"],
"allOf": [
{"anyOf": [{"required": ["target_feature_ids"]}, {"required": ["target_pattern_instance_refs"]}]},
{"anyOf": [{"required": ["tool_feature_ids"]}, {"required": ["tool_pattern_instance_refs"]}]}
{"anyOf": [{"required": ["target_feature_ids"]}, {"required": ["target_pattern_instance_refs"]}, {"required": ["target_transform_copy_refs"]}]},
{"anyOf": [{"required": ["tool_feature_ids"]}, {"required": ["tool_pattern_instance_refs"]}, {"required": ["tool_transform_copy_refs"]}]}
],
"additionalProperties": false
},
@@ -453,12 +547,22 @@
"required": ["transform_feature_id", "source_feature_id"],
"additionalProperties": false
},
"transformSourceMemberAlias": {
"type": "object",
"properties": {
"source_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"active_member_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
},
"required": ["source_feature_id", "active_member_feature_id"],
"additionalProperties": false
},
"transformBodiesParams": {
"type": "object",
"properties": {
"source_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
"pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
"transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
"source_member_aliases": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformSourceMemberAlias"}},
"transform": {"$ref": "#/$defs/bodyTransform"},
"make_copy": {"type": "boolean"}
},
@@ -533,6 +637,22 @@
"required": ["axis"],
"additionalProperties": false
},
"referencePointParams": {
"type": "object",
"properties": {"point_mm": {"$ref": "#/$defs/point3"}},
"required": ["point_mm"],
"additionalProperties": false
},
"assignVariableParams": {
"type": "object",
"properties": {
"name": {"type": "string", "minLength": 1, "maxLength": 256},
"value": {"type": "number"},
"value_kind": {"enum": ["any", "length"]}
},
"required": ["name", "value", "value_kind"],
"additionalProperties": false
},
"holeWizardParams": {
"type": "object",
"properties": {
@@ -588,6 +708,132 @@
"required": ["ast"],
"additionalProperties": false
},
"selectorIntentQueryExprNode": {
"oneOf": [
{
"type": "object",
"properties": {
"node": {"const": "set"},
"operator": {"enum": ["union", "intersection", "subtraction"]},
"operands": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "operator", "operands"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "filter"},
"filter": {"enum": ["adjacent", "owner_body", "body_type", "construction"]},
"input": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "filter", "input", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "topology_query"},
"owner": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"topology_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"entity_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "owner", "topology_type", "entity_type", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "created_by"},
"owner": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "owner", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "source_entity"},
"sketch": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"entity_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"entity": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "sketch", "entity_type", "entity", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "sketch_region"},
"sketch": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "sketch", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "opaque_call"},
"name": {"type": "string", "minLength": 1},
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "name", "arguments"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "list"},
"items": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
},
"required": ["node", "items"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "map"},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {"type": "string"},
"value": {"$ref": "#/$defs/selectorIntentQueryExprNode"}
},
"required": ["key", "value"],
"additionalProperties": false
}
}
},
"required": ["node", "entries"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"node": {"const": "literal"},
"value": {}
},
"required": ["node", "value"],
"additionalProperties": false
}
]
},
"selectorIntentQueryExpr": {
"type": "object",
"properties": {
"version": {"const": "1.0"},
"root": {"$ref": "#/$defs/selectorIntentQueryExprNode"}
},
"required": ["version", "root"],
"additionalProperties": false
},
"selectorIntent": {
"type": "object",
"properties": {
@@ -595,6 +841,7 @@
"kind": {"enum": ["face", "edge", "axis", "plane", "feature", "vertex", "body"]},
"query_family": {"type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,79}$"},
"source_query": {"$ref": "#/$defs/selectorIntentSourceQuery"},
"query_expr": {"$ref": "#/$defs/selectorIntentQueryExpr"},
"source_entity": {
"type": "object",
"properties": {
@@ -606,7 +853,7 @@
},
"source_entities": {
"type": "array",
"minItems": 2,
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
@@ -642,9 +889,81 @@
"additionalProperties": false
}
},
"blend_sources": {
"type": "object",
"properties": {
"edge": {
"type": "object",
"properties": {
"query_family": {"const": "CAP_EDGE"},
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
"source_entity": {
"type": "object",
"properties": {
"sketch_id": {"type": "string", "minLength": 1},
"entity_id": {"type": "string", "minLength": 1}
},
"required": ["sketch_id", "entity_id"],
"additionalProperties": false
},
"lineage_role": {"enum": ["extrude.start", "extrude.end"]}
},
"required": ["query_family", "owner_feature_id", "source_entity", "lineage_role"],
"additionalProperties": false
},
"face": {
"type": "object",
"properties": {
"query_family": {"enum": ["CAP_FACE", "SWEPT_FACE"]},
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
"output_role": {"enum": ["extrude.start", "extrude.end"]},
"source_entity": {
"type": "object",
"properties": {
"sketch_id": {"type": "string", "minLength": 1},
"entity_id": {"type": "string", "minLength": 1}
},
"required": ["sketch_id", "entity_id"],
"additionalProperties": false
}
},
"required": ["query_family", "owner_feature_id"],
"additionalProperties": false
}
},
"required": ["edge", "face"],
"additionalProperties": false
},
"blend_face_source": {
"type": "object",
"properties": {
"query_family": {"const": "CAP_EDGE"},
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
"source_entity": {
"type": "object",
"properties": {
"sketch_id": {"type": "string", "minLength": 1},
"entity_id": {"type": "string", "minLength": 1}
},
"required": ["sketch_id", "entity_id"],
"additionalProperties": false
},
"lineage_role": {"enum": ["extrude.start", "extrude.end"]}
},
"required": ["query_family", "owner_feature_id", "source_entity", "lineage_role"],
"additionalProperties": false
},
"output_role": {"$ref": "#/$defs/featureOutputRole"},
"consumer_contract": {"enum": ["direct_prism_cap_face_workplane", "primary_add_shell_union_continuation", "primary_add_up_to_surface_union_continuation", "primary_add_dressup_union_continuation", "symmetric_direct_prism_two_sided_up_to_surface_cap_pair", "symmetric_direct_prism_shell_swept_face_up_to_surface_pair", "immediate_retained_source_prism_swept_face_up_to_surface", "shell_retained_direct_prism_cap_offset_face_profile", "direct_prism_shell_offset_edge_tdd", "direct_prism_shell_offset_edge_vertex"]},
"lineage_role": {"enum": ["extrude.start", "extrude.end"]},
"body_member_contract": {"enum": ["direct_new_body"]},
"query_set_contract": {"enum": ["proven_operand_union", "proven_operand_intersection", "proven_operand_subtraction"]},
"owner_body_contract": {"enum": ["exact_input_owner"]},
"copy_contract": {"enum": ["primary_cut_cap_edge", "primary_cut_cap_face_workplane", "primary_cut_swept_face_workplane"]},
"set_kind": {"enum": ["face", "edge"]},
"body_scope": {"enum": ["active_member"]},
"empty_policy": {"enum": ["reject"]},
"multiple_policy": {"enum": ["all", "one"]},
"derivation_policy": {
"type": "object",
"properties": {
@@ -674,6 +993,8 @@
"snapshot_id": {"type": "string", "minLength": 1},
"binding_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
"match_mode": {"enum": ["unique", "all"]},
"query_input": {"$ref": "#/$defs/selectorRef"},
"query_operands": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/selectorRef"}},
"matched_selectors": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/selectorRef"}},
"intersection_of": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/selectorRef"}},
"selector_intent_version": {"const": "1.0"},
@@ -715,6 +1036,33 @@
],
"additionalProperties": false
},
"spatialSweepSegment": {
"type": "object",
"properties": {
"type": {"enum": ["line", "arc", "bspline"]},
"start_mm": {"$ref": "#/$defs/point3"},
"end_mm": {"$ref": "#/$defs/point3"},
"center_mm": {"$ref": "#/$defs/point3"},
"normal": {"$ref": "#/$defs/point3"},
"radius_mm": {"$ref": "#/$defs/positive"},
"points_mm": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/point3"}},
"parameters": {"type": "array", "minItems": 2, "items": {"type": "number"}},
"periodic": {"type": "boolean"},
"clockwise": {"type": "boolean"},
"start_tangent_mm": {"$ref": "#/$defs/point3"},
"end_tangent_mm": {"$ref": "#/$defs/point3"},
"source_sketch_id": {"type": "string", "minLength": 1, "maxLength": 160},
"source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}
},
"required": ["type", "source_sketch_id", "source_entity_id"],
"allOf": [
{"if": {"properties": {"type": {"const": "line"}}}, "then": {"required": ["start_mm", "end_mm"]}},
{"if": {"properties": {"type": {"const": "arc"}}}, "then": {"required": ["start_mm", "end_mm", "center_mm", "normal", "radius_mm"]}},
{"if": {"properties": {"type": {"const": "bspline"}}}, "then": {"required": ["points_mm"]}},
{"if": {"properties": {"type": {"const": "bspline"}, "points_mm": {"maxItems": 2}}}, "then": {"required": ["start_tangent_mm", "end_tangent_mm", "parameters"], "properties": {"periodic": {"const": false}}}}
],
"additionalProperties": false
},
"constructionBsplineSegment": {
"type": "object",
"properties": {
@@ -738,7 +1086,8 @@
"type": "object",
"properties": {
"role": {"enum": ["outer", "inner", "open", "unknown"]},
"closed": {"type": "boolean"},
"closed": {"type": "boolean"},
"surface_wire": {"type": "boolean"},
"segments": {"type": "array", "items": {"$ref": "#/$defs/analyticSegment"}}
},
"required": ["role", "closed", "segments"],
@@ -767,10 +1116,24 @@
"type": "object",
"properties": {
"anchor_entity_id": {"type": "string", "minLength": 1, "maxLength": 160},
"external_anchor_id": {"type": "string", "minLength": 1, "maxLength": 160},
"side": {"enum": [-1, 1]},
"intersection_index": {"type": "integer", "minimum": 0}
},
"required": ["anchor_entity_id", "side"],
"required": ["side"],
"oneOf": [
{"required": ["anchor_entity_id"]},
{"required": ["external_anchor_id"]}
],
"additionalProperties": false
},
"imprintExternalAnchor": {
"type": "object",
"properties": {
"id": {"type": "string", "minLength": 1, "maxLength": 160},
"selector": {"$ref": "#/$defs/selectorRef"}
},
"required": ["id", "selector"],
"additionalProperties": false
},
"imprintSelection": {
@@ -787,13 +1150,37 @@
"type": "object",
"properties": {
"type": {"const": "planar_imprint"},
"source_entities": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/imprintSourceEntity"}},
"selections": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSelection"}}
"source_entities": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSourceEntity"}},
"selections": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSelection"}},
"external_anchors": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintExternalAnchor"}}
},
"required": ["type", "source_entities", "selections"],
"allOf": [
{
"if": {"not": {"required": ["external_anchors"]}},
"then": {"properties": {"source_entities": {"minItems": 2}}}
}
],
"additionalProperties": false
},
"feature_atomic_ids": {"enum": ["extrude_add_blind", "extrude_add_blind_with_hole", "extrude_add_two_sided", "extrude_cut_blind", "extrude_cut_two_sided", "extrude_cut_through", "extrude_from_face", "extrude_surface", "loft_add", "loft_add_with_cap_face", "sweep_add", "revolve_add", "revolve_cut", "revolve_surface", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "box_add", "cylinder_add", "thread_add", "thread_cut", "bend_add", "gear_add", "rack_add", "fillet", "chamfer", "shell", "boolean_bodies", "transform_bodies", "delete_bodies", "pattern_linear", "pattern_mirror", "pattern_circular", "reference_plane", "reference_axis", "hole_wizard"]},
"multiSourceRegionsProfile": {
"type": "object",
"properties": {
"type": {"const": "multi_source_regions"},
"source_sketch_ids": {"type": "array", "minItems": 2, "items": {"type": "string", "minLength": 1, "maxLength": 160}, "uniqueItems": true},
"profiles": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/directProfile"}}
},
"required": ["type", "source_sketch_ids", "profiles"],
"additionalProperties": false
},
"directProfile": {
"oneOf": [
{"type": "object", "properties": {"type": {"const": "circle"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}, "source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}}, "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"}
]
},
"feature_atomic_ids": {"enum": ["extrude_add_blind", "extrude_add_blind_with_hole", "extrude_add_two_sided", "extrude_cut_blind", "extrude_cut_two_sided", "extrude_cut_through", "extrude_from_face", "extrude_surface", "loft_add", "loft_add_with_cap_face", "loft_surface", "sweep_add", "sweep_cut", "revolve_add", "revolve_cut", "revolve_surface", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "box_add", "cylinder_add", "thread_add", "thread_cut", "bend_add", "gear_add", "rack_add", "fillet", "chamfer", "shell", "boolean_bodies", "transform_bodies", "delete_bodies", "pattern_linear", "pattern_mirror", "pattern_circular", "reference_plane", "reference_axis", "reference_point", "assign_variable", "hole_wizard"]},
"feature": {
"type": "object",
"properties": {
@@ -819,7 +1206,9 @@
{"if": {"properties": {"atomic_id": {"const": "extrude_from_face"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeFromFaceParams"}}}},
{"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": "loft_surface"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftParams"}}}},
{"if": {"properties": {"atomic_id": {"const": "sweep_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/sweepParams"}}}},
{"if": {"properties": {"atomic_id": {"const": "sweep_cut"}}}, "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"}}}},
@@ -846,15 +1235,18 @@
{"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": "reference_point"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referencePointParams"}}}},
{"if": {"properties": {"atomic_id": {"const": "assign_variable"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/assignVariableParams"}}}},
{"if": {"properties": {"atomic_id": {"const": "hole_wizard"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeWizardParams"}}}}
]
},
"profile_type": {"enum": ["circle", "polygon", "analytic_contours", "planar_imprint"]},
"profile_type": {"enum": ["circle", "polygon", "analytic_contours", "multi_source_regions", "planar_imprint"]},
"profile": {
"oneOf": [
{"type": "object", "properties": {"type": {"const": "circle"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}, "source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}}, "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"},
{"$ref": "#/$defs/multiSourceRegionsProfile"},
{"$ref": "#/$defs/planarImprintProfile"}
]
},