Variable IR_SCHEMAConst

IR_SCHEMA: {
    $defs: {
        AngleUnit: {
            enum: readonly ["rad", "deg"];
        };
        AssemblyInstance: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                part: {
                    $ref: "#/$defs/ID";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                transform: {
                    $ref: "#/$defs/Transform";
                };
            };
            required: readonly ["id", "part"];
            type: "object";
        };
        AssemblyMate: {
            anyOf: readonly [{
                $ref: "#/$defs/AssemblyMateFixed";
            }, {
                $ref: "#/$defs/AssemblyMateCoaxial";
            }, {
                $ref: "#/$defs/AssemblyMatePlanar";
            }, {
                $ref: "#/$defs/AssemblyMateDistance";
            }, {
                $ref: "#/$defs/AssemblyMateAngle";
            }, {
                $ref: "#/$defs/AssemblyMateParallel";
            }, {
                $ref: "#/$defs/AssemblyMatePerpendicular";
            }, {
                $ref: "#/$defs/AssemblyMateInsert";
            }, {
                $ref: "#/$defs/AssemblyMateSlider";
            }, {
                $ref: "#/$defs/AssemblyMateHinge";
            }];
        };
        AssemblyMateAngle: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                angle: {
                    type: "number";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.angle";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateCoaxial: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.coaxial";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateDistance: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                distance: {
                    type: "number";
                };
                kind: {
                    const: "mate.distance";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateFixed: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.fixed";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateHinge: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.hinge";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateInsert: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.insert";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateParallel: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.parallel";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMatePerpendicular: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.perpendicular";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMatePlanar: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.planar";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateSlider: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.slider";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyOutput: {
            additionalProperties: false;
            properties: {
                name: {
                    type: "string";
                };
                refs: {
                    items: {
                        $ref: "#/$defs/AssemblyRef";
                    };
                    type: "array";
                };
            };
            required: readonly ["name", "refs"];
            type: "object";
        };
        AssemblyRef: {
            additionalProperties: false;
            properties: {
                connector: {
                    $ref: "#/$defs/ID";
                };
                instance: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["instance", "connector"];
            type: "object";
        };
        Assertion: {
            anyOf: readonly [{
                $ref: "#/$defs/AssertionBrepValid";
            }, {
                $ref: "#/$defs/AssertionMinEdgeLength";
            }];
        };
        AssertionBrepValid: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "assert.brepValid";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind"];
            type: "object";
        };
        AssertionMinEdgeLength: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "assert.minEdgeLength";
                };
                min: {
                    $ref: "#/$defs/Scalar";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "min"];
            type: "object";
        };
        AxisDatum: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "axis.datum";
                };
                ref: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["kind", "ref"];
            type: "object";
        };
        AxisDirection: {
            enum: readonly ["+X", "-X", "+Y", "-Y", "+Z", "-Z"];
        };
        AxisSpec: {
            anyOf: readonly [{
                $ref: "#/$defs/AxisDirection";
            }, {
                $ref: "#/$defs/AxisVector";
            }, {
                $ref: "#/$defs/AxisDatum";
            }];
        };
        AxisVector: {
            additionalProperties: false;
            properties: {
                direction: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "axis.vector";
                };
            };
            required: readonly ["kind", "direction"];
            type: "object";
        };
        BooleanOp: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.boolean";
                };
                left: {
                    $ref: "#/$defs/Selector";
                };
                op: {
                    enum: readonly ["union", "subtract", "intersect"];
                };
                result: {
                    type: "string";
                };
                right: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "op", "left", "right", "result"];
            type: "object";
        };
        BuildContext: {
            additionalProperties: false;
            properties: {
                kernel: {
                    additionalProperties: false;
                    properties: {
                        name: {
                            type: "string";
                        };
                        version: {
                            type: "string";
                        };
                    };
                    required: readonly ["name", "version"];
                    type: "object";
                };
                tolerance: {
                    additionalProperties: false;
                    properties: {
                        angular: {
                            type: "number";
                        };
                        linear: {
                            type: "number";
                        };
                    };
                    required: readonly ["linear", "angular"];
                    type: "object";
                };
                units: {
                    $ref: "#/$defs/Units";
                };
            };
            required: readonly ["units", "kernel", "tolerance"];
            type: "object";
        };
        Chamfer: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.chamfer";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "edges", "distance"];
            type: "object";
        };
        CompileResult: {
            additionalProperties: false;
            properties: {
                featureOrder: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                graph: {
                    $ref: "#/$defs/Graph";
                };
                partId: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["partId", "featureOrder", "graph"];
            type: "object";
        };
        CosmeticThread: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                class: {
                    type: "string";
                };
                depth: {
                    $ref: "#/$defs/Scalar";
                };
                designation: {
                    type: "string";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                internal: {
                    type: "boolean";
                };
                kind: {
                    const: "thread.cosmetic";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                majorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                minorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                notes: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                series: {
                    type: "string";
                };
                standard: {
                    type: "string";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
            };
            required: readonly ["id", "kind", "target"];
            type: "object";
        };
        CurveIntersect: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                first: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.curve.intersect";
                };
                result: {
                    type: "string";
                };
                second: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "first", "second", "result"];
            type: "object";
        };
        DatumAxis: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    $ref: "#/$defs/AxisSpec";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.axis";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "direction"];
            type: "object";
        };
        DatumFrame: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.frame";
                };
                on: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "on"];
            type: "object";
        };
        DatumModifier: {
            enum: readonly ["MMB", "LMB", "RMB"];
        };
        DatumPlane: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.plane";
                };
                normal: {
                    $ref: "#/$defs/AxisSpec";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                xAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
            };
            required: readonly ["id", "kind", "normal"];
            type: "object";
        };
        DatumRef: {
            additionalProperties: false;
            properties: {
                datum: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.ref";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/DatumModifier";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "datum"];
            type: "object";
        };
        DeleteFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.delete.face";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "result"];
            type: "object";
        };
        DimensionAngle: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                from: {
                    $ref: "#/$defs/GeometryRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "dimension.angle";
                };
                minus: {
                    $ref: "#/$defs/Scalar";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                plus: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                to: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "from", "to"];
            type: "object";
        };
        DimensionDistance: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                from: {
                    $ref: "#/$defs/GeometryRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "dimension.distance";
                };
                minus: {
                    $ref: "#/$defs/Scalar";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                plus: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                to: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "from", "to"];
            type: "object";
        };
        Draft: {
            additionalProperties: false;
            properties: {
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.draft";
                };
                neutralPlane: {
                    $ref: "#/$defs/PlaneRef";
                };
                pullDirection: {
                    $ref: "#/$defs/AxisSpec";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "neutralPlane", "pullDirection", "angle", "result"];
            type: "object";
        };
        EdgeQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.edge";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        Expr: {
            anyOf: readonly [{
                $ref: "#/$defs/ExprLiteral";
            }, {
                $ref: "#/$defs/ExprParam";
            }, {
                $ref: "#/$defs/ExprBinary";
            }, {
                $ref: "#/$defs/ExprNeg";
            }];
        };
        ExprBinary: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.binary";
                };
                left: {
                    $ref: "#/$defs/Expr";
                };
                op: {
                    enum: readonly ["+", "-", "*", "/"];
                };
                right: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["kind", "op", "left", "right"];
            type: "object";
        };
        ExprLiteral: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.literal";
                };
                unit: {
                    $ref: "#/$defs/Unit";
                };
                value: {
                    type: "number";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        ExprNeg: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.neg";
                };
                value: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        ExprParam: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "expr.param";
                };
            };
            required: readonly ["kind", "id"];
            type: "object";
        };
        ExtendSurface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.extend.surface";
                };
                mode: {
                    $ref: "#/$defs/ExtendSurfaceMode";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "edges", "distance", "result"];
            type: "object";
        };
        ExtendSurfaceMode: {
            enum: readonly ["natural", "tangent"];
        };
        Extrude: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/ExtrudeAxis";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                depth: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "throughAll";
                    }];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.extrude";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "depth", "result"];
            type: "object";
        };
        ExtrudeAxis: {
            anyOf: readonly [{
                $ref: "#/$defs/AxisSpec";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "axis.sketch.normal";
                    };
                };
                required: readonly ["kind"];
                type: "object";
            }];
        };
        ExtrudeMode: {
            enum: readonly ["solid", "surface"];
        };
        FTIConstraint: {
            anyOf: readonly [{
                $ref: "#/$defs/SurfaceProfileConstraint";
            }, {
                $ref: "#/$defs/FlatnessConstraint";
            }, {
                $ref: "#/$defs/ParallelismConstraint";
            }, {
                $ref: "#/$defs/PerpendicularityConstraint";
            }, {
                $ref: "#/$defs/PositionConstraint";
            }, {
                $ref: "#/$defs/SizeConstraint";
            }, {
                $ref: "#/$defs/DimensionDistance";
            }, {
                $ref: "#/$defs/DimensionAngle";
            }];
        };
        FTIDatum: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.feature";
                };
                label: {
                    type: "string";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/DatumModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
            };
            required: readonly ["id", "kind", "label", "target"];
            type: "object";
        };
        FaceQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.face";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        Fillet: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.fillet";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "edges", "radius"];
            type: "object";
        };
        FlatnessConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.flatness";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance"];
            type: "object";
        };
        GeometryRef: {
            anyOf: readonly [{
                $ref: "#/$defs/RefSurface";
            }, {
                $ref: "#/$defs/RefFrame";
            }, {
                $ref: "#/$defs/RefEdge";
            }, {
                $ref: "#/$defs/RefAxis";
            }, {
                $ref: "#/$defs/RefPoint";
            }];
        };
        Graph: {
            additionalProperties: false;
            properties: {
                edges: {
                    items: {
                        additionalProperties: false;
                        properties: {
                            from: {
                                $ref: "#/$defs/ID";
                            };
                            to: {
                                $ref: "#/$defs/ID";
                            };
                        };
                        required: readonly ["from", "to"];
                        type: "object";
                    };
                    type: "array";
                };
                nodes: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
            };
            required: readonly ["nodes", "edges"];
            type: "object";
        };
        HexTubeSweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerAcrossFlats: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.hexTubeSweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                outerAcrossFlats: {
                    $ref: "#/$defs/Scalar";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "path", "outerAcrossFlats", "result"];
            type: "object";
        };
        Hole: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                counterbore: {
                    $ref: "#/$defs/HoleCounterbore";
                };
                countersink: {
                    $ref: "#/$defs/HoleCountersink";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                depth: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "throughAll";
                    }];
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.hole";
                };
                onFace: {
                    $ref: "#/$defs/Selector";
                };
                pattern: {
                    $ref: "#/$defs/PatternRef";
                };
                position: {
                    $ref: "#/$defs/Point2D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                wizard: {
                    $ref: "#/$defs/HoleWizard";
                };
            };
            required: readonly ["id", "kind", "onFace", "axis", "diameter", "depth"];
            type: "object";
        };
        HoleCounterbore: {
            additionalProperties: false;
            properties: {
                depth: {
                    $ref: "#/$defs/Scalar";
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["diameter", "depth"];
            type: "object";
        };
        HoleCountersink: {
            additionalProperties: false;
            properties: {
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["diameter", "angle"];
            type: "object";
        };
        HoleEndCondition: {
            enum: readonly ["blind", "throughAll", "upToNext", "upToLast"];
        };
        HoleWizard: {
            additionalProperties: false;
            properties: {
                endCondition: {
                    $ref: "#/$defs/HoleEndCondition";
                };
                fitClass: {
                    type: "string";
                };
                series: {
                    type: "string";
                };
                size: {
                    type: "string";
                };
                standard: {
                    type: "string";
                };
                threadClass: {
                    type: "string";
                };
                threaded: {
                    type: "boolean";
                };
            };
            type: "object";
        };
        ID: {
            minLength: 1;
            type: "string";
        };
        IntentAssembly: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                instances: {
                    items: {
                        $ref: "#/$defs/AssemblyInstance";
                    };
                    type: "array";
                };
                mates: {
                    items: {
                        $ref: "#/$defs/AssemblyMate";
                    };
                    type: "array";
                };
                outputs: {
                    items: {
                        $ref: "#/$defs/AssemblyOutput";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "instances"];
            type: "object";
        };
        IntentFeature: {
            anyOf: readonly [{
                $ref: "#/$defs/DatumPlane";
            }, {
                $ref: "#/$defs/DatumAxis";
            }, {
                $ref: "#/$defs/DatumFrame";
            }, {
                $ref: "#/$defs/Sketch2D";
            }, {
                $ref: "#/$defs/Extrude";
            }, {
                $ref: "#/$defs/Plane";
            }, {
                $ref: "#/$defs/Surface";
            }, {
                $ref: "#/$defs/Revolve";
            }, {
                $ref: "#/$defs/Loft";
            }, {
                $ref: "#/$defs/Sweep";
            }, {
                $ref: "#/$defs/Shell";
            }, {
                $ref: "#/$defs/Pipe";
            }, {
                $ref: "#/$defs/PipeSweep";
            }, {
                $ref: "#/$defs/HexTubeSweep";
            }, {
                $ref: "#/$defs/Mirror";
            }, {
                $ref: "#/$defs/DeleteFace";
            }, {
                $ref: "#/$defs/ReplaceFace";
            }, {
                $ref: "#/$defs/MoveFace";
            }, {
                $ref: "#/$defs/MoveBody";
            }, {
                $ref: "#/$defs/SplitBody";
            }, {
                $ref: "#/$defs/SplitFace";
            }, {
                $ref: "#/$defs/TrimSurface";
            }, {
                $ref: "#/$defs/ExtendSurface";
            }, {
                $ref: "#/$defs/Knit";
            }, {
                $ref: "#/$defs/CurveIntersect";
            }, {
                $ref: "#/$defs/Draft";
            }, {
                $ref: "#/$defs/Thicken";
            }, {
                $ref: "#/$defs/Unwrap";
            }, {
                $ref: "#/$defs/Thread";
            }, {
                $ref: "#/$defs/Hole";
            }, {
                $ref: "#/$defs/Fillet";
            }, {
                $ref: "#/$defs/VariableFillet";
            }, {
                $ref: "#/$defs/Chamfer";
            }, {
                $ref: "#/$defs/VariableChamfer";
            }, {
                $ref: "#/$defs/BooleanOp";
            }, {
                $ref: "#/$defs/PatternLinear";
            }, {
                $ref: "#/$defs/PatternCircular";
            }];
        };
        IntentPart: {
            additionalProperties: false;
            properties: {
                assertions: {
                    items: {
                        $ref: "#/$defs/Assertion";
                    };
                    type: "array";
                };
                connectors: {
                    items: {
                        $ref: "#/$defs/MateConnector";
                    };
                    type: "array";
                };
                constraints: {
                    items: {
                        $ref: "#/$defs/FTIConstraint";
                    };
                    type: "array";
                };
                cosmeticThreads: {
                    items: {
                        $ref: "#/$defs/CosmeticThread";
                    };
                    type: "array";
                };
                datums: {
                    items: {
                        $ref: "#/$defs/FTIDatum";
                    };
                    type: "array";
                };
                features: {
                    items: {
                        $ref: "#/$defs/IntentFeature";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                params: {
                    items: {
                        $ref: "#/$defs/ParamDef";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "features"];
            type: "object";
        };
        Knit: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.knit";
                };
                makeSolid: {
                    type: "boolean";
                };
                result: {
                    type: "string";
                };
                sources: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    minItems: 1;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "sources", "result"];
            type: "object";
        };
        LengthUnit: {
            enum: readonly ["mm", "cm", "m", "in"];
        };
        Loft: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.loft";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                profiles: {
                    items: {
                        $ref: "#/$defs/ProfileRef";
                    };
                    minItems: 2;
                    type: "array";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profiles", "result"];
            type: "object";
        };
        MateConnector: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                normal: {
                    $ref: "#/$defs/AxisDirection";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                xAxis: {
                    $ref: "#/$defs/AxisDirection";
                };
            };
            required: readonly ["id", "origin"];
            type: "object";
        };
        Mirror: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.mirror";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "plane", "result"];
            type: "object";
        };
        MoveBody: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.move.body";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                result: {
                    type: "string";
                };
                rotationAngle: {
                    $ref: "#/$defs/Scalar";
                };
                rotationAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
                scale: {
                    $ref: "#/$defs/Scalar";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                translation: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["id", "kind", "source", "result"];
            type: "object";
        };
        MoveFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.move.face";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                result: {
                    type: "string";
                };
                rotationAngle: {
                    $ref: "#/$defs/Scalar";
                };
                rotationAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
                scale: {
                    $ref: "#/$defs/Scalar";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                translation: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "result"];
            type: "object";
        };
        NamedOutput: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.named";
                };
                name: {
                    type: "string";
                };
            };
            required: readonly ["kind", "name"];
            type: "object";
        };
        ParallelismConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.parallelism";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        ParamDef: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                type: {
                    $ref: "#/$defs/ParamType";
                };
                value: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["id", "type", "value"];
            type: "object";
        };
        ParamType: {
            enum: readonly ["length", "angle", "count"];
        };
        Path3D: {
            anyOf: readonly [{
                $ref: "#/$defs/Path3DPolyline";
            }, {
                $ref: "#/$defs/Path3DSpline";
            }, {
                $ref: "#/$defs/Path3DHelix";
            }, {
                $ref: "#/$defs/Path3DSpiral";
            }, {
                $ref: "#/$defs/Path3DSegments";
            }];
        };
        Path3DHelix: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/Point3D";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                kind: {
                    const: "path.helix";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                startAngle: {
                    $ref: "#/$defs/Scalar";
                };
                turns: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "origin", "axis", "radius", "pitch"];
            type: "object";
        };
        Path3DPolyline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                kind: {
                    const: "path.polyline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point3D";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "points"];
            type: "object";
        };
        Path3DSegments: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "path.segments";
                };
                segments: {
                    items: {
                        $ref: "#/$defs/PathSegment";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "segments"];
            type: "object";
        };
        Path3DSpiral: {
            additionalProperties: false;
            properties: {
                endRadius: {
                    $ref: "#/$defs/Scalar";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                kind: {
                    const: "path.spiral";
                };
                normal: {
                    $ref: "#/$defs/Point3D";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                startAngle: {
                    $ref: "#/$defs/Scalar";
                };
                startRadius: {
                    $ref: "#/$defs/Scalar";
                };
                turns: {
                    $ref: "#/$defs/Scalar";
                };
                xDir: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "origin", "startRadius", "endRadius", "turns"];
            type: "object";
        };
        Path3DSpline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                degree: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "path.spline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point3D";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "points"];
            type: "object";
        };
        PathSegment: {
            anyOf: readonly [{
                $ref: "#/$defs/PathSegmentLine";
            }, {
                $ref: "#/$defs/PathSegmentArc";
            }];
        };
        PathSegmentArc: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                direction: {
                    enum: readonly ["cw", "ccw"];
                };
                end: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "path.arc";
                };
                start: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "start", "end", "center"];
            type: "object";
        };
        PathSegmentLine: {
            additionalProperties: false;
            properties: {
                end: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "path.line";
                };
                start: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "start", "end"];
            type: "object";
        };
        PatternCircular: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                count: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pattern.circular";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "origin", "axis", "count"];
            type: "object";
        };
        PatternLinear: {
            additionalProperties: false;
            properties: {
                count: {
                    items: {
                        $ref: "#/$defs/Scalar";
                    };
                    maxItems: 2;
                    minItems: 2;
                    type: "array";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pattern.linear";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                spacing: {
                    items: {
                        $ref: "#/$defs/Scalar";
                    };
                    maxItems: 2;
                    minItems: 2;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "origin", "spacing", "count"];
            type: "object";
        };
        PatternRef: {
            anyOf: readonly [{
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "pattern.linear";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "pattern.circular";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }];
        };
        PerpendicularityConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.perpendicularity";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        Pipe: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.pipe";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                outerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "axis", "length", "outerDiameter", "result"];
            type: "object";
        };
        PipeSweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.pipeSweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                outerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "path", "outerDiameter", "result"];
            type: "object";
        };
        Plane: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.plane";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "width", "height", "result"];
            type: "object";
        };
        PlaneRef: {
            anyOf: readonly [{
                $ref: "#/$defs/Selector";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "plane.datum";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }];
        };
        Point2D: {
            items: {
                $ref: "#/$defs/Scalar";
            };
            maxItems: 2;
            minItems: 2;
            type: "array";
        };
        Point3D: {
            items: {
                $ref: "#/$defs/Scalar";
            };
            maxItems: 3;
            minItems: 3;
            type: "array";
        };
        PointLocator: {
            enum: readonly ["center", "mid", "start", "end"];
        };
        PositionConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.position";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
                zone: {
                    enum: readonly ["diameter", "cartesian"];
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        Predicate: {
            anyOf: readonly [{
                $ref: "#/$defs/PredicateNormal";
            }, {
                $ref: "#/$defs/PredicatePlanar";
            }, {
                $ref: "#/$defs/PredicateCreatedBy";
            }, {
                $ref: "#/$defs/PredicateRole";
            }];
        };
        PredicateCreatedBy: {
            additionalProperties: false;
            properties: {
                featureId: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pred.createdBy";
                };
            };
            required: readonly ["kind", "featureId"];
            type: "object";
        };
        PredicateNormal: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.normal";
                };
                value: {
                    $ref: "#/$defs/AxisDirection";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        PredicatePlanar: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.planar";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        PredicateRole: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.role";
                };
                value: {
                    type: "string";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        Profile: {
            anyOf: readonly [{
                $ref: "#/$defs/ProfileRectangle";
            }, {
                $ref: "#/$defs/ProfileCircle";
            }, {
                $ref: "#/$defs/ProfilePoly";
            }, {
                $ref: "#/$defs/ProfileSketch";
            }];
        };
        ProfileCircle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "profile.circle";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "radius"];
            type: "object";
        };
        ProfilePoly: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "profile.poly";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                sides: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "sides", "radius"];
            type: "object";
        };
        ProfileRectangle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "profile.rectangle";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "width", "height"];
            type: "object";
        };
        ProfileRef: {
            anyOf: readonly [{
                $ref: "#/$defs/Profile";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "profile.ref";
                    };
                    name: {
                        type: "string";
                    };
                };
                required: readonly ["kind", "name"];
                type: "object";
            }];
        };
        ProfileSketch: {
            additionalProperties: false;
            properties: {
                holes: {
                    items: {
                        items: {
                            $ref: "#/$defs/ID";
                        };
                        type: "array";
                    };
                    type: "array";
                };
                kind: {
                    const: "profile.sketch";
                };
                loop: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                open: {
                    type: "boolean";
                };
            };
            required: readonly ["kind", "loop"];
            type: "object";
        };
        RankClosestTo: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.closestTo";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "target"];
            type: "object";
        };
        RankMaxArea: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.maxArea";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankMaxZ: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.maxZ";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankMinZ: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.minZ";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankRule: {
            anyOf: readonly [{
                $ref: "#/$defs/RankMaxArea";
            }, {
                $ref: "#/$defs/RankMinZ";
            }, {
                $ref: "#/$defs/RankMaxZ";
            }, {
                $ref: "#/$defs/RankClosestTo";
            }];
        };
        RefAxis: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.axis";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefEdge: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.edge";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefFrame: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.frame";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefPoint: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.point";
                };
                locator: {
                    $ref: "#/$defs/PointLocator";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefSurface: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.surface";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        ReplaceFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.replace.face";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "tool", "result"];
            type: "object";
        };
        Revolve: {
            additionalProperties: false;
            properties: {
                angle: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "full";
                    }];
                };
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.revolve";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "axis", "result"];
            type: "object";
        };
        Scalar: {
            anyOf: readonly [{
                type: "number";
            }, {
                $ref: "#/$defs/Expr";
            }];
        };
        Selector: {
            anyOf: readonly [{
                $ref: "#/$defs/FaceQuery";
            }, {
                $ref: "#/$defs/EdgeQuery";
            }, {
                $ref: "#/$defs/SolidQuery";
            }, {
                $ref: "#/$defs/NamedOutput";
            }];
        };
        Shell: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    enum: ("inside" | "outside" | "both")[];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.shell";
                };
                openFaces: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    type: "array";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                thickness: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "source", "thickness", "result"];
            type: "object";
        };
        SizeConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.size";
                };
                max: {
                    $ref: "#/$defs/Scalar";
                };
                min: {
                    $ref: "#/$defs/Scalar";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target"];
            type: "object";
        };
        Sketch2D: {
            additionalProperties: false;
            properties: {
                constraints: {
                    items: {
                        $ref: "#/$defs/SketchConstraint";
                    };
                    type: "array";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entities: {
                    items: {
                        $ref: "#/$defs/SketchEntity";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.sketch2d";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                profiles: {
                    items: {
                        $ref: "#/$defs/SketchProfile";
                    };
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profiles"];
            type: "object";
        };
        SketchArc: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                direction: {
                    enum: readonly ["cw", "ccw"];
                };
                end: {
                    $ref: "#/$defs/Point2D";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.arc";
                };
                start: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "start", "end", "center", "direction"];
            type: "object";
        };
        SketchCircle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.circle";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radius"];
            type: "object";
        };
        SketchConstraint: {
            anyOf: readonly [{
                $ref: "#/$defs/SketchConstraintCoincident";
            }, {
                $ref: "#/$defs/SketchConstraintHorizontal";
            }, {
                $ref: "#/$defs/SketchConstraintVertical";
            }, {
                $ref: "#/$defs/SketchConstraintParallel";
            }, {
                $ref: "#/$defs/SketchConstraintPerpendicular";
            }, {
                $ref: "#/$defs/SketchConstraintEqualLength";
            }, {
                $ref: "#/$defs/SketchConstraintDistance";
            }, {
                $ref: "#/$defs/SketchConstraintAngle";
            }, {
                $ref: "#/$defs/SketchConstraintRadius";
            }, {
                $ref: "#/$defs/SketchConstraintFixPoint";
            }];
        };
        SketchConstraintAngle: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.angle";
                };
            };
            required: readonly ["id", "kind", "a", "b", "angle"];
            type: "object";
        };
        SketchConstraintCoincident: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                b: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.coincident";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintDistance: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                b: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.distance";
                };
            };
            required: readonly ["id", "kind", "a", "b", "distance"];
            type: "object";
        };
        SketchConstraintEqualLength: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.equalLength";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintFixPoint: {
            additionalProperties: false;
            anyOf: readonly [{
                required: readonly ["x"];
            }, {
                required: readonly ["y"];
            }];
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.fixPoint";
                };
                point: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                x: {
                    $ref: "#/$defs/Scalar";
                };
                y: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "point"];
            type: "object";
        };
        SketchConstraintHorizontal: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.horizontal";
                };
                line: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["id", "kind", "line"];
            type: "object";
        };
        SketchConstraintParallel: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.parallel";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintPerpendicular: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.perpendicular";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintPointRef: {
            additionalProperties: false;
            properties: {
                entity: {
                    $ref: "#/$defs/ID";
                };
                handle: {
                    enum: readonly ["start", "end", "center", "point", "corner"];
                };
            };
            required: readonly ["entity"];
            type: "object";
        };
        SketchConstraintRadius: {
            additionalProperties: false;
            properties: {
                curve: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.radius";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "curve", "radius"];
            type: "object";
        };
        SketchConstraintVertical: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.vertical";
                };
                line: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["id", "kind", "line"];
            type: "object";
        };
        SketchEllipse: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.ellipse";
                };
                radiusX: {
                    $ref: "#/$defs/Scalar";
                };
                radiusY: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radiusX", "radiusY"];
            type: "object";
        };
        SketchEntity: {
            anyOf: readonly [{
                $ref: "#/$defs/SketchLine";
            }, {
                $ref: "#/$defs/SketchArc";
            }, {
                $ref: "#/$defs/SketchCircle";
            }, {
                $ref: "#/$defs/SketchEllipse";
            }, {
                $ref: "#/$defs/SketchRectangleCenter";
            }, {
                $ref: "#/$defs/SketchRectangleCorner";
            }, {
                $ref: "#/$defs/SketchSlot";
            }, {
                $ref: "#/$defs/SketchPolygon";
            }, {
                $ref: "#/$defs/SketchSpline";
            }, {
                $ref: "#/$defs/SketchPoint";
            }];
        };
        SketchEntityBase: {
            properties: {
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    type: "string";
                };
            };
            required: readonly ["id", "kind"];
            type: "object";
        };
        SketchLine: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                end: {
                    $ref: "#/$defs/Point2D";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.line";
                };
                start: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "start", "end"];
            type: "object";
        };
        SketchPoint: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.point";
                };
                point: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "point"];
            type: "object";
        };
        SketchPolygon: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.polygon";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                sides: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radius", "sides"];
            type: "object";
        };
        SketchProfile: {
            additionalProperties: false;
            properties: {
                name: {
                    type: "string";
                };
                profile: {
                    $ref: "#/$defs/Profile";
                };
            };
            required: readonly ["name", "profile"];
            type: "object";
        };
        SketchRectangleCenter: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.rectangle";
                };
                mode: {
                    const: "center";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "mode", "center", "width", "height"];
            type: "object";
        };
        SketchRectangleCorner: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                corner: {
                    $ref: "#/$defs/Point2D";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.rectangle";
                };
                mode: {
                    const: "corner";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "mode", "corner", "width", "height"];
            type: "object";
        };
        SketchSlot: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                endStyle: {
                    enum: readonly ["arc", "straight"];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.slot";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "length", "width"];
            type: "object";
        };
        SketchSpline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                construction: {
                    type: "boolean";
                };
                degree: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.spline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point2D";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "points"];
            type: "object";
        };
        SolidQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.solid";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        SplitBody: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                keepTool: {
                    type: "boolean";
                };
                kind: {
                    const: "feature.split.body";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "source", "tool", "result"];
            type: "object";
        };
        SplitFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.split.face";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "faces", "tool", "result"];
            type: "object";
        };
        Surface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.surface";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "result"];
            type: "object";
        };
        SurfaceProfileConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.surfaceProfile";
                };
                referenceFrame: {
                    $ref: "#/$defs/RefFrame";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance"];
            type: "object";
        };
        Sweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                frame: {
                    $ref: "#/$defs/PlaneRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.sweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                orientation: {
                    $ref: "#/$defs/SweepOrientation";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "path", "result"];
            type: "object";
        };
        SweepOrientation: {
            enum: readonly ["frenet", "fixed"];
        };
        Thicken: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    $ref: "#/$defs/ThickenDirection";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.thicken";
                };
                result: {
                    type: "string";
                };
                surface: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                thickness: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "surface", "thickness", "result"];
            type: "object";
        };
        ThickenDirection: {
            enum: readonly ["normal", "reverse"];
        };
        Thread: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisSpec";
                };
                crestFlat: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.thread";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                majorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                minorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                profileAngle: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                rootFlat: {
                    $ref: "#/$defs/Scalar";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "axis", "length", "majorDiameter", "pitch", "result"];
            type: "object";
        };
        ThreadHandedness: {
            enum: readonly ["right", "left"];
        };
        ToleranceModifier: {
            enum: readonly ["MMC", "LMC", "RFS", "PROJECTED", "FREE_STATE", "TANGENT_PLANE", "STATISTICAL"];
        };
        Transform: {
            additionalProperties: false;
            properties: {
                matrix: {
                    items: {
                        type: "number";
                    };
                    maxItems: 16;
                    minItems: 16;
                    type: "array";
                };
                rotation: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                translation: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
            };
            type: "object";
        };
        TrimSurface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                keep: {
                    enum: readonly ["inside", "outside", "both"];
                };
                kind: {
                    const: "feature.trim.surface";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tools: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    minItems: 1;
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "tools", "keep", "result"];
            type: "object";
        };
        Unit: {
            enum: readonly ["mm", "cm", "m", "in", "rad", "deg"];
        };
        Units: {
            enum: readonly ["mm", "cm", "m", "in"];
        };
        Unwrap: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.unwrap";
                };
                mode: {
                    $ref: "#/$defs/UnwrapMode";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "result"];
            type: "object";
        };
        UnwrapMode: {
            enum: readonly ["strict", "experimental"];
        };
        VariableChamfer: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entries: {
                    items: {
                        $ref: "#/$defs/VariableChamferEntry";
                    };
                    minItems: 1;
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.chamfer.variable";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "entries", "result"];
            type: "object";
        };
        VariableChamferEntry: {
            additionalProperties: false;
            properties: {
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edge: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["edge", "distance"];
            type: "object";
        };
        VariableFillet: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entries: {
                    items: {
                        $ref: "#/$defs/VariableFilletEntry";
                    };
                    minItems: 1;
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.fillet.variable";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "entries", "result"];
            type: "object";
        };
        VariableFilletEntry: {
            additionalProperties: false;
            properties: {
                edge: {
                    $ref: "#/$defs/Selector";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["edge", "radius"];
            type: "object";
        };
    };
    $id: "trueform.ir.v1";
    $schema: "https://json-schema.org/draft/2020-12/schema";
    additionalProperties: false;
    properties: {
        assemblies: {
            items: {
                $ref: "#/$defs/IntentAssembly";
            };
            type: "array";
        };
        assertions: {
            items: {
                $ref: "#/$defs/Assertion";
            };
            type: "array";
        };
        capabilities: {
            additionalProperties: true;
            type: "object";
        };
        constraints: {
            items: {
                $ref: "#/$defs/FTIConstraint";
            };
            type: "array";
        };
        context: {
            $ref: "#/$defs/BuildContext";
        };
        id: {
            $ref: "#/$defs/ID";
        };
        irVersion: {
            const: 1;
        };
        parts: {
            items: {
                $ref: "#/$defs/IntentPart";
            };
            type: "array";
        };
        schema: {
            const: "trueform.ir.v1";
        };
    };
    required: readonly ["id", "schema", "irVersion", "parts", "context"];
    title: "TrueForm IR v1";
    type: "object";
} = ...

Type declaration

  • Readonly $defs: {
        AngleUnit: {
            enum: readonly ["rad", "deg"];
        };
        AssemblyInstance: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                part: {
                    $ref: "#/$defs/ID";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                transform: {
                    $ref: "#/$defs/Transform";
                };
            };
            required: readonly ["id", "part"];
            type: "object";
        };
        AssemblyMate: {
            anyOf: readonly [{
                $ref: "#/$defs/AssemblyMateFixed";
            }, {
                $ref: "#/$defs/AssemblyMateCoaxial";
            }, {
                $ref: "#/$defs/AssemblyMatePlanar";
            }, {
                $ref: "#/$defs/AssemblyMateDistance";
            }, {
                $ref: "#/$defs/AssemblyMateAngle";
            }, {
                $ref: "#/$defs/AssemblyMateParallel";
            }, {
                $ref: "#/$defs/AssemblyMatePerpendicular";
            }, {
                $ref: "#/$defs/AssemblyMateInsert";
            }, {
                $ref: "#/$defs/AssemblyMateSlider";
            }, {
                $ref: "#/$defs/AssemblyMateHinge";
            }];
        };
        AssemblyMateAngle: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                angle: {
                    type: "number";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.angle";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateCoaxial: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.coaxial";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateDistance: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                distance: {
                    type: "number";
                };
                kind: {
                    const: "mate.distance";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateFixed: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.fixed";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateHinge: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.hinge";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateInsert: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.insert";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateParallel: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.parallel";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMatePerpendicular: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.perpendicular";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMatePlanar: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.planar";
                };
                offset: {
                    type: "number";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyMateSlider: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/AssemblyRef";
                };
                b: {
                    $ref: "#/$defs/AssemblyRef";
                };
                kind: {
                    const: "mate.slider";
                };
            };
            required: readonly ["kind", "a", "b"];
            type: "object";
        };
        AssemblyOutput: {
            additionalProperties: false;
            properties: {
                name: {
                    type: "string";
                };
                refs: {
                    items: {
                        $ref: "#/$defs/AssemblyRef";
                    };
                    type: "array";
                };
            };
            required: readonly ["name", "refs"];
            type: "object";
        };
        AssemblyRef: {
            additionalProperties: false;
            properties: {
                connector: {
                    $ref: "#/$defs/ID";
                };
                instance: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["instance", "connector"];
            type: "object";
        };
        Assertion: {
            anyOf: readonly [{
                $ref: "#/$defs/AssertionBrepValid";
            }, {
                $ref: "#/$defs/AssertionMinEdgeLength";
            }];
        };
        AssertionBrepValid: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "assert.brepValid";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind"];
            type: "object";
        };
        AssertionMinEdgeLength: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "assert.minEdgeLength";
                };
                min: {
                    $ref: "#/$defs/Scalar";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "min"];
            type: "object";
        };
        AxisDatum: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "axis.datum";
                };
                ref: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["kind", "ref"];
            type: "object";
        };
        AxisDirection: {
            enum: readonly ["+X", "-X", "+Y", "-Y", "+Z", "-Z"];
        };
        AxisSpec: {
            anyOf: readonly [{
                $ref: "#/$defs/AxisDirection";
            }, {
                $ref: "#/$defs/AxisVector";
            }, {
                $ref: "#/$defs/AxisDatum";
            }];
        };
        AxisVector: {
            additionalProperties: false;
            properties: {
                direction: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "axis.vector";
                };
            };
            required: readonly ["kind", "direction"];
            type: "object";
        };
        BooleanOp: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.boolean";
                };
                left: {
                    $ref: "#/$defs/Selector";
                };
                op: {
                    enum: readonly ["union", "subtract", "intersect"];
                };
                result: {
                    type: "string";
                };
                right: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "op", "left", "right", "result"];
            type: "object";
        };
        BuildContext: {
            additionalProperties: false;
            properties: {
                kernel: {
                    additionalProperties: false;
                    properties: {
                        name: {
                            type: "string";
                        };
                        version: {
                            type: "string";
                        };
                    };
                    required: readonly ["name", "version"];
                    type: "object";
                };
                tolerance: {
                    additionalProperties: false;
                    properties: {
                        angular: {
                            type: "number";
                        };
                        linear: {
                            type: "number";
                        };
                    };
                    required: readonly ["linear", "angular"];
                    type: "object";
                };
                units: {
                    $ref: "#/$defs/Units";
                };
            };
            required: readonly ["units", "kernel", "tolerance"];
            type: "object";
        };
        Chamfer: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.chamfer";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "edges", "distance"];
            type: "object";
        };
        CompileResult: {
            additionalProperties: false;
            properties: {
                featureOrder: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                graph: {
                    $ref: "#/$defs/Graph";
                };
                partId: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["partId", "featureOrder", "graph"];
            type: "object";
        };
        CosmeticThread: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                class: {
                    type: "string";
                };
                depth: {
                    $ref: "#/$defs/Scalar";
                };
                designation: {
                    type: "string";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                internal: {
                    type: "boolean";
                };
                kind: {
                    const: "thread.cosmetic";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                majorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                minorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                notes: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                series: {
                    type: "string";
                };
                standard: {
                    type: "string";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
            };
            required: readonly ["id", "kind", "target"];
            type: "object";
        };
        CurveIntersect: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                first: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.curve.intersect";
                };
                result: {
                    type: "string";
                };
                second: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "first", "second", "result"];
            type: "object";
        };
        DatumAxis: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    $ref: "#/$defs/AxisSpec";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.axis";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "direction"];
            type: "object";
        };
        DatumFrame: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.frame";
                };
                on: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "on"];
            type: "object";
        };
        DatumModifier: {
            enum: readonly ["MMB", "LMB", "RMB"];
        };
        DatumPlane: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.plane";
                };
                normal: {
                    $ref: "#/$defs/AxisSpec";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                xAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
            };
            required: readonly ["id", "kind", "normal"];
            type: "object";
        };
        DatumRef: {
            additionalProperties: false;
            properties: {
                datum: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.ref";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/DatumModifier";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "datum"];
            type: "object";
        };
        DeleteFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.delete.face";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "result"];
            type: "object";
        };
        DimensionAngle: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                from: {
                    $ref: "#/$defs/GeometryRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "dimension.angle";
                };
                minus: {
                    $ref: "#/$defs/Scalar";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                plus: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                to: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "from", "to"];
            type: "object";
        };
        DimensionDistance: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                from: {
                    $ref: "#/$defs/GeometryRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "dimension.distance";
                };
                minus: {
                    $ref: "#/$defs/Scalar";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                plus: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                to: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "from", "to"];
            type: "object";
        };
        Draft: {
            additionalProperties: false;
            properties: {
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.draft";
                };
                neutralPlane: {
                    $ref: "#/$defs/PlaneRef";
                };
                pullDirection: {
                    $ref: "#/$defs/AxisSpec";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "neutralPlane", "pullDirection", "angle", "result"];
            type: "object";
        };
        EdgeQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.edge";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        Expr: {
            anyOf: readonly [{
                $ref: "#/$defs/ExprLiteral";
            }, {
                $ref: "#/$defs/ExprParam";
            }, {
                $ref: "#/$defs/ExprBinary";
            }, {
                $ref: "#/$defs/ExprNeg";
            }];
        };
        ExprBinary: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.binary";
                };
                left: {
                    $ref: "#/$defs/Expr";
                };
                op: {
                    enum: readonly ["+", "-", "*", "/"];
                };
                right: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["kind", "op", "left", "right"];
            type: "object";
        };
        ExprLiteral: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.literal";
                };
                unit: {
                    $ref: "#/$defs/Unit";
                };
                value: {
                    type: "number";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        ExprNeg: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "expr.neg";
                };
                value: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        ExprParam: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "expr.param";
                };
            };
            required: readonly ["kind", "id"];
            type: "object";
        };
        ExtendSurface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.extend.surface";
                };
                mode: {
                    $ref: "#/$defs/ExtendSurfaceMode";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "edges", "distance", "result"];
            type: "object";
        };
        ExtendSurfaceMode: {
            enum: readonly ["natural", "tangent"];
        };
        Extrude: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/ExtrudeAxis";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                depth: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "throughAll";
                    }];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.extrude";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "depth", "result"];
            type: "object";
        };
        ExtrudeAxis: {
            anyOf: readonly [{
                $ref: "#/$defs/AxisSpec";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "axis.sketch.normal";
                    };
                };
                required: readonly ["kind"];
                type: "object";
            }];
        };
        ExtrudeMode: {
            enum: readonly ["solid", "surface"];
        };
        FTIConstraint: {
            anyOf: readonly [{
                $ref: "#/$defs/SurfaceProfileConstraint";
            }, {
                $ref: "#/$defs/FlatnessConstraint";
            }, {
                $ref: "#/$defs/ParallelismConstraint";
            }, {
                $ref: "#/$defs/PerpendicularityConstraint";
            }, {
                $ref: "#/$defs/PositionConstraint";
            }, {
                $ref: "#/$defs/SizeConstraint";
            }, {
                $ref: "#/$defs/DimensionDistance";
            }, {
                $ref: "#/$defs/DimensionAngle";
            }];
        };
        FTIDatum: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "datum.feature";
                };
                label: {
                    type: "string";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/DatumModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
            };
            required: readonly ["id", "kind", "label", "target"];
            type: "object";
        };
        FaceQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.face";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        Fillet: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                edges: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.fillet";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "edges", "radius"];
            type: "object";
        };
        FlatnessConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.flatness";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance"];
            type: "object";
        };
        GeometryRef: {
            anyOf: readonly [{
                $ref: "#/$defs/RefSurface";
            }, {
                $ref: "#/$defs/RefFrame";
            }, {
                $ref: "#/$defs/RefEdge";
            }, {
                $ref: "#/$defs/RefAxis";
            }, {
                $ref: "#/$defs/RefPoint";
            }];
        };
        Graph: {
            additionalProperties: false;
            properties: {
                edges: {
                    items: {
                        additionalProperties: false;
                        properties: {
                            from: {
                                $ref: "#/$defs/ID";
                            };
                            to: {
                                $ref: "#/$defs/ID";
                            };
                        };
                        required: readonly ["from", "to"];
                        type: "object";
                    };
                    type: "array";
                };
                nodes: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
            };
            required: readonly ["nodes", "edges"];
            type: "object";
        };
        HexTubeSweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerAcrossFlats: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.hexTubeSweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                outerAcrossFlats: {
                    $ref: "#/$defs/Scalar";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "path", "outerAcrossFlats", "result"];
            type: "object";
        };
        Hole: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                counterbore: {
                    $ref: "#/$defs/HoleCounterbore";
                };
                countersink: {
                    $ref: "#/$defs/HoleCountersink";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                depth: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "throughAll";
                    }];
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.hole";
                };
                onFace: {
                    $ref: "#/$defs/Selector";
                };
                pattern: {
                    $ref: "#/$defs/PatternRef";
                };
                position: {
                    $ref: "#/$defs/Point2D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                wizard: {
                    $ref: "#/$defs/HoleWizard";
                };
            };
            required: readonly ["id", "kind", "onFace", "axis", "diameter", "depth"];
            type: "object";
        };
        HoleCounterbore: {
            additionalProperties: false;
            properties: {
                depth: {
                    $ref: "#/$defs/Scalar";
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["diameter", "depth"];
            type: "object";
        };
        HoleCountersink: {
            additionalProperties: false;
            properties: {
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                diameter: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["diameter", "angle"];
            type: "object";
        };
        HoleEndCondition: {
            enum: readonly ["blind", "throughAll", "upToNext", "upToLast"];
        };
        HoleWizard: {
            additionalProperties: false;
            properties: {
                endCondition: {
                    $ref: "#/$defs/HoleEndCondition";
                };
                fitClass: {
                    type: "string";
                };
                series: {
                    type: "string";
                };
                size: {
                    type: "string";
                };
                standard: {
                    type: "string";
                };
                threadClass: {
                    type: "string";
                };
                threaded: {
                    type: "boolean";
                };
            };
            type: "object";
        };
        ID: {
            minLength: 1;
            type: "string";
        };
        IntentAssembly: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                instances: {
                    items: {
                        $ref: "#/$defs/AssemblyInstance";
                    };
                    type: "array";
                };
                mates: {
                    items: {
                        $ref: "#/$defs/AssemblyMate";
                    };
                    type: "array";
                };
                outputs: {
                    items: {
                        $ref: "#/$defs/AssemblyOutput";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "instances"];
            type: "object";
        };
        IntentFeature: {
            anyOf: readonly [{
                $ref: "#/$defs/DatumPlane";
            }, {
                $ref: "#/$defs/DatumAxis";
            }, {
                $ref: "#/$defs/DatumFrame";
            }, {
                $ref: "#/$defs/Sketch2D";
            }, {
                $ref: "#/$defs/Extrude";
            }, {
                $ref: "#/$defs/Plane";
            }, {
                $ref: "#/$defs/Surface";
            }, {
                $ref: "#/$defs/Revolve";
            }, {
                $ref: "#/$defs/Loft";
            }, {
                $ref: "#/$defs/Sweep";
            }, {
                $ref: "#/$defs/Shell";
            }, {
                $ref: "#/$defs/Pipe";
            }, {
                $ref: "#/$defs/PipeSweep";
            }, {
                $ref: "#/$defs/HexTubeSweep";
            }, {
                $ref: "#/$defs/Mirror";
            }, {
                $ref: "#/$defs/DeleteFace";
            }, {
                $ref: "#/$defs/ReplaceFace";
            }, {
                $ref: "#/$defs/MoveFace";
            }, {
                $ref: "#/$defs/MoveBody";
            }, {
                $ref: "#/$defs/SplitBody";
            }, {
                $ref: "#/$defs/SplitFace";
            }, {
                $ref: "#/$defs/TrimSurface";
            }, {
                $ref: "#/$defs/ExtendSurface";
            }, {
                $ref: "#/$defs/Knit";
            }, {
                $ref: "#/$defs/CurveIntersect";
            }, {
                $ref: "#/$defs/Draft";
            }, {
                $ref: "#/$defs/Thicken";
            }, {
                $ref: "#/$defs/Unwrap";
            }, {
                $ref: "#/$defs/Thread";
            }, {
                $ref: "#/$defs/Hole";
            }, {
                $ref: "#/$defs/Fillet";
            }, {
                $ref: "#/$defs/VariableFillet";
            }, {
                $ref: "#/$defs/Chamfer";
            }, {
                $ref: "#/$defs/VariableChamfer";
            }, {
                $ref: "#/$defs/BooleanOp";
            }, {
                $ref: "#/$defs/PatternLinear";
            }, {
                $ref: "#/$defs/PatternCircular";
            }];
        };
        IntentPart: {
            additionalProperties: false;
            properties: {
                assertions: {
                    items: {
                        $ref: "#/$defs/Assertion";
                    };
                    type: "array";
                };
                connectors: {
                    items: {
                        $ref: "#/$defs/MateConnector";
                    };
                    type: "array";
                };
                constraints: {
                    items: {
                        $ref: "#/$defs/FTIConstraint";
                    };
                    type: "array";
                };
                cosmeticThreads: {
                    items: {
                        $ref: "#/$defs/CosmeticThread";
                    };
                    type: "array";
                };
                datums: {
                    items: {
                        $ref: "#/$defs/FTIDatum";
                    };
                    type: "array";
                };
                features: {
                    items: {
                        $ref: "#/$defs/IntentFeature";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                params: {
                    items: {
                        $ref: "#/$defs/ParamDef";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "features"];
            type: "object";
        };
        Knit: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.knit";
                };
                makeSolid: {
                    type: "boolean";
                };
                result: {
                    type: "string";
                };
                sources: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    minItems: 1;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "sources", "result"];
            type: "object";
        };
        LengthUnit: {
            enum: readonly ["mm", "cm", "m", "in"];
        };
        Loft: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.loft";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                profiles: {
                    items: {
                        $ref: "#/$defs/ProfileRef";
                    };
                    minItems: 2;
                    type: "array";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profiles", "result"];
            type: "object";
        };
        MateConnector: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                normal: {
                    $ref: "#/$defs/AxisDirection";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                xAxis: {
                    $ref: "#/$defs/AxisDirection";
                };
            };
            required: readonly ["id", "origin"];
            type: "object";
        };
        Mirror: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.mirror";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "plane", "result"];
            type: "object";
        };
        MoveBody: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.move.body";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                result: {
                    type: "string";
                };
                rotationAngle: {
                    $ref: "#/$defs/Scalar";
                };
                rotationAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
                scale: {
                    $ref: "#/$defs/Scalar";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                translation: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["id", "kind", "source", "result"];
            type: "object";
        };
        MoveFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.move.face";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                result: {
                    type: "string";
                };
                rotationAngle: {
                    $ref: "#/$defs/Scalar";
                };
                rotationAxis: {
                    $ref: "#/$defs/AxisSpec";
                };
                scale: {
                    $ref: "#/$defs/Scalar";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                translation: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "result"];
            type: "object";
        };
        NamedOutput: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.named";
                };
                name: {
                    type: "string";
                };
            };
            required: readonly ["kind", "name"];
            type: "object";
        };
        ParallelismConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.parallelism";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        ParamDef: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                type: {
                    $ref: "#/$defs/ParamType";
                };
                value: {
                    $ref: "#/$defs/Expr";
                };
            };
            required: readonly ["id", "type", "value"];
            type: "object";
        };
        ParamType: {
            enum: readonly ["length", "angle", "count"];
        };
        Path3D: {
            anyOf: readonly [{
                $ref: "#/$defs/Path3DPolyline";
            }, {
                $ref: "#/$defs/Path3DSpline";
            }, {
                $ref: "#/$defs/Path3DHelix";
            }, {
                $ref: "#/$defs/Path3DSpiral";
            }, {
                $ref: "#/$defs/Path3DSegments";
            }];
        };
        Path3DHelix: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/Point3D";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                kind: {
                    const: "path.helix";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                startAngle: {
                    $ref: "#/$defs/Scalar";
                };
                turns: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "origin", "axis", "radius", "pitch"];
            type: "object";
        };
        Path3DPolyline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                kind: {
                    const: "path.polyline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point3D";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "points"];
            type: "object";
        };
        Path3DSegments: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "path.segments";
                };
                segments: {
                    items: {
                        $ref: "#/$defs/PathSegment";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "segments"];
            type: "object";
        };
        Path3DSpiral: {
            additionalProperties: false;
            properties: {
                endRadius: {
                    $ref: "#/$defs/Scalar";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                kind: {
                    const: "path.spiral";
                };
                normal: {
                    $ref: "#/$defs/Point3D";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                startAngle: {
                    $ref: "#/$defs/Scalar";
                };
                startRadius: {
                    $ref: "#/$defs/Scalar";
                };
                turns: {
                    $ref: "#/$defs/Scalar";
                };
                xDir: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "origin", "startRadius", "endRadius", "turns"];
            type: "object";
        };
        Path3DSpline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                degree: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "path.spline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point3D";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "points"];
            type: "object";
        };
        PathSegment: {
            anyOf: readonly [{
                $ref: "#/$defs/PathSegmentLine";
            }, {
                $ref: "#/$defs/PathSegmentArc";
            }];
        };
        PathSegmentArc: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                direction: {
                    enum: readonly ["cw", "ccw"];
                };
                end: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "path.arc";
                };
                start: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "start", "end", "center"];
            type: "object";
        };
        PathSegmentLine: {
            additionalProperties: false;
            properties: {
                end: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "path.line";
                };
                start: {
                    $ref: "#/$defs/Point3D";
                };
            };
            required: readonly ["kind", "start", "end"];
            type: "object";
        };
        PatternCircular: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                count: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pattern.circular";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "origin", "axis", "count"];
            type: "object";
        };
        PatternLinear: {
            additionalProperties: false;
            properties: {
                count: {
                    items: {
                        $ref: "#/$defs/Scalar";
                    };
                    maxItems: 2;
                    minItems: 2;
                    type: "array";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pattern.linear";
                };
                origin: {
                    $ref: "#/$defs/Selector";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                spacing: {
                    items: {
                        $ref: "#/$defs/Scalar";
                    };
                    maxItems: 2;
                    minItems: 2;
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "origin", "spacing", "count"];
            type: "object";
        };
        PatternRef: {
            anyOf: readonly [{
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "pattern.linear";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "pattern.circular";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }];
        };
        PerpendicularityConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.perpendicularity";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        Pipe: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.pipe";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                outerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "axis", "length", "outerDiameter", "result"];
            type: "object";
        };
        PipeSweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                innerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "feature.pipeSweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                outerDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "path", "outerDiameter", "result"];
            type: "object";
        };
        Plane: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.plane";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "width", "height", "result"];
            type: "object";
        };
        PlaneRef: {
            anyOf: readonly [{
                $ref: "#/$defs/Selector";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "plane.datum";
                    };
                    ref: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["kind", "ref"];
                type: "object";
            }];
        };
        Point2D: {
            items: {
                $ref: "#/$defs/Scalar";
            };
            maxItems: 2;
            minItems: 2;
            type: "array";
        };
        Point3D: {
            items: {
                $ref: "#/$defs/Scalar";
            };
            maxItems: 3;
            minItems: 3;
            type: "array";
        };
        PointLocator: {
            enum: readonly ["center", "mid", "start", "end"];
        };
        PositionConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                datum: {
                    items: {
                        $ref: "#/$defs/DatumRef";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.position";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
                zone: {
                    enum: readonly ["diameter", "cartesian"];
                };
            };
            required: readonly ["id", "kind", "target", "tolerance", "datum"];
            type: "object";
        };
        Predicate: {
            anyOf: readonly [{
                $ref: "#/$defs/PredicateNormal";
            }, {
                $ref: "#/$defs/PredicatePlanar";
            }, {
                $ref: "#/$defs/PredicateCreatedBy";
            }, {
                $ref: "#/$defs/PredicateRole";
            }];
        };
        PredicateCreatedBy: {
            additionalProperties: false;
            properties: {
                featureId: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "pred.createdBy";
                };
            };
            required: readonly ["kind", "featureId"];
            type: "object";
        };
        PredicateNormal: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.normal";
                };
                value: {
                    $ref: "#/$defs/AxisDirection";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        PredicatePlanar: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.planar";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        PredicateRole: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pred.role";
                };
                value: {
                    type: "string";
                };
            };
            required: readonly ["kind", "value"];
            type: "object";
        };
        Profile: {
            anyOf: readonly [{
                $ref: "#/$defs/ProfileRectangle";
            }, {
                $ref: "#/$defs/ProfileCircle";
            }, {
                $ref: "#/$defs/ProfilePoly";
            }, {
                $ref: "#/$defs/ProfileSketch";
            }];
        };
        ProfileCircle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "profile.circle";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "radius"];
            type: "object";
        };
        ProfilePoly: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                kind: {
                    const: "profile.poly";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                sides: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "sides", "radius"];
            type: "object";
        };
        ProfileRectangle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point3D";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                kind: {
                    const: "profile.rectangle";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["kind", "width", "height"];
            type: "object";
        };
        ProfileRef: {
            anyOf: readonly [{
                $ref: "#/$defs/Profile";
            }, {
                additionalProperties: false;
                properties: {
                    kind: {
                        const: "profile.ref";
                    };
                    name: {
                        type: "string";
                    };
                };
                required: readonly ["kind", "name"];
                type: "object";
            }];
        };
        ProfileSketch: {
            additionalProperties: false;
            properties: {
                holes: {
                    items: {
                        items: {
                            $ref: "#/$defs/ID";
                        };
                        type: "array";
                    };
                    type: "array";
                };
                kind: {
                    const: "profile.sketch";
                };
                loop: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                open: {
                    type: "boolean";
                };
            };
            required: readonly ["kind", "loop"];
            type: "object";
        };
        RankClosestTo: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.closestTo";
                };
                target: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "target"];
            type: "object";
        };
        RankMaxArea: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.maxArea";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankMaxZ: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.maxZ";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankMinZ: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "rank.minZ";
                };
            };
            required: readonly ["kind"];
            type: "object";
        };
        RankRule: {
            anyOf: readonly [{
                $ref: "#/$defs/RankMaxArea";
            }, {
                $ref: "#/$defs/RankMinZ";
            }, {
                $ref: "#/$defs/RankMaxZ";
            }, {
                $ref: "#/$defs/RankClosestTo";
            }];
        };
        RefAxis: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.axis";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefEdge: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.edge";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefFrame: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.frame";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefPoint: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.point";
                };
                locator: {
                    $ref: "#/$defs/PointLocator";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        RefSurface: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "ref.surface";
                };
                selector: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["kind", "selector"];
            type: "object";
        };
        ReplaceFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                heal: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.replace.face";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "source", "faces", "tool", "result"];
            type: "object";
        };
        Revolve: {
            additionalProperties: false;
            properties: {
                angle: {
                    anyOf: readonly [{
                        $ref: "#/$defs/Scalar";
                    }, {
                        const: "full";
                    }];
                };
                axis: {
                    $ref: "#/$defs/AxisDirection";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.revolve";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "axis", "result"];
            type: "object";
        };
        Scalar: {
            anyOf: readonly [{
                type: "number";
            }, {
                $ref: "#/$defs/Expr";
            }];
        };
        Selector: {
            anyOf: readonly [{
                $ref: "#/$defs/FaceQuery";
            }, {
                $ref: "#/$defs/EdgeQuery";
            }, {
                $ref: "#/$defs/SolidQuery";
            }, {
                $ref: "#/$defs/NamedOutput";
            }];
        };
        Shell: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    enum: ("inside" | "outside" | "both")[];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.shell";
                };
                openFaces: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    type: "array";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                thickness: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "source", "thickness", "result"];
            type: "object";
        };
        SizeConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.size";
                };
                max: {
                    $ref: "#/$defs/Scalar";
                };
                min: {
                    $ref: "#/$defs/Scalar";
                };
                modifiers: {
                    items: {
                        $ref: "#/$defs/ToleranceModifier";
                    };
                    type: "array";
                };
                nominal: {
                    $ref: "#/$defs/Scalar";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/GeometryRef";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target"];
            type: "object";
        };
        Sketch2D: {
            additionalProperties: false;
            properties: {
                constraints: {
                    items: {
                        $ref: "#/$defs/SketchConstraint";
                    };
                    type: "array";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entities: {
                    items: {
                        $ref: "#/$defs/SketchEntity";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.sketch2d";
                };
                origin: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                plane: {
                    $ref: "#/$defs/PlaneRef";
                };
                profiles: {
                    items: {
                        $ref: "#/$defs/SketchProfile";
                    };
                    type: "array";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profiles"];
            type: "object";
        };
        SketchArc: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                direction: {
                    enum: readonly ["cw", "ccw"];
                };
                end: {
                    $ref: "#/$defs/Point2D";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.arc";
                };
                start: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "start", "end", "center", "direction"];
            type: "object";
        };
        SketchCircle: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.circle";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radius"];
            type: "object";
        };
        SketchConstraint: {
            anyOf: readonly [{
                $ref: "#/$defs/SketchConstraintCoincident";
            }, {
                $ref: "#/$defs/SketchConstraintHorizontal";
            }, {
                $ref: "#/$defs/SketchConstraintVertical";
            }, {
                $ref: "#/$defs/SketchConstraintParallel";
            }, {
                $ref: "#/$defs/SketchConstraintPerpendicular";
            }, {
                $ref: "#/$defs/SketchConstraintEqualLength";
            }, {
                $ref: "#/$defs/SketchConstraintDistance";
            }, {
                $ref: "#/$defs/SketchConstraintAngle";
            }, {
                $ref: "#/$defs/SketchConstraintRadius";
            }, {
                $ref: "#/$defs/SketchConstraintFixPoint";
            }];
        };
        SketchConstraintAngle: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                angle: {
                    $ref: "#/$defs/Scalar";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.angle";
                };
            };
            required: readonly ["id", "kind", "a", "b", "angle"];
            type: "object";
        };
        SketchConstraintCoincident: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                b: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.coincident";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintDistance: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                b: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.distance";
                };
            };
            required: readonly ["id", "kind", "a", "b", "distance"];
            type: "object";
        };
        SketchConstraintEqualLength: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.equalLength";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintFixPoint: {
            additionalProperties: false;
            anyOf: readonly [{
                required: readonly ["x"];
            }, {
                required: readonly ["y"];
            }];
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.fixPoint";
                };
                point: {
                    $ref: "#/$defs/SketchConstraintPointRef";
                };
                x: {
                    $ref: "#/$defs/Scalar";
                };
                y: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "point"];
            type: "object";
        };
        SketchConstraintHorizontal: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.horizontal";
                };
                line: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["id", "kind", "line"];
            type: "object";
        };
        SketchConstraintParallel: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.parallel";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintPerpendicular: {
            additionalProperties: false;
            properties: {
                a: {
                    $ref: "#/$defs/ID";
                };
                b: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.perpendicular";
                };
            };
            required: readonly ["id", "kind", "a", "b"];
            type: "object";
        };
        SketchConstraintPointRef: {
            additionalProperties: false;
            properties: {
                entity: {
                    $ref: "#/$defs/ID";
                };
                handle: {
                    enum: readonly ["start", "end", "center", "point", "corner"];
                };
            };
            required: readonly ["entity"];
            type: "object";
        };
        SketchConstraintRadius: {
            additionalProperties: false;
            properties: {
                curve: {
                    $ref: "#/$defs/ID";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.radius";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "curve", "radius"];
            type: "object";
        };
        SketchConstraintVertical: {
            additionalProperties: false;
            properties: {
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.constraint.vertical";
                };
                line: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["id", "kind", "line"];
            type: "object";
        };
        SketchEllipse: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.ellipse";
                };
                radiusX: {
                    $ref: "#/$defs/Scalar";
                };
                radiusY: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radiusX", "radiusY"];
            type: "object";
        };
        SketchEntity: {
            anyOf: readonly [{
                $ref: "#/$defs/SketchLine";
            }, {
                $ref: "#/$defs/SketchArc";
            }, {
                $ref: "#/$defs/SketchCircle";
            }, {
                $ref: "#/$defs/SketchEllipse";
            }, {
                $ref: "#/$defs/SketchRectangleCenter";
            }, {
                $ref: "#/$defs/SketchRectangleCorner";
            }, {
                $ref: "#/$defs/SketchSlot";
            }, {
                $ref: "#/$defs/SketchPolygon";
            }, {
                $ref: "#/$defs/SketchSpline";
            }, {
                $ref: "#/$defs/SketchPoint";
            }];
        };
        SketchEntityBase: {
            properties: {
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    type: "string";
                };
            };
            required: readonly ["id", "kind"];
            type: "object";
        };
        SketchLine: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                end: {
                    $ref: "#/$defs/Point2D";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.line";
                };
                start: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "start", "end"];
            type: "object";
        };
        SketchPoint: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.point";
                };
                point: {
                    $ref: "#/$defs/Point2D";
                };
            };
            required: readonly ["id", "kind", "point"];
            type: "object";
        };
        SketchPolygon: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.polygon";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                sides: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "radius", "sides"];
            type: "object";
        };
        SketchProfile: {
            additionalProperties: false;
            properties: {
                name: {
                    type: "string";
                };
                profile: {
                    $ref: "#/$defs/Profile";
                };
            };
            required: readonly ["name", "profile"];
            type: "object";
        };
        SketchRectangleCenter: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.rectangle";
                };
                mode: {
                    const: "center";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "mode", "center", "width", "height"];
            type: "object";
        };
        SketchRectangleCorner: {
            additionalProperties: false;
            properties: {
                construction: {
                    type: "boolean";
                };
                corner: {
                    $ref: "#/$defs/Point2D";
                };
                height: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.rectangle";
                };
                mode: {
                    const: "corner";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "mode", "corner", "width", "height"];
            type: "object";
        };
        SketchSlot: {
            additionalProperties: false;
            properties: {
                center: {
                    $ref: "#/$defs/Point2D";
                };
                construction: {
                    type: "boolean";
                };
                endStyle: {
                    enum: readonly ["arc", "straight"];
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.slot";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                rotation: {
                    $ref: "#/$defs/Scalar";
                };
                width: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "center", "length", "width"];
            type: "object";
        };
        SketchSpline: {
            additionalProperties: false;
            properties: {
                closed: {
                    type: "boolean";
                };
                construction: {
                    type: "boolean";
                };
                degree: {
                    $ref: "#/$defs/Scalar";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "sketch.spline";
                };
                points: {
                    items: {
                        $ref: "#/$defs/Point2D";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "points"];
            type: "object";
        };
        SolidQuery: {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "selector.solid";
                };
                predicates: {
                    items: {
                        $ref: "#/$defs/Predicate";
                    };
                    type: "array";
                };
                rank: {
                    items: {
                        $ref: "#/$defs/RankRule";
                    };
                    type: "array";
                };
            };
            required: readonly ["kind", "predicates", "rank"];
            type: "object";
        };
        SplitBody: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                keepTool: {
                    type: "boolean";
                };
                kind: {
                    const: "feature.split.body";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "source", "tool", "result"];
            type: "object";
        };
        SplitFace: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                faces: {
                    $ref: "#/$defs/Selector";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.split.face";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tool: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["id", "kind", "faces", "tool", "result"];
            type: "object";
        };
        Surface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.surface";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "result"];
            type: "object";
        };
        SurfaceProfileConstraint: {
            additionalProperties: false;
            properties: {
                capabilities: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "constraint.surfaceProfile";
                };
                referenceFrame: {
                    $ref: "#/$defs/RefFrame";
                };
                requirement: {
                    $ref: "#/$defs/ID";
                };
                target: {
                    $ref: "#/$defs/RefSurface";
                };
                tolerance: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "target", "tolerance"];
            type: "object";
        };
        Sweep: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                frame: {
                    $ref: "#/$defs/PlaneRef";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.sweep";
                };
                mode: {
                    $ref: "#/$defs/ExtrudeMode";
                };
                orientation: {
                    $ref: "#/$defs/SweepOrientation";
                };
                path: {
                    $ref: "#/$defs/Path3D";
                };
                profile: {
                    $ref: "#/$defs/ProfileRef";
                };
                result: {
                    type: "string";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "profile", "path", "result"];
            type: "object";
        };
        SweepOrientation: {
            enum: readonly ["frenet", "fixed"];
        };
        Thicken: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                direction: {
                    $ref: "#/$defs/ThickenDirection";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.thicken";
                };
                result: {
                    type: "string";
                };
                surface: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                thickness: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["id", "kind", "surface", "thickness", "result"];
            type: "object";
        };
        ThickenDirection: {
            enum: readonly ["normal", "reverse"];
        };
        Thread: {
            additionalProperties: false;
            properties: {
                axis: {
                    $ref: "#/$defs/AxisSpec";
                };
                crestFlat: {
                    $ref: "#/$defs/Scalar";
                };
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                handedness: {
                    $ref: "#/$defs/ThreadHandedness";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.thread";
                };
                length: {
                    $ref: "#/$defs/Scalar";
                };
                majorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                minorDiameter: {
                    $ref: "#/$defs/Scalar";
                };
                origin: {
                    $ref: "#/$defs/Point3D";
                };
                pitch: {
                    $ref: "#/$defs/Scalar";
                };
                profileAngle: {
                    $ref: "#/$defs/Scalar";
                };
                result: {
                    type: "string";
                };
                rootFlat: {
                    $ref: "#/$defs/Scalar";
                };
                segmentsPerTurn: {
                    $ref: "#/$defs/Scalar";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "axis", "length", "majorDiameter", "pitch", "result"];
            type: "object";
        };
        ThreadHandedness: {
            enum: readonly ["right", "left"];
        };
        ToleranceModifier: {
            enum: readonly ["MMC", "LMC", "RFS", "PROJECTED", "FREE_STATE", "TANGENT_PLANE", "STATISTICAL"];
        };
        Transform: {
            additionalProperties: false;
            properties: {
                matrix: {
                    items: {
                        type: "number";
                    };
                    maxItems: 16;
                    minItems: 16;
                    type: "array";
                };
                rotation: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
                translation: {
                    items: {
                        type: "number";
                    };
                    maxItems: 3;
                    minItems: 3;
                    type: "array";
                };
            };
            type: "object";
        };
        TrimSurface: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                keep: {
                    enum: readonly ["inside", "outside", "both"];
                };
                kind: {
                    const: "feature.trim.surface";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
                tools: {
                    items: {
                        $ref: "#/$defs/Selector";
                    };
                    minItems: 1;
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "tools", "keep", "result"];
            type: "object";
        };
        Unit: {
            enum: readonly ["mm", "cm", "m", "in", "rad", "deg"];
        };
        Units: {
            enum: readonly ["mm", "cm", "m", "in"];
        };
        Unwrap: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.unwrap";
                };
                mode: {
                    $ref: "#/$defs/UnwrapMode";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "result"];
            type: "object";
        };
        UnwrapMode: {
            enum: readonly ["strict", "experimental"];
        };
        VariableChamfer: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entries: {
                    items: {
                        $ref: "#/$defs/VariableChamferEntry";
                    };
                    minItems: 1;
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.chamfer.variable";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "entries", "result"];
            type: "object";
        };
        VariableChamferEntry: {
            additionalProperties: false;
            properties: {
                distance: {
                    $ref: "#/$defs/Scalar";
                };
                edge: {
                    $ref: "#/$defs/Selector";
                };
            };
            required: readonly ["edge", "distance"];
            type: "object";
        };
        VariableFillet: {
            additionalProperties: false;
            properties: {
                deps: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                entries: {
                    items: {
                        $ref: "#/$defs/VariableFilletEntry";
                    };
                    minItems: 1;
                    type: "array";
                };
                id: {
                    $ref: "#/$defs/ID";
                };
                kind: {
                    const: "feature.fillet.variable";
                };
                result: {
                    type: "string";
                };
                source: {
                    $ref: "#/$defs/Selector";
                };
                tags: {
                    items: {
                        type: "string";
                    };
                    type: "array";
                };
            };
            required: readonly ["id", "kind", "source", "entries", "result"];
            type: "object";
        };
        VariableFilletEntry: {
            additionalProperties: false;
            properties: {
                edge: {
                    $ref: "#/$defs/Selector";
                };
                radius: {
                    $ref: "#/$defs/Scalar";
                };
            };
            required: readonly ["edge", "radius"];
            type: "object";
        };
    }
    • Readonly AngleUnit: {
          enum: readonly ["rad", "deg"];
      }
      • Readonly enum: readonly ["rad", "deg"]
    • Readonly AssemblyInstance: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              part: {
                  $ref: "#/$defs/ID";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              transform: {
                  $ref: "#/$defs/Transform";
              };
          };
          required: readonly ["id", "part"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            part: {
                $ref: "#/$defs/ID";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            transform: {
                $ref: "#/$defs/Transform";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly part: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly transform: {
              $ref: "#/$defs/Transform";
          }
          • Readonly $ref: "#/$defs/Transform"
      • Readonly required: readonly ["id", "part"]
      • Readonly type: "object"
    • Readonly AssemblyMate: {
          anyOf: readonly [{
              $ref: "#/$defs/AssemblyMateFixed";
          }, {
              $ref: "#/$defs/AssemblyMateCoaxial";
          }, {
              $ref: "#/$defs/AssemblyMatePlanar";
          }, {
              $ref: "#/$defs/AssemblyMateDistance";
          }, {
              $ref: "#/$defs/AssemblyMateAngle";
          }, {
              $ref: "#/$defs/AssemblyMateParallel";
          }, {
              $ref: "#/$defs/AssemblyMatePerpendicular";
          }, {
              $ref: "#/$defs/AssemblyMateInsert";
          }, {
              $ref: "#/$defs/AssemblyMateSlider";
          }, {
              $ref: "#/$defs/AssemblyMateHinge";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/AssemblyMateFixed";
        }, {
            $ref: "#/$defs/AssemblyMateCoaxial";
        }, {
            $ref: "#/$defs/AssemblyMatePlanar";
        }, {
            $ref: "#/$defs/AssemblyMateDistance";
        }, {
            $ref: "#/$defs/AssemblyMateAngle";
        }, {
            $ref: "#/$defs/AssemblyMateParallel";
        }, {
            $ref: "#/$defs/AssemblyMatePerpendicular";
        }, {
            $ref: "#/$defs/AssemblyMateInsert";
        }, {
            $ref: "#/$defs/AssemblyMateSlider";
        }, {
            $ref: "#/$defs/AssemblyMateHinge";
        }]
    • Readonly AssemblyMateAngle: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              angle: {
                  type: "number";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.angle";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            angle: {
                type: "number";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.angle";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly angle: {
              type: "number";
          }
          • Readonly type: "number"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.angle";
          }
          • Readonly const: "mate.angle"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateCoaxial: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.coaxial";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.coaxial";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.coaxial";
          }
          • Readonly const: "mate.coaxial"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateDistance: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              distance: {
                  type: "number";
              };
              kind: {
                  const: "mate.distance";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            distance: {
                type: "number";
            };
            kind: {
                const: "mate.distance";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly distance: {
              type: "number";
          }
          • Readonly type: "number"
        • Readonly kind: {
              const: "mate.distance";
          }
          • Readonly const: "mate.distance"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateFixed: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.fixed";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.fixed";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.fixed";
          }
          • Readonly const: "mate.fixed"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateHinge: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.hinge";
              };
              offset: {
                  type: "number";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.hinge";
            };
            offset: {
                type: "number";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.hinge";
          }
          • Readonly const: "mate.hinge"
        • Readonly offset: {
              type: "number";
          }
          • Readonly type: "number"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateInsert: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.insert";
              };
              offset: {
                  type: "number";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.insert";
            };
            offset: {
                type: "number";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.insert";
          }
          • Readonly const: "mate.insert"
        • Readonly offset: {
              type: "number";
          }
          • Readonly type: "number"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateParallel: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.parallel";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.parallel";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.parallel";
          }
          • Readonly const: "mate.parallel"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMatePerpendicular: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.perpendicular";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.perpendicular";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.perpendicular";
          }
          • Readonly const: "mate.perpendicular"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMatePlanar: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.planar";
              };
              offset: {
                  type: "number";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.planar";
            };
            offset: {
                type: "number";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.planar";
          }
          • Readonly const: "mate.planar"
        • Readonly offset: {
              type: "number";
          }
          • Readonly type: "number"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyMateSlider: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/AssemblyRef";
              };
              b: {
                  $ref: "#/$defs/AssemblyRef";
              };
              kind: {
                  const: "mate.slider";
              };
          };
          required: readonly ["kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/AssemblyRef";
            };
            b: {
                $ref: "#/$defs/AssemblyRef";
            };
            kind: {
                const: "mate.slider";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly b: {
              $ref: "#/$defs/AssemblyRef";
          }
          • Readonly $ref: "#/$defs/AssemblyRef"
        • Readonly kind: {
              const: "mate.slider";
          }
          • Readonly const: "mate.slider"
      • Readonly required: readonly ["kind", "a", "b"]
      • Readonly type: "object"
    • Readonly AssemblyOutput: {
          additionalProperties: false;
          properties: {
              name: {
                  type: "string";
              };
              refs: {
                  items: {
                      $ref: "#/$defs/AssemblyRef";
                  };
                  type: "array";
              };
          };
          required: readonly ["name", "refs"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            name: {
                type: "string";
            };
            refs: {
                items: {
                    $ref: "#/$defs/AssemblyRef";
                };
                type: "array";
            };
        }
        • Readonly name: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly refs: {
              items: {
                  $ref: "#/$defs/AssemblyRef";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/AssemblyRef";
            }
            • Readonly $ref: "#/$defs/AssemblyRef"
          • Readonly type: "array"
      • Readonly required: readonly ["name", "refs"]
      • Readonly type: "object"
    • Readonly AssemblyRef: {
          additionalProperties: false;
          properties: {
              connector: {
                  $ref: "#/$defs/ID";
              };
              instance: {
                  $ref: "#/$defs/ID";
              };
          };
          required: readonly ["instance", "connector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            connector: {
                $ref: "#/$defs/ID";
            };
            instance: {
                $ref: "#/$defs/ID";
            };
        }
        • Readonly connector: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly instance: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
      • Readonly required: readonly ["instance", "connector"]
      • Readonly type: "object"
    • Readonly Assertion: {
          anyOf: readonly [{
              $ref: "#/$defs/AssertionBrepValid";
          }, {
              $ref: "#/$defs/AssertionMinEdgeLength";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/AssertionBrepValid";
        }, {
            $ref: "#/$defs/AssertionMinEdgeLength";
        }]
    • Readonly AssertionBrepValid: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "assert.brepValid";
              };
              target: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["id", "kind"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "assert.brepValid";
            };
            target: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "assert.brepValid";
          }
          • Readonly const: "assert.brepValid"
        • Readonly target: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["id", "kind"]
      • Readonly type: "object"
    • Readonly AssertionMinEdgeLength: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "assert.minEdgeLength";
              };
              min: {
                  $ref: "#/$defs/Scalar";
              };
              target: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["id", "kind", "min"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "assert.minEdgeLength";
            };
            min: {
                $ref: "#/$defs/Scalar";
            };
            target: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "assert.minEdgeLength";
          }
          • Readonly const: "assert.minEdgeLength"
        • Readonly min: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly target: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["id", "kind", "min"]
      • Readonly type: "object"
    • Readonly AxisDatum: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "axis.datum";
              };
              ref: {
                  $ref: "#/$defs/ID";
              };
          };
          required: readonly ["kind", "ref"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "axis.datum";
            };
            ref: {
                $ref: "#/$defs/ID";
            };
        }
        • Readonly kind: {
              const: "axis.datum";
          }
          • Readonly const: "axis.datum"
        • Readonly ref: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
      • Readonly required: readonly ["kind", "ref"]
      • Readonly type: "object"
    • Readonly AxisDirection: {
          enum: readonly ["+X", "-X", "+Y", "-Y", "+Z", "-Z"];
      }
      • Readonly enum: readonly ["+X", "-X", "+Y", "-Y", "+Z", "-Z"]
    • Readonly AxisSpec: {
          anyOf: readonly [{
              $ref: "#/$defs/AxisDirection";
          }, {
              $ref: "#/$defs/AxisVector";
          }, {
              $ref: "#/$defs/AxisDatum";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/AxisDirection";
        }, {
            $ref: "#/$defs/AxisVector";
        }, {
            $ref: "#/$defs/AxisDatum";
        }]
    • Readonly AxisVector: {
          additionalProperties: false;
          properties: {
              direction: {
                  $ref: "#/$defs/Point3D";
              };
              kind: {
                  const: "axis.vector";
              };
          };
          required: readonly ["kind", "direction"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            direction: {
                $ref: "#/$defs/Point3D";
            };
            kind: {
                const: "axis.vector";
            };
        }
        • Readonly direction: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly kind: {
              const: "axis.vector";
          }
          • Readonly const: "axis.vector"
      • Readonly required: readonly ["kind", "direction"]
      • Readonly type: "object"
    • Readonly BooleanOp: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.boolean";
              };
              left: {
                  $ref: "#/$defs/Selector";
              };
              op: {
                  enum: readonly ["union", "subtract", "intersect"];
              };
              result: {
                  type: "string";
              };
              right: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "op", "left", "right", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.boolean";
            };
            left: {
                $ref: "#/$defs/Selector";
            };
            op: {
                enum: readonly ["union", "subtract", "intersect"];
            };
            result: {
                type: "string";
            };
            right: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.boolean";
          }
          • Readonly const: "feature.boolean"
        • Readonly left: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly op: {
              enum: readonly ["union", "subtract", "intersect"];
          }
          • Readonly enum: readonly ["union", "subtract", "intersect"]
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly right: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "op", "left", "right", "result"]
      • Readonly type: "object"
    • Readonly BuildContext: {
          additionalProperties: false;
          properties: {
              kernel: {
                  additionalProperties: false;
                  properties: {
                      name: {
                          type: "string";
                      };
                      version: {
                          type: "string";
                      };
                  };
                  required: readonly ["name", "version"];
                  type: "object";
              };
              tolerance: {
                  additionalProperties: false;
                  properties: {
                      angular: {
                          type: "number";
                      };
                      linear: {
                          type: "number";
                      };
                  };
                  required: readonly ["linear", "angular"];
                  type: "object";
              };
              units: {
                  $ref: "#/$defs/Units";
              };
          };
          required: readonly ["units", "kernel", "tolerance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kernel: {
                additionalProperties: false;
                properties: {
                    name: {
                        type: "string";
                    };
                    version: {
                        type: "string";
                    };
                };
                required: readonly ["name", "version"];
                type: "object";
            };
            tolerance: {
                additionalProperties: false;
                properties: {
                    angular: {
                        type: "number";
                    };
                    linear: {
                        type: "number";
                    };
                };
                required: readonly ["linear", "angular"];
                type: "object";
            };
            units: {
                $ref: "#/$defs/Units";
            };
        }
        • Readonly kernel: {
              additionalProperties: false;
              properties: {
                  name: {
                      type: "string";
                  };
                  version: {
                      type: "string";
                  };
              };
              required: readonly ["name", "version"];
              type: "object";
          }
          • Readonly additionalProperties: false
          • Readonly properties: {
                name: {
                    type: "string";
                };
                version: {
                    type: "string";
                };
            }
            • Readonly name: {
                  type: "string";
              }
              • Readonly type: "string"
            • Readonly version: {
                  type: "string";
              }
              • Readonly type: "string"
          • Readonly required: readonly ["name", "version"]
          • Readonly type: "object"
        • Readonly tolerance: {
              additionalProperties: false;
              properties: {
                  angular: {
                      type: "number";
                  };
                  linear: {
                      type: "number";
                  };
              };
              required: readonly ["linear", "angular"];
              type: "object";
          }
          • Readonly additionalProperties: false
          • Readonly properties: {
                angular: {
                    type: "number";
                };
                linear: {
                    type: "number";
                };
            }
            • Readonly angular: {
                  type: "number";
              }
              • Readonly type: "number"
            • Readonly linear: {
                  type: "number";
              }
              • Readonly type: "number"
          • Readonly required: readonly ["linear", "angular"]
          • Readonly type: "object"
        • Readonly units: {
              $ref: "#/$defs/Units";
          }
          • Readonly $ref: "#/$defs/Units"
      • Readonly required: readonly ["units", "kernel", "tolerance"]
      • Readonly type: "object"
    • Readonly Chamfer: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              distance: {
                  $ref: "#/$defs/Scalar";
              };
              edges: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.chamfer";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "edges", "distance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            distance: {
                $ref: "#/$defs/Scalar";
            };
            edges: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.chamfer";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly distance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly edges: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.chamfer";
          }
          • Readonly const: "feature.chamfer"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "edges", "distance"]
      • Readonly type: "object"
    • Readonly CompileResult: {
          additionalProperties: false;
          properties: {
              featureOrder: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              graph: {
                  $ref: "#/$defs/Graph";
              };
              partId: {
                  $ref: "#/$defs/ID";
              };
          };
          required: readonly ["partId", "featureOrder", "graph"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            featureOrder: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            graph: {
                $ref: "#/$defs/Graph";
            };
            partId: {
                $ref: "#/$defs/ID";
            };
        }
        • Readonly featureOrder: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly graph: {
              $ref: "#/$defs/Graph";
          }
          • Readonly $ref: "#/$defs/Graph"
        • Readonly partId: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
      • Readonly required: readonly ["partId", "featureOrder", "graph"]
      • Readonly type: "object"
    • Readonly CosmeticThread: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              class: {
                  type: "string";
              };
              depth: {
                  $ref: "#/$defs/Scalar";
              };
              designation: {
                  type: "string";
              };
              handedness: {
                  $ref: "#/$defs/ThreadHandedness";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              internal: {
                  type: "boolean";
              };
              kind: {
                  const: "thread.cosmetic";
              };
              length: {
                  $ref: "#/$defs/Scalar";
              };
              majorDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              minorDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              notes: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              pitch: {
                  $ref: "#/$defs/Scalar";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              series: {
                  type: "string";
              };
              standard: {
                  type: "string";
              };
              target: {
                  $ref: "#/$defs/GeometryRef";
              };
          };
          required: readonly ["id", "kind", "target"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            class: {
                type: "string";
            };
            depth: {
                $ref: "#/$defs/Scalar";
            };
            designation: {
                type: "string";
            };
            handedness: {
                $ref: "#/$defs/ThreadHandedness";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            internal: {
                type: "boolean";
            };
            kind: {
                const: "thread.cosmetic";
            };
            length: {
                $ref: "#/$defs/Scalar";
            };
            majorDiameter: {
                $ref: "#/$defs/Scalar";
            };
            minorDiameter: {
                $ref: "#/$defs/Scalar";
            };
            notes: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            pitch: {
                $ref: "#/$defs/Scalar";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            series: {
                type: "string";
            };
            standard: {
                type: "string";
            };
            target: {
                $ref: "#/$defs/GeometryRef";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly class: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly depth: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly designation: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly handedness: {
              $ref: "#/$defs/ThreadHandedness";
          }
          • Readonly $ref: "#/$defs/ThreadHandedness"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly internal: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly kind: {
              const: "thread.cosmetic";
          }
          • Readonly const: "thread.cosmetic"
        • Readonly length: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly majorDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly minorDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly notes: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly pitch: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly series: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly standard: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly target: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
      • Readonly required: readonly ["id", "kind", "target"]
      • Readonly type: "object"
    • Readonly CurveIntersect: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              first: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.curve.intersect";
              };
              result: {
                  type: "string";
              };
              second: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "first", "second", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            first: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.curve.intersect";
            };
            result: {
                type: "string";
            };
            second: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly first: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.curve.intersect";
          }
          • Readonly const: "feature.curve.intersect"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly second: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "first", "second", "result"]
      • Readonly type: "object"
    • Readonly DatumAxis: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              direction: {
                  $ref: "#/$defs/AxisSpec";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "datum.axis";
              };
              origin: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "direction"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            direction: {
                $ref: "#/$defs/AxisSpec";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "datum.axis";
            };
            origin: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly direction: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "datum.axis";
          }
          • Readonly const: "datum.axis"
        • Readonly origin: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "direction"]
      • Readonly type: "object"
    • Readonly DatumFrame: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "datum.frame";
              };
              on: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "on"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "datum.frame";
            };
            on: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "datum.frame";
          }
          • Readonly const: "datum.frame"
        • Readonly on: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "on"]
      • Readonly type: "object"
    • Readonly DatumModifier: {
          enum: readonly ["MMB", "LMB", "RMB"];
      }
      • Readonly enum: readonly ["MMB", "LMB", "RMB"]
    • Readonly DatumPlane: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "datum.plane";
              };
              normal: {
                  $ref: "#/$defs/AxisSpec";
              };
              origin: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              xAxis: {
                  $ref: "#/$defs/AxisSpec";
              };
          };
          required: readonly ["id", "kind", "normal"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "datum.plane";
            };
            normal: {
                $ref: "#/$defs/AxisSpec";
            };
            origin: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            xAxis: {
                $ref: "#/$defs/AxisSpec";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "datum.plane";
          }
          • Readonly const: "datum.plane"
        • Readonly normal: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly origin: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly xAxis: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
      • Readonly required: readonly ["id", "kind", "normal"]
      • Readonly type: "object"
    • Readonly DatumRef: {
          additionalProperties: false;
          properties: {
              datum: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "datum.ref";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/DatumModifier";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "datum"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            datum: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "datum.ref";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/DatumModifier";
                };
                type: "array";
            };
        }
        • Readonly datum: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "datum.ref";
          }
          • Readonly const: "datum.ref"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/DatumModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/DatumModifier";
            }
            • Readonly $ref: "#/$defs/DatumModifier"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "datum"]
      • Readonly type: "object"
    • Readonly DeleteFace: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              faces: {
                  $ref: "#/$defs/Selector";
              };
              heal: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.delete.face";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "faces", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            faces: {
                $ref: "#/$defs/Selector";
            };
            heal: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.delete.face";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly faces: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly heal: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.delete.face";
          }
          • Readonly const: "feature.delete.face"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "faces", "result"]
      • Readonly type: "object"
    • Readonly DimensionAngle: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              from: {
                  $ref: "#/$defs/GeometryRef";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "dimension.angle";
              };
              minus: {
                  $ref: "#/$defs/Scalar";
              };
              nominal: {
                  $ref: "#/$defs/Scalar";
              };
              plus: {
                  $ref: "#/$defs/Scalar";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              to: {
                  $ref: "#/$defs/GeometryRef";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "from", "to"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            from: {
                $ref: "#/$defs/GeometryRef";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "dimension.angle";
            };
            minus: {
                $ref: "#/$defs/Scalar";
            };
            nominal: {
                $ref: "#/$defs/Scalar";
            };
            plus: {
                $ref: "#/$defs/Scalar";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            to: {
                $ref: "#/$defs/GeometryRef";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly from: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "dimension.angle";
          }
          • Readonly const: "dimension.angle"
        • Readonly minus: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly nominal: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly plus: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly to: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "from", "to"]
      • Readonly type: "object"
    • Readonly DimensionDistance: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              from: {
                  $ref: "#/$defs/GeometryRef";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "dimension.distance";
              };
              minus: {
                  $ref: "#/$defs/Scalar";
              };
              nominal: {
                  $ref: "#/$defs/Scalar";
              };
              plus: {
                  $ref: "#/$defs/Scalar";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              to: {
                  $ref: "#/$defs/GeometryRef";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "from", "to"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            from: {
                $ref: "#/$defs/GeometryRef";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "dimension.distance";
            };
            minus: {
                $ref: "#/$defs/Scalar";
            };
            nominal: {
                $ref: "#/$defs/Scalar";
            };
            plus: {
                $ref: "#/$defs/Scalar";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            to: {
                $ref: "#/$defs/GeometryRef";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly from: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "dimension.distance";
          }
          • Readonly const: "dimension.distance"
        • Readonly minus: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly nominal: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly plus: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly to: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "from", "to"]
      • Readonly type: "object"
    • Readonly Draft: {
          additionalProperties: false;
          properties: {
              angle: {
                  $ref: "#/$defs/Scalar";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              faces: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.draft";
              };
              neutralPlane: {
                  $ref: "#/$defs/PlaneRef";
              };
              pullDirection: {
                  $ref: "#/$defs/AxisSpec";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "faces", "neutralPlane", "pullDirection", "angle", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            angle: {
                $ref: "#/$defs/Scalar";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            faces: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.draft";
            };
            neutralPlane: {
                $ref: "#/$defs/PlaneRef";
            };
            pullDirection: {
                $ref: "#/$defs/AxisSpec";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly angle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly faces: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.draft";
          }
          • Readonly const: "feature.draft"
        • Readonly neutralPlane: {
              $ref: "#/$defs/PlaneRef";
          }
          • Readonly $ref: "#/$defs/PlaneRef"
        • Readonly pullDirection: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "faces", "neutralPlane", "pullDirection", "angle", "result"]
      • Readonly type: "object"
    • Readonly EdgeQuery: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "selector.edge";
              };
              predicates: {
                  items: {
                      $ref: "#/$defs/Predicate";
                  };
                  type: "array";
              };
              rank: {
                  items: {
                      $ref: "#/$defs/RankRule";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "predicates", "rank"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "selector.edge";
            };
            predicates: {
                items: {
                    $ref: "#/$defs/Predicate";
                };
                type: "array";
            };
            rank: {
                items: {
                    $ref: "#/$defs/RankRule";
                };
                type: "array";
            };
        }
        • Readonly kind: {
              const: "selector.edge";
          }
          • Readonly const: "selector.edge"
        • Readonly predicates: {
              items: {
                  $ref: "#/$defs/Predicate";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Predicate";
            }
            • Readonly $ref: "#/$defs/Predicate"
          • Readonly type: "array"
        • Readonly rank: {
              items: {
                  $ref: "#/$defs/RankRule";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/RankRule";
            }
            • Readonly $ref: "#/$defs/RankRule"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "predicates", "rank"]
      • Readonly type: "object"
    • Readonly Expr: {
          anyOf: readonly [{
              $ref: "#/$defs/ExprLiteral";
          }, {
              $ref: "#/$defs/ExprParam";
          }, {
              $ref: "#/$defs/ExprBinary";
          }, {
              $ref: "#/$defs/ExprNeg";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/ExprLiteral";
        }, {
            $ref: "#/$defs/ExprParam";
        }, {
            $ref: "#/$defs/ExprBinary";
        }, {
            $ref: "#/$defs/ExprNeg";
        }]
    • Readonly ExprBinary: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "expr.binary";
              };
              left: {
                  $ref: "#/$defs/Expr";
              };
              op: {
                  enum: readonly ["+", "-", "*", "/"];
              };
              right: {
                  $ref: "#/$defs/Expr";
              };
          };
          required: readonly ["kind", "op", "left", "right"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "expr.binary";
            };
            left: {
                $ref: "#/$defs/Expr";
            };
            op: {
                enum: readonly ["+", "-", "*", "/"];
            };
            right: {
                $ref: "#/$defs/Expr";
            };
        }
        • Readonly kind: {
              const: "expr.binary";
          }
          • Readonly const: "expr.binary"
        • Readonly left: {
              $ref: "#/$defs/Expr";
          }
          • Readonly $ref: "#/$defs/Expr"
        • Readonly op: {
              enum: readonly ["+", "-", "*", "/"];
          }
          • Readonly enum: readonly ["+", "-", "*", "/"]
        • Readonly right: {
              $ref: "#/$defs/Expr";
          }
          • Readonly $ref: "#/$defs/Expr"
      • Readonly required: readonly ["kind", "op", "left", "right"]
      • Readonly type: "object"
    • Readonly ExprLiteral: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "expr.literal";
              };
              unit: {
                  $ref: "#/$defs/Unit";
              };
              value: {
                  type: "number";
              };
          };
          required: readonly ["kind", "value"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "expr.literal";
            };
            unit: {
                $ref: "#/$defs/Unit";
            };
            value: {
                type: "number";
            };
        }
        • Readonly kind: {
              const: "expr.literal";
          }
          • Readonly const: "expr.literal"
        • Readonly unit: {
              $ref: "#/$defs/Unit";
          }
          • Readonly $ref: "#/$defs/Unit"
        • Readonly value: {
              type: "number";
          }
          • Readonly type: "number"
      • Readonly required: readonly ["kind", "value"]
      • Readonly type: "object"
    • Readonly ExprNeg: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "expr.neg";
              };
              value: {
                  $ref: "#/$defs/Expr";
              };
          };
          required: readonly ["kind", "value"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "expr.neg";
            };
            value: {
                $ref: "#/$defs/Expr";
            };
        }
        • Readonly kind: {
              const: "expr.neg";
          }
          • Readonly const: "expr.neg"
        • Readonly value: {
              $ref: "#/$defs/Expr";
          }
          • Readonly $ref: "#/$defs/Expr"
      • Readonly required: readonly ["kind", "value"]
      • Readonly type: "object"
    • Readonly ExprParam: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "expr.param";
              };
          };
          required: readonly ["kind", "id"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "expr.param";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "expr.param";
          }
          • Readonly const: "expr.param"
      • Readonly required: readonly ["kind", "id"]
      • Readonly type: "object"
    • Readonly ExtendSurface: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              distance: {
                  $ref: "#/$defs/Scalar";
              };
              edges: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.extend.surface";
              };
              mode: {
                  $ref: "#/$defs/ExtendSurfaceMode";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "edges", "distance", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            distance: {
                $ref: "#/$defs/Scalar";
            };
            edges: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.extend.surface";
            };
            mode: {
                $ref: "#/$defs/ExtendSurfaceMode";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly distance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly edges: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.extend.surface";
          }
          • Readonly const: "feature.extend.surface"
        • Readonly mode: {
              $ref: "#/$defs/ExtendSurfaceMode";
          }
          • Readonly $ref: "#/$defs/ExtendSurfaceMode"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "edges", "distance", "result"]
      • Readonly type: "object"
    • Readonly ExtendSurfaceMode: {
          enum: readonly ["natural", "tangent"];
      }
      • Readonly enum: readonly ["natural", "tangent"]
    • Readonly Extrude: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/ExtrudeAxis";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              depth: {
                  anyOf: readonly [{
                      $ref: "#/$defs/Scalar";
                  }, {
                      const: "throughAll";
                  }];
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.extrude";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              profile: {
                  $ref: "#/$defs/ProfileRef";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profile", "depth", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/ExtrudeAxis";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            depth: {
                anyOf: readonly [{
                    $ref: "#/$defs/Scalar";
                }, {
                    const: "throughAll";
                }];
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.extrude";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            profile: {
                $ref: "#/$defs/ProfileRef";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/ExtrudeAxis";
          }
          • Readonly $ref: "#/$defs/ExtrudeAxis"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly depth: {
              anyOf: readonly [{
                  $ref: "#/$defs/Scalar";
              }, {
                  const: "throughAll";
              }];
          }
          • Readonly anyOf: readonly [{
                $ref: "#/$defs/Scalar";
            }, {
                const: "throughAll";
            }]
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.extrude";
          }
          • Readonly const: "feature.extrude"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly profile: {
              $ref: "#/$defs/ProfileRef";
          }
          • Readonly $ref: "#/$defs/ProfileRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profile", "depth", "result"]
      • Readonly type: "object"
    • Readonly ExtrudeAxis: {
          anyOf: readonly [{
              $ref: "#/$defs/AxisSpec";
          }, {
              additionalProperties: false;
              properties: {
                  kind: {
                      const: "axis.sketch.normal";
                  };
              };
              required: readonly ["kind"];
              type: "object";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/AxisSpec";
        }, {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "axis.sketch.normal";
                };
            };
            required: readonly ["kind"];
            type: "object";
        }]
    • Readonly ExtrudeMode: {
          enum: readonly ["solid", "surface"];
      }
      • Readonly enum: readonly ["solid", "surface"]
    • Readonly FTIConstraint: {
          anyOf: readonly [{
              $ref: "#/$defs/SurfaceProfileConstraint";
          }, {
              $ref: "#/$defs/FlatnessConstraint";
          }, {
              $ref: "#/$defs/ParallelismConstraint";
          }, {
              $ref: "#/$defs/PerpendicularityConstraint";
          }, {
              $ref: "#/$defs/PositionConstraint";
          }, {
              $ref: "#/$defs/SizeConstraint";
          }, {
              $ref: "#/$defs/DimensionDistance";
          }, {
              $ref: "#/$defs/DimensionAngle";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/SurfaceProfileConstraint";
        }, {
            $ref: "#/$defs/FlatnessConstraint";
        }, {
            $ref: "#/$defs/ParallelismConstraint";
        }, {
            $ref: "#/$defs/PerpendicularityConstraint";
        }, {
            $ref: "#/$defs/PositionConstraint";
        }, {
            $ref: "#/$defs/SizeConstraint";
        }, {
            $ref: "#/$defs/DimensionDistance";
        }, {
            $ref: "#/$defs/DimensionAngle";
        }]
    • Readonly FTIDatum: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "datum.feature";
              };
              label: {
                  type: "string";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/DatumModifier";
                  };
                  type: "array";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/GeometryRef";
              };
          };
          required: readonly ["id", "kind", "label", "target"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "datum.feature";
            };
            label: {
                type: "string";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/DatumModifier";
                };
                type: "array";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/GeometryRef";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "datum.feature";
          }
          • Readonly const: "datum.feature"
        • Readonly label: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/DatumModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/DatumModifier";
            }
            • Readonly $ref: "#/$defs/DatumModifier"
          • Readonly type: "array"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
      • Readonly required: readonly ["id", "kind", "label", "target"]
      • Readonly type: "object"
    • Readonly FaceQuery: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "selector.face";
              };
              predicates: {
                  items: {
                      $ref: "#/$defs/Predicate";
                  };
                  type: "array";
              };
              rank: {
                  items: {
                      $ref: "#/$defs/RankRule";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "predicates", "rank"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "selector.face";
            };
            predicates: {
                items: {
                    $ref: "#/$defs/Predicate";
                };
                type: "array";
            };
            rank: {
                items: {
                    $ref: "#/$defs/RankRule";
                };
                type: "array";
            };
        }
        • Readonly kind: {
              const: "selector.face";
          }
          • Readonly const: "selector.face"
        • Readonly predicates: {
              items: {
                  $ref: "#/$defs/Predicate";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Predicate";
            }
            • Readonly $ref: "#/$defs/Predicate"
          • Readonly type: "array"
        • Readonly rank: {
              items: {
                  $ref: "#/$defs/RankRule";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/RankRule";
            }
            • Readonly $ref: "#/$defs/RankRule"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "predicates", "rank"]
      • Readonly type: "object"
    • Readonly Fillet: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              edges: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.fillet";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "edges", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            edges: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.fillet";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly edges: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.fillet";
          }
          • Readonly const: "feature.fillet"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "edges", "radius"]
      • Readonly type: "object"
    • Readonly FlatnessConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.flatness";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/RefSurface";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "target", "tolerance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.flatness";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/RefSurface";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.flatness";
          }
          • Readonly const: "constraint.flatness"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/RefSurface";
          }
          • Readonly $ref: "#/$defs/RefSurface"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "target", "tolerance"]
      • Readonly type: "object"
    • Readonly GeometryRef: {
          anyOf: readonly [{
              $ref: "#/$defs/RefSurface";
          }, {
              $ref: "#/$defs/RefFrame";
          }, {
              $ref: "#/$defs/RefEdge";
          }, {
              $ref: "#/$defs/RefAxis";
          }, {
              $ref: "#/$defs/RefPoint";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/RefSurface";
        }, {
            $ref: "#/$defs/RefFrame";
        }, {
            $ref: "#/$defs/RefEdge";
        }, {
            $ref: "#/$defs/RefAxis";
        }, {
            $ref: "#/$defs/RefPoint";
        }]
    • Readonly Graph: {
          additionalProperties: false;
          properties: {
              edges: {
                  items: {
                      additionalProperties: false;
                      properties: {
                          from: {
                              $ref: "#/$defs/ID";
                          };
                          to: {
                              $ref: "#/$defs/ID";
                          };
                      };
                      required: readonly ["from", "to"];
                      type: "object";
                  };
                  type: "array";
              };
              nodes: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
          };
          required: readonly ["nodes", "edges"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            edges: {
                items: {
                    additionalProperties: false;
                    properties: {
                        from: {
                            $ref: "#/$defs/ID";
                        };
                        to: {
                            $ref: "#/$defs/ID";
                        };
                    };
                    required: readonly ["from", "to"];
                    type: "object";
                };
                type: "array";
            };
            nodes: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
        }
        • Readonly edges: {
              items: {
                  additionalProperties: false;
                  properties: {
                      from: {
                          $ref: "#/$defs/ID";
                      };
                      to: {
                          $ref: "#/$defs/ID";
                      };
                  };
                  required: readonly ["from", "to"];
                  type: "object";
              };
              type: "array";
          }
          • Readonly items: {
                additionalProperties: false;
                properties: {
                    from: {
                        $ref: "#/$defs/ID";
                    };
                    to: {
                        $ref: "#/$defs/ID";
                    };
                };
                required: readonly ["from", "to"];
                type: "object";
            }
            • Readonly additionalProperties: false
            • Readonly properties: {
                  from: {
                      $ref: "#/$defs/ID";
                  };
                  to: {
                      $ref: "#/$defs/ID";
                  };
              }
              • Readonly from: {
                    $ref: "#/$defs/ID";
                }
                • Readonly $ref: "#/$defs/ID"
              • Readonly to: {
                    $ref: "#/$defs/ID";
                }
                • Readonly $ref: "#/$defs/ID"
            • Readonly required: readonly ["from", "to"]
            • Readonly type: "object"
          • Readonly type: "array"
        • Readonly nodes: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
      • Readonly required: readonly ["nodes", "edges"]
      • Readonly type: "object"
    • Readonly HexTubeSweep: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              innerAcrossFlats: {
                  $ref: "#/$defs/Scalar";
              };
              kind: {
                  const: "feature.hexTubeSweep";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              outerAcrossFlats: {
                  $ref: "#/$defs/Scalar";
              };
              path: {
                  $ref: "#/$defs/Path3D";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "path", "outerAcrossFlats", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            innerAcrossFlats: {
                $ref: "#/$defs/Scalar";
            };
            kind: {
                const: "feature.hexTubeSweep";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            outerAcrossFlats: {
                $ref: "#/$defs/Scalar";
            };
            path: {
                $ref: "#/$defs/Path3D";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly innerAcrossFlats: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly kind: {
              const: "feature.hexTubeSweep";
          }
          • Readonly const: "feature.hexTubeSweep"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly outerAcrossFlats: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly path: {
              $ref: "#/$defs/Path3D";
          }
          • Readonly $ref: "#/$defs/Path3D"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "path", "outerAcrossFlats", "result"]
      • Readonly type: "object"
    • Readonly Hole: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/AxisDirection";
              };
              counterbore: {
                  $ref: "#/$defs/HoleCounterbore";
              };
              countersink: {
                  $ref: "#/$defs/HoleCountersink";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              depth: {
                  anyOf: readonly [{
                      $ref: "#/$defs/Scalar";
                  }, {
                      const: "throughAll";
                  }];
              };
              diameter: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.hole";
              };
              onFace: {
                  $ref: "#/$defs/Selector";
              };
              pattern: {
                  $ref: "#/$defs/PatternRef";
              };
              position: {
                  $ref: "#/$defs/Point2D";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              wizard: {
                  $ref: "#/$defs/HoleWizard";
              };
          };
          required: readonly ["id", "kind", "onFace", "axis", "diameter", "depth"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/AxisDirection";
            };
            counterbore: {
                $ref: "#/$defs/HoleCounterbore";
            };
            countersink: {
                $ref: "#/$defs/HoleCountersink";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            depth: {
                anyOf: readonly [{
                    $ref: "#/$defs/Scalar";
                }, {
                    const: "throughAll";
                }];
            };
            diameter: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.hole";
            };
            onFace: {
                $ref: "#/$defs/Selector";
            };
            pattern: {
                $ref: "#/$defs/PatternRef";
            };
            position: {
                $ref: "#/$defs/Point2D";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            wizard: {
                $ref: "#/$defs/HoleWizard";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
        • Readonly counterbore: {
              $ref: "#/$defs/HoleCounterbore";
          }
          • Readonly $ref: "#/$defs/HoleCounterbore"
        • Readonly countersink: {
              $ref: "#/$defs/HoleCountersink";
          }
          • Readonly $ref: "#/$defs/HoleCountersink"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly depth: {
              anyOf: readonly [{
                  $ref: "#/$defs/Scalar";
              }, {
                  const: "throughAll";
              }];
          }
          • Readonly anyOf: readonly [{
                $ref: "#/$defs/Scalar";
            }, {
                const: "throughAll";
            }]
        • Readonly diameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.hole";
          }
          • Readonly const: "feature.hole"
        • Readonly onFace: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly pattern: {
              $ref: "#/$defs/PatternRef";
          }
          • Readonly $ref: "#/$defs/PatternRef"
        • Readonly position: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly wizard: {
              $ref: "#/$defs/HoleWizard";
          }
          • Readonly $ref: "#/$defs/HoleWizard"
      • Readonly required: readonly ["id", "kind", "onFace", "axis", "diameter", "depth"]
      • Readonly type: "object"
    • Readonly HoleCounterbore: {
          additionalProperties: false;
          properties: {
              depth: {
                  $ref: "#/$defs/Scalar";
              };
              diameter: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["diameter", "depth"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            depth: {
                $ref: "#/$defs/Scalar";
            };
            diameter: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly depth: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly diameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["diameter", "depth"]
      • Readonly type: "object"
    • Readonly HoleCountersink: {
          additionalProperties: false;
          properties: {
              angle: {
                  $ref: "#/$defs/Scalar";
              };
              diameter: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["diameter", "angle"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            angle: {
                $ref: "#/$defs/Scalar";
            };
            diameter: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly angle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly diameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["diameter", "angle"]
      • Readonly type: "object"
    • Readonly HoleEndCondition: {
          enum: readonly ["blind", "throughAll", "upToNext", "upToLast"];
      }
      • Readonly enum: readonly ["blind", "throughAll", "upToNext", "upToLast"]
    • Readonly HoleWizard: {
          additionalProperties: false;
          properties: {
              endCondition: {
                  $ref: "#/$defs/HoleEndCondition";
              };
              fitClass: {
                  type: "string";
              };
              series: {
                  type: "string";
              };
              size: {
                  type: "string";
              };
              standard: {
                  type: "string";
              };
              threadClass: {
                  type: "string";
              };
              threaded: {
                  type: "boolean";
              };
          };
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            endCondition: {
                $ref: "#/$defs/HoleEndCondition";
            };
            fitClass: {
                type: "string";
            };
            series: {
                type: "string";
            };
            size: {
                type: "string";
            };
            standard: {
                type: "string";
            };
            threadClass: {
                type: "string";
            };
            threaded: {
                type: "boolean";
            };
        }
        • Readonly endCondition: {
              $ref: "#/$defs/HoleEndCondition";
          }
          • Readonly $ref: "#/$defs/HoleEndCondition"
        • Readonly fitClass: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly series: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly size: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly standard: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly threadClass: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly threaded: {
              type: "boolean";
          }
          • Readonly type: "boolean"
      • Readonly type: "object"
    • Readonly ID: {
          minLength: 1;
          type: "string";
      }
      • Readonly minLength: 1
      • Readonly type: "string"
    • Readonly IntentAssembly: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              instances: {
                  items: {
                      $ref: "#/$defs/AssemblyInstance";
                  };
                  type: "array";
              };
              mates: {
                  items: {
                      $ref: "#/$defs/AssemblyMate";
                  };
                  type: "array";
              };
              outputs: {
                  items: {
                      $ref: "#/$defs/AssemblyOutput";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "instances"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            instances: {
                items: {
                    $ref: "#/$defs/AssemblyInstance";
                };
                type: "array";
            };
            mates: {
                items: {
                    $ref: "#/$defs/AssemblyMate";
                };
                type: "array";
            };
            outputs: {
                items: {
                    $ref: "#/$defs/AssemblyOutput";
                };
                type: "array";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly instances: {
              items: {
                  $ref: "#/$defs/AssemblyInstance";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/AssemblyInstance";
            }
            • Readonly $ref: "#/$defs/AssemblyInstance"
          • Readonly type: "array"
        • Readonly mates: {
              items: {
                  $ref: "#/$defs/AssemblyMate";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/AssemblyMate";
            }
            • Readonly $ref: "#/$defs/AssemblyMate"
          • Readonly type: "array"
        • Readonly outputs: {
              items: {
                  $ref: "#/$defs/AssemblyOutput";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/AssemblyOutput";
            }
            • Readonly $ref: "#/$defs/AssemblyOutput"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "instances"]
      • Readonly type: "object"
    • Readonly IntentFeature: {
          anyOf: readonly [{
              $ref: "#/$defs/DatumPlane";
          }, {
              $ref: "#/$defs/DatumAxis";
          }, {
              $ref: "#/$defs/DatumFrame";
          }, {
              $ref: "#/$defs/Sketch2D";
          }, {
              $ref: "#/$defs/Extrude";
          }, {
              $ref: "#/$defs/Plane";
          }, {
              $ref: "#/$defs/Surface";
          }, {
              $ref: "#/$defs/Revolve";
          }, {
              $ref: "#/$defs/Loft";
          }, {
              $ref: "#/$defs/Sweep";
          }, {
              $ref: "#/$defs/Shell";
          }, {
              $ref: "#/$defs/Pipe";
          }, {
              $ref: "#/$defs/PipeSweep";
          }, {
              $ref: "#/$defs/HexTubeSweep";
          }, {
              $ref: "#/$defs/Mirror";
          }, {
              $ref: "#/$defs/DeleteFace";
          }, {
              $ref: "#/$defs/ReplaceFace";
          }, {
              $ref: "#/$defs/MoveFace";
          }, {
              $ref: "#/$defs/MoveBody";
          }, {
              $ref: "#/$defs/SplitBody";
          }, {
              $ref: "#/$defs/SplitFace";
          }, {
              $ref: "#/$defs/TrimSurface";
          }, {
              $ref: "#/$defs/ExtendSurface";
          }, {
              $ref: "#/$defs/Knit";
          }, {
              $ref: "#/$defs/CurveIntersect";
          }, {
              $ref: "#/$defs/Draft";
          }, {
              $ref: "#/$defs/Thicken";
          }, {
              $ref: "#/$defs/Unwrap";
          }, {
              $ref: "#/$defs/Thread";
          }, {
              $ref: "#/$defs/Hole";
          }, {
              $ref: "#/$defs/Fillet";
          }, {
              $ref: "#/$defs/VariableFillet";
          }, {
              $ref: "#/$defs/Chamfer";
          }, {
              $ref: "#/$defs/VariableChamfer";
          }, {
              $ref: "#/$defs/BooleanOp";
          }, {
              $ref: "#/$defs/PatternLinear";
          }, {
              $ref: "#/$defs/PatternCircular";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/DatumPlane";
        }, {
            $ref: "#/$defs/DatumAxis";
        }, {
            $ref: "#/$defs/DatumFrame";
        }, {
            $ref: "#/$defs/Sketch2D";
        }, {
            $ref: "#/$defs/Extrude";
        }, {
            $ref: "#/$defs/Plane";
        }, {
            $ref: "#/$defs/Surface";
        }, {
            $ref: "#/$defs/Revolve";
        }, {
            $ref: "#/$defs/Loft";
        }, {
            $ref: "#/$defs/Sweep";
        }, {
            $ref: "#/$defs/Shell";
        }, {
            $ref: "#/$defs/Pipe";
        }, {
            $ref: "#/$defs/PipeSweep";
        }, {
            $ref: "#/$defs/HexTubeSweep";
        }, {
            $ref: "#/$defs/Mirror";
        }, {
            $ref: "#/$defs/DeleteFace";
        }, {
            $ref: "#/$defs/ReplaceFace";
        }, {
            $ref: "#/$defs/MoveFace";
        }, {
            $ref: "#/$defs/MoveBody";
        }, {
            $ref: "#/$defs/SplitBody";
        }, {
            $ref: "#/$defs/SplitFace";
        }, {
            $ref: "#/$defs/TrimSurface";
        }, {
            $ref: "#/$defs/ExtendSurface";
        }, {
            $ref: "#/$defs/Knit";
        }, {
            $ref: "#/$defs/CurveIntersect";
        }, {
            $ref: "#/$defs/Draft";
        }, {
            $ref: "#/$defs/Thicken";
        }, {
            $ref: "#/$defs/Unwrap";
        }, {
            $ref: "#/$defs/Thread";
        }, {
            $ref: "#/$defs/Hole";
        }, {
            $ref: "#/$defs/Fillet";
        }, {
            $ref: "#/$defs/VariableFillet";
        }, {
            $ref: "#/$defs/Chamfer";
        }, {
            $ref: "#/$defs/VariableChamfer";
        }, {
            $ref: "#/$defs/BooleanOp";
        }, {
            $ref: "#/$defs/PatternLinear";
        }, {
            $ref: "#/$defs/PatternCircular";
        }]
    • Readonly IntentPart: {
          additionalProperties: false;
          properties: {
              assertions: {
                  items: {
                      $ref: "#/$defs/Assertion";
                  };
                  type: "array";
              };
              connectors: {
                  items: {
                      $ref: "#/$defs/MateConnector";
                  };
                  type: "array";
              };
              constraints: {
                  items: {
                      $ref: "#/$defs/FTIConstraint";
                  };
                  type: "array";
              };
              cosmeticThreads: {
                  items: {
                      $ref: "#/$defs/CosmeticThread";
                  };
                  type: "array";
              };
              datums: {
                  items: {
                      $ref: "#/$defs/FTIDatum";
                  };
                  type: "array";
              };
              features: {
                  items: {
                      $ref: "#/$defs/IntentFeature";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              params: {
                  items: {
                      $ref: "#/$defs/ParamDef";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "features"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            assertions: {
                items: {
                    $ref: "#/$defs/Assertion";
                };
                type: "array";
            };
            connectors: {
                items: {
                    $ref: "#/$defs/MateConnector";
                };
                type: "array";
            };
            constraints: {
                items: {
                    $ref: "#/$defs/FTIConstraint";
                };
                type: "array";
            };
            cosmeticThreads: {
                items: {
                    $ref: "#/$defs/CosmeticThread";
                };
                type: "array";
            };
            datums: {
                items: {
                    $ref: "#/$defs/FTIDatum";
                };
                type: "array";
            };
            features: {
                items: {
                    $ref: "#/$defs/IntentFeature";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            params: {
                items: {
                    $ref: "#/$defs/ParamDef";
                };
                type: "array";
            };
        }
        • Readonly assertions: {
              items: {
                  $ref: "#/$defs/Assertion";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Assertion";
            }
            • Readonly $ref: "#/$defs/Assertion"
          • Readonly type: "array"
        • Readonly connectors: {
              items: {
                  $ref: "#/$defs/MateConnector";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/MateConnector";
            }
            • Readonly $ref: "#/$defs/MateConnector"
          • Readonly type: "array"
        • Readonly constraints: {
              items: {
                  $ref: "#/$defs/FTIConstraint";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/FTIConstraint";
            }
            • Readonly $ref: "#/$defs/FTIConstraint"
          • Readonly type: "array"
        • Readonly cosmeticThreads: {
              items: {
                  $ref: "#/$defs/CosmeticThread";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/CosmeticThread";
            }
            • Readonly $ref: "#/$defs/CosmeticThread"
          • Readonly type: "array"
        • Readonly datums: {
              items: {
                  $ref: "#/$defs/FTIDatum";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/FTIDatum";
            }
            • Readonly $ref: "#/$defs/FTIDatum"
          • Readonly type: "array"
        • Readonly features: {
              items: {
                  $ref: "#/$defs/IntentFeature";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/IntentFeature";
            }
            • Readonly $ref: "#/$defs/IntentFeature"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly params: {
              items: {
                  $ref: "#/$defs/ParamDef";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ParamDef";
            }
            • Readonly $ref: "#/$defs/ParamDef"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "features"]
      • Readonly type: "object"
    • Readonly Knit: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.knit";
              };
              makeSolid: {
                  type: "boolean";
              };
              result: {
                  type: "string";
              };
              sources: {
                  items: {
                      $ref: "#/$defs/Selector";
                  };
                  minItems: 1;
                  type: "array";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "sources", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.knit";
            };
            makeSolid: {
                type: "boolean";
            };
            result: {
                type: "string";
            };
            sources: {
                items: {
                    $ref: "#/$defs/Selector";
                };
                minItems: 1;
                type: "array";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.knit";
          }
          • Readonly const: "feature.knit"
        • Readonly makeSolid: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly sources: {
              items: {
                  $ref: "#/$defs/Selector";
              };
              minItems: 1;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Selector";
            }
            • Readonly $ref: "#/$defs/Selector"
          • Readonly minItems: 1
          • Readonly type: "array"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "sources", "result"]
      • Readonly type: "object"
    • Readonly LengthUnit: {
          enum: readonly ["mm", "cm", "m", "in"];
      }
      • Readonly enum: readonly ["mm", "cm", "m", "in"]
    • Readonly Loft: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.loft";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              profiles: {
                  items: {
                      $ref: "#/$defs/ProfileRef";
                  };
                  minItems: 2;
                  type: "array";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profiles", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.loft";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            profiles: {
                items: {
                    $ref: "#/$defs/ProfileRef";
                };
                minItems: 2;
                type: "array";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.loft";
          }
          • Readonly const: "feature.loft"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly profiles: {
              items: {
                  $ref: "#/$defs/ProfileRef";
              };
              minItems: 2;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ProfileRef";
            }
            • Readonly $ref: "#/$defs/ProfileRef"
          • Readonly minItems: 2
          • Readonly type: "array"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profiles", "result"]
      • Readonly type: "object"
    • Readonly MateConnector: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              normal: {
                  $ref: "#/$defs/AxisDirection";
              };
              origin: {
                  $ref: "#/$defs/Selector";
              };
              xAxis: {
                  $ref: "#/$defs/AxisDirection";
              };
          };
          required: readonly ["id", "origin"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            normal: {
                $ref: "#/$defs/AxisDirection";
            };
            origin: {
                $ref: "#/$defs/Selector";
            };
            xAxis: {
                $ref: "#/$defs/AxisDirection";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly normal: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
        • Readonly origin: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly xAxis: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
      • Readonly required: readonly ["id", "origin"]
      • Readonly type: "object"
    • Readonly Mirror: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.mirror";
              };
              plane: {
                  $ref: "#/$defs/PlaneRef";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "plane", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.mirror";
            };
            plane: {
                $ref: "#/$defs/PlaneRef";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.mirror";
          }
          • Readonly const: "feature.mirror"
        • Readonly plane: {
              $ref: "#/$defs/PlaneRef";
          }
          • Readonly $ref: "#/$defs/PlaneRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "plane", "result"]
      • Readonly type: "object"
    • Readonly MoveBody: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.move.body";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              result: {
                  type: "string";
              };
              rotationAngle: {
                  $ref: "#/$defs/Scalar";
              };
              rotationAxis: {
                  $ref: "#/$defs/AxisSpec";
              };
              scale: {
                  $ref: "#/$defs/Scalar";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              translation: {
                  $ref: "#/$defs/Point3D";
              };
          };
          required: readonly ["id", "kind", "source", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.move.body";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            result: {
                type: "string";
            };
            rotationAngle: {
                $ref: "#/$defs/Scalar";
            };
            rotationAxis: {
                $ref: "#/$defs/AxisSpec";
            };
            scale: {
                $ref: "#/$defs/Scalar";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            translation: {
                $ref: "#/$defs/Point3D";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.move.body";
          }
          • Readonly const: "feature.move.body"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly rotationAngle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotationAxis: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly scale: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly translation: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
      • Readonly required: readonly ["id", "kind", "source", "result"]
      • Readonly type: "object"
    • Readonly MoveFace: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              faces: {
                  $ref: "#/$defs/Selector";
              };
              heal: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.move.face";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              result: {
                  type: "string";
              };
              rotationAngle: {
                  $ref: "#/$defs/Scalar";
              };
              rotationAxis: {
                  $ref: "#/$defs/AxisSpec";
              };
              scale: {
                  $ref: "#/$defs/Scalar";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              translation: {
                  $ref: "#/$defs/Point3D";
              };
          };
          required: readonly ["id", "kind", "source", "faces", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            faces: {
                $ref: "#/$defs/Selector";
            };
            heal: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.move.face";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            result: {
                type: "string";
            };
            rotationAngle: {
                $ref: "#/$defs/Scalar";
            };
            rotationAxis: {
                $ref: "#/$defs/AxisSpec";
            };
            scale: {
                $ref: "#/$defs/Scalar";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            translation: {
                $ref: "#/$defs/Point3D";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly faces: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly heal: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.move.face";
          }
          • Readonly const: "feature.move.face"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly rotationAngle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotationAxis: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly scale: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly translation: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
      • Readonly required: readonly ["id", "kind", "source", "faces", "result"]
      • Readonly type: "object"
    • Readonly NamedOutput: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "selector.named";
              };
              name: {
                  type: "string";
              };
          };
          required: readonly ["kind", "name"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "selector.named";
            };
            name: {
                type: "string";
            };
        }
        • Readonly kind: {
              const: "selector.named";
          }
          • Readonly const: "selector.named"
        • Readonly name: {
              type: "string";
          }
          • Readonly type: "string"
      • Readonly required: readonly ["kind", "name"]
      • Readonly type: "object"
    • Readonly ParallelismConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              datum: {
                  items: {
                      $ref: "#/$defs/DatumRef";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.parallelism";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/ToleranceModifier";
                  };
                  type: "array";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/RefSurface";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "target", "tolerance", "datum"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            datum: {
                items: {
                    $ref: "#/$defs/DatumRef";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.parallelism";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/ToleranceModifier";
                };
                type: "array";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/RefSurface";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly datum: {
              items: {
                  $ref: "#/$defs/DatumRef";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/DatumRef";
            }
            • Readonly $ref: "#/$defs/DatumRef"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.parallelism";
          }
          • Readonly const: "constraint.parallelism"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/ToleranceModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ToleranceModifier";
            }
            • Readonly $ref: "#/$defs/ToleranceModifier"
          • Readonly type: "array"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/RefSurface";
          }
          • Readonly $ref: "#/$defs/RefSurface"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "target", "tolerance", "datum"]
      • Readonly type: "object"
    • Readonly ParamDef: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              type: {
                  $ref: "#/$defs/ParamType";
              };
              value: {
                  $ref: "#/$defs/Expr";
              };
          };
          required: readonly ["id", "type", "value"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            type: {
                $ref: "#/$defs/ParamType";
            };
            value: {
                $ref: "#/$defs/Expr";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly type: {
              $ref: "#/$defs/ParamType";
          }
          • Readonly $ref: "#/$defs/ParamType"
        • Readonly value: {
              $ref: "#/$defs/Expr";
          }
          • Readonly $ref: "#/$defs/Expr"
      • Readonly required: readonly ["id", "type", "value"]
      • Readonly type: "object"
    • Readonly ParamType: {
          enum: readonly ["length", "angle", "count"];
      }
      • Readonly enum: readonly ["length", "angle", "count"]
    • Readonly Path3D: {
          anyOf: readonly [{
              $ref: "#/$defs/Path3DPolyline";
          }, {
              $ref: "#/$defs/Path3DSpline";
          }, {
              $ref: "#/$defs/Path3DHelix";
          }, {
              $ref: "#/$defs/Path3DSpiral";
          }, {
              $ref: "#/$defs/Path3DSegments";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/Path3DPolyline";
        }, {
            $ref: "#/$defs/Path3DSpline";
        }, {
            $ref: "#/$defs/Path3DHelix";
        }, {
            $ref: "#/$defs/Path3DSpiral";
        }, {
            $ref: "#/$defs/Path3DSegments";
        }]
    • Readonly Path3DHelix: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/Point3D";
              };
              handedness: {
                  $ref: "#/$defs/ThreadHandedness";
              };
              kind: {
                  const: "path.helix";
              };
              length: {
                  $ref: "#/$defs/Scalar";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              pitch: {
                  $ref: "#/$defs/Scalar";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
              segmentsPerTurn: {
                  $ref: "#/$defs/Scalar";
              };
              startAngle: {
                  $ref: "#/$defs/Scalar";
              };
              turns: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["kind", "origin", "axis", "radius", "pitch"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/Point3D";
            };
            handedness: {
                $ref: "#/$defs/ThreadHandedness";
            };
            kind: {
                const: "path.helix";
            };
            length: {
                $ref: "#/$defs/Scalar";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            pitch: {
                $ref: "#/$defs/Scalar";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
            segmentsPerTurn: {
                $ref: "#/$defs/Scalar";
            };
            startAngle: {
                $ref: "#/$defs/Scalar";
            };
            turns: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly handedness: {
              $ref: "#/$defs/ThreadHandedness";
          }
          • Readonly $ref: "#/$defs/ThreadHandedness"
        • Readonly kind: {
              const: "path.helix";
          }
          • Readonly const: "path.helix"
        • Readonly length: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly pitch: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly segmentsPerTurn: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly startAngle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly turns: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["kind", "origin", "axis", "radius", "pitch"]
      • Readonly type: "object"
    • Readonly Path3DPolyline: {
          additionalProperties: false;
          properties: {
              closed: {
                  type: "boolean";
              };
              kind: {
                  const: "path.polyline";
              };
              points: {
                  items: {
                      $ref: "#/$defs/Point3D";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "points"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            closed: {
                type: "boolean";
            };
            kind: {
                const: "path.polyline";
            };
            points: {
                items: {
                    $ref: "#/$defs/Point3D";
                };
                type: "array";
            };
        }
        • Readonly closed: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly kind: {
              const: "path.polyline";
          }
          • Readonly const: "path.polyline"
        • Readonly points: {
              items: {
                  $ref: "#/$defs/Point3D";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Point3D";
            }
            • Readonly $ref: "#/$defs/Point3D"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "points"]
      • Readonly type: "object"
    • Readonly Path3DSegments: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "path.segments";
              };
              segments: {
                  items: {
                      $ref: "#/$defs/PathSegment";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "segments"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "path.segments";
            };
            segments: {
                items: {
                    $ref: "#/$defs/PathSegment";
                };
                type: "array";
            };
        }
        • Readonly kind: {
              const: "path.segments";
          }
          • Readonly const: "path.segments"
        • Readonly segments: {
              items: {
                  $ref: "#/$defs/PathSegment";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/PathSegment";
            }
            • Readonly $ref: "#/$defs/PathSegment"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "segments"]
      • Readonly type: "object"
    • Readonly Path3DSpiral: {
          additionalProperties: false;
          properties: {
              endRadius: {
                  $ref: "#/$defs/Scalar";
              };
              handedness: {
                  $ref: "#/$defs/ThreadHandedness";
              };
              kind: {
                  const: "path.spiral";
              };
              normal: {
                  $ref: "#/$defs/Point3D";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              segmentsPerTurn: {
                  $ref: "#/$defs/Scalar";
              };
              startAngle: {
                  $ref: "#/$defs/Scalar";
              };
              startRadius: {
                  $ref: "#/$defs/Scalar";
              };
              turns: {
                  $ref: "#/$defs/Scalar";
              };
              xDir: {
                  $ref: "#/$defs/Point3D";
              };
          };
          required: readonly ["kind", "origin", "startRadius", "endRadius", "turns"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            endRadius: {
                $ref: "#/$defs/Scalar";
            };
            handedness: {
                $ref: "#/$defs/ThreadHandedness";
            };
            kind: {
                const: "path.spiral";
            };
            normal: {
                $ref: "#/$defs/Point3D";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            segmentsPerTurn: {
                $ref: "#/$defs/Scalar";
            };
            startAngle: {
                $ref: "#/$defs/Scalar";
            };
            startRadius: {
                $ref: "#/$defs/Scalar";
            };
            turns: {
                $ref: "#/$defs/Scalar";
            };
            xDir: {
                $ref: "#/$defs/Point3D";
            };
        }
        • Readonly endRadius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly handedness: {
              $ref: "#/$defs/ThreadHandedness";
          }
          • Readonly $ref: "#/$defs/ThreadHandedness"
        • Readonly kind: {
              const: "path.spiral";
          }
          • Readonly const: "path.spiral"
        • Readonly normal: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly segmentsPerTurn: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly startAngle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly startRadius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly turns: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly xDir: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
      • Readonly required: readonly ["kind", "origin", "startRadius", "endRadius", "turns"]
      • Readonly type: "object"
    • Readonly Path3DSpline: {
          additionalProperties: false;
          properties: {
              closed: {
                  type: "boolean";
              };
              degree: {
                  $ref: "#/$defs/Scalar";
              };
              kind: {
                  const: "path.spline";
              };
              points: {
                  items: {
                      $ref: "#/$defs/Point3D";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "points"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            closed: {
                type: "boolean";
            };
            degree: {
                $ref: "#/$defs/Scalar";
            };
            kind: {
                const: "path.spline";
            };
            points: {
                items: {
                    $ref: "#/$defs/Point3D";
                };
                type: "array";
            };
        }
        • Readonly closed: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly degree: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly kind: {
              const: "path.spline";
          }
          • Readonly const: "path.spline"
        • Readonly points: {
              items: {
                  $ref: "#/$defs/Point3D";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Point3D";
            }
            • Readonly $ref: "#/$defs/Point3D"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "points"]
      • Readonly type: "object"
    • Readonly PathSegment: {
          anyOf: readonly [{
              $ref: "#/$defs/PathSegmentLine";
          }, {
              $ref: "#/$defs/PathSegmentArc";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/PathSegmentLine";
        }, {
            $ref: "#/$defs/PathSegmentArc";
        }]
    • Readonly PathSegmentArc: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point3D";
              };
              direction: {
                  enum: readonly ["cw", "ccw"];
              };
              end: {
                  $ref: "#/$defs/Point3D";
              };
              kind: {
                  const: "path.arc";
              };
              start: {
                  $ref: "#/$defs/Point3D";
              };
          };
          required: readonly ["kind", "start", "end", "center"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point3D";
            };
            direction: {
                enum: readonly ["cw", "ccw"];
            };
            end: {
                $ref: "#/$defs/Point3D";
            };
            kind: {
                const: "path.arc";
            };
            start: {
                $ref: "#/$defs/Point3D";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly direction: {
              enum: readonly ["cw", "ccw"];
          }
          • Readonly enum: readonly ["cw", "ccw"]
        • Readonly end: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly kind: {
              const: "path.arc";
          }
          • Readonly const: "path.arc"
        • Readonly start: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
      • Readonly required: readonly ["kind", "start", "end", "center"]
      • Readonly type: "object"
    • Readonly PathSegmentLine: {
          additionalProperties: false;
          properties: {
              end: {
                  $ref: "#/$defs/Point3D";
              };
              kind: {
                  const: "path.line";
              };
              start: {
                  $ref: "#/$defs/Point3D";
              };
          };
          required: readonly ["kind", "start", "end"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            end: {
                $ref: "#/$defs/Point3D";
            };
            kind: {
                const: "path.line";
            };
            start: {
                $ref: "#/$defs/Point3D";
            };
        }
        • Readonly end: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly kind: {
              const: "path.line";
          }
          • Readonly const: "path.line"
        • Readonly start: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
      • Readonly required: readonly ["kind", "start", "end"]
      • Readonly type: "object"
    • Readonly PatternCircular: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/AxisDirection";
              };
              count: {
                  $ref: "#/$defs/Scalar";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "pattern.circular";
              };
              origin: {
                  $ref: "#/$defs/Selector";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "origin", "axis", "count"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/AxisDirection";
            };
            count: {
                $ref: "#/$defs/Scalar";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "pattern.circular";
            };
            origin: {
                $ref: "#/$defs/Selector";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
        • Readonly count: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "pattern.circular";
          }
          • Readonly const: "pattern.circular"
        • Readonly origin: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "origin", "axis", "count"]
      • Readonly type: "object"
    • Readonly PatternLinear: {
          additionalProperties: false;
          properties: {
              count: {
                  items: {
                      $ref: "#/$defs/Scalar";
                  };
                  maxItems: 2;
                  minItems: 2;
                  type: "array";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "pattern.linear";
              };
              origin: {
                  $ref: "#/$defs/Selector";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              spacing: {
                  items: {
                      $ref: "#/$defs/Scalar";
                  };
                  maxItems: 2;
                  minItems: 2;
                  type: "array";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "origin", "spacing", "count"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            count: {
                items: {
                    $ref: "#/$defs/Scalar";
                };
                maxItems: 2;
                minItems: 2;
                type: "array";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "pattern.linear";
            };
            origin: {
                $ref: "#/$defs/Selector";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            spacing: {
                items: {
                    $ref: "#/$defs/Scalar";
                };
                maxItems: 2;
                minItems: 2;
                type: "array";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly count: {
              items: {
                  $ref: "#/$defs/Scalar";
              };
              maxItems: 2;
              minItems: 2;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Scalar";
            }
            • Readonly $ref: "#/$defs/Scalar"
          • Readonly maxItems: 2
          • Readonly minItems: 2
          • Readonly type: "array"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "pattern.linear";
          }
          • Readonly const: "pattern.linear"
        • Readonly origin: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly spacing: {
              items: {
                  $ref: "#/$defs/Scalar";
              };
              maxItems: 2;
              minItems: 2;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Scalar";
            }
            • Readonly $ref: "#/$defs/Scalar"
          • Readonly maxItems: 2
          • Readonly minItems: 2
          • Readonly type: "array"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "origin", "spacing", "count"]
      • Readonly type: "object"
    • Readonly PatternRef: {
          anyOf: readonly [{
              additionalProperties: false;
              properties: {
                  kind: {
                      const: "pattern.linear";
                  };
                  ref: {
                      $ref: "#/$defs/ID";
                  };
              };
              required: readonly ["kind", "ref"];
              type: "object";
          }, {
              additionalProperties: false;
              properties: {
                  kind: {
                      const: "pattern.circular";
                  };
                  ref: {
                      $ref: "#/$defs/ID";
                  };
              };
              required: readonly ["kind", "ref"];
              type: "object";
          }];
      }
      • Readonly anyOf: readonly [{
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pattern.linear";
                };
                ref: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["kind", "ref"];
            type: "object";
        }, {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "pattern.circular";
                };
                ref: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["kind", "ref"];
            type: "object";
        }]
    • Readonly PerpendicularityConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              datum: {
                  items: {
                      $ref: "#/$defs/DatumRef";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.perpendicularity";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/ToleranceModifier";
                  };
                  type: "array";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/RefSurface";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "target", "tolerance", "datum"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            datum: {
                items: {
                    $ref: "#/$defs/DatumRef";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.perpendicularity";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/ToleranceModifier";
                };
                type: "array";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/RefSurface";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly datum: {
              items: {
                  $ref: "#/$defs/DatumRef";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/DatumRef";
            }
            • Readonly $ref: "#/$defs/DatumRef"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.perpendicularity";
          }
          • Readonly const: "constraint.perpendicularity"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/ToleranceModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ToleranceModifier";
            }
            • Readonly $ref: "#/$defs/ToleranceModifier"
          • Readonly type: "array"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/RefSurface";
          }
          • Readonly $ref: "#/$defs/RefSurface"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "target", "tolerance", "datum"]
      • Readonly type: "object"
    • Readonly Pipe: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/AxisDirection";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              innerDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              kind: {
                  const: "feature.pipe";
              };
              length: {
                  $ref: "#/$defs/Scalar";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              outerDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "axis", "length", "outerDiameter", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/AxisDirection";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            innerDiameter: {
                $ref: "#/$defs/Scalar";
            };
            kind: {
                const: "feature.pipe";
            };
            length: {
                $ref: "#/$defs/Scalar";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            outerDiameter: {
                $ref: "#/$defs/Scalar";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly innerDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly kind: {
              const: "feature.pipe";
          }
          • Readonly const: "feature.pipe"
        • Readonly length: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly outerDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "axis", "length", "outerDiameter", "result"]
      • Readonly type: "object"
    • Readonly PipeSweep: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              innerDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              kind: {
                  const: "feature.pipeSweep";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              outerDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              path: {
                  $ref: "#/$defs/Path3D";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "path", "outerDiameter", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            innerDiameter: {
                $ref: "#/$defs/Scalar";
            };
            kind: {
                const: "feature.pipeSweep";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            outerDiameter: {
                $ref: "#/$defs/Scalar";
            };
            path: {
                $ref: "#/$defs/Path3D";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly innerDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly kind: {
              const: "feature.pipeSweep";
          }
          • Readonly const: "feature.pipeSweep"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly outerDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly path: {
              $ref: "#/$defs/Path3D";
          }
          • Readonly $ref: "#/$defs/Path3D"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "path", "outerDiameter", "result"]
      • Readonly type: "object"
    • Readonly Plane: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              height: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.plane";
              };
              origin: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              plane: {
                  $ref: "#/$defs/PlaneRef";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              width: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "width", "height", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            height: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.plane";
            };
            origin: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            plane: {
                $ref: "#/$defs/PlaneRef";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            width: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly height: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.plane";
          }
          • Readonly const: "feature.plane"
        • Readonly origin: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly plane: {
              $ref: "#/$defs/PlaneRef";
          }
          • Readonly $ref: "#/$defs/PlaneRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly width: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "width", "height", "result"]
      • Readonly type: "object"
    • Readonly PlaneRef: {
          anyOf: readonly [{
              $ref: "#/$defs/Selector";
          }, {
              additionalProperties: false;
              properties: {
                  kind: {
                      const: "plane.datum";
                  };
                  ref: {
                      $ref: "#/$defs/ID";
                  };
              };
              required: readonly ["kind", "ref"];
              type: "object";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/Selector";
        }, {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "plane.datum";
                };
                ref: {
                    $ref: "#/$defs/ID";
                };
            };
            required: readonly ["kind", "ref"];
            type: "object";
        }]
    • Readonly Point2D: {
          items: {
              $ref: "#/$defs/Scalar";
          };
          maxItems: 2;
          minItems: 2;
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/Scalar";
        }
        • Readonly $ref: "#/$defs/Scalar"
      • Readonly maxItems: 2
      • Readonly minItems: 2
      • Readonly type: "array"
    • Readonly Point3D: {
          items: {
              $ref: "#/$defs/Scalar";
          };
          maxItems: 3;
          minItems: 3;
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/Scalar";
        }
        • Readonly $ref: "#/$defs/Scalar"
      • Readonly maxItems: 3
      • Readonly minItems: 3
      • Readonly type: "array"
    • Readonly PointLocator: {
          enum: readonly ["center", "mid", "start", "end"];
      }
      • Readonly enum: readonly ["center", "mid", "start", "end"]
    • Readonly PositionConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              datum: {
                  items: {
                      $ref: "#/$defs/DatumRef";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.position";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/ToleranceModifier";
                  };
                  type: "array";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/GeometryRef";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
              zone: {
                  enum: readonly ["diameter", "cartesian"];
              };
          };
          required: readonly ["id", "kind", "target", "tolerance", "datum"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            datum: {
                items: {
                    $ref: "#/$defs/DatumRef";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.position";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/ToleranceModifier";
                };
                type: "array";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/GeometryRef";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
            zone: {
                enum: readonly ["diameter", "cartesian"];
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly datum: {
              items: {
                  $ref: "#/$defs/DatumRef";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/DatumRef";
            }
            • Readonly $ref: "#/$defs/DatumRef"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.position";
          }
          • Readonly const: "constraint.position"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/ToleranceModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ToleranceModifier";
            }
            • Readonly $ref: "#/$defs/ToleranceModifier"
          • Readonly type: "array"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly zone: {
              enum: readonly ["diameter", "cartesian"];
          }
          • Readonly enum: readonly ["diameter", "cartesian"]
      • Readonly required: readonly ["id", "kind", "target", "tolerance", "datum"]
      • Readonly type: "object"
    • Readonly Predicate: {
          anyOf: readonly [{
              $ref: "#/$defs/PredicateNormal";
          }, {
              $ref: "#/$defs/PredicatePlanar";
          }, {
              $ref: "#/$defs/PredicateCreatedBy";
          }, {
              $ref: "#/$defs/PredicateRole";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/PredicateNormal";
        }, {
            $ref: "#/$defs/PredicatePlanar";
        }, {
            $ref: "#/$defs/PredicateCreatedBy";
        }, {
            $ref: "#/$defs/PredicateRole";
        }]
    • Readonly PredicateCreatedBy: {
          additionalProperties: false;
          properties: {
              featureId: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "pred.createdBy";
              };
          };
          required: readonly ["kind", "featureId"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            featureId: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "pred.createdBy";
            };
        }
        • Readonly featureId: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "pred.createdBy";
          }
          • Readonly const: "pred.createdBy"
      • Readonly required: readonly ["kind", "featureId"]
      • Readonly type: "object"
    • Readonly PredicateNormal: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "pred.normal";
              };
              value: {
                  $ref: "#/$defs/AxisDirection";
              };
          };
          required: readonly ["kind", "value"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "pred.normal";
            };
            value: {
                $ref: "#/$defs/AxisDirection";
            };
        }
        • Readonly kind: {
              const: "pred.normal";
          }
          • Readonly const: "pred.normal"
        • Readonly value: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
      • Readonly required: readonly ["kind", "value"]
      • Readonly type: "object"
    • Readonly PredicatePlanar: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "pred.planar";
              };
          };
          required: readonly ["kind"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "pred.planar";
            };
        }
        • Readonly kind: {
              const: "pred.planar";
          }
          • Readonly const: "pred.planar"
      • Readonly required: readonly ["kind"]
      • Readonly type: "object"
    • Readonly PredicateRole: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "pred.role";
              };
              value: {
                  type: "string";
              };
          };
          required: readonly ["kind", "value"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "pred.role";
            };
            value: {
                type: "string";
            };
        }
        • Readonly kind: {
              const: "pred.role";
          }
          • Readonly const: "pred.role"
        • Readonly value: {
              type: "string";
          }
          • Readonly type: "string"
      • Readonly required: readonly ["kind", "value"]
      • Readonly type: "object"
    • Readonly Profile: {
          anyOf: readonly [{
              $ref: "#/$defs/ProfileRectangle";
          }, {
              $ref: "#/$defs/ProfileCircle";
          }, {
              $ref: "#/$defs/ProfilePoly";
          }, {
              $ref: "#/$defs/ProfileSketch";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/ProfileRectangle";
        }, {
            $ref: "#/$defs/ProfileCircle";
        }, {
            $ref: "#/$defs/ProfilePoly";
        }, {
            $ref: "#/$defs/ProfileSketch";
        }]
    • Readonly ProfileCircle: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point3D";
              };
              kind: {
                  const: "profile.circle";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["kind", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point3D";
            };
            kind: {
                const: "profile.circle";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly kind: {
              const: "profile.circle";
          }
          • Readonly const: "profile.circle"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["kind", "radius"]
      • Readonly type: "object"
    • Readonly ProfilePoly: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point3D";
              };
              kind: {
                  const: "profile.poly";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
              sides: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["kind", "sides", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point3D";
            };
            kind: {
                const: "profile.poly";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
            sides: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly kind: {
              const: "profile.poly";
          }
          • Readonly const: "profile.poly"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly sides: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["kind", "sides", "radius"]
      • Readonly type: "object"
    • Readonly ProfileRectangle: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point3D";
              };
              height: {
                  $ref: "#/$defs/Scalar";
              };
              kind: {
                  const: "profile.rectangle";
              };
              width: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["kind", "width", "height"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point3D";
            };
            height: {
                $ref: "#/$defs/Scalar";
            };
            kind: {
                const: "profile.rectangle";
            };
            width: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly height: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly kind: {
              const: "profile.rectangle";
          }
          • Readonly const: "profile.rectangle"
        • Readonly width: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["kind", "width", "height"]
      • Readonly type: "object"
    • Readonly ProfileRef: {
          anyOf: readonly [{
              $ref: "#/$defs/Profile";
          }, {
              additionalProperties: false;
              properties: {
                  kind: {
                      const: "profile.ref";
                  };
                  name: {
                      type: "string";
                  };
              };
              required: readonly ["kind", "name"];
              type: "object";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/Profile";
        }, {
            additionalProperties: false;
            properties: {
                kind: {
                    const: "profile.ref";
                };
                name: {
                    type: "string";
                };
            };
            required: readonly ["kind", "name"];
            type: "object";
        }]
    • Readonly ProfileSketch: {
          additionalProperties: false;
          properties: {
              holes: {
                  items: {
                      items: {
                          $ref: "#/$defs/ID";
                      };
                      type: "array";
                  };
                  type: "array";
              };
              kind: {
                  const: "profile.sketch";
              };
              loop: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              open: {
                  type: "boolean";
              };
          };
          required: readonly ["kind", "loop"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            holes: {
                items: {
                    items: {
                        $ref: "#/$defs/ID";
                    };
                    type: "array";
                };
                type: "array";
            };
            kind: {
                const: "profile.sketch";
            };
            loop: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            open: {
                type: "boolean";
            };
        }
        • Readonly holes: {
              items: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              type: "array";
          }
          • Readonly items: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            }
            • Readonly items: {
                  $ref: "#/$defs/ID";
              }
              • Readonly $ref: "#/$defs/ID"
            • Readonly type: "array"
          • Readonly type: "array"
        • Readonly kind: {
              const: "profile.sketch";
          }
          • Readonly const: "profile.sketch"
        • Readonly loop: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly open: {
              type: "boolean";
          }
          • Readonly type: "boolean"
      • Readonly required: readonly ["kind", "loop"]
      • Readonly type: "object"
    • Readonly RankClosestTo: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "rank.closestTo";
              };
              target: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "target"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "rank.closestTo";
            };
            target: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "rank.closestTo";
          }
          • Readonly const: "rank.closestTo"
        • Readonly target: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "target"]
      • Readonly type: "object"
    • Readonly RankMaxArea: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "rank.maxArea";
              };
          };
          required: readonly ["kind"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "rank.maxArea";
            };
        }
        • Readonly kind: {
              const: "rank.maxArea";
          }
          • Readonly const: "rank.maxArea"
      • Readonly required: readonly ["kind"]
      • Readonly type: "object"
    • Readonly RankMaxZ: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "rank.maxZ";
              };
          };
          required: readonly ["kind"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "rank.maxZ";
            };
        }
        • Readonly kind: {
              const: "rank.maxZ";
          }
          • Readonly const: "rank.maxZ"
      • Readonly required: readonly ["kind"]
      • Readonly type: "object"
    • Readonly RankMinZ: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "rank.minZ";
              };
          };
          required: readonly ["kind"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "rank.minZ";
            };
        }
        • Readonly kind: {
              const: "rank.minZ";
          }
          • Readonly const: "rank.minZ"
      • Readonly required: readonly ["kind"]
      • Readonly type: "object"
    • Readonly RankRule: {
          anyOf: readonly [{
              $ref: "#/$defs/RankMaxArea";
          }, {
              $ref: "#/$defs/RankMinZ";
          }, {
              $ref: "#/$defs/RankMaxZ";
          }, {
              $ref: "#/$defs/RankClosestTo";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/RankMaxArea";
        }, {
            $ref: "#/$defs/RankMinZ";
        }, {
            $ref: "#/$defs/RankMaxZ";
        }, {
            $ref: "#/$defs/RankClosestTo";
        }]
    • Readonly RefAxis: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "ref.axis";
              };
              selector: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "selector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "ref.axis";
            };
            selector: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "ref.axis";
          }
          • Readonly const: "ref.axis"
        • Readonly selector: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "selector"]
      • Readonly type: "object"
    • Readonly RefEdge: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "ref.edge";
              };
              selector: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "selector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "ref.edge";
            };
            selector: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "ref.edge";
          }
          • Readonly const: "ref.edge"
        • Readonly selector: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "selector"]
      • Readonly type: "object"
    • Readonly RefFrame: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "ref.frame";
              };
              selector: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "selector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "ref.frame";
            };
            selector: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "ref.frame";
          }
          • Readonly const: "ref.frame"
        • Readonly selector: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "selector"]
      • Readonly type: "object"
    • Readonly RefPoint: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "ref.point";
              };
              locator: {
                  $ref: "#/$defs/PointLocator";
              };
              selector: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "selector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "ref.point";
            };
            locator: {
                $ref: "#/$defs/PointLocator";
            };
            selector: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "ref.point";
          }
          • Readonly const: "ref.point"
        • Readonly locator: {
              $ref: "#/$defs/PointLocator";
          }
          • Readonly $ref: "#/$defs/PointLocator"
        • Readonly selector: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "selector"]
      • Readonly type: "object"
    • Readonly RefSurface: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "ref.surface";
              };
              selector: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["kind", "selector"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "ref.surface";
            };
            selector: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly kind: {
              const: "ref.surface";
          }
          • Readonly const: "ref.surface"
        • Readonly selector: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["kind", "selector"]
      • Readonly type: "object"
    • Readonly ReplaceFace: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              faces: {
                  $ref: "#/$defs/Selector";
              };
              heal: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.replace.face";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              tool: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["id", "kind", "source", "faces", "tool", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            faces: {
                $ref: "#/$defs/Selector";
            };
            heal: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.replace.face";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            tool: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly faces: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly heal: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.replace.face";
          }
          • Readonly const: "feature.replace.face"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly tool: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["id", "kind", "source", "faces", "tool", "result"]
      • Readonly type: "object"
    • Readonly Revolve: {
          additionalProperties: false;
          properties: {
              angle: {
                  anyOf: readonly [{
                      $ref: "#/$defs/Scalar";
                  }, {
                      const: "full";
                  }];
              };
              axis: {
                  $ref: "#/$defs/AxisDirection";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.revolve";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              origin: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              profile: {
                  $ref: "#/$defs/ProfileRef";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profile", "axis", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            angle: {
                anyOf: readonly [{
                    $ref: "#/$defs/Scalar";
                }, {
                    const: "full";
                }];
            };
            axis: {
                $ref: "#/$defs/AxisDirection";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.revolve";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            origin: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            profile: {
                $ref: "#/$defs/ProfileRef";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly angle: {
              anyOf: readonly [{
                  $ref: "#/$defs/Scalar";
              }, {
                  const: "full";
              }];
          }
          • Readonly anyOf: readonly [{
                $ref: "#/$defs/Scalar";
            }, {
                const: "full";
            }]
        • Readonly axis: {
              $ref: "#/$defs/AxisDirection";
          }
          • Readonly $ref: "#/$defs/AxisDirection"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.revolve";
          }
          • Readonly const: "feature.revolve"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly origin: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly profile: {
              $ref: "#/$defs/ProfileRef";
          }
          • Readonly $ref: "#/$defs/ProfileRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profile", "axis", "result"]
      • Readonly type: "object"
    • Readonly Scalar: {
          anyOf: readonly [{
              type: "number";
          }, {
              $ref: "#/$defs/Expr";
          }];
      }
      • Readonly anyOf: readonly [{
            type: "number";
        }, {
            $ref: "#/$defs/Expr";
        }]
    • Readonly Selector: {
          anyOf: readonly [{
              $ref: "#/$defs/FaceQuery";
          }, {
              $ref: "#/$defs/EdgeQuery";
          }, {
              $ref: "#/$defs/SolidQuery";
          }, {
              $ref: "#/$defs/NamedOutput";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/FaceQuery";
        }, {
            $ref: "#/$defs/EdgeQuery";
        }, {
            $ref: "#/$defs/SolidQuery";
        }, {
            $ref: "#/$defs/NamedOutput";
        }]
    • Readonly Shell: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              direction: {
                  enum: ("inside" | "outside" | "both")[];
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.shell";
              };
              openFaces: {
                  items: {
                      $ref: "#/$defs/Selector";
                  };
                  type: "array";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              thickness: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "source", "thickness", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            direction: {
                enum: ("inside" | "outside" | "both")[];
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.shell";
            };
            openFaces: {
                items: {
                    $ref: "#/$defs/Selector";
                };
                type: "array";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            thickness: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly direction: {
              enum: ("inside" | "outside" | "both")[];
          }
          • Readonly enum: ("inside" | "outside" | "both")[]
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.shell";
          }
          • Readonly const: "feature.shell"
        • Readonly openFaces: {
              items: {
                  $ref: "#/$defs/Selector";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Selector";
            }
            • Readonly $ref: "#/$defs/Selector"
          • Readonly type: "array"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly thickness: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "source", "thickness", "result"]
      • Readonly type: "object"
    • Readonly SizeConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.size";
              };
              max: {
                  $ref: "#/$defs/Scalar";
              };
              min: {
                  $ref: "#/$defs/Scalar";
              };
              modifiers: {
                  items: {
                      $ref: "#/$defs/ToleranceModifier";
                  };
                  type: "array";
              };
              nominal: {
                  $ref: "#/$defs/Scalar";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/GeometryRef";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "target"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.size";
            };
            max: {
                $ref: "#/$defs/Scalar";
            };
            min: {
                $ref: "#/$defs/Scalar";
            };
            modifiers: {
                items: {
                    $ref: "#/$defs/ToleranceModifier";
                };
                type: "array";
            };
            nominal: {
                $ref: "#/$defs/Scalar";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/GeometryRef";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.size";
          }
          • Readonly const: "constraint.size"
        • Readonly max: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly min: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly modifiers: {
              items: {
                  $ref: "#/$defs/ToleranceModifier";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ToleranceModifier";
            }
            • Readonly $ref: "#/$defs/ToleranceModifier"
          • Readonly type: "array"
        • Readonly nominal: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/GeometryRef";
          }
          • Readonly $ref: "#/$defs/GeometryRef"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "target"]
      • Readonly type: "object"
    • Readonly Sketch2D: {
          additionalProperties: false;
          properties: {
              constraints: {
                  items: {
                      $ref: "#/$defs/SketchConstraint";
                  };
                  type: "array";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              entities: {
                  items: {
                      $ref: "#/$defs/SketchEntity";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.sketch2d";
              };
              origin: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              plane: {
                  $ref: "#/$defs/PlaneRef";
              };
              profiles: {
                  items: {
                      $ref: "#/$defs/SketchProfile";
                  };
                  type: "array";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profiles"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            constraints: {
                items: {
                    $ref: "#/$defs/SketchConstraint";
                };
                type: "array";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            entities: {
                items: {
                    $ref: "#/$defs/SketchEntity";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.sketch2d";
            };
            origin: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            plane: {
                $ref: "#/$defs/PlaneRef";
            };
            profiles: {
                items: {
                    $ref: "#/$defs/SketchProfile";
                };
                type: "array";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly constraints: {
              items: {
                  $ref: "#/$defs/SketchConstraint";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/SketchConstraint";
            }
            • Readonly $ref: "#/$defs/SketchConstraint"
          • Readonly type: "array"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly entities: {
              items: {
                  $ref: "#/$defs/SketchEntity";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/SketchEntity";
            }
            • Readonly $ref: "#/$defs/SketchEntity"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.sketch2d";
          }
          • Readonly const: "feature.sketch2d"
        • Readonly origin: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly plane: {
              $ref: "#/$defs/PlaneRef";
          }
          • Readonly $ref: "#/$defs/PlaneRef"
        • Readonly profiles: {
              items: {
                  $ref: "#/$defs/SketchProfile";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/SketchProfile";
            }
            • Readonly $ref: "#/$defs/SketchProfile"
          • Readonly type: "array"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profiles"]
      • Readonly type: "object"
    • Readonly SketchArc: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              direction: {
                  enum: readonly ["cw", "ccw"];
              };
              end: {
                  $ref: "#/$defs/Point2D";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.arc";
              };
              start: {
                  $ref: "#/$defs/Point2D";
              };
          };
          required: readonly ["id", "kind", "start", "end", "center", "direction"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            direction: {
                enum: readonly ["cw", "ccw"];
            };
            end: {
                $ref: "#/$defs/Point2D";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.arc";
            };
            start: {
                $ref: "#/$defs/Point2D";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly direction: {
              enum: readonly ["cw", "ccw"];
          }
          • Readonly enum: readonly ["cw", "ccw"]
        • Readonly end: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.arc";
          }
          • Readonly const: "sketch.arc"
        • Readonly start: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
      • Readonly required: readonly ["id", "kind", "start", "end", "center", "direction"]
      • Readonly type: "object"
    • Readonly SketchCircle: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.circle";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "center", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.circle";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.circle";
          }
          • Readonly const: "sketch.circle"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "center", "radius"]
      • Readonly type: "object"
    • Readonly SketchConstraint: {
          anyOf: readonly [{
              $ref: "#/$defs/SketchConstraintCoincident";
          }, {
              $ref: "#/$defs/SketchConstraintHorizontal";
          }, {
              $ref: "#/$defs/SketchConstraintVertical";
          }, {
              $ref: "#/$defs/SketchConstraintParallel";
          }, {
              $ref: "#/$defs/SketchConstraintPerpendicular";
          }, {
              $ref: "#/$defs/SketchConstraintEqualLength";
          }, {
              $ref: "#/$defs/SketchConstraintDistance";
          }, {
              $ref: "#/$defs/SketchConstraintAngle";
          }, {
              $ref: "#/$defs/SketchConstraintRadius";
          }, {
              $ref: "#/$defs/SketchConstraintFixPoint";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/SketchConstraintCoincident";
        }, {
            $ref: "#/$defs/SketchConstraintHorizontal";
        }, {
            $ref: "#/$defs/SketchConstraintVertical";
        }, {
            $ref: "#/$defs/SketchConstraintParallel";
        }, {
            $ref: "#/$defs/SketchConstraintPerpendicular";
        }, {
            $ref: "#/$defs/SketchConstraintEqualLength";
        }, {
            $ref: "#/$defs/SketchConstraintDistance";
        }, {
            $ref: "#/$defs/SketchConstraintAngle";
        }, {
            $ref: "#/$defs/SketchConstraintRadius";
        }, {
            $ref: "#/$defs/SketchConstraintFixPoint";
        }]
    • Readonly SketchConstraintAngle: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/ID";
              };
              angle: {
                  $ref: "#/$defs/Scalar";
              };
              b: {
                  $ref: "#/$defs/ID";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.angle";
              };
          };
          required: readonly ["id", "kind", "a", "b", "angle"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/ID";
            };
            angle: {
                $ref: "#/$defs/Scalar";
            };
            b: {
                $ref: "#/$defs/ID";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.angle";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly angle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly b: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.angle";
          }
          • Readonly const: "sketch.constraint.angle"
      • Readonly required: readonly ["id", "kind", "a", "b", "angle"]
      • Readonly type: "object"
    • Readonly SketchConstraintCoincident: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/SketchConstraintPointRef";
              };
              b: {
                  $ref: "#/$defs/SketchConstraintPointRef";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.coincident";
              };
          };
          required: readonly ["id", "kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/SketchConstraintPointRef";
            };
            b: {
                $ref: "#/$defs/SketchConstraintPointRef";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.coincident";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/SketchConstraintPointRef";
          }
          • Readonly $ref: "#/$defs/SketchConstraintPointRef"
        • Readonly b: {
              $ref: "#/$defs/SketchConstraintPointRef";
          }
          • Readonly $ref: "#/$defs/SketchConstraintPointRef"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.coincident";
          }
          • Readonly const: "sketch.constraint.coincident"
      • Readonly required: readonly ["id", "kind", "a", "b"]
      • Readonly type: "object"
    • Readonly SketchConstraintDistance: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/SketchConstraintPointRef";
              };
              b: {
                  $ref: "#/$defs/SketchConstraintPointRef";
              };
              distance: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.distance";
              };
          };
          required: readonly ["id", "kind", "a", "b", "distance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/SketchConstraintPointRef";
            };
            b: {
                $ref: "#/$defs/SketchConstraintPointRef";
            };
            distance: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.distance";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/SketchConstraintPointRef";
          }
          • Readonly $ref: "#/$defs/SketchConstraintPointRef"
        • Readonly b: {
              $ref: "#/$defs/SketchConstraintPointRef";
          }
          • Readonly $ref: "#/$defs/SketchConstraintPointRef"
        • Readonly distance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.distance";
          }
          • Readonly const: "sketch.constraint.distance"
      • Readonly required: readonly ["id", "kind", "a", "b", "distance"]
      • Readonly type: "object"
    • Readonly SketchConstraintEqualLength: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/ID";
              };
              b: {
                  $ref: "#/$defs/ID";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.equalLength";
              };
          };
          required: readonly ["id", "kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/ID";
            };
            b: {
                $ref: "#/$defs/ID";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.equalLength";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly b: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.equalLength";
          }
          • Readonly const: "sketch.constraint.equalLength"
      • Readonly required: readonly ["id", "kind", "a", "b"]
      • Readonly type: "object"
    • Readonly SketchConstraintFixPoint: {
          additionalProperties: false;
          anyOf: readonly [{
              required: readonly ["x"];
          }, {
              required: readonly ["y"];
          }];
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.fixPoint";
              };
              point: {
                  $ref: "#/$defs/SketchConstraintPointRef";
              };
              x: {
                  $ref: "#/$defs/Scalar";
              };
              y: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "point"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly anyOf: readonly [{
            required: readonly ["x"];
        }, {
            required: readonly ["y"];
        }]
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.fixPoint";
            };
            point: {
                $ref: "#/$defs/SketchConstraintPointRef";
            };
            x: {
                $ref: "#/$defs/Scalar";
            };
            y: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.fixPoint";
          }
          • Readonly const: "sketch.constraint.fixPoint"
        • Readonly point: {
              $ref: "#/$defs/SketchConstraintPointRef";
          }
          • Readonly $ref: "#/$defs/SketchConstraintPointRef"
        • Readonly x: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly y: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "point"]
      • Readonly type: "object"
    • Readonly SketchConstraintHorizontal: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.horizontal";
              };
              line: {
                  $ref: "#/$defs/ID";
              };
          };
          required: readonly ["id", "kind", "line"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.horizontal";
            };
            line: {
                $ref: "#/$defs/ID";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.horizontal";
          }
          • Readonly const: "sketch.constraint.horizontal"
        • Readonly line: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
      • Readonly required: readonly ["id", "kind", "line"]
      • Readonly type: "object"
    • Readonly SketchConstraintParallel: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/ID";
              };
              b: {
                  $ref: "#/$defs/ID";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.parallel";
              };
          };
          required: readonly ["id", "kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/ID";
            };
            b: {
                $ref: "#/$defs/ID";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.parallel";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly b: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.parallel";
          }
          • Readonly const: "sketch.constraint.parallel"
      • Readonly required: readonly ["id", "kind", "a", "b"]
      • Readonly type: "object"
    • Readonly SketchConstraintPerpendicular: {
          additionalProperties: false;
          properties: {
              a: {
                  $ref: "#/$defs/ID";
              };
              b: {
                  $ref: "#/$defs/ID";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.perpendicular";
              };
          };
          required: readonly ["id", "kind", "a", "b"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            a: {
                $ref: "#/$defs/ID";
            };
            b: {
                $ref: "#/$defs/ID";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.perpendicular";
            };
        }
        • Readonly a: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly b: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.perpendicular";
          }
          • Readonly const: "sketch.constraint.perpendicular"
      • Readonly required: readonly ["id", "kind", "a", "b"]
      • Readonly type: "object"
    • Readonly SketchConstraintPointRef: {
          additionalProperties: false;
          properties: {
              entity: {
                  $ref: "#/$defs/ID";
              };
              handle: {
                  enum: readonly ["start", "end", "center", "point", "corner"];
              };
          };
          required: readonly ["entity"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            entity: {
                $ref: "#/$defs/ID";
            };
            handle: {
                enum: readonly ["start", "end", "center", "point", "corner"];
            };
        }
        • Readonly entity: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly handle: {
              enum: readonly ["start", "end", "center", "point", "corner"];
          }
          • Readonly enum: readonly ["start", "end", "center", "point", "corner"]
      • Readonly required: readonly ["entity"]
      • Readonly type: "object"
    • Readonly SketchConstraintRadius: {
          additionalProperties: false;
          properties: {
              curve: {
                  $ref: "#/$defs/ID";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.radius";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "curve", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            curve: {
                $ref: "#/$defs/ID";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.radius";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly curve: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.radius";
          }
          • Readonly const: "sketch.constraint.radius"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "curve", "radius"]
      • Readonly type: "object"
    • Readonly SketchConstraintVertical: {
          additionalProperties: false;
          properties: {
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.constraint.vertical";
              };
              line: {
                  $ref: "#/$defs/ID";
              };
          };
          required: readonly ["id", "kind", "line"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.constraint.vertical";
            };
            line: {
                $ref: "#/$defs/ID";
            };
        }
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.constraint.vertical";
          }
          • Readonly const: "sketch.constraint.vertical"
        • Readonly line: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
      • Readonly required: readonly ["id", "kind", "line"]
      • Readonly type: "object"
    • Readonly SketchEllipse: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.ellipse";
              };
              radiusX: {
                  $ref: "#/$defs/Scalar";
              };
              radiusY: {
                  $ref: "#/$defs/Scalar";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "center", "radiusX", "radiusY"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.ellipse";
            };
            radiusX: {
                $ref: "#/$defs/Scalar";
            };
            radiusY: {
                $ref: "#/$defs/Scalar";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.ellipse";
          }
          • Readonly const: "sketch.ellipse"
        • Readonly radiusX: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly radiusY: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "center", "radiusX", "radiusY"]
      • Readonly type: "object"
    • Readonly SketchEntity: {
          anyOf: readonly [{
              $ref: "#/$defs/SketchLine";
          }, {
              $ref: "#/$defs/SketchArc";
          }, {
              $ref: "#/$defs/SketchCircle";
          }, {
              $ref: "#/$defs/SketchEllipse";
          }, {
              $ref: "#/$defs/SketchRectangleCenter";
          }, {
              $ref: "#/$defs/SketchRectangleCorner";
          }, {
              $ref: "#/$defs/SketchSlot";
          }, {
              $ref: "#/$defs/SketchPolygon";
          }, {
              $ref: "#/$defs/SketchSpline";
          }, {
              $ref: "#/$defs/SketchPoint";
          }];
      }
      • Readonly anyOf: readonly [{
            $ref: "#/$defs/SketchLine";
        }, {
            $ref: "#/$defs/SketchArc";
        }, {
            $ref: "#/$defs/SketchCircle";
        }, {
            $ref: "#/$defs/SketchEllipse";
        }, {
            $ref: "#/$defs/SketchRectangleCenter";
        }, {
            $ref: "#/$defs/SketchRectangleCorner";
        }, {
            $ref: "#/$defs/SketchSlot";
        }, {
            $ref: "#/$defs/SketchPolygon";
        }, {
            $ref: "#/$defs/SketchSpline";
        }, {
            $ref: "#/$defs/SketchPoint";
        }]
    • Readonly SketchEntityBase: {
          properties: {
              construction: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  type: "string";
              };
          };
          required: readonly ["id", "kind"];
          type: "object";
      }
      • Readonly properties: {
            construction: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                type: "string";
            };
        }
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              type: "string";
          }
          • Readonly type: "string"
      • Readonly required: readonly ["id", "kind"]
      • Readonly type: "object"
    • Readonly SketchLine: {
          additionalProperties: false;
          properties: {
              construction: {
                  type: "boolean";
              };
              end: {
                  $ref: "#/$defs/Point2D";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.line";
              };
              start: {
                  $ref: "#/$defs/Point2D";
              };
          };
          required: readonly ["id", "kind", "start", "end"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            construction: {
                type: "boolean";
            };
            end: {
                $ref: "#/$defs/Point2D";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.line";
            };
            start: {
                $ref: "#/$defs/Point2D";
            };
        }
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly end: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.line";
          }
          • Readonly const: "sketch.line"
        • Readonly start: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
      • Readonly required: readonly ["id", "kind", "start", "end"]
      • Readonly type: "object"
    • Readonly SketchPoint: {
          additionalProperties: false;
          properties: {
              construction: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.point";
              };
              point: {
                  $ref: "#/$defs/Point2D";
              };
          };
          required: readonly ["id", "kind", "point"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            construction: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.point";
            };
            point: {
                $ref: "#/$defs/Point2D";
            };
        }
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.point";
          }
          • Readonly const: "sketch.point"
        • Readonly point: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
      • Readonly required: readonly ["id", "kind", "point"]
      • Readonly type: "object"
    • Readonly SketchPolygon: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.polygon";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
              sides: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "center", "radius", "sides"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.polygon";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
            sides: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.polygon";
          }
          • Readonly const: "sketch.polygon"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly sides: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "center", "radius", "sides"]
      • Readonly type: "object"
    • Readonly SketchProfile: {
          additionalProperties: false;
          properties: {
              name: {
                  type: "string";
              };
              profile: {
                  $ref: "#/$defs/Profile";
              };
          };
          required: readonly ["name", "profile"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            name: {
                type: "string";
            };
            profile: {
                $ref: "#/$defs/Profile";
            };
        }
        • Readonly name: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly profile: {
              $ref: "#/$defs/Profile";
          }
          • Readonly $ref: "#/$defs/Profile"
      • Readonly required: readonly ["name", "profile"]
      • Readonly type: "object"
    • Readonly SketchRectangleCenter: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              height: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.rectangle";
              };
              mode: {
                  const: "center";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
              width: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "mode", "center", "width", "height"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            height: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.rectangle";
            };
            mode: {
                const: "center";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
            width: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly height: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.rectangle";
          }
          • Readonly const: "sketch.rectangle"
        • Readonly mode: {
              const: "center";
          }
          • Readonly const: "center"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly width: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "mode", "center", "width", "height"]
      • Readonly type: "object"
    • Readonly SketchRectangleCorner: {
          additionalProperties: false;
          properties: {
              construction: {
                  type: "boolean";
              };
              corner: {
                  $ref: "#/$defs/Point2D";
              };
              height: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.rectangle";
              };
              mode: {
                  const: "corner";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
              width: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "mode", "corner", "width", "height"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            construction: {
                type: "boolean";
            };
            corner: {
                $ref: "#/$defs/Point2D";
            };
            height: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.rectangle";
            };
            mode: {
                const: "corner";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
            width: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly corner: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly height: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.rectangle";
          }
          • Readonly const: "sketch.rectangle"
        • Readonly mode: {
              const: "corner";
          }
          • Readonly const: "corner"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly width: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "mode", "corner", "width", "height"]
      • Readonly type: "object"
    • Readonly SketchSlot: {
          additionalProperties: false;
          properties: {
              center: {
                  $ref: "#/$defs/Point2D";
              };
              construction: {
                  type: "boolean";
              };
              endStyle: {
                  enum: readonly ["arc", "straight"];
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.slot";
              };
              length: {
                  $ref: "#/$defs/Scalar";
              };
              rotation: {
                  $ref: "#/$defs/Scalar";
              };
              width: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "center", "length", "width"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            center: {
                $ref: "#/$defs/Point2D";
            };
            construction: {
                type: "boolean";
            };
            endStyle: {
                enum: readonly ["arc", "straight"];
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.slot";
            };
            length: {
                $ref: "#/$defs/Scalar";
            };
            rotation: {
                $ref: "#/$defs/Scalar";
            };
            width: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly center: {
              $ref: "#/$defs/Point2D";
          }
          • Readonly $ref: "#/$defs/Point2D"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly endStyle: {
              enum: readonly ["arc", "straight"];
          }
          • Readonly enum: readonly ["arc", "straight"]
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.slot";
          }
          • Readonly const: "sketch.slot"
        • Readonly length: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly rotation: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly width: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "center", "length", "width"]
      • Readonly type: "object"
    • Readonly SketchSpline: {
          additionalProperties: false;
          properties: {
              closed: {
                  type: "boolean";
              };
              construction: {
                  type: "boolean";
              };
              degree: {
                  $ref: "#/$defs/Scalar";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "sketch.spline";
              };
              points: {
                  items: {
                      $ref: "#/$defs/Point2D";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "points"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            closed: {
                type: "boolean";
            };
            construction: {
                type: "boolean";
            };
            degree: {
                $ref: "#/$defs/Scalar";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "sketch.spline";
            };
            points: {
                items: {
                    $ref: "#/$defs/Point2D";
                };
                type: "array";
            };
        }
        • Readonly closed: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly construction: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly degree: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "sketch.spline";
          }
          • Readonly const: "sketch.spline"
        • Readonly points: {
              items: {
                  $ref: "#/$defs/Point2D";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Point2D";
            }
            • Readonly $ref: "#/$defs/Point2D"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "points"]
      • Readonly type: "object"
    • Readonly SolidQuery: {
          additionalProperties: false;
          properties: {
              kind: {
                  const: "selector.solid";
              };
              predicates: {
                  items: {
                      $ref: "#/$defs/Predicate";
                  };
                  type: "array";
              };
              rank: {
                  items: {
                      $ref: "#/$defs/RankRule";
                  };
                  type: "array";
              };
          };
          required: readonly ["kind", "predicates", "rank"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            kind: {
                const: "selector.solid";
            };
            predicates: {
                items: {
                    $ref: "#/$defs/Predicate";
                };
                type: "array";
            };
            rank: {
                items: {
                    $ref: "#/$defs/RankRule";
                };
                type: "array";
            };
        }
        • Readonly kind: {
              const: "selector.solid";
          }
          • Readonly const: "selector.solid"
        • Readonly predicates: {
              items: {
                  $ref: "#/$defs/Predicate";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Predicate";
            }
            • Readonly $ref: "#/$defs/Predicate"
          • Readonly type: "array"
        • Readonly rank: {
              items: {
                  $ref: "#/$defs/RankRule";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/RankRule";
            }
            • Readonly $ref: "#/$defs/RankRule"
          • Readonly type: "array"
      • Readonly required: readonly ["kind", "predicates", "rank"]
      • Readonly type: "object"
    • Readonly SplitBody: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              keepTool: {
                  type: "boolean";
              };
              kind: {
                  const: "feature.split.body";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              tool: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["id", "kind", "source", "tool", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            keepTool: {
                type: "boolean";
            };
            kind: {
                const: "feature.split.body";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            tool: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly keepTool: {
              type: "boolean";
          }
          • Readonly type: "boolean"
        • Readonly kind: {
              const: "feature.split.body";
          }
          • Readonly const: "feature.split.body"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly tool: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["id", "kind", "source", "tool", "result"]
      • Readonly type: "object"
    • Readonly SplitFace: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              faces: {
                  $ref: "#/$defs/Selector";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.split.face";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              tool: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["id", "kind", "faces", "tool", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            faces: {
                $ref: "#/$defs/Selector";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.split.face";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            tool: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly faces: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.split.face";
          }
          • Readonly const: "feature.split.face"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly tool: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["id", "kind", "faces", "tool", "result"]
      • Readonly type: "object"
    • Readonly Surface: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.surface";
              };
              profile: {
                  $ref: "#/$defs/ProfileRef";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profile", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.surface";
            };
            profile: {
                $ref: "#/$defs/ProfileRef";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.surface";
          }
          • Readonly const: "feature.surface"
        • Readonly profile: {
              $ref: "#/$defs/ProfileRef";
          }
          • Readonly $ref: "#/$defs/ProfileRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profile", "result"]
      • Readonly type: "object"
    • Readonly SurfaceProfileConstraint: {
          additionalProperties: false;
          properties: {
              capabilities: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "constraint.surfaceProfile";
              };
              referenceFrame: {
                  $ref: "#/$defs/RefFrame";
              };
              requirement: {
                  $ref: "#/$defs/ID";
              };
              target: {
                  $ref: "#/$defs/RefSurface";
              };
              tolerance: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "target", "tolerance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            capabilities: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "constraint.surfaceProfile";
            };
            referenceFrame: {
                $ref: "#/$defs/RefFrame";
            };
            requirement: {
                $ref: "#/$defs/ID";
            };
            target: {
                $ref: "#/$defs/RefSurface";
            };
            tolerance: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly capabilities: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "constraint.surfaceProfile";
          }
          • Readonly const: "constraint.surfaceProfile"
        • Readonly referenceFrame: {
              $ref: "#/$defs/RefFrame";
          }
          • Readonly $ref: "#/$defs/RefFrame"
        • Readonly requirement: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly target: {
              $ref: "#/$defs/RefSurface";
          }
          • Readonly $ref: "#/$defs/RefSurface"
        • Readonly tolerance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "target", "tolerance"]
      • Readonly type: "object"
    • Readonly Sweep: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              frame: {
                  $ref: "#/$defs/PlaneRef";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.sweep";
              };
              mode: {
                  $ref: "#/$defs/ExtrudeMode";
              };
              orientation: {
                  $ref: "#/$defs/SweepOrientation";
              };
              path: {
                  $ref: "#/$defs/Path3D";
              };
              profile: {
                  $ref: "#/$defs/ProfileRef";
              };
              result: {
                  type: "string";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "profile", "path", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            frame: {
                $ref: "#/$defs/PlaneRef";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.sweep";
            };
            mode: {
                $ref: "#/$defs/ExtrudeMode";
            };
            orientation: {
                $ref: "#/$defs/SweepOrientation";
            };
            path: {
                $ref: "#/$defs/Path3D";
            };
            profile: {
                $ref: "#/$defs/ProfileRef";
            };
            result: {
                type: "string";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly frame: {
              $ref: "#/$defs/PlaneRef";
          }
          • Readonly $ref: "#/$defs/PlaneRef"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.sweep";
          }
          • Readonly const: "feature.sweep"
        • Readonly mode: {
              $ref: "#/$defs/ExtrudeMode";
          }
          • Readonly $ref: "#/$defs/ExtrudeMode"
        • Readonly orientation: {
              $ref: "#/$defs/SweepOrientation";
          }
          • Readonly $ref: "#/$defs/SweepOrientation"
        • Readonly path: {
              $ref: "#/$defs/Path3D";
          }
          • Readonly $ref: "#/$defs/Path3D"
        • Readonly profile: {
              $ref: "#/$defs/ProfileRef";
          }
          • Readonly $ref: "#/$defs/ProfileRef"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "profile", "path", "result"]
      • Readonly type: "object"
    • Readonly SweepOrientation: {
          enum: readonly ["frenet", "fixed"];
      }
      • Readonly enum: readonly ["frenet", "fixed"]
    • Readonly Thicken: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              direction: {
                  $ref: "#/$defs/ThickenDirection";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.thicken";
              };
              result: {
                  type: "string";
              };
              surface: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              thickness: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["id", "kind", "surface", "thickness", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            direction: {
                $ref: "#/$defs/ThickenDirection";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.thicken";
            };
            result: {
                type: "string";
            };
            surface: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            thickness: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly direction: {
              $ref: "#/$defs/ThickenDirection";
          }
          • Readonly $ref: "#/$defs/ThickenDirection"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.thicken";
          }
          • Readonly const: "feature.thicken"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly surface: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly thickness: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["id", "kind", "surface", "thickness", "result"]
      • Readonly type: "object"
    • Readonly ThickenDirection: {
          enum: readonly ["normal", "reverse"];
      }
      • Readonly enum: readonly ["normal", "reverse"]
    • Readonly Thread: {
          additionalProperties: false;
          properties: {
              axis: {
                  $ref: "#/$defs/AxisSpec";
              };
              crestFlat: {
                  $ref: "#/$defs/Scalar";
              };
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              handedness: {
                  $ref: "#/$defs/ThreadHandedness";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.thread";
              };
              length: {
                  $ref: "#/$defs/Scalar";
              };
              majorDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              minorDiameter: {
                  $ref: "#/$defs/Scalar";
              };
              origin: {
                  $ref: "#/$defs/Point3D";
              };
              pitch: {
                  $ref: "#/$defs/Scalar";
              };
              profileAngle: {
                  $ref: "#/$defs/Scalar";
              };
              result: {
                  type: "string";
              };
              rootFlat: {
                  $ref: "#/$defs/Scalar";
              };
              segmentsPerTurn: {
                  $ref: "#/$defs/Scalar";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "axis", "length", "majorDiameter", "pitch", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            axis: {
                $ref: "#/$defs/AxisSpec";
            };
            crestFlat: {
                $ref: "#/$defs/Scalar";
            };
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            handedness: {
                $ref: "#/$defs/ThreadHandedness";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.thread";
            };
            length: {
                $ref: "#/$defs/Scalar";
            };
            majorDiameter: {
                $ref: "#/$defs/Scalar";
            };
            minorDiameter: {
                $ref: "#/$defs/Scalar";
            };
            origin: {
                $ref: "#/$defs/Point3D";
            };
            pitch: {
                $ref: "#/$defs/Scalar";
            };
            profileAngle: {
                $ref: "#/$defs/Scalar";
            };
            result: {
                type: "string";
            };
            rootFlat: {
                $ref: "#/$defs/Scalar";
            };
            segmentsPerTurn: {
                $ref: "#/$defs/Scalar";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly axis: {
              $ref: "#/$defs/AxisSpec";
          }
          • Readonly $ref: "#/$defs/AxisSpec"
        • Readonly crestFlat: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly handedness: {
              $ref: "#/$defs/ThreadHandedness";
          }
          • Readonly $ref: "#/$defs/ThreadHandedness"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.thread";
          }
          • Readonly const: "feature.thread"
        • Readonly length: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly majorDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly minorDiameter: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly origin: {
              $ref: "#/$defs/Point3D";
          }
          • Readonly $ref: "#/$defs/Point3D"
        • Readonly pitch: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly profileAngle: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly rootFlat: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly segmentsPerTurn: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "axis", "length", "majorDiameter", "pitch", "result"]
      • Readonly type: "object"
    • Readonly ThreadHandedness: {
          enum: readonly ["right", "left"];
      }
      • Readonly enum: readonly ["right", "left"]
    • Readonly ToleranceModifier: {
          enum: readonly ["MMC", "LMC", "RFS", "PROJECTED", "FREE_STATE", "TANGENT_PLANE", "STATISTICAL"];
      }
      • Readonly enum: readonly ["MMC", "LMC", "RFS", "PROJECTED", "FREE_STATE", "TANGENT_PLANE", "STATISTICAL"]
    • Readonly Transform: {
          additionalProperties: false;
          properties: {
              matrix: {
                  items: {
                      type: "number";
                  };
                  maxItems: 16;
                  minItems: 16;
                  type: "array";
              };
              rotation: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
              translation: {
                  items: {
                      type: "number";
                  };
                  maxItems: 3;
                  minItems: 3;
                  type: "array";
              };
          };
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            matrix: {
                items: {
                    type: "number";
                };
                maxItems: 16;
                minItems: 16;
                type: "array";
            };
            rotation: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
            translation: {
                items: {
                    type: "number";
                };
                maxItems: 3;
                minItems: 3;
                type: "array";
            };
        }
        • Readonly matrix: {
              items: {
                  type: "number";
              };
              maxItems: 16;
              minItems: 16;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 16
          • Readonly minItems: 16
          • Readonly type: "array"
        • Readonly rotation: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
        • Readonly translation: {
              items: {
                  type: "number";
              };
              maxItems: 3;
              minItems: 3;
              type: "array";
          }
          • Readonly items: {
                type: "number";
            }
            • Readonly type: "number"
          • Readonly maxItems: 3
          • Readonly minItems: 3
          • Readonly type: "array"
      • Readonly type: "object"
    • Readonly TrimSurface: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              keep: {
                  enum: readonly ["inside", "outside", "both"];
              };
              kind: {
                  const: "feature.trim.surface";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
              tools: {
                  items: {
                      $ref: "#/$defs/Selector";
                  };
                  minItems: 1;
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "tools", "keep", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            keep: {
                enum: readonly ["inside", "outside", "both"];
            };
            kind: {
                const: "feature.trim.surface";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
            tools: {
                items: {
                    $ref: "#/$defs/Selector";
                };
                minItems: 1;
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly keep: {
              enum: readonly ["inside", "outside", "both"];
          }
          • Readonly enum: readonly ["inside", "outside", "both"]
        • Readonly kind: {
              const: "feature.trim.surface";
          }
          • Readonly const: "feature.trim.surface"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
        • Readonly tools: {
              items: {
                  $ref: "#/$defs/Selector";
              };
              minItems: 1;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/Selector";
            }
            • Readonly $ref: "#/$defs/Selector"
          • Readonly minItems: 1
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "tools", "keep", "result"]
      • Readonly type: "object"
    • Readonly Unit: {
          enum: readonly ["mm", "cm", "m", "in", "rad", "deg"];
      }
      • Readonly enum: readonly ["mm", "cm", "m", "in", "rad", "deg"]
    • Readonly Units: {
          enum: readonly ["mm", "cm", "m", "in"];
      }
      • Readonly enum: readonly ["mm", "cm", "m", "in"]
    • Readonly Unwrap: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.unwrap";
              };
              mode: {
                  $ref: "#/$defs/UnwrapMode";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.unwrap";
            };
            mode: {
                $ref: "#/$defs/UnwrapMode";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.unwrap";
          }
          • Readonly const: "feature.unwrap"
        • Readonly mode: {
              $ref: "#/$defs/UnwrapMode";
          }
          • Readonly $ref: "#/$defs/UnwrapMode"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "result"]
      • Readonly type: "object"
    • Readonly UnwrapMode: {
          enum: readonly ["strict", "experimental"];
      }
      • Readonly enum: readonly ["strict", "experimental"]
    • Readonly VariableChamfer: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              entries: {
                  items: {
                      $ref: "#/$defs/VariableChamferEntry";
                  };
                  minItems: 1;
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.chamfer.variable";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "entries", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            entries: {
                items: {
                    $ref: "#/$defs/VariableChamferEntry";
                };
                minItems: 1;
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.chamfer.variable";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly entries: {
              items: {
                  $ref: "#/$defs/VariableChamferEntry";
              };
              minItems: 1;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/VariableChamferEntry";
            }
            • Readonly $ref: "#/$defs/VariableChamferEntry"
          • Readonly minItems: 1
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.chamfer.variable";
          }
          • Readonly const: "feature.chamfer.variable"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "entries", "result"]
      • Readonly type: "object"
    • Readonly VariableChamferEntry: {
          additionalProperties: false;
          properties: {
              distance: {
                  $ref: "#/$defs/Scalar";
              };
              edge: {
                  $ref: "#/$defs/Selector";
              };
          };
          required: readonly ["edge", "distance"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            distance: {
                $ref: "#/$defs/Scalar";
            };
            edge: {
                $ref: "#/$defs/Selector";
            };
        }
        • Readonly distance: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
        • Readonly edge: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
      • Readonly required: readonly ["edge", "distance"]
      • Readonly type: "object"
    • Readonly VariableFillet: {
          additionalProperties: false;
          properties: {
              deps: {
                  items: {
                      $ref: "#/$defs/ID";
                  };
                  type: "array";
              };
              entries: {
                  items: {
                      $ref: "#/$defs/VariableFilletEntry";
                  };
                  minItems: 1;
                  type: "array";
              };
              id: {
                  $ref: "#/$defs/ID";
              };
              kind: {
                  const: "feature.fillet.variable";
              };
              result: {
                  type: "string";
              };
              source: {
                  $ref: "#/$defs/Selector";
              };
              tags: {
                  items: {
                      type: "string";
                  };
                  type: "array";
              };
          };
          required: readonly ["id", "kind", "source", "entries", "result"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            deps: {
                items: {
                    $ref: "#/$defs/ID";
                };
                type: "array";
            };
            entries: {
                items: {
                    $ref: "#/$defs/VariableFilletEntry";
                };
                minItems: 1;
                type: "array";
            };
            id: {
                $ref: "#/$defs/ID";
            };
            kind: {
                const: "feature.fillet.variable";
            };
            result: {
                type: "string";
            };
            source: {
                $ref: "#/$defs/Selector";
            };
            tags: {
                items: {
                    type: "string";
                };
                type: "array";
            };
        }
        • Readonly deps: {
              items: {
                  $ref: "#/$defs/ID";
              };
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/ID";
            }
            • Readonly $ref: "#/$defs/ID"
          • Readonly type: "array"
        • Readonly entries: {
              items: {
                  $ref: "#/$defs/VariableFilletEntry";
              };
              minItems: 1;
              type: "array";
          }
          • Readonly items: {
                $ref: "#/$defs/VariableFilletEntry";
            }
            • Readonly $ref: "#/$defs/VariableFilletEntry"
          • Readonly minItems: 1
          • Readonly type: "array"
        • Readonly id: {
              $ref: "#/$defs/ID";
          }
          • Readonly $ref: "#/$defs/ID"
        • Readonly kind: {
              const: "feature.fillet.variable";
          }
          • Readonly const: "feature.fillet.variable"
        • Readonly result: {
              type: "string";
          }
          • Readonly type: "string"
        • Readonly source: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly tags: {
              items: {
                  type: "string";
              };
              type: "array";
          }
          • Readonly items: {
                type: "string";
            }
            • Readonly type: "string"
          • Readonly type: "array"
      • Readonly required: readonly ["id", "kind", "source", "entries", "result"]
      • Readonly type: "object"
    • Readonly VariableFilletEntry: {
          additionalProperties: false;
          properties: {
              edge: {
                  $ref: "#/$defs/Selector";
              };
              radius: {
                  $ref: "#/$defs/Scalar";
              };
          };
          required: readonly ["edge", "radius"];
          type: "object";
      }
      • Readonly additionalProperties: false
      • Readonly properties: {
            edge: {
                $ref: "#/$defs/Selector";
            };
            radius: {
                $ref: "#/$defs/Scalar";
            };
        }
        • Readonly edge: {
              $ref: "#/$defs/Selector";
          }
          • Readonly $ref: "#/$defs/Selector"
        • Readonly radius: {
              $ref: "#/$defs/Scalar";
          }
          • Readonly $ref: "#/$defs/Scalar"
      • Readonly required: readonly ["edge", "radius"]
      • Readonly type: "object"
  • Readonly $id: "trueform.ir.v1"
  • Readonly $schema: "https://json-schema.org/draft/2020-12/schema"
  • Readonly additionalProperties: false
  • Readonly properties: {
        assemblies: {
            items: {
                $ref: "#/$defs/IntentAssembly";
            };
            type: "array";
        };
        assertions: {
            items: {
                $ref: "#/$defs/Assertion";
            };
            type: "array";
        };
        capabilities: {
            additionalProperties: true;
            type: "object";
        };
        constraints: {
            items: {
                $ref: "#/$defs/FTIConstraint";
            };
            type: "array";
        };
        context: {
            $ref: "#/$defs/BuildContext";
        };
        id: {
            $ref: "#/$defs/ID";
        };
        irVersion: {
            const: 1;
        };
        parts: {
            items: {
                $ref: "#/$defs/IntentPart";
            };
            type: "array";
        };
        schema: {
            const: "trueform.ir.v1";
        };
    }
    • Readonly assemblies: {
          items: {
              $ref: "#/$defs/IntentAssembly";
          };
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/IntentAssembly";
        }
        • Readonly $ref: "#/$defs/IntentAssembly"
      • Readonly type: "array"
    • Readonly assertions: {
          items: {
              $ref: "#/$defs/Assertion";
          };
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/Assertion";
        }
        • Readonly $ref: "#/$defs/Assertion"
      • Readonly type: "array"
    • Readonly capabilities: {
          additionalProperties: true;
          type: "object";
      }
      • Readonly additionalProperties: true
      • Readonly type: "object"
    • Readonly constraints: {
          items: {
              $ref: "#/$defs/FTIConstraint";
          };
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/FTIConstraint";
        }
        • Readonly $ref: "#/$defs/FTIConstraint"
      • Readonly type: "array"
    • Readonly context: {
          $ref: "#/$defs/BuildContext";
      }
      • Readonly $ref: "#/$defs/BuildContext"
    • Readonly id: {
          $ref: "#/$defs/ID";
      }
      • Readonly $ref: "#/$defs/ID"
    • Readonly irVersion: {
          const: 1;
      }
      • Readonly const: 1
    • Readonly parts: {
          items: {
              $ref: "#/$defs/IntentPart";
          };
          type: "array";
      }
      • Readonly items: {
            $ref: "#/$defs/IntentPart";
        }
        • Readonly $ref: "#/$defs/IntentPart"
      • Readonly type: "array"
    • Readonly schema: {
          const: "trueform.ir.v1";
      }
      • Readonly const: "trueform.ir.v1"
  • Readonly required: readonly ["id", "schema", "irVersion", "parts", "context"]
  • Readonly title: "TrueForm IR v1"
  • Readonly type: "object"