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: "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 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 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 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 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 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 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 right: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 version: {
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 linear: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 depth: {
$ref: "#/$defs/Scalar";
}
Readonly $ref: "#/$defs/Scalar"
Readonly designation: {
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 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: "array"
Readonly pitch: {
$ref: "#/$defs/Scalar";
}
Readonly $ref: "#/$defs/Scalar"
Readonly requirement: {
$ref: "#/$defs/ID";
}
Readonly $ref: "#/$defs/ID"
Readonly series: {
type: "string";
}
Readonly standard: {
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 second: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 maxItems: 3
Readonly minItems: 3
Readonly type: "array"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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: "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 maxItems: 3
Readonly minItems: 3
Readonly type: "array"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 id: {
$ref: "#/$defs/ID";
}
Readonly $ref: "#/$defs/ID"
Readonly kind: {
const: "feature.delete.face";
}
Readonly const: "feature.delete.face"
Readonly result: {
type: "string";
}
Readonly source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 series: {
type: "string";
}
Readonly size: {
type: "string";
}
Readonly standard: {
type: "string";
}
Readonly threadClass: {
type: "string";
}
Readonly threaded: {
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 result: {
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: "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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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: "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 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 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: "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 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 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 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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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: "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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 maxItems: 3
Readonly minItems: 3
Readonly type: "array"
Readonly plane: {
$ref: "#/$defs/PlaneRef";
}
Readonly $ref: "#/$defs/PlaneRef"
Readonly result: {
type: "string";
}
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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 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 id: {
$ref: "#/$defs/ID";
}
Readonly $ref: "#/$defs/ID"
Readonly kind: {
const: "feature.replace.face";
}
Readonly const: "feature.replace.face"
Readonly result: {
type: "string";
}
Readonly source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 maxItems: 3
Readonly minItems: 3
Readonly type: "array"
Readonly profile: {
$ref: "#/$defs/ProfileRef";
}
Readonly $ref: "#/$defs/ProfileRef"
Readonly result: {
type: "string";
}
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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: "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 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 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 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 id: {
$ref: "#/$defs/ID";
}
Readonly $ref: "#/$defs/ID"
Readonly kind: {
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 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 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 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 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 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 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 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 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 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 construction: {
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 kind: {
const: "feature.split.body";
}
Readonly const: "feature.split.body"
Readonly result: {
type: "string";
}
Readonly source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 surface: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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: "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 maxItems: 16
Readonly minItems: 16
Readonly type: "array"
Readonly rotation: {
items: {
type: "number";
};
maxItems: 3;
minItems: 3;
type: "array";
}
Readonly items: {
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 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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 source: {
$ref: "#/$defs/Selector";
}
Readonly $ref: "#/$defs/Selector"
Readonly tags: {
items: {
type: "string";
};
type: "array";
}
Readonly items: {
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 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"