diff --git a/docs/mechanical-verification/cp8/restart/qualified-postcheck/calls/0002-fusion_mech_capabilities.json b/docs/mechanical-verification/cp8/restart/qualified-postcheck/calls/0002-fusion_mech_capabilities.json new file mode 100644 index 0000000..fbd9f6f --- /dev/null +++ b/docs/mechanical-verification/cp8/restart/qualified-postcheck/calls/0002-fusion_mech_capabilities.json @@ -0,0 +1,6432 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mech_capabilities", + "args": {}, + "requestJson": "{}", + "runId": "cp8-restart-postcheck", + "caller": "Fusion roadmap build", + "startedAt": 1791235757.4371984, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"durationMs\": 131,\n \"error\": \"\",\n \"idempotency\": {\n \"admission\": \"FULL SQLite commit before native dispatch\",\n \"capacity\": 10000,\n \"databaseByteLimit\": 67108864,\n \"recordByteLimit\": 4194304,\n \"restartBehavior\": \"old-session history is readable; native execution never replays across sessions\",\n \"scope\": \"durable history keyed by add-in session and operation ID\",\n \"storageVersion\": 1\n },\n \"operations\": {\n \"assembly_properties\": {\n \"description\": \"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"bom\": {\n \"description\": \"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\",\n \"properties\": {\n \"explodePurchased\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"bom_export\": {\n \"description\": \"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\",\n \"properties\": {\n \"explodePurchased\": {\n \"type\": \"boolean\"\n },\n \"filename\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"flat\",\n \"structured\"\n ]\n },\n \"overwrite\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"filename\"\n ],\n \"type\": \"object\"\n },\n \"cad_import\": {\n \"description\": \"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"filename\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"provenance\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"supplier\",\n \"supplierPartNumber\",\n \"sourceUrl\"\n ],\n \"type\": \"object\"\n },\n \"sha256\": {\n \"type\": \"string\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"filename\",\n \"provenance\"\n ],\n \"type\": \"object\"\n },\n \"component_create\": {\n \"description\": \"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"metadata\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"excludeFromBom\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"partNumber\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"component_metadata\": {\n \"description\": \"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\",\n \"properties\": {\n \"changes\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"excludeFromBom\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"partNumber\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"configuration_inspect\": {\n \"description\": \"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"construction_axis\": {\n \"description\": \"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"creationOccurrence\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entities\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 2,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"edge\",\n \"circular_face\",\n \"two_planes\",\n \"two_points\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"type\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"entity_delete\": {\n \"description\": \"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"export\": {\n \"description\": \"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\",\n \"properties\": {\n \"format\": {\n \"default\": \"step\",\n \"enum\": [\n \"step\",\n \"stl\",\n \"3mf\",\n \"f3d\",\n \"iges\",\n \"sat\",\n \"smt\",\n \"usdz\",\n \"fbx\",\n \"skp\"\n ]\n },\n \"outputPath\": {\n \"type\": \"string\"\n },\n \"overwrite\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"refinement\": {\n \"default\": \"medium\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"outputPath\"\n ],\n \"type\": \"object\"\n },\n \"feature_create\": {\n \"description\": \"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"direction\": {\n \"enum\": [\n \"positive\",\n \"negative\",\n \"symmetric\"\n ]\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"taper\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"extrude\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"revolve\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"axis\",\n \"angle\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"edges\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"radius\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"fillet\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"edges\",\n \"radius\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"edges\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"chamfer\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"edges\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"thickness\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"type\": {\n \"enum\": [\n \"shell\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"thickness\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"depth\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"diameter\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"points\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"hole\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"points\",\n \"diameter\",\n \"depth\",\n \"bodies\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"loft\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"sweep\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"body\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keepTools\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"tools\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"combine\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"body\",\n \"tools\",\n \"operation\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"extend\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"split\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"plane\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"origin\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"translation\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"move\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"mirror\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"plane\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"axis2\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {\n \"maximum\": 1000,\n \"minimum\": 2,\n \"type\": \"integer\"\n },\n \"count2\": {\n \"maximum\": 1000,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"spacing\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"spacing2\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"rectangular_pattern\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"axis\",\n \"count\",\n \"spacing\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {\n \"maximum\": 1000,\n \"minimum\": 2,\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"circular_pattern\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"axis\",\n \"count\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"draft\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"plane\",\n \"angle\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"designation\": {\n \"type\": \"string\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"internal\": {\n \"type\": \"boolean\"\n },\n \"modeled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"threadClass\": {\n \"type\": \"string\"\n },\n \"threadType\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"thread\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"internal\",\n \"threadType\",\n \"designation\",\n \"threadClass\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"angle\": {},\n \"axis\": {},\n \"axis2\": {},\n \"bodies\": {},\n \"body\": {},\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {},\n \"count2\": {},\n \"depth\": {},\n \"designation\": {},\n \"diameter\": {},\n \"direction\": {},\n \"distance\": {},\n \"edges\": {},\n \"extend\": {},\n \"faces\": {},\n \"internal\": {},\n \"keepTools\": {},\n \"modeled\": {},\n \"name\": {\n \"type\": \"string\"\n },\n \"operation\": {},\n \"origin\": {},\n \"path\": {},\n \"plane\": {},\n \"points\": {},\n \"profiles\": {},\n \"radius\": {},\n \"spacing\": {},\n \"spacing2\": {},\n \"tangentChain\": {},\n \"taper\": {},\n \"thickness\": {},\n \"threadClass\": {},\n \"threadType\": {},\n \"tools\": {},\n \"translation\": {},\n \"type\": {\n \"enum\": [\n \"extrude\",\n \"revolve\",\n \"fillet\",\n \"chamfer\",\n \"shell\",\n \"hole\",\n \"loft\",\n \"sweep\",\n \"combine\",\n \"split\",\n \"move\",\n \"mirror\",\n \"rectangular_pattern\",\n \"circular_pattern\",\n \"draft\",\n \"thread\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"feature_edit\": {\n \"description\": \"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\",\n \"properties\": {\n \"feature\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"feature\"\n ],\n \"type\": \"object\"\n },\n \"geometry_query\": {\n \"description\": \"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\",\n \"properties\": {\n \"body\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"filters\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"area\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"direction\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"orientation\": {\n \"enum\": [\n \"same\",\n \"parallel\"\n ]\n },\n \"tolerance\": {\n \"maximum\": 90,\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"vector\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"vector\"\n ],\n \"type\": \"object\"\n },\n \"length\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"near\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"point\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"tolerance\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"point\",\n \"tolerance\"\n ],\n \"type\": \"object\"\n },\n \"radius\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"Plane\",\n \"Cylinder\",\n \"Cone\",\n \"Sphere\",\n \"Torus\",\n \"NurbsSurface\",\n \"Line3D\",\n \"Arc3D\",\n \"Circle3D\",\n \"Ellipse3D\",\n \"EllipticalArc3D\",\n \"NurbsCurve3D\",\n \"Point3D\",\n \"degenerate\"\n ]\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"kind\": {\n \"enum\": [\n \"faces\",\n \"edges\",\n \"vertices\"\n ]\n },\n \"maxResults\": {\n \"maximum\": 1024,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"selection\": {\n \"enum\": [\n \"one\",\n \"many\"\n ]\n },\n \"space\": {\n \"enum\": [\n \"root\",\n \"component\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"body\",\n \"kind\",\n \"space\"\n ],\n \"type\": \"object\"\n },\n \"health\": {\n \"description\": \"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\",\n \"properties\": {\n \"recompute\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"inspect\": {\n \"description\": \"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\",\n \"properties\": {},\n \"required\": [\n \"op\"\n ],\n \"type\": \"object\"\n },\n \"inspect_entity\": {\n \"properties\": {\n \"entity\": {\n \"description\": \"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"interference\": {\n \"description\": \"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"includeTouching\": {\n \"type\": \"boolean\"\n },\n \"volumeTolerance\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"joint_create\": {\n \"description\": \"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\"\n ]\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"revolute\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"slider\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"cylindrical\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"pin_slot\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"planar\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\",\n \"occurrenceOne\",\n \"occurrenceTwo\"\n ],\n \"type\": \"object\"\n },\n \"joint_delete\": {\n \"description\": \"Delete one selected Joint or AsBuiltJoint with recovery verification.\",\n \"properties\": {\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"joint_edit\": {\n \"description\": \"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\",\n \"properties\": {\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_create\": {\n \"description\": \"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetZ\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"xAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"zAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_delete\": {\n \"description\": \"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\",\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"origin\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_edit\": {\n \"description\": \"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetZ\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"xAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"zAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"origin\"\n ],\n \"type\": \"object\"\n },\n \"material_assign\": {\n \"description\": \"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"libraryId\": {\n \"type\": \"string\"\n },\n \"materialId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"entity\",\n \"materialId\"\n ],\n \"type\": \"object\"\n },\n \"material_list\": {\n \"description\": \"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\",\n \"properties\": {\n \"libraryId\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"maximum\": 1000,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"query\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"mcmaster_discover\": {\n \"description\": \"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\",\n \"properties\": {},\n \"required\": [\n \"op\"\n ],\n \"type\": \"object\"\n },\n \"mcmaster_open\": {\n \"description\": \"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"measure\": {\n \"description\": \"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"space\": {\n \"enum\": [\n \"root\"\n ]\n },\n \"type\": {\n \"enum\": [\n \"distance\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"type\",\n \"space\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_create\": {\n \"description\": \"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\",\n \"properties\": {\n \"jointOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"jointTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"motionOne\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"motionTwo\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"reversed\": {\n \"type\": \"boolean\"\n },\n \"valueOne\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"valueTwo\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"jointOne\",\n \"motionOne\",\n \"motionTwo\",\n \"valueOne\",\n \"valueTwo\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_delete\": {\n \"description\": \"Delete a root-owned motion link under the same transaction/recovery contract.\",\n \"properties\": {\n \"link\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"link\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_edit\": {\n \"description\": \"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\",\n \"properties\": {\n \"link\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"motionOne\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"motionTwo\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"reversed\": {\n \"type\": \"boolean\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"valueOne\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"valueTwo\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"link\"\n ],\n \"type\": \"object\"\n },\n \"new_design\": {\n \"description\": \"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\",\n \"properties\": {\n \"box\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"depth\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"height\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"width\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"width\",\n \"height\",\n \"depth\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_delete\": {\n \"description\": \"Delete one selected occurrence through the shared transaction executor.\",\n \"properties\": {\n \"occurrence\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"occurrence\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_insert\": {\n \"description\": \"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"independentCopy\": {\n \"type\": \"boolean\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"component\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_update\": {\n \"description\": \"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\",\n \"properties\": {\n \"grounded\": {\n \"type\": \"boolean\"\n },\n \"groundedToParent\": {\n \"type\": \"boolean\"\n },\n \"occurrence\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"occurrence\"\n ],\n \"type\": \"object\"\n },\n \"parameter_batch\": {\n \"description\": \"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\",\n \"properties\": {\n \"changes\": {\n \"items\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"create\"\n ]\n },\n \"comment\": {\n \"type\": \"string\"\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"unit\": {\n \"enum\": [\n \"mm\",\n \"deg\",\n \"kg\",\n \"\"\n ]\n }\n },\n \"required\": [\n \"action\",\n \"name\",\n \"expression\",\n \"unit\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"set\"\n ]\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"action\",\n \"name\",\n \"expression\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"delete\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"action\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"maxItems\": 128,\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"parameter_create\": {\n \"properties\": {\n \"comment\": {\n \"type\": \"string\"\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"unit\": {\n \"enum\": [\n \"mm\",\n \"deg\",\n \"kg\",\n \"\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\",\n \"expression\",\n \"unit\"\n ],\n \"type\": \"object\"\n },\n \"parameter_set\": {\n \"description\": \"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\",\n \"properties\": {\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\",\n \"expression\"\n ],\n \"type\": \"object\"\n },\n \"plane_create\": {\n \"description\": \"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"offset\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"offset\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"axis\",\n \"angle\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"type\": {\n \"enum\": [\n \"offset\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"regular_joint_create\": {\n \"description\": \"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometryOne\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"geometryTwo\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"locked\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\",\n \"geometryOne\",\n \"geometryTwo\"\n ],\n \"type\": \"object\"\n },\n \"regular_joint_edit\": {\n \"description\": \"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometryOne\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"geometryTwo\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"locked\": {\n \"type\": \"boolean\"\n },\n \"offset\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_create\": {\n \"description\": \"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\",\n \"properties\": {\n \"includeChildren\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrences\": {\n \"items\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 2,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"occurrences\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_delete\": {\n \"description\": \"Delete an exact rigid group with transaction recovery.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"group\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_edit\": {\n \"description\": \"Rename or suppress an exact rigid group with transaction recovery.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"group\"\n ],\n \"type\": \"object\"\n },\n \"sketch_constraint\": {\n \"description\": \"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"horizontal\",\n \"vertical\",\n \"coincident\",\n \"parallel\",\n \"perpendicular\",\n \"tangent\",\n \"equal\",\n \"concentric\",\n \"collinear\",\n \"midpoint\",\n \"symmetry\",\n \"fix\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"type\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"sketch_create\": {\n \"description\": \"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"sketch_curve_edit\": {\n \"description\": \"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\",\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"trim\",\n \"extend\",\n \"split\",\n \"break\"\n ]\n },\n \"allowDelete\": {\n \"type\": \"boolean\"\n },\n \"createConstraints\": {\n \"type\": \"boolean\"\n },\n \"curve\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"pick\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"sketch\",\n \"curve\",\n \"action\",\n \"pick\"\n ],\n \"type\": \"object\"\n },\n \"sketch_diagnostics\": {\n \"description\": \"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\",\n \"properties\": {\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sketch\"\n ],\n \"type\": \"object\"\n },\n \"sketch_dimension\": {\n \"description\": \"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"expression\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"parameterName\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"distance\",\n \"horizontal\",\n \"vertical\",\n \"radius\",\n \"diameter\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"type\",\n \"entities\",\n \"expression\",\n \"position\"\n ],\n \"type\": \"object\"\n },\n \"sketch_edit\": {\n \"description\": \"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\",\n \"properties\": {\n \"changes\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"fixed\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"radius\": {\n \"type\": \"number\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"entity\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"sketch_geometry\": {\n \"description\": \"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\",\n \"properties\": {\n \"items\": {\n \"items\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"point\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"position\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"line\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"rectangle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"radius\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"circle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"radius\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sweep\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"arc\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"start\",\n \"sweep\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"radius\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"sides\": {\n \"maximum\": 128,\n \"minimum\": 3,\n \"type\": \"integer\"\n },\n \"type\": {\n \"enum\": [\n \"polygon\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"radius\",\n \"sides\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"slot\"\n ]\n },\n \"width\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\",\n \"width\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"closed\": {\n \"type\": \"boolean\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"points\": {\n \"items\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"maxItems\": 128,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"spline\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"points\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"maxItems\": 128,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"items\"\n ],\n \"type\": \"object\"\n },\n \"sketch_offset\": {\n \"description\": \"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\",\n \"properties\": {\n \"curves\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"topologyMatched\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"sketch\",\n \"curves\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n \"sketch_project\": {\n \"description\": \"Project selected topology into a sketch with Fusion associative projection.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"transaction_probe\": {\n \"description\": \"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n }\n },\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"idempotency\\\":{\\\"admission\\\":\\\"FULL SQLite commit before native dispatch\\\",\\\"capacity\\\":10000,\\\"databaseByteLimit\\\":67108864,\\\"recordByteLimit\\\":4194304,\\\"restartBehavior\\\":\\\"old-session history is readable; native execution never replays across sessions\\\",\\\"scope\\\":\\\"durable history keyed by add-in session and operation ID\\\",\\\"storageVersion\\\":1},\\\"operations\\\":{\\\"assembly_properties\\\":{\\\"description\\\":\\\"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"bom\\\":{\\\"description\\\":\\\"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\\\",\\\"properties\\\":{\\\"explodePurchased\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"bom_export\\\":{\\\"description\\\":\\\"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\\\",\\\"properties\\\":{\\\"explodePurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"filename\\\":{\\\"type\\\":\\\"string\\\"},\\\"mode\\\":{\\\"enum\\\":[\\\"flat\\\",\\\"structured\\\"]},\\\"overwrite\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"filename\\\"],\\\"type\\\":\\\"object\\\"},\\\"cad_import\\\":{\\\"description\\\":\\\"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"filename\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"provenance\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"supplier\\\",\\\"supplierPartNumber\\\",\\\"sourceUrl\\\"],\\\"type\\\":\\\"object\\\"},\\\"sha256\\\":{\\\"type\\\":\\\"string\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"filename\\\",\\\"provenance\\\"],\\\"type\\\":\\\"object\\\"},\\\"component_create\\\":{\\\"description\\\":\\\"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"metadata\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"excludeFromBom\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"partNumber\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\"],\\\"type\\\":\\\"object\\\"},\\\"component_metadata\\\":{\\\"description\\\":\\\"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"excludeFromBom\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"partNumber\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"configuration_inspect\\\":{\\\"description\\\":\\\"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"construction_axis\\\":{\\\"description\\\":\\\"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"creationOccurrence\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":2,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"edge\\\",\\\"circular_face\\\",\\\"two_planes\\\",\\\"two_points\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"type\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity_delete\\\":{\\\"description\\\":\\\"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"export\\\":{\\\"description\\\":\\\"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\\\",\\\"properties\\\":{\\\"format\\\":{\\\"default\\\":\\\"step\\\",\\\"enum\\\":[\\\"step\\\",\\\"stl\\\",\\\"3mf\\\",\\\"f3d\\\",\\\"iges\\\",\\\"sat\\\",\\\"smt\\\",\\\"usdz\\\",\\\"fbx\\\",\\\"skp\\\"]},\\\"outputPath\\\":{\\\"type\\\":\\\"string\\\"},\\\"overwrite\\\":{\\\"default\\\":false,\\\"type\\\":\\\"boolean\\\"},\\\"refinement\\\":{\\\"default\\\":\\\"medium\\\",\\\"enum\\\":[\\\"low\\\",\\\"medium\\\",\\\"high\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"outputPath\\\"],\\\"type\\\":\\\"object\\\"},\\\"feature_create\\\":{\\\"description\\\":\\\"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"direction\\\":{\\\"enum\\\":[\\\"positive\\\",\\\"negative\\\",\\\"symmetric\\\"]},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"taper\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"extrude\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"revolve\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"axis\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"edges\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"radius\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"fillet\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"edges\\\",\\\"radius\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"edges\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"chamfer\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"edges\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"thickness\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"type\\\":{\\\"enum\\\":[\\\"shell\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"thickness\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"depth\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"diameter\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"points\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"hole\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"points\\\",\\\"diameter\\\",\\\"depth\\\",\\\"bodies\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"loft\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"path\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"sweep\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"path\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"body\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keepTools\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"tools\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"combine\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"body\\\",\\\"tools\\\",\\\"operation\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"extend\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"split\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"plane\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"origin\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"translation\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"move\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"mirror\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"plane\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"axis2\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":2,\\\"type\\\":\\\"integer\\\"},\\\"count2\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"spacing\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"spacing2\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rectangular_pattern\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"axis\\\",\\\"count\\\",\\\"spacing\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":2,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"circular_pattern\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"axis\\\",\\\"count\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"draft\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"plane\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"designation\\\":{\\\"type\\\":\\\"string\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"internal\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"modeled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"threadClass\\\":{\\\"type\\\":\\\"string\\\"},\\\"threadType\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"thread\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"internal\\\",\\\"threadType\\\",\\\"designation\\\",\\\"threadClass\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"angle\\\":{},\\\"axis\\\":{},\\\"axis2\\\":{},\\\"bodies\\\":{},\\\"body\\\":{},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{},\\\"count2\\\":{},\\\"depth\\\":{},\\\"designation\\\":{},\\\"diameter\\\":{},\\\"direction\\\":{},\\\"distance\\\":{},\\\"edges\\\":{},\\\"extend\\\":{},\\\"faces\\\":{},\\\"internal\\\":{},\\\"keepTools\\\":{},\\\"modeled\\\":{},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{},\\\"origin\\\":{},\\\"path\\\":{},\\\"plane\\\":{},\\\"points\\\":{},\\\"profiles\\\":{},\\\"radius\\\":{},\\\"spacing\\\":{},\\\"spacing2\\\":{},\\\"tangentChain\\\":{},\\\"taper\\\":{},\\\"thickness\\\":{},\\\"threadClass\\\":{},\\\"threadType\\\":{},\\\"tools\\\":{},\\\"translation\\\":{},\\\"type\\\":{\\\"enum\\\":[\\\"extrude\\\",\\\"revolve\\\",\\\"fillet\\\",\\\"chamfer\\\",\\\"shell\\\",\\\"hole\\\",\\\"loft\\\",\\\"sweep\\\",\\\"combine\\\",\\\"split\\\",\\\"move\\\",\\\"mirror\\\",\\\"rectangular_pattern\\\",\\\"circular_pattern\\\",\\\"draft\\\",\\\"thread\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\"],\\\"type\\\":\\\"object\\\"},\\\"feature_edit\\\":{\\\"description\\\":\\\"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\\\",\\\"properties\\\":{\\\"feature\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parameters\\\":{\\\"additionalProperties\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":\\\"object\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"feature\\\"],\\\"type\\\":\\\"object\\\"},\\\"geometry_query\\\":{\\\"description\\\":\\\"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\\\",\\\"properties\\\":{\\\"body\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"filters\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"area\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"direction\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"orientation\\\":{\\\"enum\\\":[\\\"same\\\",\\\"parallel\\\"]},\\\"tolerance\\\":{\\\"maximum\\\":90,\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"vector\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"vector\\\"],\\\"type\\\":\\\"object\\\"},\\\"length\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"near\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"point\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"tolerance\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"point\\\",\\\"tolerance\\\"],\\\"type\\\":\\\"object\\\"},\\\"radius\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"Plane\\\",\\\"Cylinder\\\",\\\"Cone\\\",\\\"Sphere\\\",\\\"Torus\\\",\\\"NurbsSurface\\\",\\\"Line3D\\\",\\\"Arc3D\\\",\\\"Circle3D\\\",\\\"Ellipse3D\\\",\\\"EllipticalArc3D\\\",\\\"NurbsCurve3D\\\",\\\"Point3D\\\",\\\"degenerate\\\"]}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"kind\\\":{\\\"enum\\\":[\\\"faces\\\",\\\"edges\\\",\\\"vertices\\\"]},\\\"maxResults\\\":{\\\"maximum\\\":1024,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"selection\\\":{\\\"enum\\\":[\\\"one\\\",\\\"many\\\"]},\\\"space\\\":{\\\"enum\\\":[\\\"root\\\",\\\"component\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"body\\\",\\\"kind\\\",\\\"space\\\"],\\\"type\\\":\\\"object\\\"},\\\"health\\\":{\\\"description\\\":\\\"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\\\",\\\"properties\\\":{\\\"recompute\\\":{\\\"default\\\":false,\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"inspect\\\":{\\\"description\\\":\\\"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\"],\\\"type\\\":\\\"object\\\"},\\\"inspect_entity\\\":{\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\\\",\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"interference\\\":{\\\"description\\\":\\\"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"includeTouching\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"volumeTolerance\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_create\\\":{\\\"description\\\":\\\"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\"]}},\\\"required\\\":[\\\"type\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"revolute\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"slider\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"cylindrical\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"pin_slot\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"planar\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\",\\\"occurrenceOne\\\",\\\"occurrenceTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_delete\\\":{\\\"description\\\":\\\"Delete one selected Joint or AsBuiltJoint with recovery verification.\\\",\\\"properties\\\":{\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_edit\\\":{\\\"description\\\":\\\"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\\\",\\\"properties\\\":{\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_create\\\":{\\\"description\\\":\\\"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetZ\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"xAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"zAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_delete\\\":{\\\"description\\\":\\\"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\\\",\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"origin\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_edit\\\":{\\\"description\\\":\\\"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetZ\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"xAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"zAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"origin\\\"],\\\"type\\\":\\\"object\\\"},\\\"material_assign\\\":{\\\"description\\\":\\\"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"libraryId\\\":{\\\"type\\\":\\\"string\\\"},\\\"materialId\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"entity\\\",\\\"materialId\\\"],\\\"type\\\":\\\"object\\\"},\\\"material_list\\\":{\\\"description\\\":\\\"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\\\",\\\"properties\\\":{\\\"libraryId\\\":{\\\"type\\\":\\\"string\\\"},\\\"limit\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"query\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"mcmaster_discover\\\":{\\\"description\\\":\\\"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\"],\\\"type\\\":\\\"object\\\"},\\\"mcmaster_open\\\":{\\\"description\\\":\\\"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"measure\\\":{\\\"description\\\":\\\"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"space\\\":{\\\"enum\\\":[\\\"root\\\"]},\\\"type\\\":{\\\"enum\\\":[\\\"distance\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"type\\\",\\\"space\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_create\\\":{\\\"description\\\":\\\"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\\\",\\\"properties\\\":{\\\"jointOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"jointTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"motionOne\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"motionTwo\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"reversed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"valueOne\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"valueTwo\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"jointOne\\\",\\\"motionOne\\\",\\\"motionTwo\\\",\\\"valueOne\\\",\\\"valueTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_delete\\\":{\\\"description\\\":\\\"Delete a root-owned motion link under the same transaction/recovery contract.\\\",\\\"properties\\\":{\\\"link\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"link\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_edit\\\":{\\\"description\\\":\\\"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\\\",\\\"properties\\\":{\\\"link\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"motionOne\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"motionTwo\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"reversed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"valueOne\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"valueTwo\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"link\\\"],\\\"type\\\":\\\"object\\\"},\\\"new_design\\\":{\\\"description\\\":\\\"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\\\",\\\"properties\\\":{\\\"box\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"depth\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"height\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"width\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"width\\\",\\\"height\\\",\\\"depth\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_delete\\\":{\\\"description\\\":\\\"Delete one selected occurrence through the shared transaction executor.\\\",\\\"properties\\\":{\\\"occurrence\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"occurrence\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_insert\\\":{\\\"description\\\":\\\"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"independentCopy\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"component\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_update\\\":{\\\"description\\\":\\\"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\\\",\\\"properties\\\":{\\\"grounded\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"groundedToParent\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"occurrence\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"occurrence\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_batch\\\":{\\\"description\\\":\\\"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"items\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"create\\\"]},\\\"comment\\\":{\\\"type\\\":\\\"string\\\"},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"unit\\\":{\\\"enum\\\":[\\\"mm\\\",\\\"deg\\\",\\\"kg\\\",\\\"\\\"]}},\\\"required\\\":[\\\"action\\\",\\\"name\\\",\\\"expression\\\",\\\"unit\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"set\\\"]},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"action\\\",\\\"name\\\",\\\"expression\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"delete\\\"]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"action\\\",\\\"name\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"maxItems\\\":128,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_create\\\":{\\\"properties\\\":{\\\"comment\\\":{\\\"type\\\":\\\"string\\\"},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"unit\\\":{\\\"enum\\\":[\\\"mm\\\",\\\"deg\\\",\\\"kg\\\",\\\"\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\",\\\"expression\\\",\\\"unit\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_set\\\":{\\\"description\\\":\\\"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\\\",\\\"properties\\\":{\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\",\\\"expression\\\"],\\\"type\\\":\\\"object\\\"},\\\"plane_create\\\":{\\\"description\\\":\\\"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"offset\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"offset\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"angle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"axis\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"type\\\":{\\\"enum\\\":[\\\"offset\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\"],\\\"type\\\":\\\"object\\\"},\\\"regular_joint_create\\\":{\\\"description\\\":\\\"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometryOne\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"geometryTwo\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"locked\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\",\\\"geometryOne\\\",\\\"geometryTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"regular_joint_edit\\\":{\\\"description\\\":\\\"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometryOne\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"geometryTwo\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"locked\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"offset\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_create\\\":{\\\"description\\\":\\\"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\\\",\\\"properties\\\":{\\\"includeChildren\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrences\\\":{\\\"items\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"occurrences\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_delete\\\":{\\\"description\\\":\\\"Delete an exact rigid group with transaction recovery.\\\",\\\"properties\\\":{\\\"group\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"group\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_edit\\\":{\\\"description\\\":\\\"Rename or suppress an exact rigid group with transaction recovery.\\\",\\\"properties\\\":{\\\"group\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"group\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_constraint\\\":{\\\"description\\\":\\\"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"horizontal\\\",\\\"vertical\\\",\\\"coincident\\\",\\\"parallel\\\",\\\"perpendicular\\\",\\\"tangent\\\",\\\"equal\\\",\\\"concentric\\\",\\\"collinear\\\",\\\"midpoint\\\",\\\"symmetry\\\",\\\"fix\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"type\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_create\\\":{\\\"description\\\":\\\"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_curve_edit\\\":{\\\"description\\\":\\\"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\\\",\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"trim\\\",\\\"extend\\\",\\\"split\\\",\\\"break\\\"]},\\\"allowDelete\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"createConstraints\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"curve\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"pick\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"sketch\\\",\\\"curve\\\",\\\"action\\\",\\\"pick\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_diagnostics\\\":{\\\"description\\\":\\\"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\\\",\\\"properties\\\":{\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sketch\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_dimension\\\":{\\\"description\\\":\\\"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"expression\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"parameterName\\\":{\\\"type\\\":\\\"string\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"distance\\\",\\\"horizontal\\\",\\\"vertical\\\",\\\"radius\\\",\\\"diameter\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"type\\\",\\\"entities\\\",\\\"expression\\\",\\\"position\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_edit\\\":{\\\"description\\\":\\\"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"fixed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"radius\\\":{\\\"type\\\":\\\"number\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"entity\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_geometry\\\":{\\\"description\\\":\\\"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\\\",\\\"properties\\\":{\\\"items\\\":{\\\"items\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"point\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"position\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"line\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rectangle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"radius\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"circle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"radius\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sweep\\\":{\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"arc\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"start\\\",\\\"sweep\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"radius\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"sides\\\":{\\\"maximum\\\":128,\\\"minimum\\\":3,\\\"type\\\":\\\"integer\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"polygon\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"radius\\\",\\\"sides\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"slot\\\"]},\\\"width\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\",\\\"width\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"closed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"points\\\":{\\\"items\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"maxItems\\\":128,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"spline\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"points\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"maxItems\\\":128,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"items\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_offset\\\":{\\\"description\\\":\\\"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\\\",\\\"properties\\\":{\\\"curves\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"topologyMatched\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"sketch\\\",\\\"curves\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_project\\\":{\\\"description\\\":\\\"Project selected topology into a sketch with Fusion associative projection.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"transaction_probe\\\":{\\\"description\\\":\\\"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"}},\\\"schemaVersion\\\":1,\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60,\\\"transactions\\\":{\\\"externalEffects\\\":\\\"exports publish atomically; model recovery does not undo files\\\",\\\"genericAtomicBatch\\\":false,\\\"newDesignRecovery\\\":\\\"discard only the new unsaved document\\\",\\\"parameterRecovery\\\":\\\"compensating expression restore with semantic readback\\\",\\\"typedModelOperations\\\":{\\\"backend\\\":\\\"PTransaction\\\",\\\"evidence\\\":null,\\\"scope\\\":\\\"one active Fusion Design; no document lifecycle, files or cloud effects\\\",\\\"verified\\\":false}},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60,\n \"transactions\": {\n \"externalEffects\": \"exports publish atomically; model recovery does not undo files\",\n \"genericAtomicBatch\": false,\n \"newDesignRecovery\": \"discard only the new unsaved document\",\n \"parameterRecovery\": \"compensating expression restore with semantic readback\",\n \"typedModelOperations\": {\n \"backend\": \"PTransaction\",\n \"evidence\": null,\n \"scope\": \"one active Fusion Design; no document lifecycle, files or cloud effects\",\n \"verified\": false\n }\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235757.5789392, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "durationMs": 131, + "error": "", + "idempotency": { + "admission": "FULL SQLite commit before native dispatch", + "capacity": 10000, + "databaseByteLimit": 67108864, + "recordByteLimit": 4194304, + "restartBehavior": "old-session history is readable; native execution never replays across sessions", + "scope": "durable history keyed by add-in session and operation ID", + "storageVersion": 1 + }, + "operations": { + "assembly_properties": { + "description": "High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.", + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "bom": { + "description": "Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.", + "properties": { + "explodePurchased": { + "type": "boolean" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "bom_export": { + "description": "Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.", + "properties": { + "explodePurchased": { + "type": "boolean" + }, + "filename": { + "type": "string" + }, + "mode": { + "enum": [ + "flat", + "structured" + ] + }, + "overwrite": { + "type": "boolean" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "filename" + ], + "type": "object" + }, + "cad_import": { + "description": "Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "asPurchased": { + "type": "boolean" + }, + "filename": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [ + "supplier", + "supplierPartNumber", + "sourceUrl" + ], + "type": "object" + }, + "sha256": { + "type": "string" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "filename", + "provenance" + ], + "type": "object" + }, + "component_create": { + "description": "Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "metadata": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "asPurchased": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "excludeFromBom": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "partNumber": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "name": { + "type": "string" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name" + ], + "type": "object" + }, + "component_metadata": { + "description": "Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.", + "properties": { + "changes": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "asPurchased": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "excludeFromBom": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "partNumber": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "changes" + ], + "type": "object" + }, + "configuration_inspect": { + "description": "Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.", + "properties": {}, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "construction_axis": { + "description": "Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.", + "properties": { + "component": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "creationOccurrence": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entities": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "edge", + "circular_face", + "two_planes", + "two_points" + ] + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "type", + "entities" + ], + "type": "object" + }, + "entity_delete": { + "description": "Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.", + "properties": { + "entity": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "entity" + ], + "type": "object" + }, + "export": { + "description": "Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.", + "properties": { + "format": { + "default": "step", + "enum": [ + "step", + "stl", + "3mf", + "f3d", + "iges", + "sat", + "smt", + "usdz", + "fbx", + "skp" + ] + }, + "outputPath": { + "type": "string" + }, + "overwrite": { + "default": false, + "type": "boolean" + }, + "refinement": { + "default": "medium", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "outputPath" + ], + "type": "object" + }, + "feature_create": { + "description": "Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "direction": { + "enum": [ + "positive", + "negative", + "symmetric" + ] + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "taper": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "extrude" + ] + } + }, + "required": [ + "type", + "profiles", + "distance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "revolve" + ] + } + }, + "required": [ + "type", + "profiles", + "axis", + "angle" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "edges": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "radius": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "fillet" + ] + } + }, + "required": [ + "type", + "edges", + "radius" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "edges": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "chamfer" + ] + } + }, + "required": [ + "type", + "edges", + "distance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "thickness": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "type": { + "enum": [ + "shell" + ] + } + }, + "required": [ + "type", + "faces", + "thickness" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "depth": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "diameter": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "points": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "hole" + ] + } + }, + "required": [ + "type", + "points", + "diameter", + "depth", + "bodies" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "loft" + ] + } + }, + "required": [ + "type", + "profiles" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "path": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "sweep" + ] + } + }, + "required": [ + "type", + "profiles", + "path" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "body": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keepTools": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "tools": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "type": { + "enum": [ + "combine" + ] + } + }, + "required": [ + "type", + "body", + "tools", + "operation" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "extend": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "split" + ] + } + }, + "required": [ + "type", + "bodies", + "plane" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "origin": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "translation": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "move" + ] + } + }, + "required": [ + "type", + "bodies" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "mirror" + ] + } + }, + "required": [ + "type", + "bodies", + "plane" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "axis2": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": { + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "count2": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "spacing": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "spacing2": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "rectangular_pattern" + ] + } + }, + "required": [ + "type", + "bodies", + "axis", + "count", + "spacing" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": { + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "circular_pattern" + ] + } + }, + "required": [ + "type", + "bodies", + "axis", + "count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "draft" + ] + } + }, + "required": [ + "type", + "faces", + "plane", + "angle" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "designation": { + "type": "string" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "internal": { + "type": "boolean" + }, + "modeled": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "threadClass": { + "type": "string" + }, + "threadType": { + "type": "string" + }, + "type": { + "enum": [ + "thread" + ] + } + }, + "required": [ + "type", + "faces", + "internal", + "threadType", + "designation", + "threadClass" + ], + "type": "object" + } + ], + "properties": { + "angle": {}, + "axis": {}, + "axis2": {}, + "bodies": {}, + "body": {}, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": {}, + "count2": {}, + "depth": {}, + "designation": {}, + "diameter": {}, + "direction": {}, + "distance": {}, + "edges": {}, + "extend": {}, + "faces": {}, + "internal": {}, + "keepTools": {}, + "modeled": {}, + "name": { + "type": "string" + }, + "operation": {}, + "origin": {}, + "path": {}, + "plane": {}, + "points": {}, + "profiles": {}, + "radius": {}, + "spacing": {}, + "spacing2": {}, + "tangentChain": {}, + "taper": {}, + "thickness": {}, + "threadClass": {}, + "threadType": {}, + "tools": {}, + "translation": {}, + "type": { + "enum": [ + "extrude", + "revolve", + "fillet", + "chamfer", + "shell", + "hole", + "loft", + "sweep", + "combine", + "split", + "move", + "mirror", + "rectangular_pattern", + "circular_pattern", + "draft", + "thread" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type" + ], + "type": "object" + }, + "feature_edit": { + "description": "Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.", + "properties": { + "feature": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "suppressed": { + "type": "boolean" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "feature" + ], + "type": "object" + }, + "geometry_query": { + "description": "Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.", + "properties": { + "body": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "filters": { + "additionalProperties": false, + "properties": { + "area": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "direction": { + "additionalProperties": false, + "properties": { + "orientation": { + "enum": [ + "same", + "parallel" + ] + }, + "tolerance": { + "maximum": 90, + "minimum": 0, + "type": "number" + }, + "vector": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [ + "vector" + ], + "type": "object" + }, + "length": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "near": { + "additionalProperties": false, + "properties": { + "point": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "tolerance": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "point", + "tolerance" + ], + "type": "object" + }, + "radius": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "type": { + "enum": [ + "Plane", + "Cylinder", + "Cone", + "Sphere", + "Torus", + "NurbsSurface", + "Line3D", + "Arc3D", + "Circle3D", + "Ellipse3D", + "EllipticalArc3D", + "NurbsCurve3D", + "Point3D", + "degenerate" + ] + } + }, + "required": [], + "type": "object" + }, + "kind": { + "enum": [ + "faces", + "edges", + "vertices" + ] + }, + "maxResults": { + "maximum": 1024, + "minimum": 1, + "type": "integer" + }, + "selection": { + "enum": [ + "one", + "many" + ] + }, + "space": { + "enum": [ + "root", + "component" + ] + } + }, + "required": [ + "op", + "target", + "body", + "kind", + "space" + ], + "type": "object" + }, + "health": { + "description": "Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.", + "properties": { + "recompute": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "inspect": { + "description": "Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.", + "properties": {}, + "required": [ + "op" + ], + "type": "object" + }, + "inspect_entity": { + "properties": { + "entity": { + "description": "Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.", + "type": "object" + } + }, + "required": [ + "op", + "target", + "entity" + ], + "type": "object" + }, + "interference": { + "description": "Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.", + "properties": { + "entities": { + "items": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 2, + "type": "array" + }, + "includeTouching": { + "type": "boolean" + }, + "volumeTolerance": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "op", + "target", + "entities" + ], + "type": "object" + }, + "joint_create": { + "description": "Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "rigid" + ] + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "revolute" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "slider" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "cylindrical" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "pin_slot" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "planar" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + } + ], + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type", + "occurrenceOne", + "occurrenceTwo" + ], + "type": "object" + }, + "joint_delete": { + "description": "Delete one selected Joint or AsBuiltJoint with recovery verification.", + "properties": { + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "joint_edit": { + "description": "Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.", + "properties": { + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "joint_origin_create": { + "description": "Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "flipped": { + "type": "boolean" + }, + "geometry": { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetZ": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "xAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "zAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "geometry" + ], + "type": "object" + }, + "joint_origin_delete": { + "description": "Delete a native joint origin; unhealthy downstream joints cause transaction rollback.", + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "origin" + ], + "type": "object" + }, + "joint_origin_edit": { + "description": "Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "flipped": { + "type": "boolean" + }, + "geometry": { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetZ": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "xAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "zAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "origin" + ], + "type": "object" + }, + "material_assign": { + "description": "Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.", + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "libraryId": { + "type": "string" + }, + "materialId": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "entity", + "materialId" + ], + "type": "object" + }, + "material_list": { + "description": "List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.", + "properties": { + "libraryId": { + "type": "string" + }, + "limit": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "query": { + "type": "string" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "mcmaster_discover": { + "description": "Discover Fusion native Insert McMaster-Carr command and requirements in the active design.", + "properties": {}, + "required": [ + "op" + ], + "type": "object" + }, + "mcmaster_open": { + "description": "Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.", + "properties": {}, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + }, + "measure": { + "description": "Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.", + "properties": { + "entities": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "space": { + "enum": [ + "root" + ] + }, + "type": { + "enum": [ + "distance", + "angle" + ] + } + }, + "required": [ + "op", + "target", + "type", + "space", + "entities" + ], + "type": "object" + }, + "motion_link_create": { + "description": "Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.", + "properties": { + "jointOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "jointTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "motionOne": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "motionTwo": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "reversed": { + "type": "boolean" + }, + "valueOne": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "valueTwo": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "jointOne", + "motionOne", + "motionTwo", + "valueOne", + "valueTwo" + ], + "type": "object" + }, + "motion_link_delete": { + "description": "Delete a root-owned motion link under the same transaction/recovery contract.", + "properties": { + "link": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "link" + ], + "type": "object" + }, + "motion_link_edit": { + "description": "Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.", + "properties": { + "link": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "motionOne": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "motionTwo": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "reversed": { + "type": "boolean" + }, + "suppressed": { + "type": "boolean" + }, + "valueOne": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "valueTwo": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "link" + ], + "type": "object" + }, + "new_design": { + "description": "Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.", + "properties": { + "box": { + "additionalProperties": false, + "properties": { + "depth": { + "exclusiveMinimum": 0, + "type": "number" + }, + "height": { + "exclusiveMinimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "width", + "height", + "depth" + ], + "type": "object" + }, + "name": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId" + ], + "type": "object" + }, + "occurrence_delete": { + "description": "Delete one selected occurrence through the shared transaction executor.", + "properties": { + "occurrence": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "occurrence" + ], + "type": "object" + }, + "occurrence_insert": { + "description": "Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "independentCopy": { + "type": "boolean" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "component" + ], + "type": "object" + }, + "occurrence_update": { + "description": "Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.", + "properties": { + "grounded": { + "type": "boolean" + }, + "groundedToParent": { + "type": "boolean" + }, + "occurrence": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "occurrence" + ], + "type": "object" + }, + "parameter_batch": { + "description": "Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.", + "properties": { + "changes": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "create" + ] + }, + "comment": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + }, + "unit": { + "enum": [ + "mm", + "deg", + "kg", + "" + ] + } + }, + "required": [ + "action", + "name", + "expression", + "unit" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "set" + ] + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "action", + "name", + "expression" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "delete" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + } + ] + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "changes" + ], + "type": "object" + }, + "parameter_create": { + "properties": { + "comment": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + }, + "unit": { + "enum": [ + "mm", + "deg", + "kg", + "" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name", + "expression", + "unit" + ], + "type": "object" + }, + "parameter_set": { + "description": "Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.", + "properties": { + "expression": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name", + "expression" + ], + "type": "object" + }, + "plane_create": { + "description": "Create offset plane (offset in mm) or angled plane around axis (angle in deg).", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "offset": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "offset" + ] + } + }, + "required": [ + "type", + "offset" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "angle" + ] + } + }, + "required": [ + "type", + "axis", + "angle" + ], + "type": "object" + } + ], + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "offset": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "type": { + "enum": [ + "offset", + "angle" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type" + ], + "type": "object" + }, + "regular_joint_create": { + "description": "Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "flipped": { + "type": "boolean" + }, + "geometryOne": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "geometryTwo": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "locked": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "offset": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type", + "geometryOne", + "geometryTwo" + ], + "type": "object" + }, + "regular_joint_edit": { + "description": "Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "flipped": { + "type": "boolean" + }, + "geometryOne": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "geometryTwo": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "locked": { + "type": "boolean" + }, + "offset": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "rigid_group_create": { + "description": "Create a native rigid group from exact occurrence instances; includeChildren defaults true.", + "properties": { + "includeChildren": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "occurrences": { + "items": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "occurrences" + ], + "type": "object" + }, + "rigid_group_delete": { + "description": "Delete an exact rigid group with transaction recovery.", + "properties": { + "group": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "group" + ], + "type": "object" + }, + "rigid_group_edit": { + "description": "Rename or suppress an exact rigid group with transaction recovery.", + "properties": { + "group": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "group" + ], + "type": "object" + }, + "sketch_constraint": { + "description": "Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "type": { + "enum": [ + "horizontal", + "vertical", + "coincident", + "parallel", + "perpendicular", + "tangent", + "equal", + "concentric", + "collinear", + "midpoint", + "symmetry", + "fix" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "type", + "entities" + ], + "type": "object" + }, + "sketch_create": { + "description": "Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.", + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + }, + "sketch_curve_edit": { + "description": "Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.", + "properties": { + "action": { + "enum": [ + "trim", + "extend", + "split", + "break" + ] + }, + "allowDelete": { + "type": "boolean" + }, + "createConstraints": { + "type": "boolean" + }, + "curve": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "pick": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "sketch", + "curve", + "action", + "pick" + ], + "type": "object" + }, + "sketch_diagnostics": { + "description": "Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.", + "properties": { + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sketch" + ], + "type": "object" + }, + "sketch_dimension": { + "description": "Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "expression": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "parameterName": { + "type": "string" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "type": { + "enum": [ + "distance", + "horizontal", + "vertical", + "radius", + "diameter", + "angle" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "type", + "entities", + "expression", + "position" + ], + "type": "object" + }, + "sketch_edit": { + "description": "Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.", + "properties": { + "changes": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "fixed": { + "type": "boolean" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "radius": { + "type": "number" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + } + }, + "required": [], + "type": "object" + }, + "entity": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "entity", + "changes" + ], + "type": "object" + }, + "sketch_geometry": { + "description": "Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.", + "properties": { + "items": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "point" + ] + } + }, + "required": [ + "type", + "position" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "line" + ] + } + }, + "required": [ + "type", + "start", + "end" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "rectangle" + ] + } + }, + "required": [ + "type", + "start", + "end" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "radius": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "enum": [ + "circle" + ] + } + }, + "required": [ + "type", + "center", + "radius" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sweep": { + "type": "number" + }, + "type": { + "enum": [ + "arc" + ] + } + }, + "required": [ + "type", + "center", + "start", + "sweep" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "type": "number" + }, + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "radius": { + "exclusiveMinimum": 0, + "type": "number" + }, + "sides": { + "maximum": 128, + "minimum": 3, + "type": "integer" + }, + "type": { + "enum": [ + "polygon" + ] + } + }, + "required": [ + "type", + "center", + "radius", + "sides" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "slot" + ] + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "type", + "start", + "end", + "width" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "closed": { + "type": "boolean" + }, + "construction": { + "type": "boolean" + }, + "points": { + "items": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "maxItems": 128, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "spline" + ] + } + }, + "required": [ + "type", + "points" + ], + "type": "object" + } + ] + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "items" + ], + "type": "object" + }, + "sketch_offset": { + "description": "Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.", + "properties": { + "curves": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "topologyMatched": { + "type": "boolean" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "sketch", + "curves", + "distance" + ], + "type": "object" + }, + "sketch_project": { + "description": "Project selected topology into a sketch with Fusion associative projection.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "entities" + ], + "type": "object" + }, + "transaction_probe": { + "description": "Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.", + "properties": {}, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + } + }, + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"idempotency\":{\"admission\":\"FULL SQLite commit before native dispatch\",\"capacity\":10000,\"databaseByteLimit\":67108864,\"recordByteLimit\":4194304,\"restartBehavior\":\"old-session history is readable; native execution never replays across sessions\",\"scope\":\"durable history keyed by add-in session and operation ID\",\"storageVersion\":1},\"operations\":{\"assembly_properties\":{\"description\":\"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\",\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"bom\":{\"description\":\"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\",\"properties\":{\"explodePurchased\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"bom_export\":{\"description\":\"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\",\"properties\":{\"explodePurchased\":{\"type\":\"boolean\"},\"filename\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"flat\",\"structured\"]},\"overwrite\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"filename\"],\"type\":\"object\"},\"cad_import\":{\"description\":\"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"filename\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"provenance\":{\"additionalProperties\":false,\"properties\":{\"description\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[\"supplier\",\"supplierPartNumber\",\"sourceUrl\"],\"type\":\"object\"},\"sha256\":{\"type\":\"string\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"filename\",\"provenance\"],\"type\":\"object\"},\"component_create\":{\"description\":\"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"metadata\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"},\"excludeFromBom\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"partNumber\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\"],\"type\":\"object\"},\"component_metadata\":{\"description\":\"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\",\"properties\":{\"changes\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"},\"excludeFromBom\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"partNumber\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[],\"type\":\"object\"},\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"changes\"],\"type\":\"object\"},\"configuration_inspect\":{\"description\":\"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\",\"properties\":{},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"construction_axis\":{\"description\":\"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\",\"properties\":{\"component\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"creationOccurrence\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entities\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":2,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"type\":{\"enum\":[\"edge\",\"circular_face\",\"two_planes\",\"two_points\"]}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"type\",\"entities\"],\"type\":\"object\"},\"entity_delete\":{\"description\":\"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\",\"properties\":{\"entity\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"entity\"],\"type\":\"object\"},\"export\":{\"description\":\"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\",\"properties\":{\"format\":{\"default\":\"step\",\"enum\":[\"step\",\"stl\",\"3mf\",\"f3d\",\"iges\",\"sat\",\"smt\",\"usdz\",\"fbx\",\"skp\"]},\"outputPath\":{\"type\":\"string\"},\"overwrite\":{\"default\":false,\"type\":\"boolean\"},\"refinement\":{\"default\":\"medium\",\"enum\":[\"low\",\"medium\",\"high\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"outputPath\"],\"type\":\"object\"},\"feature_create\":{\"description\":\"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"direction\":{\"enum\":[\"positive\",\"negative\",\"symmetric\"]},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"taper\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"extrude\"]}},\"required\":[\"type\",\"profiles\",\"distance\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"revolve\"]}},\"required\":[\"type\",\"profiles\",\"axis\",\"angle\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"edges\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"radius\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"fillet\"]}},\"required\":[\"type\",\"edges\",\"radius\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"edges\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"chamfer\"]}},\"required\":[\"type\",\"edges\",\"distance\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"thickness\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"type\":{\"enum\":[\"shell\"]}},\"required\":[\"type\",\"faces\",\"thickness\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"depth\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"diameter\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"points\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"hole\"]}},\"required\":[\"type\",\"points\",\"diameter\",\"depth\",\"bodies\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"loft\"]}},\"required\":[\"type\",\"profiles\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"path\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"sweep\"]}},\"required\":[\"type\",\"profiles\",\"path\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"body\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keepTools\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"tools\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"type\":{\"enum\":[\"combine\"]}},\"required\":[\"type\",\"body\",\"tools\",\"operation\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"extend\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"split\"]}},\"required\":[\"type\",\"bodies\",\"plane\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"origin\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"translation\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"move\"]}},\"required\":[\"type\",\"bodies\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"mirror\"]}},\"required\":[\"type\",\"bodies\",\"plane\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"axis2\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{\"maximum\":1000,\"minimum\":2,\"type\":\"integer\"},\"count2\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"spacing\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"spacing2\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"rectangular_pattern\"]}},\"required\":[\"type\",\"bodies\",\"axis\",\"count\",\"spacing\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{\"maximum\":1000,\"minimum\":2,\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"circular_pattern\"]}},\"required\":[\"type\",\"bodies\",\"axis\",\"count\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"draft\"]}},\"required\":[\"type\",\"faces\",\"plane\",\"angle\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"designation\":{\"type\":\"string\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"internal\":{\"type\":\"boolean\"},\"modeled\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"threadClass\":{\"type\":\"string\"},\"threadType\":{\"type\":\"string\"},\"type\":{\"enum\":[\"thread\"]}},\"required\":[\"type\",\"faces\",\"internal\",\"threadType\",\"designation\",\"threadClass\"],\"type\":\"object\"}],\"properties\":{\"angle\":{},\"axis\":{},\"axis2\":{},\"bodies\":{},\"body\":{},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{},\"count2\":{},\"depth\":{},\"designation\":{},\"diameter\":{},\"direction\":{},\"distance\":{},\"edges\":{},\"extend\":{},\"faces\":{},\"internal\":{},\"keepTools\":{},\"modeled\":{},\"name\":{\"type\":\"string\"},\"operation\":{},\"origin\":{},\"path\":{},\"plane\":{},\"points\":{},\"profiles\":{},\"radius\":{},\"spacing\":{},\"spacing2\":{},\"tangentChain\":{},\"taper\":{},\"thickness\":{},\"threadClass\":{},\"threadType\":{},\"tools\":{},\"translation\":{},\"type\":{\"enum\":[\"extrude\",\"revolve\",\"fillet\",\"chamfer\",\"shell\",\"hole\",\"loft\",\"sweep\",\"combine\",\"split\",\"move\",\"mirror\",\"rectangular_pattern\",\"circular_pattern\",\"draft\",\"thread\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\"],\"type\":\"object\"},\"feature_edit\":{\"description\":\"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\",\"properties\":{\"feature\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"parameters\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\"},\"suppressed\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"feature\"],\"type\":\"object\"},\"geometry_query\":{\"description\":\"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\",\"properties\":{\"body\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"filters\":{\"additionalProperties\":false,\"properties\":{\"area\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"direction\":{\"additionalProperties\":false,\"properties\":{\"orientation\":{\"enum\":[\"same\",\"parallel\"]},\"tolerance\":{\"maximum\":90,\"minimum\":0,\"type\":\"number\"},\"vector\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[\"vector\"],\"type\":\"object\"},\"length\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"near\":{\"additionalProperties\":false,\"properties\":{\"point\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"tolerance\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[\"point\",\"tolerance\"],\"type\":\"object\"},\"radius\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"type\":{\"enum\":[\"Plane\",\"Cylinder\",\"Cone\",\"Sphere\",\"Torus\",\"NurbsSurface\",\"Line3D\",\"Arc3D\",\"Circle3D\",\"Ellipse3D\",\"EllipticalArc3D\",\"NurbsCurve3D\",\"Point3D\",\"degenerate\"]}},\"required\":[],\"type\":\"object\"},\"kind\":{\"enum\":[\"faces\",\"edges\",\"vertices\"]},\"maxResults\":{\"maximum\":1024,\"minimum\":1,\"type\":\"integer\"},\"selection\":{\"enum\":[\"one\",\"many\"]},\"space\":{\"enum\":[\"root\",\"component\"]}},\"required\":[\"op\",\"target\",\"body\",\"kind\",\"space\"],\"type\":\"object\"},\"health\":{\"description\":\"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\",\"properties\":{\"recompute\":{\"default\":false,\"type\":\"boolean\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"inspect\":{\"description\":\"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\",\"properties\":{},\"required\":[\"op\"],\"type\":\"object\"},\"inspect_entity\":{\"properties\":{\"entity\":{\"description\":\"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\",\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"entity\"],\"type\":\"object\"},\"interference\":{\"description\":\"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":2,\"type\":\"array\"},\"includeTouching\":{\"type\":\"boolean\"},\"volumeTolerance\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[\"op\",\"target\",\"entities\"],\"type\":\"object\"},\"joint_create\":{\"description\":\"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"rigid\"]}},\"required\":[\"type\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"revolute\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"slider\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"cylindrical\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"pin_slot\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"planar\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"}],\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\",\"occurrenceOne\",\"occurrenceTwo\"],\"type\":\"object\"},\"joint_delete\":{\"description\":\"Delete one selected Joint or AsBuiltJoint with recovery verification.\",\"properties\":{\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"joint_edit\":{\"description\":\"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\",\"properties\":{\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"joint_origin_create\":{\"description\":\"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"flipped\":{\"type\":\"boolean\"},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetZ\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"xAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"zAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"geometry\"],\"type\":\"object\"},\"joint_origin_delete\":{\"description\":\"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\",\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"origin\"],\"type\":\"object\"},\"joint_origin_edit\":{\"description\":\"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"flipped\":{\"type\":\"boolean\"},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetZ\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"xAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"zAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"origin\"],\"type\":\"object\"},\"material_assign\":{\"description\":\"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\",\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"libraryId\":{\"type\":\"string\"},\"materialId\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"entity\",\"materialId\"],\"type\":\"object\"},\"material_list\":{\"description\":\"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\",\"properties\":{\"libraryId\":{\"type\":\"string\"},\"limit\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\"},\"query\":{\"type\":\"string\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"mcmaster_discover\":{\"description\":\"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\",\"properties\":{},\"required\":[\"op\"],\"type\":\"object\"},\"mcmaster_open\":{\"description\":\"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\",\"properties\":{},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"},\"measure\":{\"description\":\"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"space\":{\"enum\":[\"root\"]},\"type\":{\"enum\":[\"distance\",\"angle\"]}},\"required\":[\"op\",\"target\",\"type\",\"space\",\"entities\"],\"type\":\"object\"},\"motion_link_create\":{\"description\":\"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\",\"properties\":{\"jointOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"jointTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"motionOne\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"motionTwo\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"reversed\":{\"type\":\"boolean\"},\"valueOne\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"valueTwo\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"jointOne\",\"motionOne\",\"motionTwo\",\"valueOne\",\"valueTwo\"],\"type\":\"object\"},\"motion_link_delete\":{\"description\":\"Delete a root-owned motion link under the same transaction/recovery contract.\",\"properties\":{\"link\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"link\"],\"type\":\"object\"},\"motion_link_edit\":{\"description\":\"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\",\"properties\":{\"link\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"motionOne\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"motionTwo\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"reversed\":{\"type\":\"boolean\"},\"suppressed\":{\"type\":\"boolean\"},\"valueOne\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"valueTwo\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"link\"],\"type\":\"object\"},\"new_design\":{\"description\":\"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\",\"properties\":{\"box\":{\"additionalProperties\":false,\"properties\":{\"depth\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"height\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"width\":{\"exclusiveMinimum\":0,\"type\":\"number\"}},\"required\":[\"width\",\"height\",\"depth\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\"],\"type\":\"object\"},\"occurrence_delete\":{\"description\":\"Delete one selected occurrence through the shared transaction executor.\",\"properties\":{\"occurrence\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"occurrence\"],\"type\":\"object\"},\"occurrence_insert\":{\"description\":\"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"independentCopy\":{\"type\":\"boolean\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"component\"],\"type\":\"object\"},\"occurrence_update\":{\"description\":\"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\",\"properties\":{\"grounded\":{\"type\":\"boolean\"},\"groundedToParent\":{\"type\":\"boolean\"},\"occurrence\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"occurrence\"],\"type\":\"object\"},\"parameter_batch\":{\"description\":\"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\",\"properties\":{\"changes\":{\"items\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"create\"]},\"comment\":{\"type\":\"string\"},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"unit\":{\"enum\":[\"mm\",\"deg\",\"kg\",\"\"]}},\"required\":[\"action\",\"name\",\"expression\",\"unit\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"set\"]},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"action\",\"name\",\"expression\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"delete\"]},\"name\":{\"type\":\"string\"}},\"required\":[\"action\",\"name\"],\"type\":\"object\"}]},\"maxItems\":128,\"minItems\":1,\"type\":\"array\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"changes\"],\"type\":\"object\"},\"parameter_create\":{\"properties\":{\"comment\":{\"type\":\"string\"},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"unit\":{\"enum\":[\"mm\",\"deg\",\"kg\",\"\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\",\"expression\",\"unit\"],\"type\":\"object\"},\"parameter_set\":{\"description\":\"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\",\"properties\":{\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\",\"expression\"],\"type\":\"object\"},\"plane_create\":{\"description\":\"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"offset\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"offset\"]}},\"required\":[\"type\",\"offset\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"angle\"]}},\"required\":[\"type\",\"axis\",\"angle\"],\"type\":\"object\"}],\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"offset\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"type\":{\"enum\":[\"offset\",\"angle\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\"],\"type\":\"object\"},\"regular_joint_create\":{\"description\":\"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"flipped\":{\"type\":\"boolean\"},\"geometryOne\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"geometryTwo\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"locked\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"offset\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\",\"geometryOne\",\"geometryTwo\"],\"type\":\"object\"},\"regular_joint_edit\":{\"description\":\"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"flipped\":{\"type\":\"boolean\"},\"geometryOne\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"geometryTwo\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"locked\":{\"type\":\"boolean\"},\"offset\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"rigid_group_create\":{\"description\":\"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\",\"properties\":{\"includeChildren\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"occurrences\":{\"items\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":2,\"type\":\"array\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"occurrences\"],\"type\":\"object\"},\"rigid_group_delete\":{\"description\":\"Delete an exact rigid group with transaction recovery.\",\"properties\":{\"group\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"group\"],\"type\":\"object\"},\"rigid_group_edit\":{\"description\":\"Rename or suppress an exact rigid group with transaction recovery.\",\"properties\":{\"group\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"group\"],\"type\":\"object\"},\"sketch_constraint\":{\"description\":\"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"type\":{\"enum\":[\"horizontal\",\"vertical\",\"coincident\",\"parallel\",\"perpendicular\",\"tangent\",\"equal\",\"concentric\",\"collinear\",\"midpoint\",\"symmetry\",\"fix\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"type\",\"entities\"],\"type\":\"object\"},\"sketch_create\":{\"description\":\"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\",\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"},\"sketch_curve_edit\":{\"description\":\"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\",\"properties\":{\"action\":{\"enum\":[\"trim\",\"extend\",\"split\",\"break\"]},\"allowDelete\":{\"type\":\"boolean\"},\"createConstraints\":{\"type\":\"boolean\"},\"curve\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"pick\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"sketch\",\"curve\",\"action\",\"pick\"],\"type\":\"object\"},\"sketch_diagnostics\":{\"description\":\"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\",\"properties\":{\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sketch\"],\"type\":\"object\"},\"sketch_dimension\":{\"description\":\"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"expression\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"parameterName\":{\"type\":\"string\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"type\":{\"enum\":[\"distance\",\"horizontal\",\"vertical\",\"radius\",\"diameter\",\"angle\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"type\",\"entities\",\"expression\",\"position\"],\"type\":\"object\"},\"sketch_edit\":{\"description\":\"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\",\"properties\":{\"changes\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"fixed\":{\"type\":\"boolean\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"radius\":{\"type\":\"number\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"},\"entity\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"entity\",\"changes\"],\"type\":\"object\"},\"sketch_geometry\":{\"description\":\"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\",\"properties\":{\"items\":{\"items\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"point\"]}},\"required\":[\"type\",\"position\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"line\"]}},\"required\":[\"type\",\"start\",\"end\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"rectangle\"]}},\"required\":[\"type\",\"start\",\"end\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"radius\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"type\":{\"enum\":[\"circle\"]}},\"required\":[\"type\",\"center\",\"radius\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sweep\":{\"type\":\"number\"},\"type\":{\"enum\":[\"arc\"]}},\"required\":[\"type\",\"center\",\"start\",\"sweep\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"type\":\"number\"},\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"radius\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"sides\":{\"maximum\":128,\"minimum\":3,\"type\":\"integer\"},\"type\":{\"enum\":[\"polygon\"]}},\"required\":[\"type\",\"center\",\"radius\",\"sides\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"slot\"]},\"width\":{\"exclusiveMinimum\":0,\"type\":\"number\"}},\"required\":[\"type\",\"start\",\"end\",\"width\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"closed\":{\"type\":\"boolean\"},\"construction\":{\"type\":\"boolean\"},\"points\":{\"items\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"maxItems\":128,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"spline\"]}},\"required\":[\"type\",\"points\"],\"type\":\"object\"}]},\"maxItems\":128,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"items\"],\"type\":\"object\"},\"sketch_offset\":{\"description\":\"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\",\"properties\":{\"curves\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"topologyMatched\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"sketch\",\"curves\",\"distance\"],\"type\":\"object\"},\"sketch_project\":{\"description\":\"Project selected topology into a sketch with Fusion associative projection.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"entities\"],\"type\":\"object\"},\"transaction_probe\":{\"description\":\"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\",\"properties\":{},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"}},\"schemaVersion\":1,\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60,\"transactions\":{\"externalEffects\":\"exports publish atomically; model recovery does not undo files\",\"genericAtomicBatch\":false,\"newDesignRecovery\":\"discard only the new unsaved document\",\"parameterRecovery\":\"compensating expression restore with semantic readback\",\"typedModelOperations\":{\"backend\":\"PTransaction\",\"evidence\":null,\"scope\":\"one active Fusion Design; no document lifecycle, files or cloud effects\",\"verified\":false}},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "transactions": { + "externalEffects": "exports publish atomically; model recovery does not undo files", + "genericAtomicBatch": false, + "newDesignRecovery": "discard only the new unsaved document", + "parameterRecovery": "compensating expression restore with semantic readback", + "typedModelOperations": { + "backend": "PTransaction", + "evidence": null, + "scope": "one active Fusion Design; no document lifecycle, files or cloud effects", + "verified": false + } + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/restart/qualified-postcheck/historical-acceptance.json b/docs/mechanical-verification/cp8/restart/qualified-postcheck/historical-acceptance.json new file mode 100644 index 0000000..b1eeabd --- /dev/null +++ b/docs/mechanical-verification/cp8/restart/qualified-postcheck/historical-acceptance.json @@ -0,0 +1,32 @@ +{ + "status": "PASS", + "scope": "three exact terminal records survived an add-in session change", + "oldSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "records": [ + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0013-fusion_mech_operation_status.json", + "sha256": "a42eff9e869f5e4035c391b19d5a830f9d656fb9cb9817e2f15aa609d3149130", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-create" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0014-fusion_mech_operation_status.json", + "sha256": "35f322799b3365b3195d02f372bde4c6b0d64f06d6752235f92017bccae5a684", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0015-fusion_mech_operation_status.json", + "sha256": "cc1835b321952ced900838792fc725ad67a153431ccf6354950b28dd4a71254c", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-abort" + } + ], + "capabilitiesSha256": "b885e24cd0b17393e5dd7655b21b64ffb79da543374cdf787ae87340cad23e7c", + "nativeActionsByChecker": 0, + "limitations": [ + "process crash recovery", + "in-flight interruption", + "native replay after restart", + "current model/target usability", + "Application restart/process identity must be separately attested by root." + ] +} diff --git a/docs/mechanical-verification/cp8/restart/qualified-postcheck/native.py b/docs/mechanical-verification/cp8/restart/qualified-postcheck/native.py new file mode 100644 index 0000000..68f982d --- /dev/null +++ b/docs/mechanical-verification/cp8/restart/qualified-postcheck/native.py @@ -0,0 +1,14 @@ +import adsk.core,adsk.fusion,json,threading,os,platform +def run(_context:str): + assert threading.current_thread() is threading.main_thread() + app=adsk.core.Application.get() + assert os.getpid()==55528 and platform.node().lower()=='adom_drew2' + assert app.documents.count==1 + doc=app.activeDocument + assert doc is not None and app.documents.item(0)==doc + assert not doc.isModified and not doc.isSaved and doc.dataFile is None + assert app.userInterface.activeCommand in ('','SelectCommand','Select') + design=adsk.fusion.Design.cast(doc.products.itemByProductType('DesignProductType')) + assert design is not None + assert design.rootComponent.bRepBodies.count==design.rootComponent.sketches.count==design.rootComponent.allOccurrences.count==design.timeline.count==0 + print('ADOM_HISTORY_POSTCHECK='+json.dumps({'success':True,'pid':os.getpid(),'host':platform.node(),'fusionVersion':app.version,'creationId':doc.creationId,'modified':doc.isModified,'saved':doc.isSaved,'geometryEmpty':True})) diff --git a/docs/mechanical-verification/cp8/restart/qualified-postcheck/result.json b/docs/mechanical-verification/cp8/restart/qualified-postcheck/result.json new file mode 100644 index 0000000..ba4898e --- /dev/null +++ b/docs/mechanical-verification/cp8/restart/qualified-postcheck/result.json @@ -0,0 +1,69 @@ +{ + "status": "QUALIFIED_PASS", + "originalOverall": "FAIL", + "originalFailure": "Postcheck harness UnboundLocalError before native getter; original report retained", + "originalReportSha256": "3a4c31643bb11226b7cf4f2b5bef1e193f20a5cdc84f4d82e964da2bffcd2244", + "historicalAcceptance": { + "status": "PASS", + "scope": "three exact terminal records survived an add-in session change", + "oldSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "records": [ + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0013-fusion_mech_operation_status.json", + "sha256": "a42eff9e869f5e4035c391b19d5a830f9d656fb9cb9817e2f15aa609d3149130", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-create" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0014-fusion_mech_operation_status.json", + "sha256": "35f322799b3365b3195d02f372bde4c6b0d64f06d6752235f92017bccae5a684", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0015-fusion_mech_operation_status.json", + "sha256": "cc1835b321952ced900838792fc725ad67a153431ccf6354950b28dd4a71254c", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-abort" + } + ], + "capabilitiesSha256": "b885e24cd0b17393e5dd7655b21b64ffb79da543374cdf787ae87340cad23e7c", + "nativeActionsByChecker": 0, + "limitations": [ + "process crash recovery", + "in-flight interruption", + "native replay after restart", + "current model/target usability", + "Application restart/process identity must be separately attested by root." + ] + }, + "beforeProcess": { + "host": "ADOM_DREW2", + "pid": 41728, + "createdUtc": "2026-10-05T21:01:46.6536380Z", + "executable": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\Fusion360.exe" + }, + "afterProcess": { + "host": "ADOM_DREW2", + "pid": 55528, + "createdUtc": "2026-10-05T21:27:16.9237550Z", + "executable": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\Fusion360.exe" + }, + "afterNative": { + "success": true, + "pid": 55528, + "host": "adom_drew2", + "fusionVersion": "2705.1.30", + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "modified": false, + "saved": false, + "geometryEmpty": true + }, + "preferencesPreserved": true, + "developmentPinPreserved": true, + "restartRequests": 1, + "postcheckReadOnly": true, + "captureRequests": 0, + "shotlogUploadRequests": 0, + "limitations": [ + "Terminal history only; no crash/interrupted mutation/disk-fault claim." + ] +} diff --git a/docs/mechanical-verification/cp8/restart/report.json b/docs/mechanical-verification/cp8/restart/report.json new file mode 100644 index 0000000..f9794d1 --- /dev/null +++ b/docs/mechanical-verification/cp8/restart/report.json @@ -0,0 +1,144 @@ +{ + "status": "FAIL", + "captureRequests": 0, + "shotlogUploadRequests": 0, + "restartRequests": 1, + "ordinaryEvidence": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-ordinary-1", + "snapshot": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-history-snapshot.json", + "beforeProcess": { + "host": "ADOM_DREW2", + "pid": 41728, + "createdUtc": "2026-10-05T21:01:46.6536380Z", + "executable": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\Fusion360.exe" + }, + "beforePin": { + "devPinned": true, + "paused": false, + "installedVersion": "1.12.0-dev.8", + "entryMismatch": false + }, + "beforePreferences": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "beforeNative": { + "success": true, + "pid": 41728, + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "original": { + "creationId": "70b2c575-f830-4751-9f88-2f1f3ab91fb1", + "name": "Untitled", + "modified": false, + "saved": false + } + }, + "closeReceipt": { + "launcherSha256": "EC27389A58B26399D6FAC0E4D73241B1D71F767AD0A51DD8AC60C54F234D81E9", + "launcher": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\6a0c9611291d45bb9226980209917c3d\\FusionLauncher.exe", + "closedPid": 41728, + "graceful": true, + "success": true + }, + "launchReceipt": { + "_hint": "args is an ARRAY \u2014 no shell quoting. Detached (fire-and-forget): returns immediately with pid; use process_kill {pid} to stop it, process_list to check it. window:\"hidden\" suppresses the console. For a script you want to WAIT on, use run_script.", + "durationMs": 19, + "pid": 37992, + "schemaVersion": 1, + "status": "ok", + "success": true, + "timeoutSeconds": 30 + }, + "readinessObservations": [ + { + "host": "ADOM_DREW2", + "processes": [ + { + "ProcessId": 55528 + } + ], + "addin": null, + "listeners": [], + "observationError": "No matching MSFT_NetTCPConnection objects found by CIM query for instances of the ROOT/StandardCimv2/MSFT_NetTCPConnection class on the CIM server: SELECT * FROM MSFT_NetTCPConnection WHERE ((LocalPort = 8774)) AND ((State = 2)). Verify query parameters and retry." + }, + { + "host": "ADOM_DREW2", + "processes": [ + { + "ProcessId": 55528 + } + ], + "addin": null, + "listeners": [], + "observationError": "No matching MSFT_NetTCPConnection objects found by CIM query for instances of the ROOT/StandardCimv2/MSFT_NetTCPConnection class on the CIM server: SELECT * FROM MSFT_NetTCPConnection WHERE ((LocalPort = 8774)) AND ((State = 2)). Verify query parameters and retry." + }, + { + "host": "ADOM_DREW2", + "processes": [ + { + "ProcessId": 55528 + } + ], + "addin": null, + "listeners": [], + "observationError": "No matching MSFT_NetTCPConnection objects found by CIM query for instances of the ROOT/StandardCimv2/MSFT_NetTCPConnection class on the CIM server: SELECT * FROM MSFT_NetTCPConnection WHERE ((LocalPort = 8774)) AND ((State = 2)). Verify query parameters and retry." + }, + { + "host": "ADOM_DREW2", + "processes": [ + { + "ProcessId": 55528 + } + ], + "addin": { + "busy": false, + "version": "1.12.0-dev.8", + "pyThreads": 4 + }, + "listeners": [ + { + "LocalAddress": "127.0.0.1", + "OwningProcess": 55528 + } + ], + "observationError": null + } + ], + "afterProcess": { + "host": "ADOM_DREW2", + "pid": 55528, + "createdUtc": "2026-10-05T21:27:16.9237550Z", + "executable": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\Fusion360.exe" + }, + "capabilitiesCall": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0012-fusion_mech_capabilities.json", + "statusCalls": [ + "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0013-fusion_mech_operation_status.json", + "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0014-fusion_mech_operation_status.json", + "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0015-fusion_mech_operation_status.json" + ], + "afterPin": { + "devPinned": true, + "paused": false, + "installedVersion": "1.12.0-dev.8", + "entryMismatch": false + }, + "afterPreferences": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "error": { + "type": "AssertionError", + "message": "('fusion_mcp_call', [{'path': '$.output.result.content[0].text', 'error': 'Workspace Activated: Design\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\nTraceback (most recent call last):\\n File \"\", line 47, in \\n File \"\", line 30, in run\\nUnboundLocalError: cannot access local variable \\'threading\\' where it is not associated with a value\\n', 'code': None, 'cause': None, 'status': None}, {'path': '$.result.content[0].text', 'error': 'Workspace Activated: Design\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\nTraceback (most recent call last):\\n File \"\", line 47, in \\n File \"\", line 30, in run\\nUnboundLocalError: cannot access local variable \\'threading\\' where it is not associated with a value\\n', 'code': None, 'cause': None, 'status': None}])" + } +} diff --git a/docs/mechanical-verification/cp8/restart-independent-qualification.json b/docs/mechanical-verification/cp8/restart-independent-qualification.json new file mode 100644 index 0000000..f89841c --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-independent-qualification.json @@ -0,0 +1,54 @@ +{ + "status": "QUALIFIED_OFFLINE_PASS", + "originalStatus": "FAIL", + "originalReportSha256": "3a4c31643bb11226b7cf4f2b5bef1e193f20a5cdc84f4d82e964da2bffcd2244", + "qualifiedResultSha256": "0f22946feda5f79f31e4d60ff710300a419f8a53a59818c53b3fad05fa70d3b2", + "sourceR2Sha256": "bcd7d8e30af896dca7b9ce54e69ad61fb1c7c37157949ba7b420dfc53593a0db", + "historyAcceptance": { + "status": "PASS", + "scope": "three exact terminal records survived an add-in session change", + "oldSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "records": [ + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0013-fusion_mech_operation_status.json", + "sha256": "a42eff9e869f5e4035c391b19d5a830f9d656fb9cb9817e2f15aa609d3149130", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-create" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0014-fusion_mech_operation_status.json", + "sha256": "35f322799b3365b3195d02f372bde4c6b0d64f06d6752235f92017bccae5a684", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth" + }, + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-restart-history-2/calls/0015-fusion_mech_operation_status.json", + "sha256": "cc1835b321952ced900838792fc725ad67a153431ccf6354950b28dd4a71254c", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-abort" + } + ], + "capabilitiesSha256": "b885e24cd0b17393e5dd7655b21b64ffb79da543374cdf787ae87340cad23e7c", + "nativeActionsByChecker": 0, + "limitations": [ + "process crash recovery", + "in-flight interruption", + "native replay after restart", + "current model/target usability", + "Application restart/process identity must be separately attested by root." + ] + }, + "verifiedCalls": 20, + "restartCount": 1, + "processChange": [ + 41728, + 55528 + ], + "freshPristineDocumentCreationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "samePostrestartSessionAfterPostcheck": true, + "wireAndRawEvidenceBound": true, + "sequentialCalls": true, + "nativeCallsByReviewer": 0, + "limitations": [ + "Exactly three completed terminal records across one graceful restart; no crash, in-flight interruption, recovery replay or historical target usability.", + "Original end-to-end report remains FAIL; separate read-only final postcheck qualifies the missing postcondition." + ] +} diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/before-native.py b/docs/mechanical-verification/cp8/restart-preflight-original/before-native.py new file mode 100644 index 0000000..355b7ed --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/before-native.py @@ -0,0 +1,283 @@ +import threading, builtins +if threading.current_thread() is not threading.main_thread(): + raise RuntimeError('Busy probe requires the native main thread') +_registry = getattr(builtins, '_adom_mechanical_ralph_runs', None) +if not isinstance(_registry, dict) or '20261005T210310Z-568fe7869d0b41d5a83014811fe170ac' not in _registry: + raise RuntimeError('Existing exact run registry is required') +import json +REQUEST = json.loads('{"action": "inventory", "runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", "host": "ADOM_DREW2", "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d"}') + +import base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile + +def require(condition, message): + if not condition: + raise RuntimeError(message) + +def same(a, b): + if isinstance(a, bool) or isinstance(b, bool): + return type(a) is type(b) and a == b + if isinstance(a, (int, float)) and isinstance(b, (int, float)): + return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7) + if isinstance(a, dict) and isinstance(b, dict): + return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a) + if isinstance(a, list) and isinstance(b, list): + return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b)) + return a == b + +def vector(p): + return [p.x * 10, p.y * 10, p.z * 10] + +def body_measure(body): + properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy) + box = body.boundingBox + return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass, + 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count, + 'bounds': [vector(box.minPoint), vector(box.maxPoint)], + 'material': body.material.name if body.material else None} + +def witness(document): + design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType')) + require(design is not None, 'Owned document is no longer a design') + root = design.rootComponent + components, occurrences = [], [] + all_bodies = [body_measure(b) for b in root.bRepBodies] + for comp in design.allComponents: + components.append({'name': '' if comp == root else comp.name, + 'partNumber': comp.partNumber, 'description': comp.description, + 'material': comp.material.name if comp.material else None, + 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'}, + 'bodies': [body_measure(b) for b in comp.bRepBodies], + 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained, + 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]}) + for occurrence in root.allOccurrences: + matrix = list(occurrence.transform2.asArray()) + for index in (3, 7, 11): matrix[index] *= 10 + bodies = [body_measure(b) for b in occurrence.bRepBodies] + all_bodies.extend(bodies) + occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name, + 'transform': matrix, 'bodies': bodies}) + props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy) + return {'parameters': {p.name: p.expression for p in design.allParameters}, + 'timelineCount': design.timeline.count, + 'components': sorted(components, key=lambda c: c['name']), + 'occurrences': sorted(occurrences, key=lambda o: o['path']), + 'physical': {'volume': props.volume * 1000, 'mass': props.mass, + 'centerOfMass': vector(props.centerOfMass)}, + 'instanceVolume': sum(b['volume'] for b in all_bodies), + 'instanceCount': len(all_bodies)} + +require(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host') +require(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID') +modules = [m for n, m in list(sys.modules.items()) + if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']] +require(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference') +core = modules[0] +registries = getattr(builtins, '_adom_mechanical_ralph_runs', None) +if registries is None: + registries = {} + builtins._adom_mechanical_ralph_runs = registries +action = REQUEST['action'] +run = registries.get(REQUEST['runId']) + +def documents(): + return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved} + for d in app.documents] + +def idle(): + require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action') + +def fingerprint(document): + return {'creationId': document.creationId, 'name': document.name, + 'modified': document.isModified, 'saved': document.isSaved} + +def owned(document_id, allow_closed=False): + require(document_id in run['documents'], 'Document has no exact native ownership entry') + row = run['documents'][document_id] + if row.get('closed'): + require(allow_closed, 'Owned document is already closed') + return row + document = row['object'] + require(any(d == document for d in app.documents), 'Exact owned document is no longer open') + require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document') + require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally') + design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType')) + marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner') + require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed') + marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId') + require(marker and marker.value == document_id, 'Runtime document marker changed') + return row + +def path_in_scratch(path): + root = os.path.realpath(run['scratch']) + path = os.path.abspath(path) + require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root, + 'Artifact is not inside the owned scratch directory') + require(not os.path.islink(path), 'Artifact is a symlink') + return path + +def file_info(path): + path = path_in_scratch(path) + require(os.path.isfile(path), 'Checkpoint file is absent') + require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget') + with open(path, 'rb') as stream: data = stream.read() + return {'path': path.replace('\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)} + +def register(document, document_id, role): + require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document') + require(document_id not in run['documents'], 'Runtime ID is already registered') + # Retain exact object first, including if marker creation later fails. + row = {'object': document, 'documentId': document_id, 'role': role, + 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None} + run['documents'][document_id] = row + require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned') + design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType')) + design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId']) + design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id) + return row + +def public_row(row): + return {k: v for k, v in row.items() if k not in ('object', 'witness')} + +if action == 'begin': + idle() + require(run is None, 'Native run registry already exists; use recover') + require(app.documents.count > 0, 'An existing active design is required for a read-only baseline') + baseline = documents() + require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start') + scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId']) + require(not os.path.exists(scratch), 'Run scratch already exists') + parent = os.path.dirname(scratch) + require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link') + os.makedirs(scratch) + run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch, + 'baselineObjects': list(app.documents), 'baseline': baseline, + 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)} + registries[REQUEST['runId']] = run + result = {'success': True, 'scratch': scratch.replace('\\', '/'), 'documents': baseline} +else: + require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted') + if action == 'inventory': + result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()], + 'provisionalImportCount': len(run.get('provisionalImports', [])), + 'scratch': run['scratch'].replace('\\', '/')} + elif action == 'register': + idle() + document, design, document_id = core.active(app) + require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result') + row = register(document, document_id, REQUEST['role']) + result = {'success': True, **public_row(row)} + elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'): + row = owned(REQUEST['documentId'], action in ('close', 'verify')) + document = row['object'] + if action == 'verify': + if not row.get('closed'): + checkpoint = row['checkpoint'] + require(checkpoint is not None, 'No verified native checkpoint') + require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed') + require(same(witness(document), row['witness']), 'Model changed since checkpoint') + result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']} + elif action == 'witness': + require(app.activeDocument == document, 'Active document changed; no implicit activation') + result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)} + elif action == 'activate': + idle() + require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']), + 'User selected an external document; refusing activation') + if app.activeDocument != document: + require(document.activate(), 'Owned document activation failed') + result = {'success': True, 'documentId': row['documentId']} + elif action == 'close': + idle() + if not row['closed']: + require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']), + 'User selected an external document; refusing lifecycle changes') + checkpoint = row['checkpoint'] + require(checkpoint is not None, 'No verified native checkpoint') + require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed') + require(same(witness(document), row['witness']), 'Model changed since checkpoint') + require(document.close(False), 'Owned document close returned false') + require(not any(d == document for d in app.documents), 'Owned document still appears in open documents') + row['closed'] = True + result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True} + elif action == 'capture': + require(app.activeDocument == document, 'Active document changed before capture') + path = path_in_scratch(REQUEST['path']) + require(not os.path.exists(path), 'Capture destination already exists') + viewport = app.activeViewport + viewport.fit() + viewport.refresh() + require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed') + result = {'success': True, **file_info(path)} + else: + idle() + require(app.activeDocument == document, 'Active document changed before roundtrip') + path = path_in_scratch(REQUEST['path']) + archive = file_info(path) + before = witness(document) + options = app.importManager.createFusionArchiveImportOptions(path) + imported = app.importManager.importToNewDocument(options) + # Keep the actual returned API object before any fragile getter or + # identity lookup. A provisional object can only be retained/reported. + provisional = {'object': imported} + run.setdefault('provisionalImports', []).append(provisional) + require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document') + reopened_doc, reopened_design, reopened_id = core.active(app) + require(reopened_doc == imported, 'Imported document identity mismatch') + reopened = register(imported, reopened_id, row['role'] + '-reopened') + run['provisionalImports'].remove(provisional) + after = witness(imported) + require(same(before, after), 'Native archive roundtrip changed measured model state') + # Mark both sides only after independent semantic comparison. + for item in (row, reopened): + item['checkpoint'] = archive + item['witness'] = before + result = {'success': True, 'archive': archive, 'before': before, 'after': after, + 'reopened': public_row(reopened), 'source': public_row(row)} + elif action == 'file': + info = file_info(REQUEST['path']) + with open(info['path'], 'rb') as stream: data = stream.read() + result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')} + if REQUEST.get('csv'): + with open(info['path'], encoding='utf-8', newline='') as stream: + result['rows'] = list(csv.DictReader(stream)) + elif action == 'restore': + idle() + require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused') + require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open') + require(len(list(app.documents)) == len(run['baselineObjects']) and + all(any(d == original for d in app.documents) for original in run['baselineObjects']), + 'Document set changed; refusing to change active document') + require(documents() == run['baseline'], 'Original document flags changed') + original = run['activeObject'] + if app.activeDocument != original: + require(original.activate(), 'Original document activation failed') + require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed') + result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId} + else: + raise RuntimeError('Unknown native action') + +EXPECTED = json.loads('{"runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", "host": "ADOM_DREW2", "pid": 41728, "scratch": "C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", "nonce": "7575c5bb7b3b474ab621f55d649416a4", "original": {"creationId": "70b2c575-f830-4751-9f88-2f1f3ab91fb1", "modified": false, "name": "Untitled", "saved": false}}') + +import time, threading +require(threading.current_thread() is threading.main_thread(), 'Main thread changed') +require(os.getpid() == EXPECTED['pid'], 'Native Fusion PID changed') +require(not run.get('provisionalImports') and not run.get('retainRequired'), 'Native recovery remains unresolved') +require(len(run['documents']) <= 1024 and all(row.get('closed') is True and not row.get('retainRequired') for row in run['documents'].values()), 'Owned native document remains open or retained') +require(len(run['baselineObjects']) == 1 and app.documents.count == 1, 'Native original inventory differs') +original = run['activeObject'] +require(app.activeDocument == original and app.documents.item(0) == original and run['baselineObjects'][0] == original, 'Exact original object differs') +require(run['activeFingerprint'] == EXPECTED['original'] and fingerprint(original) == EXPECTED['original'], 'Original fingerprint changed') +require(not original.isModified and not original.isSaved, 'Original is not pristine') +require(documents() == run['baseline'] == [EXPECTED['original']], 'Original baseline changed') +idle() +design = adsk.fusion.Design.cast(original.products.itemByProductType('DesignProductType')) +require(design is not None and design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, 'Original geometry is not pristine') +require(os.path.normcase(os.path.abspath(run['scratch'])) == os.path.normcase(os.path.abspath(EXPECTED['scratch'])), 'Scratch differs from native registry') +require(os.path.isdir(run['scratch']) and os.path.realpath(run['scratch']) == os.path.abspath(run['scratch']), 'Scratch root is linked or absent') +def state(): + require(app.activeDocument == original and app.documents.count == 1 and app.documents.item(0) == original, 'Original object changed during hold') + require(fingerprint(original) == EXPECTED['original'], 'Original fingerprint changed during hold') + require(design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, 'Original geometry changed during hold') + idle() + return fingerprint(original) +result = {'success': True, 'sessionId': EXPECTED['sessionId'], 'runId': EXPECTED['runId'], 'pid': os.getpid(), 'original': state()} diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/calls/0001-run_script.json b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0001-run_script.json new file mode 100644 index 0000000..e79f71b --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0001-run_script.json @@ -0,0 +1,31 @@ +{ + "target": "adom_drew2", + "verb": "run_script", + "args": { + "interpreter": "powershell", + "scriptB64": "JEVycm9yQWN0aW9uUHJlZmVyZW5jZT0nU3RvcCc7CiRjcDhQcm9jZXNzZXM9QChHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICJOYW1lPSdGdXNpb24zNjAuZXhlJyIpOwppZigkY3A4UHJvY2Vzc2VzLkNvdW50IC1uZSAxKXt0aHJvdyAnRXhwZWN0ZWQgZXhhY3RseSBvbmUgRnVzaW9uIHByb2Nlc3MnfTsKJGNwOFByb2Nlc3M9JGNwOFByb2Nlc3Nlc1swXTsKQHtob3N0PSRlbnY6Q09NUFVURVJOQU1FOyBwaWQ9W2ludF0kY3A4UHJvY2Vzcy5Qcm9jZXNzSWQ7IGNyZWF0ZWRVdGM9JGNwOFByb2Nlc3MuQ3JlYXRpb25EYXRlLlRvVW5pdmVyc2FsVGltZSgpLlRvU3RyaW5nKCdvJyk7IGV4ZWN1dGFibGU9JGNwOFByb2Nlc3MuRXhlY3V0YWJsZVBhdGh9IHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzCg==", + "timeoutSeconds": 12, + "reason": "Read process identity for the controlled Fusion restart history test" + }, + "requestJson": "{\"interpreter\": \"powershell\", \"scriptB64\": \"JEVycm9yQWN0aW9uUHJlZmVyZW5jZT0nU3RvcCc7CiRjcDhQcm9jZXNzZXM9QChHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICJOYW1lPSdGdXNpb24zNjAuZXhlJyIpOwppZigkY3A4UHJvY2Vzc2VzLkNvdW50IC1uZSAxKXt0aHJvdyAnRXhwZWN0ZWQgZXhhY3RseSBvbmUgRnVzaW9uIHByb2Nlc3MnfTsKJGNwOFByb2Nlc3M9JGNwOFByb2Nlc3Nlc1swXTsKQHtob3N0PSRlbnY6Q09NUFVURVJOQU1FOyBwaWQ9W2ludF0kY3A4UHJvY2Vzcy5Qcm9jZXNzSWQ7IGNyZWF0ZWRVdGM9JGNwOFByb2Nlc3MuQ3JlYXRpb25EYXRlLlRvVW5pdmVyc2FsVGltZSgpLlRvU3RyaW5nKCdvJyk7IGV4ZWN1dGFibGU9JGNwOFByb2Nlc3MuRXhlY3V0YWJsZVBhdGh9IHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzCg==\", \"timeoutSeconds\": 12, \"reason\": \"Read process identity for the controlled Fusion restart history test\"}", + "runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", + "caller": "Fusion roadmap build", + "startedAt": 1791235280.4419172, + "mutating": false, + "stdout": "{\n \"durationMs\": 843,\n \"exitCode\": 0,\n \"ok\": true,\n \"schemaVersion\": 1,\n \"status\": \"ok\",\n \"stderr\": \"\",\n \"stdout\": \"{\\\"host\\\":\\\"ADOM_DREW2\\\",\\\"pid\\\":41728,\\\"createdUtc\\\":\\\"2026-10-05T21:01:46.6536380Z\\\",\\\"executable\\\":\\\"C:\\\\\\\\Users\\\\\\\\drew\\\\\\\\AppData\\\\\\\\Local\\\\\\\\Autodesk\\\\\\\\webdeploy\\\\\\\\production\\\\\\\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\\\\\\\Fusion360.exe\\\"}\\r\\n\",\n \"success\": true,\n \"timedOut\": false,\n \"timeoutSeconds\": 27\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235281.3539553, + "raw": { + "durationMs": 843, + "exitCode": 0, + "ok": true, + "schemaVersion": 1, + "status": "ok", + "stderr": "", + "stdout": "{\"host\":\"ADOM_DREW2\",\"pid\":41728,\"createdUtc\":\"2026-10-05T21:01:46.6536380Z\",\"executable\":\"C:\\\\Users\\\\drew\\\\AppData\\\\Local\\\\Autodesk\\\\webdeploy\\\\production\\\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\\\Fusion360.exe\"}\r\n", + "success": true, + "timedOut": false, + "timeoutSeconds": 27 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/calls/0002-bridge_list.json b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0002-bridge_list.json new file mode 100644 index 0000000..cd32659 --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0002-bridge_list.json @@ -0,0 +1,1455 @@ +{ + "target": "adom_drew2", + "verb": "bridge_list", + "args": {}, + "requestJson": "{}", + "runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", + "caller": "Fusion roadmap build", + "startedAt": 1791235281.3544703, + "mutating": false, + "stdout": "{\n \"_hint\": \"Per-bridge runtime info. `source` tells you where the bridge code lives: bundled (installer ships it) / cache (wiki-streamed, writable) / third_party (installed via bridge_install). Use bridge_install to add a new bridge from a wiki manifest URL, bridge_pause/resume to control lifecycle without uninstalling, bridge_uninstall to remove. v1.8.0+.\",\n \"_skillsHint\": \"For each bridge here with skillPkg != null, the container should run its `installSkill` to get that bridge's SKILL.md into ~/.claude/skills/ (then `adom-wiki pkg update` keeps them current). skillPkg:null bridges ship their skill in the adom-bridge core pkg (or have none).\",\n \"bridges\": [\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"CAD\",\n \"depsInstallingSec\": null,\n \"description\": \"Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.\",\n \"devPinned\": true,\n \"displayName\": \"Autodesk Fusion 360\",\n \"docs\": \"https://wiki.adom.inc/adom/fusion-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360/adom-fusion-bridge.exe\",\n \"expectedImage\": \"adom-fusion-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/fusion-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360\",\n \"installSkill\": \"adom-wiki pkg install adom/fusion-bridge\",\n \"installedVersion\": \"1.12.0-dev.8\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Python\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791234624522,\n \"latest\": null,\n \"livePids\": [\n 42780\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/fusion360.log\",\n \"manifestSource\": null,\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/fusion-bridge/files/adom-bridge-fusion-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"fusion360\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"Autodesk doesn't ship Fusion 360 for Linux, so there's no host app for the add-in to attach to.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"Fusion 360 runs on macOS; bridge + add-in install paths handled by fusion_detect.py.\",\n \"supported\": true\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 50618,\n \"prewarm\": {\n \"assets\": [\n \"AdomBridge add-in sync\",\n \"PCB design-rules catalog cache\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T15:41:57Z\",\n \"elapsedMs\": 2344,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"fusion_prewarm\",\n \"version\": \"1.12.0-dev.5\"\n },\n \"requiresHostApp\": true,\n \"timeoutSeconds\": null,\n \"verb\": \"fusion_prewarm\"\n },\n \"releasedAt\": \"2026-06-26T06:00:00Z\",\n \"runningImage\": \"adom-fusion-bridge.exe\",\n \"runningVersion\": \"1.12.0-dev.5\",\n \"skillPkg\": \"adom/fusion-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360\",\n \"spawn\": {\n \"entrypoint\": \"adom-fusion-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 50618\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/fusion360\",\n \"status\": \"running\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"tags\": [\n \"fusion360\",\n \"autodesk\",\n \"cad\",\n \"exports\",\n \"aps\",\n \"modeling\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"open\",\n \"seconds\": 150\n }\n ],\n \"verbs\": {\n \"aps_open\": 150,\n \"aps_recent\": 120,\n \"aps_search\": 120,\n \"build_library_3d\": 1800,\n \"capture_library_views\": 600,\n \"close_all_documents\": 90,\n \"demo\": 300,\n \"export_3mf\": 360,\n \"export_board_image\": 90,\n \"export_bom\": 90,\n \"export_cpl\": 90,\n \"export_dwg\": 150,\n \"export_dxf\": 150,\n \"export_f3d\": 360,\n \"export_fbx\": 360,\n \"export_gerbers\": 210,\n \"export_iges\": 360,\n \"export_obj\": 360,\n \"export_sat\": 360,\n \"export_skp\": 360,\n \"export_step\": 360,\n \"export_stl\": 360,\n \"export_usdz\": 360,\n \"generate_package\": 120,\n \"get_preferences\": 25,\n \"install_fusion\": 90,\n \"make_3d_package\": 200,\n \"prewarm\": 120,\n \"run_modeling_script\": 180,\n \"search_cloud_files\": 200,\n \"set_preference\": 40,\n \"signin\": 150,\n \"start\": 90,\n \"walk_cloud_tree\": 620\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 21185.833001128973,\n \"verbCount\": 167,\n \"verbPrefixes\": [\n \"fusion_\"\n ],\n \"verbs\": [\n \"fusion_account\",\n \"fusion_action_ledger\",\n \"fusion_activate_document\",\n \"fusion_addin_status\",\n \"fusion_alerts\",\n \"fusion_apply_fusion_update\",\n \"fusion_aps_browse\",\n \"fusion_aps_create_folder\",\n \"fusion_aps_download\",\n \"fusion_aps_file_info\",\n \"fusion_aps_forget_browser\",\n \"fusion_aps_get\",\n \"fusion_aps_get_browser\",\n \"fusion_aps_open\",\n \"fusion_aps_recent\",\n \"fusion_aps_search\",\n \"fusion_aps_set_browser\",\n \"fusion_aps_set_client_id\",\n \"fusion_aps_signin\",\n \"fusion_aps_status\",\n \"fusion_aps_upload\",\n \"fusion_aps_versions\",\n \"fusion_assembly_bom\",\n \"fusion_attach_3d_package\",\n \"fusion_bind_library_3d\",\n \"fusion_board_info\",\n \"fusion_board_stackup\",\n \"fusion_build_library_3d\",\n \"fusion_cancel_run\",\n \"fusion_capture_library_views\",\n \"fusion_check_recovery\",\n \"fusion_claim_seat\",\n \"fusion_cleanup_cloud_files\",\n \"fusion_close_all_documents\",\n \"fusion_close_document\",\n \"fusion_close_window\",\n \"fusion_create_cloud_folder\",\n \"fusion_create_library\",\n \"fusion_delete_cloud_file\",\n \"fusion_demo\",\n \"fusion_demo_progress\",\n \"fusion_describe\",\n \"fusion_detect_layers\",\n \"fusion_dismiss_blocking_dialogs\",\n \"fusion_document_info\",\n \"fusion_eagle_import_status\",\n \"fusion_electron_pan\",\n \"fusion_electron_run\",\n \"fusion_electron_select\",\n \"fusion_electron_zoom\",\n \"fusion_electronics_query\",\n \"fusion_execute_text_command\",\n \"fusion_export_3mf\",\n \"fusion_export_board_image\",\n \"fusion_export_bom\",\n \"fusion_export_cloud_file\",\n \"fusion_export_cpl\",\n \"fusion_export_dwg\",\n \"fusion_export_dxf\",\n \"fusion_export_eagle_source\",\n \"fusion_export_f3d\",\n \"fusion_export_fbx\",\n \"fusion_export_gerbers\",\n \"fusion_export_iges\",\n \"fusion_export_lbr\",\n \"fusion_export_obj\",\n \"fusion_export_optimized_glb\",\n \"fusion_export_sat\",\n \"fusion_export_skp\",\n \"fusion_export_source\",\n \"fusion_export_step\",\n \"fusion_export_stl\",\n \"fusion_export_usdz\",\n \"fusion_fetch_optimized_glb\",\n \"fusion_generate_package\",\n \"fusion_get_app_state\",\n \"fusion_get_design_info\",\n \"fusion_get_parameters\",\n \"fusion_get_preferences\",\n \"fusion_import_electronics\",\n \"fusion_import_step\",\n \"fusion_inspect_bodies\",\n \"fusion_install_fusion\",\n \"fusion_install_library_bundle\",\n \"fusion_interactive\",\n \"fusion_kill\",\n \"fusion_library_manager\",\n \"fusion_library_parts\",\n \"fusion_list_cloud_files\",\n \"fusion_list_cloud_projects\",\n \"fusion_list_text_commands\",\n \"fusion_live_feed\",\n \"fusion_make_3d_package\",\n \"fusion_make_showcase_project\",\n \"fusion_make_test_project\",\n \"fusion_managed_library_create\",\n \"fusion_managed_library_link\",\n \"fusion_managed_library_pull\",\n \"fusion_managed_library_push\",\n \"fusion_managed_library_unlink\",\n \"fusion_mcp_call\",\n \"fusion_mcp_enable\",\n \"fusion_mcp_resources\",\n \"fusion_mcp_status\",\n \"fusion_mcp_tools\",\n \"fusion_mech_capabilities\",\n \"fusion_mech_operation_status\",\n \"fusion_mechanical\",\n \"fusion_narrate\",\n \"fusion_new_electronics_from_eagle\",\n \"fusion_notify_owner\",\n \"fusion_open_board\",\n \"fusion_open_by_urn\",\n \"fusion_open_by_urn_note\",\n \"fusion_open_cloud_file\",\n \"fusion_open_design\",\n \"fusion_open_electronics\",\n \"fusion_open_lbr\",\n \"fusion_open_schematic\",\n \"fusion_physical_properties\",\n \"fusion_plan_library_import\",\n \"fusion_plan_route\",\n \"fusion_preflight_lbr\",\n \"fusion_prefs_close\",\n \"fusion_prefs_open\",\n \"fusion_prewarm\",\n \"fusion_prove_result\",\n \"fusion_readiness\",\n \"fusion_release_seat\",\n \"fusion_reset_workspace\",\n \"fusion_resolve_seat_dialog\",\n \"fusion_restart_for_addin\",\n \"fusion_route_net\",\n \"fusion_routing_drc\",\n \"fusion_routing_state\",\n \"fusion_run_modeling_script\",\n \"fusion_save_to_cloud\",\n \"fusion_schematic\",\n \"fusion_screenshot_fusion\",\n \"fusion_search_cloud_files\",\n \"fusion_set_auto_update\",\n \"fusion_set_design_rules\",\n \"fusion_set_driving_badge\",\n \"fusion_set_parameter\",\n \"fusion_set_preference\",\n \"fusion_set_seat_takeover\",\n \"fusion_set_window_sizing\",\n \"fusion_show_2d_board\",\n \"fusion_show_3d_board\",\n \"fusion_show_3d_package\",\n \"fusion_show_attributes\",\n \"fusion_show_footprint\",\n \"fusion_show_library\",\n \"fusion_show_project\",\n \"fusion_show_schematic\",\n \"fusion_show_symbol\",\n \"fusion_signin\",\n \"fusion_signin_2fa\",\n \"fusion_start\",\n \"fusion_state\",\n \"fusion_stop\",\n \"fusion_take_screenshot\",\n \"fusion_uninstall\",\n \"fusion_verb_times\",\n \"fusion_view\",\n \"fusion_walk_cloud_tree\",\n \"fusion_web_signin\"\n ],\n \"version\": \"1.12.0-dev.8\",\n \"versionDrift\": true,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"developer-tools\",\n \"depsInstallingSec\": null,\n \"description\": \"Bridge to Hydrogen Desktop's HTTP control API. Drives setup, the Claude workspace, WSL/container lifecycle, and read-only diagnostics via direct HTTP \u2014 no shell-out, no quote mangling. HD runs as a sibling Tauri app; AD does NOT spawn it.\",\n \"devPinned\": false,\n \"displayName\": \"Hydrogen Desktop\",\n \"docs\": \"https://wiki.adom.inc/adom/adom-desktop\",\n \"entryMismatch\": false,\n \"entrypoint\": \"//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd/\",\n \"expectedImage\": null,\n \"heroAvailable\": false,\n \"heroDocs\": \"https://wiki.adom.inc/adom/hydrogen-desktop\",\n \"homepage\": \"https://wiki.adom.inc/adom/adom-desktop\",\n \"installPath\": \"\\\\\\\\?\\\\C:\\\\Users\\\\drew\\\\AppData\\\\Local\\\\Adom Bridge\\\\bridges\\\\hd\",\n \"installSkill\": \"adom-wiki pkg install adom/adom-desktop\",\n \"installedVersion\": \"1.0.0\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": null,\n \"languages\": [],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 0,\n \"latest\": null,\n \"livePids\": [],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/hd.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": null,\n \"manifestUrlFollowed\": null,\n \"name\": \"hd\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"HD currently ships Windows-only; Linux variant in scope for HD's future releases.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"HD currently ships Windows-only.\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": null,\n \"prewarm\": null,\n \"releasedAt\": \"2026-06-30T13:13:22Z\",\n \"runningImage\": null,\n \"runningVersion\": null,\n \"skillPkg\": \"adom/adom-desktop\",\n \"source\": \"bundled\",\n \"sourceDir\": \"//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd\",\n \"spawn\": {\n \"entrypoint\": \"\",\n \"instanceCount\": null,\n \"kind\": \"external-http\",\n \"manifestPort\": 47084,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": null\n },\n \"spawnKind\": \"external-http\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/hd\",\n \"status\": \"stopped\",\n \"statusVerb\": null,\n \"tags\": [\n \"hydrogen-desktop\",\n \"control-api\",\n \"http\",\n \"lifecycle\"\n ],\n \"timeouts\": null,\n \"updateAvailable\": false,\n \"usageScore\": 0.0,\n \"verbCount\": 11,\n \"verbPrefixes\": [],\n \"verbs\": [\n \"hd_api\",\n \"hd_status\",\n \"hd_launch\",\n \"hd_stop\",\n \"hd_restart\",\n \"hd_log\",\n \"hd_screenshot\",\n \"hd_shot\",\n \"hd_open_url\",\n \"hd_browser_profiles\",\n \"hd_ship\"\n ],\n \"version\": \"1.0.0\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"EDA\",\n \"depsInstallingSec\": null,\n \"description\": \"Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.\",\n \"devPinned\": false,\n \"displayName\": \"KiCad EDA\",\n \"docs\": \"https://wiki.adom.inc/adom/kicad-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad/kicad-bridge.exe\",\n \"expectedImage\": \"kicad-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad\",\n \"installSkill\": \"adom-wiki pkg install adom/kicad-bridge\",\n \"installedVersion\": \"1.0.55\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Python\",\n \"PowerShell\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1790956354547,\n \"latest\": \"1.0.55\",\n \"livePids\": [\n 36872\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/kicad.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/kicad-bridge/files/adom-bridge-kicad-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"kicad\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 60896,\n \"prewarm\": {\n \"assets\": [\n \"kicad-cli warm (detection)\",\n \"KiCad first-run config + setup wizard marked done\",\n \"KiCad's own taskbar shortcut identity\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T15:41:58Z\",\n \"elapsedMs\": 273,\n \"error\": null,\n \"ok\": false,\n \"verb\": \"kicad_prewarm\",\n \"version\": \"1.0.55\"\n },\n \"requiresHostApp\": true,\n \"timeoutSeconds\": null,\n \"verb\": \"kicad_prewarm\"\n },\n \"releasedAt\": \"2026-06-26T16:00:00Z\",\n \"runningImage\": \"kicad-bridge.exe\",\n \"runningVersion\": \"1.0.55\",\n \"skillPkg\": \"adom/kicad-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad\",\n \"spawn\": {\n \"entrypoint\": \"kicad-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": 60896\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/kicad\",\n \"status\": \"running\",\n \"statusVerb\": \"kicad_status\",\n \"tags\": [\n \"pcb\",\n \"schematic\",\n \"open-source\",\n \"kicad-10\",\n \"kicad-11-ready\"\n ],\n \"timeouts\": {\n \"default\": 130,\n \"prefixes\": [],\n \"verbs\": {\n \"autoroute\": 900,\n \"demo\": 600,\n \"enable_software_opengl\": 240,\n \"export_gerber\": 210,\n \"export_molecule\": 420,\n \"export_pdf\": 180,\n \"export_step\": 300,\n \"export_svg\": 180,\n \"format_upgrade\": 180,\n \"freerouting\": 900,\n \"open_3d_viewer\": 300,\n \"prewarm\": 120,\n \"run_drc\": 300,\n \"run_erc\": 300,\n \"upgrade\": 900\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 1038.4432350480831,\n \"verbCount\": 119,\n \"verbPrefixes\": [\n \"kicad_\"\n ],\n \"verbs\": [\n \"kicad_describe\",\n \"kicad_status\",\n \"kicad_readiness\",\n \"kicad_list_versions\",\n \"kicad_diagnostics\",\n \"kicad_run_drc\",\n \"kicad_run_erc\",\n \"kicad_export_gerber\",\n \"kicad_export_pdf\",\n \"kicad_export_svg\",\n \"kicad_export_step\",\n \"kicad_export_bom_csv\",\n \"kicad_uninstall\",\n \"kicad_extract_netlist\",\n \"kicad_trace_net\",\n \"kicad_find_connections\",\n \"kicad_analyze_connections\",\n \"kicad_lint_board\",\n \"kicad_lint_schematic\",\n \"kicad_lint_library\",\n \"kicad_format_upgrade\",\n \"kicad_list_symbols\",\n \"kicad_list_footprints\",\n \"kicad_adom_library_status\",\n \"kicad_get_settings\",\n \"kicad_set_settings\",\n \"kicad_list_design_rules\",\n \"kicad_set_design_rules\",\n \"kicad_3d_viewer_settings\",\n \"kicad_taskbar_repair\",\n \"kicad_prewarm\",\n \"kicad_model_check\",\n \"kicad_pcm_list\",\n \"kicad_pcm_install\",\n \"kicad_pcm_uninstall\",\n \"kicad_pcm_add_repository\",\n \"kicad_pcm_remove_repository\",\n \"kicad_check_for_updates\",\n \"kicad_upgrade\",\n \"kicad_sch_place_symbol\",\n \"kicad_sch_wire\",\n \"kicad_sch_label\",\n \"kicad_sch_move\",\n \"kicad_sch_delete\",\n \"kicad_sch_set_property\",\n \"kicad_ipc_api\",\n \"kicad_export_molecule\",\n \"kicad_errors\",\n \"kicad_log_tail\",\n \"kicad_bridge_status\",\n \"kicad_bridge_call\",\n \"kicad_install_plugin\",\n \"kicad_plugin_diagnose\",\n \"kicad_install_library\",\n \"kicad_uninstall_library\",\n \"kicad_install_symbol\",\n \"kicad_install_footprint\",\n \"kicad_install_library_bundle\",\n \"kicad_adom_library_heal\",\n \"kicad_make_part_project\",\n \"kicad_export_part\",\n \"kicad_silk_fields_batch\",\n \"kicad_silk_graphics_batch\",\n \"kicad_text_bounds\",\n \"kicad_silk_text_batch\",\n \"kicad_routing_state\",\n \"kicad_route_net\",\n \"kicad_remove_route\",\n \"kicad_add_zone\",\n \"kicad_apply_zone_plan\",\n \"kicad_zone_state\",\n \"kicad_select_net\",\n \"kicad_select_clear\",\n \"kicad_remove_zone\",\n \"kicad_routing_validate\",\n \"kicad_board_pads\",\n \"kicad_add_track\",\n \"kicad_add_via\",\n \"kicad_route\",\n \"kicad_autoroute\",\n \"kicad_freerouting\",\n \"kicad_placement_state\",\n \"kicad_move_footprint\",\n \"kicad_placement_validate\",\n \"kicad_refresh_board_views\",\n \"kicad_launch\",\n \"kicad_open_board\",\n \"kicad_open_schematic\",\n \"kicad_open_symbol_editor\",\n \"kicad_open_footprint_editor\",\n \"kicad_menu_items\",\n \"kicad_3d_view\",\n \"kicad_open_3d_viewer\",\n \"kicad_open_editors\",\n \"kicad_close\",\n \"kicad_close_symbol_editor\",\n \"kicad_close_footprint_editor\",\n \"kicad_close_3d_viewer\",\n \"kicad_dismiss_dialogs\",\n \"kicad_window_info\",\n \"kicad_state\",\n \"kicad_screenshot_all\",\n \"kicad_send_key\",\n \"kicad_click\",\n \"kicad_fix_keyboard\",\n \"kicad_place_footprint\",\n \"kicad_enable_software_opengl\",\n \"kicad_rescan_libraries\",\n \"kicad_show_project\",\n \"kicad_show_symbol\",\n \"kicad_show_footprint\",\n \"kicad_show_3d_chip\",\n \"kicad_show_schematic\",\n \"kicad_show_2d_board\",\n \"kicad_show_3d_board\",\n \"kicad_show_library\",\n \"kicad_progress\",\n \"kicad_verb_times\",\n \"kicad_demo\"\n ],\n \"version\": \"1.0.55\",\n \"versionDrift\": false,\n \"watcher\": {\n \"configKey\": \"project_watch\",\n \"defaultGlobs\": [\n \"*.kicad_pcb\",\n \"*.kicad_sch\",\n \"*.kicad_pro\"\n ],\n \"description\": \"Monitors a KiCad project folder for file changes and syncs them to Docker. Configured via the set_project_watch / trigger_project_watch verbs (AD core owns the watcher; the KiCad section of AD's Settings panel was removed in AD 1.9.117 \u2014 the config keys are still honored).\",\n \"displayName\": \"Project Watch\",\n \"supports\": true\n }\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Browser Automation\",\n \"depsInstallingSec\": null,\n \"description\": \"Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.\",\n \"devPinned\": false,\n \"displayName\": \"Adom Native Browser\",\n \"docs\": \"https://wiki.adom.inc/adom/nb-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser/server.js\",\n \"expectedImage\": \"node.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/nb-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser\",\n \"installSkill\": \"adom-wiki pkg install adom/nb-bridge\",\n \"installedVersion\": \"0.16.33\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Node/JS\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791220671752,\n \"latest\": \"0.16.33\",\n \"livePids\": [\n 32228\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/native-browser.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/pages/adom/nb-bridge/files/native-browser-bridge-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"native-browser\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"Pending; bridge + host are OS-agnostic Node, only the install/registration layer is Windows-specific.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"Windows-first; Kyle ports to macOS as a fast-follow (NativeMessagingHosts live under ~/Library/Application Support//NativeMessagingHosts; bridge/host are OS-agnostic Node).\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 51703,\n \"prewarm\": {\n \"assets\": [],\n \"lastRun\": {\n \"at\": \"2026-09-22T19:44:55Z\",\n \"elapsedMs\": 41,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"nbrowser_prewarm\",\n \"version\": \"0.16.33\"\n },\n \"requiresHostApp\": false,\n \"timeoutSeconds\": null,\n \"verb\": \"nbrowser_prewarm\"\n },\n \"releasedAt\": \"2026-09-22T15:18:44Z\",\n \"runningImage\": \"node.exe\",\n \"runningVersion\": \"0.16.33\",\n \"skillPkg\": \"adom/nb-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser\",\n \"spawn\": {\n \"entrypoint\": \"server.js\",\n \"instanceCount\": 1,\n \"kind\": \"node\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 51703\n },\n \"spawnKind\": \"node\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/native-browser\",\n \"status\": \"running\",\n \"statusVerb\": \"nbrowser_status\",\n \"tags\": [\n \"nb\",\n \"nbe\",\n \"native-browser\",\n \"chrome\",\n \"edge\",\n \"nbrowser\",\n \"pup-parity\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"screenshot\",\n \"seconds\": 120\n },\n {\n \"prefix\": \"record\",\n \"seconds\": 120\n }\n ],\n \"verbs\": {\n \"fetch_url\": 120,\n \"input_dispatch\": 120,\n \"select\": 30,\n \"wait\": 125\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 917.6387241869782,\n \"verbCount\": 88,\n \"verbPrefixes\": [\n \"nbrowser_\"\n ],\n \"verbs\": [\n \"nbrowser_status\",\n \"nbrowser_readiness\",\n \"nbrowser_install_chrome\",\n \"nbrowser_prewarm\",\n \"nbrowser_chrome_status\",\n \"nbrowser_ping\",\n \"nbrowser_progress\",\n \"nbrowser_activity\",\n \"nbrowser_open_window\",\n \"nbrowser_close_window\",\n \"nbrowser_owned\",\n \"nbrowser_cleanup\",\n \"nbrowser_force_close\",\n \"nbrowser_switch_window\",\n \"nbrowser_list_windows\",\n \"nbrowser_window_state\",\n \"nbrowser_fullscreen\",\n \"nbrowser_login_state\",\n \"nbrowser_credentials\",\n \"nbrowser_profiles\",\n \"nbrowser_use_profile\",\n \"nbrowser_pin_session\",\n \"nbrowser_open_os_window\",\n \"nbrowser_os_windows\",\n \"nbrowser_wake_profile\",\n \"nbrowser_resolve_profiles\",\n \"nbrowser_whoami\",\n \"nbrowser_profile_block\",\n \"nbrowser_profile_unblock\",\n \"nbrowser_rescan\",\n \"nbrowser_resync_sessions\",\n \"nbrowser_open_tab\",\n \"nbrowser_close_tab\",\n \"nbrowser_switch_tab\",\n \"nbrowser_list_tabs\",\n \"nbrowser_navigate\",\n \"nbrowser_reload\",\n \"nbrowser_back\",\n \"nbrowser_forward\",\n \"nbrowser_wait\",\n \"nbrowser_wait_for\",\n \"nbrowser_keepalive\",\n \"nbrowser_screenshot\",\n \"nbrowser_screenshot_full_res\",\n \"nbrowser_eval\",\n \"nbrowser_evaluate\",\n \"nbrowser_input_dispatch\",\n \"nbrowser_scroll\",\n \"nbrowser_click\",\n \"nbrowser_select\",\n \"nbrowser_set_file_input\",\n \"nbrowser_set_date\",\n \"nbrowser_totp\",\n \"nbrowser_register_totp\",\n \"nbrowser_add_extension_origin\",\n \"nbrowser_type\",\n \"nbrowser_press_key\",\n \"nbrowser_fetch_url\",\n \"nbrowser_download_wait\",\n \"nbrowser_errors\",\n \"nbrowser_close\",\n \"nbrowser_record_start\",\n \"nbrowser_record_stop\",\n \"nbrowser_record_status\",\n \"nbrowser_record_list\",\n \"nbrowser_flash\",\n \"nbrowser_flash_stop\",\n \"nbrowser_apply_settings\",\n \"nbrowser_settings\",\n \"nbrowser_flash_mode\",\n \"nbrowser_taskbar\",\n \"nbrowser_describe\",\n \"nbrowser_handle_dialog\",\n \"nbrowser_state\",\n \"nbrowser_demo\",\n \"nbrowser_uninstall\",\n \"nbrowser_dev_reload\",\n \"nbrowser_clear_cookies\",\n \"nbrowser_caption\",\n \"nbrowser_focus\",\n \"nbrowser_hover\",\n \"nbrowser_double_click\",\n \"nbrowser_right_click\",\n \"nbrowser_login_form\",\n \"nbrowser_autologin\",\n \"nbrowser_cursor\",\n \"nbrowser_events\",\n \"nbrowser_download\"\n ],\n \"version\": \"0.16.33\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Manufacturing\",\n \"depsInstallingSec\": null,\n \"description\": \"The Adom Desktop bridge for the Essemtec Puma / ePlace. Reads + dry-run: machine state, recipe/package/component/feeder reads, the full feeder fleet from Supply/Feeder/*.feeder.xml, and dry-run of any WriteOp (preflight + physics-bounds + unified diff). F4 adds puma_write \u2014 GATED production writes of FileWrite.* library objects to real XML files under --data-folder (atomic write + XML-verify + audit; approver enforced; refused when the machine is Productive), plus puma_revert \u2014 canonical revert of a prior write by correlationId (CAS-pinned to the recorded result hash, its own audit entry, same write gate). Off by default: requires --enable-writes. eData stays vendor-read-only. 0.2.5: puma_feeders binds each loaded lane to its component/part number (carrierType, componentName, partValue, packageName, componentBarcode) via the Supply/Carrier -> Component library chain (#639). 0.2.6: the write audit records ab's X-Adom-Verified-Origin (relay | local | bridge, plus the X-Adom-Caller-Delegate chain for a bridge callback; a missing header records as local-unattributed) beside the approver \u2014 attribution, never a gate. New puma_write_status (declared as statusVerb): what happened to a write by correlationId, so a caller whose transport timed out polls instead of declaring the write unknown. 0.2.7: the host is a GUI-subsystem exe (no console window of its own) and its git subprocess runs with CreateNoWindow, so the bridge can never leave a conhost window on the desktop across ab respawns or reinstalls.\",\n \"devPinned\": false,\n \"displayName\": \"Puma Bridge (Essemtec ePlace)\",\n \"docs\": \"https://wiki.adom.inc/adom/puma-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge/puma-bridge-host.exe\",\n \"expectedImage\": \"puma-bridge-host.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/puma-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge\",\n \"installSkill\": \"adom-wiki pkg install adom/puma-bridge\",\n \"installedVersion\": \"0.2.7\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1790623763822,\n \"latest\": \"0.2.6\",\n \"livePids\": [\n 32008\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/puma-bridge.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/adom/puma-bridge/files/adom-bridge-puma-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"puma-bridge\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"\",\n \"supported\": true\n },\n \"macos\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 64764,\n \"prewarm\": null,\n \"releasedAt\": \"2026-09-23T15:54:11Z\",\n \"runningImage\": \"puma-bridge-host.exe\",\n \"runningVersion\": \"0.2.7\",\n \"skillPkg\": \"adom/puma-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge\",\n \"spawn\": {\n \"entrypoint\": \"puma-bridge-host.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 64764\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/puma-bridge\",\n \"status\": \"running\",\n \"statusVerb\": \"puma_write_status\",\n \"tags\": [\n \"smt\",\n \"essemtec\",\n \"puma\",\n \"eplace\",\n \"pick-and-place\",\n \"manufacturing\",\n \"factoryos\"\n ],\n \"timeouts\": null,\n \"updateAvailable\": false,\n \"usageScore\": 2.692769074477472,\n \"verbCount\": 9,\n \"verbPrefixes\": [\n \"puma_\"\n ],\n \"verbs\": [\n \"puma_ping\",\n \"puma_state\",\n \"puma_get\",\n \"puma_feeders\",\n \"puma_dryrun\",\n \"puma_write\",\n \"puma_revert\",\n \"puma_write_status\",\n \"puma_describe\"\n ],\n \"version\": \"0.2.7\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Browser Automation\",\n \"depsInstallingSec\": null,\n \"description\": \"Drives a browser ALREADY on the machine \u2014 installed Chrome, else Microsoft Edge (every Windows PC ships with Edge) \u2014 launched with a FRESH isolated profile, so the common case has NO ~150 MB Chrome-for-Testing download and it never touches the user's real tabs/logins. Binds its local server to LOOPBACK (127.0.0.1) only, so no Windows Firewall 'allow Node through the firewall' prompt ever pops. Chrome for Testing is fetched only as a LAST RESORT if the machine has no Chromium browser at all. SPAWN-VERIFIED fallback: pup tries each detected browser (Chrome \u2192 Edge \u2192 CfT) and actually launches it, falling through to the next if one won't start (and handling browsers like Edge that relaunch onto another PID), so a corrupt/partial install never hard-fails an open. The browser that launches is cached as the default (persisted across restarts) so it isn't re-probed each time. On spawn the bridge SELF-WARMS: detects browsers + disk, and only if the box has no Chrome/Edge and no cached CfT does it background-fetch CfT so the first open is instant. pup_use pins a specific browser (chrome | edge | cft | auto); {browser:'chrome',install:true} downloads & installs REAL Google Chrome (user-scoped, no admin) on an Edge-only box. pup_readiness (READ-ONLY) reports which browser will be used + the full candidate list + the default + free disk. Every failure returns a specific errorCode + _hint (chrome_install_no_disk, chrome_download_network, chrome_install_permission, chrome_stable_not_detected, \u2026). Launches with FULL browser permissions by default for full debug (strictPermissions:true opts out). Headful automation: open/close windows+tabs, navigate, screenshot, eval JS, record. pup is a GENERIC, non-profile browser only \u2014 every session is a fresh isolated Chrome/Edge process, never the user's real signed-in browser; profile defaults to sessionId. To drive the user's REAL Chrome/Edge (their profile, cookies, SSO), use the Adom browser EXTENSION's nbrowser_* verbs \u2014 a separate bridge, not pup's job. macOS (v1.9.74+): full parity with mac-native mechanics \u2014 background-by-default is the app-level hide (windows stay drivable/screenshottable while hidden), raise/lower map to unhide+activate/hide, pup_alert_window posts a native toast whose click focuses the window, pup_use {browser:'chrome',install:true} installs Chrome from the official dmg, and taskbar identity/badging remains Windows-only.\",\n \"devPinned\": false,\n \"displayName\": \"Puppeteer (Chrome for Testing + Native)\",\n \"docs\": \"https://wiki.adom.inc/adom/pup-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer/adom-pup-bridge.exe\",\n \"expectedImage\": \"adom-pup-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer\",\n \"installSkill\": \"adom-wiki pkg install adom/pup-bridge\",\n \"installedVersion\": \"2.0.697\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791212202067,\n \"latest\": \"2.0.697\",\n \"livePids\": [\n 68812\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/puppeteer.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/pup-bridge/files/adom-bridge-puppeteer-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"puppeteer\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"not yet\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"The Rust exe is Windows-only for now; host-mac is stubbed for the Mac port. macOS runs the Node build (public tier).\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 57134,\n \"prewarm\": {\n \"assets\": [\n \"chrome-for-testing\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T14:55:58Z\",\n \"elapsedMs\": 1409,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"pup_prewarm\",\n \"version\": \"2.0.697\"\n },\n \"requiresHostApp\": false,\n \"timeoutSeconds\": 900,\n \"verb\": \"pup_prewarm\"\n },\n \"releasedAt\": \"2026-10-05T14:55:48Z\",\n \"runningImage\": \"adom-pup-bridge.exe\",\n \"runningVersion\": \"2.0.697\",\n \"skillPkg\": \"adom/pup-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer\",\n \"spawn\": {\n \"entrypoint\": \"adom-pup-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 8851,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 57134\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/puppeteer\",\n \"status\": \"running\",\n \"statusVerb\": \"pup_readiness\",\n \"tags\": [\n \"puppeteer\",\n \"chrome\",\n \"headful\",\n \"recording\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"record\",\n \"seconds\": 90\n }\n ],\n \"verbs\": {\n \"credential_reveal\": 150,\n \"fill_card\": 150,\n \"open_window\": 150,\n \"prewarm\": 240,\n \"use\": 240\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 580.3941737292643,\n \"verbCount\": 97,\n \"verbPrefixes\": [\n \"pup_\",\n \"browser_\"\n ],\n \"verbs\": [\n \"pup_describe\",\n \"pup_readiness\",\n \"pup_prewarm\",\n \"pup_status\",\n \"pup_list_windows\",\n \"pup_my_windows\",\n \"pup_list_sessions\",\n \"pup_open_window\",\n \"pup_navigate\",\n \"pup_eval\",\n \"pup_evaluate\",\n \"pup_screenshot\",\n \"pup_close_window\",\n \"pup_close\",\n \"pup_close_all_windows\",\n \"pup_window_info\",\n \"pup_open_tab\",\n \"pup_list_tabs\",\n \"pup_switch_tab\",\n \"pup_close_tab\",\n \"pup_switch_window\",\n \"pup_click\",\n \"pup_select\",\n \"pup_hover\",\n \"pup_type\",\n \"pup_press_key\",\n \"pup_scroll\",\n \"pup_fill\",\n \"pup_wait\",\n \"pup_reload\",\n \"pup_back\",\n \"pup_forward\",\n \"pup_set_viewport\",\n \"pup_errors\",\n \"pup_dialog\",\n \"pup_input_dispatch\",\n \"pup_render_html\",\n \"pup_fetch_url\",\n \"pup_maximize\",\n \"pup_raise_os_window\",\n \"pup_focus_window\",\n \"pup_lower_os_window\",\n \"pup_alert_window\",\n \"pup_progress\",\n \"pup_configure\",\n \"pup_use\",\n \"pup_clear_cookies\",\n \"pup_clear_site_data\",\n \"pup_quit_idle_browsers\",\n \"pup_rescan\",\n \"pup_restart_browser\",\n \"pup_set_identity\",\n \"pup_audit_icons\",\n \"pup_dashboard\",\n \"pup_credentials\",\n \"credential_list\",\n \"credential_set\",\n \"credential_delete\",\n \"pup_login\",\n \"pup_google_accounts\",\n \"pup_google_signin\",\n \"pup_credential_reveal\",\n \"pup_card_set\",\n \"pup_cards\",\n \"pup_card_delete\",\n \"pup_fill_card\",\n \"pup_wiki_set_view\",\n \"pup_annotate\",\n \"pup_floaty_click\",\n \"pup_record_start\",\n \"pup_record_stop\",\n \"pup_record_status\",\n \"pup_record_list\",\n \"pup_recorder_open\",\n \"pup_recorder_close\",\n \"pup_screen_record_start\",\n \"pup_screen_record_stop\",\n \"pup_screen_record_status\",\n \"pup_screen_record_list\",\n \"pup_highfps_extend\",\n \"pup_screenshot_element\",\n \"pup_screenshot_full_res\",\n \"pup_download\",\n \"pup_launch\",\n \"pup_deps\",\n \"pup_install_toolbar\",\n \"pup_reap_profiles\",\n \"pup_cache_prune\",\n \"pup_sweep_identities\",\n \"pup_uninstall\",\n \"pup_move_to_workspace\",\n \"pup_assisted_click\",\n \"pup_import_scan\",\n \"pup_import_browser_logins\",\n \"pup_vault_sync\",\n \"pup_vault_export\",\n \"pup_vault_import\"\n ],\n \"version\": \"2.0.697\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"MCAD\",\n \"depsInstallingSec\": null,\n \"description\": \"Bridge for SOLIDWORKS desktop CAD \u2014 create and open documents, a modeling DSL, file management (find/open/save/export/Pack and Go), custom properties, BOM generation, design analysis (mass properties, bodies, parameters, interference, rebuild health) and background window/dialog etiquette, over the SOLIDWORKS COM API. Single native binary: no interpreter, no PowerShell, ~10ms cold start.\",\n \"devPinned\": false,\n \"displayName\": \"SOLIDWORKS\",\n \"docs\": \"https://wiki.adom.inc/adom/solidworks-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks/swx-bridge.exe\",\n \"expectedImage\": \"swx-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks\",\n \"installSkill\": \"adom-wiki pkg install adom/solidworks-bridge\",\n \"installedVersion\": \"0.9.21\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 0,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791224978746,\n \"latest\": \"0.9.19\",\n \"livePids\": [],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/solidworks.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/solidworks-bridge/files/adom-bridge-solidworks-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"solidworks\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 49861,\n \"prewarm\": null,\n \"releasedAt\": \"2026-10-05T18:49:46Z\",\n \"runningImage\": null,\n \"runningVersion\": \"0.9.19\",\n \"skillPkg\": \"adom/solidworks-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks\",\n \"spawn\": {\n \"entrypoint\": \"swx-bridge.exe\",\n \"instanceCount\": 0,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": 49861\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/solidworks\",\n \"status\": \"running\",\n \"statusVerb\": \"swx_status\",\n \"tags\": [\n \"solidworks\",\n \"mcad\",\n \"cad\",\n \"bom\",\n \"step\",\n \"mass-properties\",\n \"modeling\",\n \"fusion-parity\"\n ],\n \"timeouts\": {\n \"default\": 120,\n \"prefixes\": [],\n \"verbs\": {\n \"action_ledger\": 20,\n \"activate_document\": 180,\n \"bom\": 300,\n \"check_recovery\": 180,\n \"close_all_documents\": 240,\n \"close_all_safely\": 600,\n \"close_doc\": 180,\n \"close_import_temps\": 600,\n \"close_window\": 120,\n \"cloud_status\": 90,\n \"design_info\": 180,\n \"dismiss_blocking_dialogs\": 180,\n \"document_info\": 120,\n \"export\": 300,\n \"export_3mf\": 300,\n \"export_dwg\": 300,\n \"export_dxf\": 300,\n \"export_glb\": 300,\n \"export_iges\": 300,\n \"export_parasolid\": 300,\n \"export_pdf\": 300,\n \"export_sat\": 300,\n \"export_step\": 300,\n \"export_stl\": 300,\n \"find_files\": 180,\n \"get_app_state\": 90,\n \"get_parameters\": 240,\n \"get_preferences\": 90,\n \"import\": 420,\n \"inspect_bodies\": 180,\n \"interference\": 600,\n \"kill\": 240,\n \"new_document\": 180,\n \"open\": 300,\n \"pack_and_go\": 600,\n \"rebuild_check\": 300,\n \"render_image\": 600,\n \"reset_workspace\": 600,\n \"run_script\": 420,\n \"save_as\": 420,\n \"set_driving_badge\": 120,\n \"set_parameter\": 420,\n \"set_preference\": 90,\n \"show_assembly\": 600,\n \"show_drawing\": 600,\n \"show_part\": 600,\n \"shutdown\": 900,\n \"sign_in\": 240,\n \"start\": 300,\n \"state\": 180,\n \"stop\": 420,\n \"verb_times\": 20,\n \"window_info\": 120\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 561.6480977551237,\n \"verbCount\": 69,\n \"verbPrefixes\": [\n \"swx_\"\n ],\n \"verbs\": [\n \"swx_action_ledger\",\n \"swx_activate_document\",\n \"swx_add_component\",\n \"swx_bom\",\n \"swx_check_recovery\",\n \"swx_close_all_documents\",\n \"swx_close_all_safely\",\n \"swx_close_doc\",\n \"swx_close_import_temps\",\n \"swx_close_window\",\n \"swx_cloud_status\",\n \"swx_com_eval\",\n \"swx_describe\",\n \"swx_design_info\",\n \"swx_dismiss_blocking_dialogs\",\n \"swx_docs\",\n \"swx_document_info\",\n \"swx_export\",\n \"swx_export_3mf\",\n \"swx_export_dwg\",\n \"swx_export_dxf\",\n \"swx_export_glb\",\n \"swx_export_iges\",\n \"swx_export_parasolid\",\n \"swx_export_pdf\",\n \"swx_export_sat\",\n \"swx_export_step\",\n \"swx_export_stl\",\n \"swx_find_files\",\n \"swx_get_app_state\",\n \"swx_get_parameters\",\n \"swx_get_preferences\",\n \"swx_import\",\n \"swx_inspect_bodies\",\n \"swx_interference\",\n \"swx_kill\",\n \"swx_mass_properties\",\n \"swx_new_document\",\n \"swx_open\",\n \"swx_pack_and_go\",\n \"swx_progress\",\n \"swx_props_get\",\n \"swx_props_set\",\n \"swx_readiness\",\n \"swx_rebuild_check\",\n \"swx_recover_list\",\n \"swx_render_image\",\n \"swx_reset_workspace\",\n \"swx_run_macro\",\n \"swx_run_script\",\n \"swx_save\",\n \"swx_save_as\",\n \"swx_screenshot\",\n \"swx_set_driving_badge\",\n \"swx_set_parameter\",\n \"swx_set_preference\",\n \"swx_show_assembly\",\n \"swx_show_drawing\",\n \"swx_show_part\",\n \"swx_shutdown\",\n \"swx_sign_in\",\n \"swx_start\",\n \"swx_state\",\n \"swx_status\",\n \"swx_stop\",\n \"swx_uninstall\",\n \"swx_user_presence\",\n \"swx_verb_times\",\n \"swx_window_info\"\n ],\n \"version\": \"0.9.21\",\n \"versionDrift\": true,\n \"watcher\": null\n }\n ],\n \"current_os\": \"windows\",\n \"durationMs\": 17,\n \"error\": \"\",\n \"invalidCount\": 0,\n \"ok\": true,\n \"output\": \"\",\n \"schemaVersion\": 1,\n \"staleCheckedAt\": 1791215191,\n \"status\": \"ok\",\n \"success\": true,\n \"summary\": {\n \"bundled\": 1,\n \"cache\": 6,\n \"invalid\": 0,\n \"paused\": 0,\n \"third_party\": 0,\n \"total\": 7\n },\n \"timeoutSeconds\": 10\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235281.3772655, + "raw": { + "_hint": "Per-bridge runtime info. `source` tells you where the bridge code lives: bundled (installer ships it) / cache (wiki-streamed, writable) / third_party (installed via bridge_install). Use bridge_install to add a new bridge from a wiki manifest URL, bridge_pause/resume to control lifecycle without uninstalling, bridge_uninstall to remove. v1.8.0+.", + "_skillsHint": "For each bridge here with skillPkg != null, the container should run its `installSkill` to get that bridge's SKILL.md into ~/.claude/skills/ (then `adom-wiki pkg update` keeps them current). skillPkg:null bridges ship their skill in the adom-bridge core pkg (or have none).", + "bridges": [ + { + "author": "Adom Inc.", + "category": "CAD", + "depsInstallingSec": null, + "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.", + "devPinned": true, + "displayName": "Autodesk Fusion 360", + "docs": "https://wiki.adom.inc/adom/fusion-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360/adom-fusion-bridge.exe", + "expectedImage": "adom-fusion-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/fusion-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360", + "installSkill": "adom-wiki pkg install adom/fusion-bridge", + "installedVersion": "1.12.0-dev.8", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Python" + ], + "lastSpawnError": null, + "lastUsedMs": 1791234624522, + "latest": null, + "livePids": [ + 42780 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/fusion360.log", + "manifestSource": null, + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/fusion-bridge/files/adom-bridge-fusion-manifest.json", + "manifestUrlFollowed": null, + "name": "fusion360", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "Autodesk doesn't ship Fusion 360 for Linux, so there's no host app for the add-in to attach to.", + "supported": false + }, + "macos": { + "reason": "Fusion 360 runs on macOS; bridge + add-in install paths handled by fusion_detect.py.", + "supported": true + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 50618, + "prewarm": { + "assets": [ + "AdomBridge add-in sync", + "PCB design-rules catalog cache" + ], + "lastRun": { + "at": "2026-10-05T15:41:57Z", + "elapsedMs": 2344, + "error": null, + "ok": true, + "verb": "fusion_prewarm", + "version": "1.12.0-dev.5" + }, + "requiresHostApp": true, + "timeoutSeconds": null, + "verb": "fusion_prewarm" + }, + "releasedAt": "2026-06-26T06:00:00Z", + "runningImage": "adom-fusion-bridge.exe", + "runningVersion": "1.12.0-dev.5", + "skillPkg": "adom/fusion-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360", + "spawn": { + "entrypoint": "adom-fusion-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 50618 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/fusion360", + "status": "running", + "statusVerb": "fusion_get_app_state", + "tags": [ + "fusion360", + "autodesk", + "cad", + "exports", + "aps", + "modeling" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "open", + "seconds": 150 + } + ], + "verbs": { + "aps_open": 150, + "aps_recent": 120, + "aps_search": 120, + "build_library_3d": 1800, + "capture_library_views": 600, + "close_all_documents": 90, + "demo": 300, + "export_3mf": 360, + "export_board_image": 90, + "export_bom": 90, + "export_cpl": 90, + "export_dwg": 150, + "export_dxf": 150, + "export_f3d": 360, + "export_fbx": 360, + "export_gerbers": 210, + "export_iges": 360, + "export_obj": 360, + "export_sat": 360, + "export_skp": 360, + "export_step": 360, + "export_stl": 360, + "export_usdz": 360, + "generate_package": 120, + "get_preferences": 25, + "install_fusion": 90, + "make_3d_package": 200, + "prewarm": 120, + "run_modeling_script": 180, + "search_cloud_files": 200, + "set_preference": 40, + "signin": 150, + "start": 90, + "walk_cloud_tree": 620 + } + }, + "updateAvailable": false, + "usageScore": 21185.833001128973, + "verbCount": 167, + "verbPrefixes": [ + "fusion_" + ], + "verbs": [ + "fusion_account", + "fusion_action_ledger", + "fusion_activate_document", + "fusion_addin_status", + "fusion_alerts", + "fusion_apply_fusion_update", + "fusion_aps_browse", + "fusion_aps_create_folder", + "fusion_aps_download", + "fusion_aps_file_info", + "fusion_aps_forget_browser", + "fusion_aps_get", + "fusion_aps_get_browser", + "fusion_aps_open", + "fusion_aps_recent", + "fusion_aps_search", + "fusion_aps_set_browser", + "fusion_aps_set_client_id", + "fusion_aps_signin", + "fusion_aps_status", + "fusion_aps_upload", + "fusion_aps_versions", + "fusion_assembly_bom", + "fusion_attach_3d_package", + "fusion_bind_library_3d", + "fusion_board_info", + "fusion_board_stackup", + "fusion_build_library_3d", + "fusion_cancel_run", + "fusion_capture_library_views", + "fusion_check_recovery", + "fusion_claim_seat", + "fusion_cleanup_cloud_files", + "fusion_close_all_documents", + "fusion_close_document", + "fusion_close_window", + "fusion_create_cloud_folder", + "fusion_create_library", + "fusion_delete_cloud_file", + "fusion_demo", + "fusion_demo_progress", + "fusion_describe", + "fusion_detect_layers", + "fusion_dismiss_blocking_dialogs", + "fusion_document_info", + "fusion_eagle_import_status", + "fusion_electron_pan", + "fusion_electron_run", + "fusion_electron_select", + "fusion_electron_zoom", + "fusion_electronics_query", + "fusion_execute_text_command", + "fusion_export_3mf", + "fusion_export_board_image", + "fusion_export_bom", + "fusion_export_cloud_file", + "fusion_export_cpl", + "fusion_export_dwg", + "fusion_export_dxf", + "fusion_export_eagle_source", + "fusion_export_f3d", + "fusion_export_fbx", + "fusion_export_gerbers", + "fusion_export_iges", + "fusion_export_lbr", + "fusion_export_obj", + "fusion_export_optimized_glb", + "fusion_export_sat", + "fusion_export_skp", + "fusion_export_source", + "fusion_export_step", + "fusion_export_stl", + "fusion_export_usdz", + "fusion_fetch_optimized_glb", + "fusion_generate_package", + "fusion_get_app_state", + "fusion_get_design_info", + "fusion_get_parameters", + "fusion_get_preferences", + "fusion_import_electronics", + "fusion_import_step", + "fusion_inspect_bodies", + "fusion_install_fusion", + "fusion_install_library_bundle", + "fusion_interactive", + "fusion_kill", + "fusion_library_manager", + "fusion_library_parts", + "fusion_list_cloud_files", + "fusion_list_cloud_projects", + "fusion_list_text_commands", + "fusion_live_feed", + "fusion_make_3d_package", + "fusion_make_showcase_project", + "fusion_make_test_project", + "fusion_managed_library_create", + "fusion_managed_library_link", + "fusion_managed_library_pull", + "fusion_managed_library_push", + "fusion_managed_library_unlink", + "fusion_mcp_call", + "fusion_mcp_enable", + "fusion_mcp_resources", + "fusion_mcp_status", + "fusion_mcp_tools", + "fusion_mech_capabilities", + "fusion_mech_operation_status", + "fusion_mechanical", + "fusion_narrate", + "fusion_new_electronics_from_eagle", + "fusion_notify_owner", + "fusion_open_board", + "fusion_open_by_urn", + "fusion_open_by_urn_note", + "fusion_open_cloud_file", + "fusion_open_design", + "fusion_open_electronics", + "fusion_open_lbr", + "fusion_open_schematic", + "fusion_physical_properties", + "fusion_plan_library_import", + "fusion_plan_route", + "fusion_preflight_lbr", + "fusion_prefs_close", + "fusion_prefs_open", + "fusion_prewarm", + "fusion_prove_result", + "fusion_readiness", + "fusion_release_seat", + "fusion_reset_workspace", + "fusion_resolve_seat_dialog", + "fusion_restart_for_addin", + "fusion_route_net", + "fusion_routing_drc", + "fusion_routing_state", + "fusion_run_modeling_script", + "fusion_save_to_cloud", + "fusion_schematic", + "fusion_screenshot_fusion", + "fusion_search_cloud_files", + "fusion_set_auto_update", + "fusion_set_design_rules", + "fusion_set_driving_badge", + "fusion_set_parameter", + "fusion_set_preference", + "fusion_set_seat_takeover", + "fusion_set_window_sizing", + "fusion_show_2d_board", + "fusion_show_3d_board", + "fusion_show_3d_package", + "fusion_show_attributes", + "fusion_show_footprint", + "fusion_show_library", + "fusion_show_project", + "fusion_show_schematic", + "fusion_show_symbol", + "fusion_signin", + "fusion_signin_2fa", + "fusion_start", + "fusion_state", + "fusion_stop", + "fusion_take_screenshot", + "fusion_uninstall", + "fusion_verb_times", + "fusion_view", + "fusion_walk_cloud_tree", + "fusion_web_signin" + ], + "version": "1.12.0-dev.8", + "versionDrift": true, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "developer-tools", + "depsInstallingSec": null, + "description": "Bridge to Hydrogen Desktop's HTTP control API. Drives setup, the Claude workspace, WSL/container lifecycle, and read-only diagnostics via direct HTTP \u2014 no shell-out, no quote mangling. HD runs as a sibling Tauri app; AD does NOT spawn it.", + "devPinned": false, + "displayName": "Hydrogen Desktop", + "docs": "https://wiki.adom.inc/adom/adom-desktop", + "entryMismatch": false, + "entrypoint": "//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd/", + "expectedImage": null, + "heroAvailable": false, + "heroDocs": "https://wiki.adom.inc/adom/hydrogen-desktop", + "homepage": "https://wiki.adom.inc/adom/adom-desktop", + "installPath": "\\\\?\\C:\\Users\\drew\\AppData\\Local\\Adom Bridge\\bridges\\hd", + "installSkill": "adom-wiki pkg install adom/adom-desktop", + "installedVersion": "1.0.0", + "installedVersionSource": "cache", + "instanceCount": null, + "languages": [], + "lastSpawnError": null, + "lastUsedMs": 0, + "latest": null, + "livePids": [], + "logPath": "C:/Users/drew/.adom/bridge-logs/hd.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": null, + "manifestUrlFollowed": null, + "name": "hd", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "HD currently ships Windows-only; Linux variant in scope for HD's future releases.", + "supported": false + }, + "macos": { + "reason": "HD currently ships Windows-only.", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": null, + "prewarm": null, + "releasedAt": "2026-06-30T13:13:22Z", + "runningImage": null, + "runningVersion": null, + "skillPkg": "adom/adom-desktop", + "source": "bundled", + "sourceDir": "//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd", + "spawn": { + "entrypoint": "", + "instanceCount": null, + "kind": "external-http", + "manifestPort": 47084, + "persistent": false, + "portBlocked": null, + "runtimePort": null + }, + "spawnKind": "external-http", + "stableUrl": "http://127.0.0.1:24680/open/hd", + "status": "stopped", + "statusVerb": null, + "tags": [ + "hydrogen-desktop", + "control-api", + "http", + "lifecycle" + ], + "timeouts": null, + "updateAvailable": false, + "usageScore": 0.0, + "verbCount": 11, + "verbPrefixes": [], + "verbs": [ + "hd_api", + "hd_status", + "hd_launch", + "hd_stop", + "hd_restart", + "hd_log", + "hd_screenshot", + "hd_shot", + "hd_open_url", + "hd_browser_profiles", + "hd_ship" + ], + "version": "1.0.0", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "EDA", + "depsInstallingSec": null, + "description": "Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.", + "devPinned": false, + "displayName": "KiCad EDA", + "docs": "https://wiki.adom.inc/adom/kicad-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad/kicad-bridge.exe", + "expectedImage": "kicad-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad", + "installSkill": "adom-wiki pkg install adom/kicad-bridge", + "installedVersion": "1.0.55", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Python", + "PowerShell" + ], + "lastSpawnError": null, + "lastUsedMs": 1790956354547, + "latest": "1.0.55", + "livePids": [ + 36872 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/kicad.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/kicad-bridge/files/adom-bridge-kicad-manifest.json", + "manifestUrlFollowed": null, + "name": "kicad", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "", + "supported": false + }, + "macos": { + "reason": "", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 60896, + "prewarm": { + "assets": [ + "kicad-cli warm (detection)", + "KiCad first-run config + setup wizard marked done", + "KiCad's own taskbar shortcut identity" + ], + "lastRun": { + "at": "2026-10-05T15:41:58Z", + "elapsedMs": 273, + "error": null, + "ok": false, + "verb": "kicad_prewarm", + "version": "1.0.55" + }, + "requiresHostApp": true, + "timeoutSeconds": null, + "verb": "kicad_prewarm" + }, + "releasedAt": "2026-06-26T16:00:00Z", + "runningImage": "kicad-bridge.exe", + "runningVersion": "1.0.55", + "skillPkg": "adom/kicad-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad", + "spawn": { + "entrypoint": "kicad-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": false, + "portBlocked": null, + "runtimePort": 60896 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/kicad", + "status": "running", + "statusVerb": "kicad_status", + "tags": [ + "pcb", + "schematic", + "open-source", + "kicad-10", + "kicad-11-ready" + ], + "timeouts": { + "default": 130, + "prefixes": [], + "verbs": { + "autoroute": 900, + "demo": 600, + "enable_software_opengl": 240, + "export_gerber": 210, + "export_molecule": 420, + "export_pdf": 180, + "export_step": 300, + "export_svg": 180, + "format_upgrade": 180, + "freerouting": 900, + "open_3d_viewer": 300, + "prewarm": 120, + "run_drc": 300, + "run_erc": 300, + "upgrade": 900 + } + }, + "updateAvailable": false, + "usageScore": 1038.4432350480831, + "verbCount": 119, + "verbPrefixes": [ + "kicad_" + ], + "verbs": [ + "kicad_describe", + "kicad_status", + "kicad_readiness", + "kicad_list_versions", + "kicad_diagnostics", + "kicad_run_drc", + "kicad_run_erc", + "kicad_export_gerber", + "kicad_export_pdf", + "kicad_export_svg", + "kicad_export_step", + "kicad_export_bom_csv", + "kicad_uninstall", + "kicad_extract_netlist", + "kicad_trace_net", + "kicad_find_connections", + "kicad_analyze_connections", + "kicad_lint_board", + "kicad_lint_schematic", + "kicad_lint_library", + "kicad_format_upgrade", + "kicad_list_symbols", + "kicad_list_footprints", + "kicad_adom_library_status", + "kicad_get_settings", + "kicad_set_settings", + "kicad_list_design_rules", + "kicad_set_design_rules", + "kicad_3d_viewer_settings", + "kicad_taskbar_repair", + "kicad_prewarm", + "kicad_model_check", + "kicad_pcm_list", + "kicad_pcm_install", + "kicad_pcm_uninstall", + "kicad_pcm_add_repository", + "kicad_pcm_remove_repository", + "kicad_check_for_updates", + "kicad_upgrade", + "kicad_sch_place_symbol", + "kicad_sch_wire", + "kicad_sch_label", + "kicad_sch_move", + "kicad_sch_delete", + "kicad_sch_set_property", + "kicad_ipc_api", + "kicad_export_molecule", + "kicad_errors", + "kicad_log_tail", + "kicad_bridge_status", + "kicad_bridge_call", + "kicad_install_plugin", + "kicad_plugin_diagnose", + "kicad_install_library", + "kicad_uninstall_library", + "kicad_install_symbol", + "kicad_install_footprint", + "kicad_install_library_bundle", + "kicad_adom_library_heal", + "kicad_make_part_project", + "kicad_export_part", + "kicad_silk_fields_batch", + "kicad_silk_graphics_batch", + "kicad_text_bounds", + "kicad_silk_text_batch", + "kicad_routing_state", + "kicad_route_net", + "kicad_remove_route", + "kicad_add_zone", + "kicad_apply_zone_plan", + "kicad_zone_state", + "kicad_select_net", + "kicad_select_clear", + "kicad_remove_zone", + "kicad_routing_validate", + "kicad_board_pads", + "kicad_add_track", + "kicad_add_via", + "kicad_route", + "kicad_autoroute", + "kicad_freerouting", + "kicad_placement_state", + "kicad_move_footprint", + "kicad_placement_validate", + "kicad_refresh_board_views", + "kicad_launch", + "kicad_open_board", + "kicad_open_schematic", + "kicad_open_symbol_editor", + "kicad_open_footprint_editor", + "kicad_menu_items", + "kicad_3d_view", + "kicad_open_3d_viewer", + "kicad_open_editors", + "kicad_close", + "kicad_close_symbol_editor", + "kicad_close_footprint_editor", + "kicad_close_3d_viewer", + "kicad_dismiss_dialogs", + "kicad_window_info", + "kicad_state", + "kicad_screenshot_all", + "kicad_send_key", + "kicad_click", + "kicad_fix_keyboard", + "kicad_place_footprint", + "kicad_enable_software_opengl", + "kicad_rescan_libraries", + "kicad_show_project", + "kicad_show_symbol", + "kicad_show_footprint", + "kicad_show_3d_chip", + "kicad_show_schematic", + "kicad_show_2d_board", + "kicad_show_3d_board", + "kicad_show_library", + "kicad_progress", + "kicad_verb_times", + "kicad_demo" + ], + "version": "1.0.55", + "versionDrift": false, + "watcher": { + "configKey": "project_watch", + "defaultGlobs": [ + "*.kicad_pcb", + "*.kicad_sch", + "*.kicad_pro" + ], + "description": "Monitors a KiCad project folder for file changes and syncs them to Docker. Configured via the set_project_watch / trigger_project_watch verbs (AD core owns the watcher; the KiCad section of AD's Settings panel was removed in AD 1.9.117 \u2014 the config keys are still honored).", + "displayName": "Project Watch", + "supports": true + } + }, + { + "author": "Adom Inc.", + "category": "Browser Automation", + "depsInstallingSec": null, + "description": "Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.", + "devPinned": false, + "displayName": "Adom Native Browser", + "docs": "https://wiki.adom.inc/adom/nb-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser/server.js", + "expectedImage": "node.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/nb-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser", + "installSkill": "adom-wiki pkg install adom/nb-bridge", + "installedVersion": "0.16.33", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Node/JS" + ], + "lastSpawnError": null, + "lastUsedMs": 1791220671752, + "latest": "0.16.33", + "livePids": [ + 32228 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/native-browser.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/pages/adom/nb-bridge/files/native-browser-bridge-manifest.json", + "manifestUrlFollowed": null, + "name": "native-browser", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "Pending; bridge + host are OS-agnostic Node, only the install/registration layer is Windows-specific.", + "supported": false + }, + "macos": { + "reason": "Windows-first; Kyle ports to macOS as a fast-follow (NativeMessagingHosts live under ~/Library/Application Support//NativeMessagingHosts; bridge/host are OS-agnostic Node).", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 51703, + "prewarm": { + "assets": [], + "lastRun": { + "at": "2026-09-22T19:44:55Z", + "elapsedMs": 41, + "error": null, + "ok": true, + "verb": "nbrowser_prewarm", + "version": "0.16.33" + }, + "requiresHostApp": false, + "timeoutSeconds": null, + "verb": "nbrowser_prewarm" + }, + "releasedAt": "2026-09-22T15:18:44Z", + "runningImage": "node.exe", + "runningVersion": "0.16.33", + "skillPkg": "adom/nb-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser", + "spawn": { + "entrypoint": "server.js", + "instanceCount": 1, + "kind": "node", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 51703 + }, + "spawnKind": "node", + "stableUrl": "http://127.0.0.1:24680/open/native-browser", + "status": "running", + "statusVerb": "nbrowser_status", + "tags": [ + "nb", + "nbe", + "native-browser", + "chrome", + "edge", + "nbrowser", + "pup-parity" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "screenshot", + "seconds": 120 + }, + { + "prefix": "record", + "seconds": 120 + } + ], + "verbs": { + "fetch_url": 120, + "input_dispatch": 120, + "select": 30, + "wait": 125 + } + }, + "updateAvailable": false, + "usageScore": 917.6387241869782, + "verbCount": 88, + "verbPrefixes": [ + "nbrowser_" + ], + "verbs": [ + "nbrowser_status", + "nbrowser_readiness", + "nbrowser_install_chrome", + "nbrowser_prewarm", + "nbrowser_chrome_status", + "nbrowser_ping", + "nbrowser_progress", + "nbrowser_activity", + "nbrowser_open_window", + "nbrowser_close_window", + "nbrowser_owned", + "nbrowser_cleanup", + "nbrowser_force_close", + "nbrowser_switch_window", + "nbrowser_list_windows", + "nbrowser_window_state", + "nbrowser_fullscreen", + "nbrowser_login_state", + "nbrowser_credentials", + "nbrowser_profiles", + "nbrowser_use_profile", + "nbrowser_pin_session", + "nbrowser_open_os_window", + "nbrowser_os_windows", + "nbrowser_wake_profile", + "nbrowser_resolve_profiles", + "nbrowser_whoami", + "nbrowser_profile_block", + "nbrowser_profile_unblock", + "nbrowser_rescan", + "nbrowser_resync_sessions", + "nbrowser_open_tab", + "nbrowser_close_tab", + "nbrowser_switch_tab", + "nbrowser_list_tabs", + "nbrowser_navigate", + "nbrowser_reload", + "nbrowser_back", + "nbrowser_forward", + "nbrowser_wait", + "nbrowser_wait_for", + "nbrowser_keepalive", + "nbrowser_screenshot", + "nbrowser_screenshot_full_res", + "nbrowser_eval", + "nbrowser_evaluate", + "nbrowser_input_dispatch", + "nbrowser_scroll", + "nbrowser_click", + "nbrowser_select", + "nbrowser_set_file_input", + "nbrowser_set_date", + "nbrowser_totp", + "nbrowser_register_totp", + "nbrowser_add_extension_origin", + "nbrowser_type", + "nbrowser_press_key", + "nbrowser_fetch_url", + "nbrowser_download_wait", + "nbrowser_errors", + "nbrowser_close", + "nbrowser_record_start", + "nbrowser_record_stop", + "nbrowser_record_status", + "nbrowser_record_list", + "nbrowser_flash", + "nbrowser_flash_stop", + "nbrowser_apply_settings", + "nbrowser_settings", + "nbrowser_flash_mode", + "nbrowser_taskbar", + "nbrowser_describe", + "nbrowser_handle_dialog", + "nbrowser_state", + "nbrowser_demo", + "nbrowser_uninstall", + "nbrowser_dev_reload", + "nbrowser_clear_cookies", + "nbrowser_caption", + "nbrowser_focus", + "nbrowser_hover", + "nbrowser_double_click", + "nbrowser_right_click", + "nbrowser_login_form", + "nbrowser_autologin", + "nbrowser_cursor", + "nbrowser_events", + "nbrowser_download" + ], + "version": "0.16.33", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "Manufacturing", + "depsInstallingSec": null, + "description": "The Adom Desktop bridge for the Essemtec Puma / ePlace. Reads + dry-run: machine state, recipe/package/component/feeder reads, the full feeder fleet from Supply/Feeder/*.feeder.xml, and dry-run of any WriteOp (preflight + physics-bounds + unified diff). F4 adds puma_write \u2014 GATED production writes of FileWrite.* library objects to real XML files under --data-folder (atomic write + XML-verify + audit; approver enforced; refused when the machine is Productive), plus puma_revert \u2014 canonical revert of a prior write by correlationId (CAS-pinned to the recorded result hash, its own audit entry, same write gate). Off by default: requires --enable-writes. eData stays vendor-read-only. 0.2.5: puma_feeders binds each loaded lane to its component/part number (carrierType, componentName, partValue, packageName, componentBarcode) via the Supply/Carrier -> Component library chain (#639). 0.2.6: the write audit records ab's X-Adom-Verified-Origin (relay | local | bridge, plus the X-Adom-Caller-Delegate chain for a bridge callback; a missing header records as local-unattributed) beside the approver \u2014 attribution, never a gate. New puma_write_status (declared as statusVerb): what happened to a write by correlationId, so a caller whose transport timed out polls instead of declaring the write unknown. 0.2.7: the host is a GUI-subsystem exe (no console window of its own) and its git subprocess runs with CreateNoWindow, so the bridge can never leave a conhost window on the desktop across ab respawns or reinstalls.", + "devPinned": false, + "displayName": "Puma Bridge (Essemtec ePlace)", + "docs": "https://wiki.adom.inc/adom/puma-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge/puma-bridge-host.exe", + "expectedImage": "puma-bridge-host.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/puma-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge", + "installSkill": "adom-wiki pkg install adom/puma-bridge", + "installedVersion": "0.2.7", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1790623763822, + "latest": "0.2.6", + "livePids": [ + 32008 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/puma-bridge.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/adom/puma-bridge/files/adom-bridge-puma-manifest.json", + "manifestUrlFollowed": null, + "name": "puma-bridge", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "", + "supported": true + }, + "macos": { + "reason": "", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 64764, + "prewarm": null, + "releasedAt": "2026-09-23T15:54:11Z", + "runningImage": "puma-bridge-host.exe", + "runningVersion": "0.2.7", + "skillPkg": "adom/puma-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge", + "spawn": { + "entrypoint": "puma-bridge-host.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 64764 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/puma-bridge", + "status": "running", + "statusVerb": "puma_write_status", + "tags": [ + "smt", + "essemtec", + "puma", + "eplace", + "pick-and-place", + "manufacturing", + "factoryos" + ], + "timeouts": null, + "updateAvailable": false, + "usageScore": 2.692769074477472, + "verbCount": 9, + "verbPrefixes": [ + "puma_" + ], + "verbs": [ + "puma_ping", + "puma_state", + "puma_get", + "puma_feeders", + "puma_dryrun", + "puma_write", + "puma_revert", + "puma_write_status", + "puma_describe" + ], + "version": "0.2.7", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "Browser Automation", + "depsInstallingSec": null, + "description": "Drives a browser ALREADY on the machine \u2014 installed Chrome, else Microsoft Edge (every Windows PC ships with Edge) \u2014 launched with a FRESH isolated profile, so the common case has NO ~150 MB Chrome-for-Testing download and it never touches the user's real tabs/logins. Binds its local server to LOOPBACK (127.0.0.1) only, so no Windows Firewall 'allow Node through the firewall' prompt ever pops. Chrome for Testing is fetched only as a LAST RESORT if the machine has no Chromium browser at all. SPAWN-VERIFIED fallback: pup tries each detected browser (Chrome \u2192 Edge \u2192 CfT) and actually launches it, falling through to the next if one won't start (and handling browsers like Edge that relaunch onto another PID), so a corrupt/partial install never hard-fails an open. The browser that launches is cached as the default (persisted across restarts) so it isn't re-probed each time. On spawn the bridge SELF-WARMS: detects browsers + disk, and only if the box has no Chrome/Edge and no cached CfT does it background-fetch CfT so the first open is instant. pup_use pins a specific browser (chrome | edge | cft | auto); {browser:'chrome',install:true} downloads & installs REAL Google Chrome (user-scoped, no admin) on an Edge-only box. pup_readiness (READ-ONLY) reports which browser will be used + the full candidate list + the default + free disk. Every failure returns a specific errorCode + _hint (chrome_install_no_disk, chrome_download_network, chrome_install_permission, chrome_stable_not_detected, \u2026). Launches with FULL browser permissions by default for full debug (strictPermissions:true opts out). Headful automation: open/close windows+tabs, navigate, screenshot, eval JS, record. pup is a GENERIC, non-profile browser only \u2014 every session is a fresh isolated Chrome/Edge process, never the user's real signed-in browser; profile defaults to sessionId. To drive the user's REAL Chrome/Edge (their profile, cookies, SSO), use the Adom browser EXTENSION's nbrowser_* verbs \u2014 a separate bridge, not pup's job. macOS (v1.9.74+): full parity with mac-native mechanics \u2014 background-by-default is the app-level hide (windows stay drivable/screenshottable while hidden), raise/lower map to unhide+activate/hide, pup_alert_window posts a native toast whose click focuses the window, pup_use {browser:'chrome',install:true} installs Chrome from the official dmg, and taskbar identity/badging remains Windows-only.", + "devPinned": false, + "displayName": "Puppeteer (Chrome for Testing + Native)", + "docs": "https://wiki.adom.inc/adom/pup-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer/adom-pup-bridge.exe", + "expectedImage": "adom-pup-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer", + "installSkill": "adom-wiki pkg install adom/pup-bridge", + "installedVersion": "2.0.697", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1791212202067, + "latest": "2.0.697", + "livePids": [ + 68812 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/puppeteer.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/pup-bridge/files/adom-bridge-puppeteer-manifest.json", + "manifestUrlFollowed": null, + "name": "puppeteer", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "not yet", + "supported": false + }, + "macos": { + "reason": "The Rust exe is Windows-only for now; host-mac is stubbed for the Mac port. macOS runs the Node build (public tier).", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 57134, + "prewarm": { + "assets": [ + "chrome-for-testing" + ], + "lastRun": { + "at": "2026-10-05T14:55:58Z", + "elapsedMs": 1409, + "error": null, + "ok": true, + "verb": "pup_prewarm", + "version": "2.0.697" + }, + "requiresHostApp": false, + "timeoutSeconds": 900, + "verb": "pup_prewarm" + }, + "releasedAt": "2026-10-05T14:55:48Z", + "runningImage": "adom-pup-bridge.exe", + "runningVersion": "2.0.697", + "skillPkg": "adom/pup-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer", + "spawn": { + "entrypoint": "adom-pup-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 8851, + "persistent": true, + "portBlocked": null, + "runtimePort": 57134 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/puppeteer", + "status": "running", + "statusVerb": "pup_readiness", + "tags": [ + "puppeteer", + "chrome", + "headful", + "recording" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "record", + "seconds": 90 + } + ], + "verbs": { + "credential_reveal": 150, + "fill_card": 150, + "open_window": 150, + "prewarm": 240, + "use": 240 + } + }, + "updateAvailable": false, + "usageScore": 580.3941737292643, + "verbCount": 97, + "verbPrefixes": [ + "pup_", + "browser_" + ], + "verbs": [ + "pup_describe", + "pup_readiness", + "pup_prewarm", + "pup_status", + "pup_list_windows", + "pup_my_windows", + "pup_list_sessions", + "pup_open_window", + "pup_navigate", + "pup_eval", + "pup_evaluate", + "pup_screenshot", + "pup_close_window", + "pup_close", + "pup_close_all_windows", + "pup_window_info", + "pup_open_tab", + "pup_list_tabs", + "pup_switch_tab", + "pup_close_tab", + "pup_switch_window", + "pup_click", + "pup_select", + "pup_hover", + "pup_type", + "pup_press_key", + "pup_scroll", + "pup_fill", + "pup_wait", + "pup_reload", + "pup_back", + "pup_forward", + "pup_set_viewport", + "pup_errors", + "pup_dialog", + "pup_input_dispatch", + "pup_render_html", + "pup_fetch_url", + "pup_maximize", + "pup_raise_os_window", + "pup_focus_window", + "pup_lower_os_window", + "pup_alert_window", + "pup_progress", + "pup_configure", + "pup_use", + "pup_clear_cookies", + "pup_clear_site_data", + "pup_quit_idle_browsers", + "pup_rescan", + "pup_restart_browser", + "pup_set_identity", + "pup_audit_icons", + "pup_dashboard", + "pup_credentials", + "credential_list", + "credential_set", + "credential_delete", + "pup_login", + "pup_google_accounts", + "pup_google_signin", + "pup_credential_reveal", + "pup_card_set", + "pup_cards", + "pup_card_delete", + "pup_fill_card", + "pup_wiki_set_view", + "pup_annotate", + "pup_floaty_click", + "pup_record_start", + "pup_record_stop", + "pup_record_status", + "pup_record_list", + "pup_recorder_open", + "pup_recorder_close", + "pup_screen_record_start", + "pup_screen_record_stop", + "pup_screen_record_status", + "pup_screen_record_list", + "pup_highfps_extend", + "pup_screenshot_element", + "pup_screenshot_full_res", + "pup_download", + "pup_launch", + "pup_deps", + "pup_install_toolbar", + "pup_reap_profiles", + "pup_cache_prune", + "pup_sweep_identities", + "pup_uninstall", + "pup_move_to_workspace", + "pup_assisted_click", + "pup_import_scan", + "pup_import_browser_logins", + "pup_vault_sync", + "pup_vault_export", + "pup_vault_import" + ], + "version": "2.0.697", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "MCAD", + "depsInstallingSec": null, + "description": "Bridge for SOLIDWORKS desktop CAD \u2014 create and open documents, a modeling DSL, file management (find/open/save/export/Pack and Go), custom properties, BOM generation, design analysis (mass properties, bodies, parameters, interference, rebuild health) and background window/dialog etiquette, over the SOLIDWORKS COM API. Single native binary: no interpreter, no PowerShell, ~10ms cold start.", + "devPinned": false, + "displayName": "SOLIDWORKS", + "docs": "https://wiki.adom.inc/adom/solidworks-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks/swx-bridge.exe", + "expectedImage": "swx-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks", + "installSkill": "adom-wiki pkg install adom/solidworks-bridge", + "installedVersion": "0.9.21", + "installedVersionSource": "cache", + "instanceCount": 0, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1791224978746, + "latest": "0.9.19", + "livePids": [], + "logPath": "C:/Users/drew/.adom/bridge-logs/solidworks.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/solidworks-bridge/files/adom-bridge-solidworks-manifest.json", + "manifestUrlFollowed": null, + "name": "solidworks", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.", + "supported": false + }, + "macos": { + "reason": "SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 49861, + "prewarm": null, + "releasedAt": "2026-10-05T18:49:46Z", + "runningImage": null, + "runningVersion": "0.9.19", + "skillPkg": "adom/solidworks-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks", + "spawn": { + "entrypoint": "swx-bridge.exe", + "instanceCount": 0, + "kind": "exe", + "manifestPort": 0, + "persistent": false, + "portBlocked": null, + "runtimePort": 49861 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/solidworks", + "status": "running", + "statusVerb": "swx_status", + "tags": [ + "solidworks", + "mcad", + "cad", + "bom", + "step", + "mass-properties", + "modeling", + "fusion-parity" + ], + "timeouts": { + "default": 120, + "prefixes": [], + "verbs": { + "action_ledger": 20, + "activate_document": 180, + "bom": 300, + "check_recovery": 180, + "close_all_documents": 240, + "close_all_safely": 600, + "close_doc": 180, + "close_import_temps": 600, + "close_window": 120, + "cloud_status": 90, + "design_info": 180, + "dismiss_blocking_dialogs": 180, + "document_info": 120, + "export": 300, + "export_3mf": 300, + "export_dwg": 300, + "export_dxf": 300, + "export_glb": 300, + "export_iges": 300, + "export_parasolid": 300, + "export_pdf": 300, + "export_sat": 300, + "export_step": 300, + "export_stl": 300, + "find_files": 180, + "get_app_state": 90, + "get_parameters": 240, + "get_preferences": 90, + "import": 420, + "inspect_bodies": 180, + "interference": 600, + "kill": 240, + "new_document": 180, + "open": 300, + "pack_and_go": 600, + "rebuild_check": 300, + "render_image": 600, + "reset_workspace": 600, + "run_script": 420, + "save_as": 420, + "set_driving_badge": 120, + "set_parameter": 420, + "set_preference": 90, + "show_assembly": 600, + "show_drawing": 600, + "show_part": 600, + "shutdown": 900, + "sign_in": 240, + "start": 300, + "state": 180, + "stop": 420, + "verb_times": 20, + "window_info": 120 + } + }, + "updateAvailable": false, + "usageScore": 561.6480977551237, + "verbCount": 69, + "verbPrefixes": [ + "swx_" + ], + "verbs": [ + "swx_action_ledger", + "swx_activate_document", + "swx_add_component", + "swx_bom", + "swx_check_recovery", + "swx_close_all_documents", + "swx_close_all_safely", + "swx_close_doc", + "swx_close_import_temps", + "swx_close_window", + "swx_cloud_status", + "swx_com_eval", + "swx_describe", + "swx_design_info", + "swx_dismiss_blocking_dialogs", + "swx_docs", + "swx_document_info", + "swx_export", + "swx_export_3mf", + "swx_export_dwg", + "swx_export_dxf", + "swx_export_glb", + "swx_export_iges", + "swx_export_parasolid", + "swx_export_pdf", + "swx_export_sat", + "swx_export_step", + "swx_export_stl", + "swx_find_files", + "swx_get_app_state", + "swx_get_parameters", + "swx_get_preferences", + "swx_import", + "swx_inspect_bodies", + "swx_interference", + "swx_kill", + "swx_mass_properties", + "swx_new_document", + "swx_open", + "swx_pack_and_go", + "swx_progress", + "swx_props_get", + "swx_props_set", + "swx_readiness", + "swx_rebuild_check", + "swx_recover_list", + "swx_render_image", + "swx_reset_workspace", + "swx_run_macro", + "swx_run_script", + "swx_save", + "swx_save_as", + "swx_screenshot", + "swx_set_driving_badge", + "swx_set_parameter", + "swx_set_preference", + "swx_show_assembly", + "swx_show_drawing", + "swx_show_part", + "swx_shutdown", + "swx_sign_in", + "swx_start", + "swx_state", + "swx_status", + "swx_stop", + "swx_uninstall", + "swx_user_presence", + "swx_verb_times", + "swx_window_info" + ], + "version": "0.9.21", + "versionDrift": true, + "watcher": null + } + ], + "current_os": "windows", + "durationMs": 17, + "error": "", + "invalidCount": 0, + "ok": true, + "output": "", + "schemaVersion": 1, + "staleCheckedAt": 1791215191, + "status": "ok", + "success": true, + "summary": { + "bundled": 1, + "cache": 6, + "invalid": 0, + "paused": 0, + "third_party": 0, + "total": 7 + }, + "timeoutSeconds": 10 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/calls/0003-fusion_get_preferences.json b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0003-fusion_get_preferences.json new file mode 100644 index 0000000..ac41458 --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0003-fusion_get_preferences.json @@ -0,0 +1,38 @@ +{ + "target": "adom_drew2", + "verb": "fusion_get_preferences", + "args": {}, + "requestJson": "{}", + "runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", + "caller": "Fusion roadmap build", + "startedAt": 1791235281.3799384, + "mutating": false, + "stdout": "{\n \"_hint\": \"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\",\n \"_timeoutHint\": \"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"applied\": {},\n \"current\": {\n \"activeTheme\": \"darkblue\",\n \"cameraPivot\": true,\n \"gestureNav\": true,\n \"invertScrollZoom\": true,\n \"lengthUnit\": \"mm\",\n \"modelingOrientation\": \"zup\",\n \"orbitScheme\": \"fusion360\",\n \"theme\": \"device\"\n },\n \"durationMs\": 109,\n \"error\": \"\",\n \"output\": \"{\\\"_hint\\\":\\\"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"applied\\\":{},\\\"current\\\":{\\\"activeTheme\\\":\\\"darkblue\\\",\\\"cameraPivot\\\":true,\\\"gestureNav\\\":true,\\\"invertScrollZoom\\\":true,\\\"lengthUnit\\\":\\\"mm\\\",\\\"modelingOrientation\\\":\\\"zup\\\",\\\"orbitScheme\\\":\\\"fusion360\\\",\\\"theme\\\":\\\"device\\\"},\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":25}\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 25\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235281.495996, + "raw": { + "_hint": "Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).", + "_timeoutHint": "ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "applied": {}, + "current": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "durationMs": 109, + "error": "", + "output": "{\"_hint\":\"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\",\"_timeoutHint\":\"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"applied\":{},\"current\":{\"activeTheme\":\"darkblue\",\"cameraPivot\":true,\"gestureNav\":true,\"invertScrollZoom\":true,\"lengthUnit\":\"mm\",\"modelingOrientation\":\"zup\",\"orbitScheme\":\"fusion360\",\"theme\":\"device\"},\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":25}", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 25 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/calls/0004-fusion_mcp_call.json b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0004-fusion_mcp_call.json new file mode 100644 index 0000000..9ff4501 --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/calls/0004-fusion_mcp_call.json @@ -0,0 +1,46 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mcp_call", + "args": { + "tool": "fusion_mcp_execute", + "arguments": { + "featureType": "script", + "object": { + "script": "def run(_context:str):\n import json, threading\n assert threading.current_thread() is threading.main_thread()\n import adsk.core, adsk.fusion\n app=adsk.core.Application.get()\n scope={\"__name__\":\"adom_history_observation\",\"adsk\":adsk,\"app\":app,\"ui\":app.userInterface}\n exec('import threading, builtins\\nif threading.current_thread() is not threading.main_thread():\\n raise RuntimeError(\\'Busy probe requires the native main thread\\')\\n_registry = getattr(builtins, \\'_adom_mechanical_ralph_runs\\', None)\\nif not isinstance(_registry, dict) or \\'20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\\' not in _registry:\\n raise RuntimeError(\\'Existing exact run registry is required\\')\\nimport json\\nREQUEST = json.loads(\\'{\"action\": \"inventory\", \"runId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\", \"host\": \"ADOM_DREW2\", \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\"}\\')\\n\\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\\n\\ndef require(condition, message):\\n if not condition:\\n raise RuntimeError(message)\\n\\ndef same(a, b):\\n if isinstance(a, bool) or isinstance(b, bool):\\n return type(a) is type(b) and a == b\\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\\n if isinstance(a, dict) and isinstance(b, dict):\\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\\n if isinstance(a, list) and isinstance(b, list):\\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\\n return a == b\\n\\ndef vector(p):\\n return [p.x * 10, p.y * 10, p.z * 10]\\n\\ndef body_measure(body):\\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n box = body.boundingBox\\n return {\\'name\\': body.name, \\'volume\\': properties.volume * 1000, \\'mass\\': properties.mass,\\n \\'centerOfMass\\': vector(properties.centerOfMass), \\'faces\\': body.faces.count,\\n \\'bounds\\': [vector(box.minPoint), vector(box.maxPoint)],\\n \\'material\\': body.material.name if body.material else None}\\n\\ndef witness(document):\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\'DesignProductType\\'))\\n require(design is not None, \\'Owned document is no longer a design\\')\\n root = design.rootComponent\\n components, occurrences = [], []\\n all_bodies = [body_measure(b) for b in root.bRepBodies]\\n for comp in design.allComponents:\\n components.append({\\'name\\': \\'\\' if comp == root else comp.name,\\n \\'partNumber\\': comp.partNumber, \\'description\\': comp.description,\\n \\'material\\': comp.material.name if comp.material else None,\\n \\'attributes\\': {a.name: a.value for a in comp.attributes if a.groupName == \\'AdomMechanical\\'},\\n \\'bodies\\': [body_measure(b) for b in comp.bRepBodies],\\n \\'sketches\\': [{\\'name\\': s.name, \\'fullyConstrained\\': s.isFullyConstrained,\\n \\'curves\\': s.sketchCurves.count, \\'profiles\\': s.profiles.count} for s in comp.sketches]})\\n for occurrence in root.allOccurrences:\\n matrix = list(occurrence.transform2.asArray())\\n for index in (3, 7, 11): matrix[index] *= 10\\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\\n all_bodies.extend(bodies)\\n occurrences.append({\\'path\\': occurrence.fullPathName, \\'component\\': occurrence.component.name,\\n \\'transform\\': matrix, \\'bodies\\': bodies})\\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n return {\\'parameters\\': {p.name: p.expression for p in design.allParameters},\\n \\'timelineCount\\': design.timeline.count,\\n \\'components\\': sorted(components, key=lambda c: c[\\'name\\']),\\n \\'occurrences\\': sorted(occurrences, key=lambda o: o[\\'path\\']),\\n \\'physical\\': {\\'volume\\': props.volume * 1000, \\'mass\\': props.mass,\\n \\'centerOfMass\\': vector(props.centerOfMass)},\\n \\'instanceVolume\\': sum(b[\\'volume\\'] for b in all_bodies),\\n \\'instanceCount\\': len(all_bodies)}\\n\\nrequire(platform.node().lower() == REQUEST[\\'host\\'].lower(), \\'Host identity differs from expected host\\')\\nrequire(re.fullmatch(r\\'[A-Za-z0-9_-]{12,100}\\', REQUEST[\\'runId\\']) is not None, \\'Invalid run ID\\')\\nmodules = [m for n, m in list(sys.modules.items())\\n if n.endswith(\\'.mechanical.core\\') and getattr(m, \\'SESSION_ID\\', None) == REQUEST[\\'sessionId\\']]\\nrequire(len(modules) == 1, \\'Exact serving mechanical session is unavailable; no ownership inference\\')\\ncore = modules[0]\\nregistries = getattr(builtins, \\'_adom_mechanical_ralph_runs\\', None)\\nif registries is None:\\n registries = {}\\n builtins._adom_mechanical_ralph_runs = registries\\naction = REQUEST[\\'action\\']\\nrun = registries.get(REQUEST[\\'runId\\'])\\n\\ndef documents():\\n return [{\\'creationId\\': d.creationId, \\'name\\': d.name, \\'modified\\': d.isModified, \\'saved\\': d.isSaved}\\n for d in app.documents]\\n\\ndef idle():\\n require(ui.activeCommand in (\\'\\', \\'SelectCommand\\', \\'Select\\'), \\'Interactive command active; refusing document lifecycle action\\')\\n\\ndef fingerprint(document):\\n return {\\'creationId\\': document.creationId, \\'name\\': document.name,\\n \\'modified\\': document.isModified, \\'saved\\': document.isSaved}\\n\\ndef owned(document_id, allow_closed=False):\\n require(document_id in run[\\'documents\\'], \\'Document has no exact native ownership entry\\')\\n row = run[\\'documents\\'][document_id]\\n if row.get(\\'closed\\'):\\n require(allow_closed, \\'Owned document is already closed\\')\\n return row\\n document = row[\\'object\\']\\n require(any(d == document for d in app.documents), \\'Exact owned document is no longer open\\')\\n require(not any(d == document for d in run[\\'baselineObjects\\']), \\'Refusing a baseline document\\')\\n require(document.name == row[\\'name\\'] and not document.isSaved, \\'Owned document was renamed or saved externally\\')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\'DesignProductType\\'))\\n marker = design.rootComponent.attributes.itemByName(\\'AdomRalph\\', \\'owner\\')\\n require(marker and marker.value == REQUEST[\\'runId\\'], \\'Run ownership marker changed\\')\\n marker = design.rootComponent.attributes.itemByName(\\'AdomRalph\\', \\'documentId\\')\\n require(marker and marker.value == document_id, \\'Runtime document marker changed\\')\\n return row\\n\\ndef path_in_scratch(path):\\n root = os.path.realpath(run[\\'scratch\\'])\\n path = os.path.abspath(path)\\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\\n \\'Artifact is not inside the owned scratch directory\\')\\n require(not os.path.islink(path), \\'Artifact is a symlink\\')\\n return path\\n\\ndef file_info(path):\\n path = path_in_scratch(path)\\n require(os.path.isfile(path), \\'Checkpoint file is absent\\')\\n require(os.path.getsize(path) <= 32 * 1024 * 1024, \\'Fixture artifact exceeds 32 MiB budget\\')\\n with open(path, \\'rb\\') as stream: data = stream.read()\\n return {\\'path\\': path.replace(\\'\\\\\\\\\\', \\'/\\'), \\'sha256\\': hashlib.sha256(data).hexdigest(), \\'bytes\\': len(data)}\\n\\ndef register(document, document_id, role):\\n require(not any(d == document for d in run[\\'baselineObjects\\']), \\'Creation returned a baseline document\\')\\n require(document_id not in run[\\'documents\\'], \\'Runtime ID is already registered\\')\\n # Retain exact object first, including if marker creation later fails.\\n row = {\\'object\\': document, \\'documentId\\': document_id, \\'role\\': role,\\n \\'creationId\\': document.creationId, \\'name\\': document.name, \\'closed\\': False, \\'checkpoint\\': None}\\n run[\\'documents\\'][document_id] = row\\n require(not document.isSaved and document.name.startswith(\\'Untitled\\'), \\'Only new unnamed designs are owned\\')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\'DesignProductType\\'))\\n design.rootComponent.attributes.add(\\'AdomRalph\\', \\'owner\\', REQUEST[\\'runId\\'])\\n design.rootComponent.attributes.add(\\'AdomRalph\\', \\'documentId\\', document_id)\\n return row\\n\\ndef public_row(row):\\n return {k: v for k, v in row.items() if k not in (\\'object\\', \\'witness\\')}\\n\\nif action == \\'begin\\':\\n idle()\\n require(run is None, \\'Native run registry already exists; use recover\\')\\n require(app.documents.count > 0, \\'An existing active design is required for a read-only baseline\\')\\n baseline = documents()\\n require(baseline == REQUEST[\\'baseline\\'], \\'Documents changed after baseline; refusing to start\\')\\n scratch = os.path.join(tempfile.gettempdir(), \\'adom-fusion-ralph\\', REQUEST[\\'runId\\'])\\n require(not os.path.exists(scratch), \\'Run scratch already exists\\')\\n parent = os.path.dirname(scratch)\\n require(os.path.realpath(parent) == os.path.abspath(parent), \\'Scratch parent resolves through a link\\')\\n os.makedirs(scratch)\\n run = {\\'sessionId\\': REQUEST[\\'sessionId\\'], \\'documents\\': {}, \\'scratch\\': scratch,\\n \\'baselineObjects\\': list(app.documents), \\'baseline\\': baseline,\\n \\'activeObject\\': app.activeDocument, \\'activeFingerprint\\': fingerprint(app.activeDocument)}\\n registries[REQUEST[\\'runId\\']] = run\\n result = {\\'success\\': True, \\'scratch\\': scratch.replace(\\'\\\\\\\\\\', \\'/\\'), \\'documents\\': baseline}\\nelse:\\n require(run is not None and run[\\'sessionId\\'] == REQUEST[\\'sessionId\\'], \\'Native registry/session missing; no close attempted\\')\\n if action == \\'inventory\\':\\n result = {\\'success\\': True, \\'documents\\': [public_row(r) for r in run[\\'documents\\'].values()],\\n \\'provisionalImportCount\\': len(run.get(\\'provisionalImports\\', [])),\\n \\'scratch\\': run[\\'scratch\\'].replace(\\'\\\\\\\\\\', \\'/\\')}\\n elif action == \\'register\\':\\n idle()\\n document, design, document_id = core.active(app)\\n require(document_id == REQUEST[\\'documentId\\'], \\'Active runtime document differs from typed creation result\\')\\n row = register(document, document_id, REQUEST[\\'role\\'])\\n result = {\\'success\\': True, **public_row(row)}\\n elif action in (\\'witness\\', \\'verify\\', \\'activate\\', \\'close\\', \\'checkpoint\\', \\'capture\\'):\\n row = owned(REQUEST[\\'documentId\\'], action in (\\'close\\', \\'verify\\'))\\n document = row[\\'object\\']\\n if action == \\'verify\\':\\n if not row.get(\\'closed\\'):\\n checkpoint = row[\\'checkpoint\\']\\n require(checkpoint is not None, \\'No verified native checkpoint\\')\\n require(file_info(checkpoint[\\'path\\'])[\\'sha256\\'] == checkpoint[\\'sha256\\'], \\'Checkpoint bytes changed\\')\\n require(same(witness(document), row[\\'witness\\']), \\'Model changed since checkpoint\\')\\n result = {\\'success\\': True, \\'documentId\\': row[\\'documentId\\'], \\'ownerRunId\\': REQUEST[\\'runId\\'], \\'closed\\': row[\\'closed\\']}\\n elif action == \\'witness\\':\\n require(app.activeDocument == document, \\'Active document changed; no implicit activation\\')\\n result = {\\'success\\': True, \\'documentId\\': row[\\'documentId\\'], \\'witness\\': witness(document)}\\n elif action == \\'activate\\':\\n idle()\\n require(any(app.activeDocument == r[\\'object\\'] for r in run[\\'documents\\'].values() if not r[\\'closed\\']),\\n \\'User selected an external document; refusing activation\\')\\n if app.activeDocument != document:\\n require(document.activate(), \\'Owned document activation failed\\')\\n result = {\\'success\\': True, \\'documentId\\': row[\\'documentId\\']}\\n elif action == \\'close\\':\\n idle()\\n if not row[\\'closed\\']:\\n require(any(app.activeDocument == r[\\'object\\'] for r in run[\\'documents\\'].values() if not r[\\'closed\\']),\\n \\'User selected an external document; refusing lifecycle changes\\')\\n checkpoint = row[\\'checkpoint\\']\\n require(checkpoint is not None, \\'No verified native checkpoint\\')\\n require(file_info(checkpoint[\\'path\\'])[\\'sha256\\'] == checkpoint[\\'sha256\\'], \\'Checkpoint bytes changed\\')\\n require(same(witness(document), row[\\'witness\\']), \\'Model changed since checkpoint\\')\\n require(document.close(False), \\'Owned document close returned false\\')\\n require(not any(d == document for d in app.documents), \\'Owned document still appears in open documents\\')\\n row[\\'closed\\'] = True\\n result = {\\'success\\': True, \\'closedDocumentId\\': row[\\'documentId\\'], \\'closed\\': True}\\n elif action == \\'capture\\':\\n require(app.activeDocument == document, \\'Active document changed before capture\\')\\n path = path_in_scratch(REQUEST[\\'path\\'])\\n require(not os.path.exists(path), \\'Capture destination already exists\\')\\n viewport = app.activeViewport\\n viewport.fit()\\n viewport.refresh()\\n require(viewport.saveAsImageFile(path, 1280, 900), \\'Viewport capture failed\\')\\n result = {\\'success\\': True, **file_info(path)}\\n else:\\n idle()\\n require(app.activeDocument == document, \\'Active document changed before roundtrip\\')\\n path = path_in_scratch(REQUEST[\\'path\\'])\\n archive = file_info(path)\\n before = witness(document)\\n options = app.importManager.createFusionArchiveImportOptions(path)\\n imported = app.importManager.importToNewDocument(options)\\n # Keep the actual returned API object before any fragile getter or\\n # identity lookup. A provisional object can only be retained/reported.\\n provisional = {\\'object\\': imported}\\n run.setdefault(\\'provisionalImports\\', []).append(provisional)\\n require(imported is not None and app.activeDocument == imported, \\'Archive import returned no active document\\')\\n reopened_doc, reopened_design, reopened_id = core.active(app)\\n require(reopened_doc == imported, \\'Imported document identity mismatch\\')\\n reopened = register(imported, reopened_id, row[\\'role\\'] + \\'-reopened\\')\\n run[\\'provisionalImports\\'].remove(provisional)\\n after = witness(imported)\\n require(same(before, after), \\'Native archive roundtrip changed measured model state\\')\\n # Mark both sides only after independent semantic comparison.\\n for item in (row, reopened):\\n item[\\'checkpoint\\'] = archive\\n item[\\'witness\\'] = before\\n result = {\\'success\\': True, \\'archive\\': archive, \\'before\\': before, \\'after\\': after,\\n \\'reopened\\': public_row(reopened), \\'source\\': public_row(row)}\\n elif action == \\'file\\':\\n info = file_info(REQUEST[\\'path\\'])\\n with open(info[\\'path\\'], \\'rb\\') as stream: data = stream.read()\\n result = {\\'success\\': True, **info, \\'base64\\': base64.b64encode(data).decode(\\'ascii\\')}\\n if REQUEST.get(\\'csv\\'):\\n with open(info[\\'path\\'], encoding=\\'utf-8\\', newline=\\'\\') as stream:\\n result[\\'rows\\'] = list(csv.DictReader(stream))\\n elif action == \\'restore\\':\\n idle()\\n require(not run.get(\\'provisionalImports\\'), \\'Unresolved imported object remains; restoration refused\\')\\n require(all(row[\\'closed\\'] for row in run[\\'documents\\'].values()), \\'Owned documents remain open\\')\\n require(len(list(app.documents)) == len(run[\\'baselineObjects\\']) and\\n all(any(d == original for d in app.documents) for original in run[\\'baselineObjects\\']),\\n \\'Document set changed; refusing to change active document\\')\\n require(documents() == run[\\'baseline\\'], \\'Original document flags changed\\')\\n original = run[\\'activeObject\\']\\n if app.activeDocument != original:\\n require(original.activate(), \\'Original document activation failed\\')\\n require(fingerprint(original) == run[\\'activeFingerprint\\'], \\'Original active document changed\\')\\n result = {\\'success\\': True, \\'documents\\': documents(), \\'activeCreationId\\': original.creationId}\\n else:\\n raise RuntimeError(\\'Unknown native action\\')\\n\\nEXPECTED = json.loads(\\'{\"runId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\", \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\", \"host\": \"ADOM_DREW2\", \"pid\": 41728, \"scratch\": \"C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\", \"nonce\": \"7575c5bb7b3b474ab621f55d649416a4\", \"original\": {\"creationId\": \"70b2c575-f830-4751-9f88-2f1f3ab91fb1\", \"modified\": false, \"name\": \"Untitled\", \"saved\": false}}\\')\\n\\nimport time, threading\\nrequire(threading.current_thread() is threading.main_thread(), \\'Main thread changed\\')\\nrequire(os.getpid() == EXPECTED[\\'pid\\'], \\'Native Fusion PID changed\\')\\nrequire(not run.get(\\'provisionalImports\\') and not run.get(\\'retainRequired\\'), \\'Native recovery remains unresolved\\')\\nrequire(len(run[\\'documents\\']) <= 1024 and all(row.get(\\'closed\\') is True and not row.get(\\'retainRequired\\') for row in run[\\'documents\\'].values()), \\'Owned native document remains open or retained\\')\\nrequire(len(run[\\'baselineObjects\\']) == 1 and app.documents.count == 1, \\'Native original inventory differs\\')\\noriginal = run[\\'activeObject\\']\\nrequire(app.activeDocument == original and app.documents.item(0) == original and run[\\'baselineObjects\\'][0] == original, \\'Exact original object differs\\')\\nrequire(run[\\'activeFingerprint\\'] == EXPECTED[\\'original\\'] and fingerprint(original) == EXPECTED[\\'original\\'], \\'Original fingerprint changed\\')\\nrequire(not original.isModified and not original.isSaved, \\'Original is not pristine\\')\\nrequire(documents() == run[\\'baseline\\'] == [EXPECTED[\\'original\\']], \\'Original baseline changed\\')\\nidle()\\ndesign = adsk.fusion.Design.cast(original.products.itemByProductType(\\'DesignProductType\\'))\\nrequire(design is not None and design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, \\'Original geometry is not pristine\\')\\nrequire(os.path.normcase(os.path.abspath(run[\\'scratch\\'])) == os.path.normcase(os.path.abspath(EXPECTED[\\'scratch\\'])), \\'Scratch differs from native registry\\')\\nrequire(os.path.isdir(run[\\'scratch\\']) and os.path.realpath(run[\\'scratch\\']) == os.path.abspath(run[\\'scratch\\']), \\'Scratch root is linked or absent\\')\\ndef state():\\n require(app.activeDocument == original and app.documents.count == 1 and app.documents.item(0) == original, \\'Original object changed during hold\\')\\n require(fingerprint(original) == EXPECTED[\\'original\\'], \\'Original fingerprint changed during hold\\')\\n require(design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, \\'Original geometry changed during hold\\')\\n idle()\\n return fingerprint(original)\\nresult = {\\'success\\': True, \\'sessionId\\': EXPECTED[\\'sessionId\\'], \\'runId\\': EXPECTED[\\'runId\\'], \\'pid\\': os.getpid(), \\'original\\': state()}\\n',scope,scope)\n print('ADOM_HISTORY_NATIVE='+json.dumps(scope['result']))\n", + "readOnly": true + } + }, + "timeout": 40 + }, + "requestJson": "{\"tool\": \"fusion_mcp_execute\", \"arguments\": {\"featureType\": \"script\", \"object\": {\"script\": \"def run(_context:str):\\n import json, threading\\n assert threading.current_thread() is threading.main_thread()\\n import adsk.core, adsk.fusion\\n app=adsk.core.Application.get()\\n scope={\\\"__name__\\\":\\\"adom_history_observation\\\",\\\"adsk\\\":adsk,\\\"app\\\":app,\\\"ui\\\":app.userInterface}\\n exec('import threading, builtins\\\\nif threading.current_thread() is not threading.main_thread():\\\\n raise RuntimeError(\\\\'Busy probe requires the native main thread\\\\')\\\\n_registry = getattr(builtins, \\\\'_adom_mechanical_ralph_runs\\\\', None)\\\\nif not isinstance(_registry, dict) or \\\\'20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\\\\' not in _registry:\\\\n raise RuntimeError(\\\\'Existing exact run registry is required\\\\')\\\\nimport json\\\\nREQUEST = json.loads(\\\\'{\\\"action\\\": \\\"inventory\\\", \\\"runId\\\": \\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\\\", \\\"host\\\": \\\"ADOM_DREW2\\\", \\\"sessionId\\\": \\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\"}\\\\')\\\\n\\\\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\\\\n\\\\ndef require(condition, message):\\\\n if not condition:\\\\n raise RuntimeError(message)\\\\n\\\\ndef same(a, b):\\\\n if isinstance(a, bool) or isinstance(b, bool):\\\\n return type(a) is type(b) and a == b\\\\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\\\\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\\\\n if isinstance(a, dict) and isinstance(b, dict):\\\\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\\\\n if isinstance(a, list) and isinstance(b, list):\\\\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\\\\n return a == b\\\\n\\\\ndef vector(p):\\\\n return [p.x * 10, p.y * 10, p.z * 10]\\\\n\\\\ndef body_measure(body):\\\\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\\\n box = body.boundingBox\\\\n return {\\\\'name\\\\': body.name, \\\\'volume\\\\': properties.volume * 1000, \\\\'mass\\\\': properties.mass,\\\\n \\\\'centerOfMass\\\\': vector(properties.centerOfMass), \\\\'faces\\\\': body.faces.count,\\\\n \\\\'bounds\\\\': [vector(box.minPoint), vector(box.maxPoint)],\\\\n \\\\'material\\\\': body.material.name if body.material else None}\\\\n\\\\ndef witness(document):\\\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\\\'DesignProductType\\\\'))\\\\n require(design is not None, \\\\'Owned document is no longer a design\\\\')\\\\n root = design.rootComponent\\\\n components, occurrences = [], []\\\\n all_bodies = [body_measure(b) for b in root.bRepBodies]\\\\n for comp in design.allComponents:\\\\n components.append({\\\\'name\\\\': \\\\'\\\\' if comp == root else comp.name,\\\\n \\\\'partNumber\\\\': comp.partNumber, \\\\'description\\\\': comp.description,\\\\n \\\\'material\\\\': comp.material.name if comp.material else None,\\\\n \\\\'attributes\\\\': {a.name: a.value for a in comp.attributes if a.groupName == \\\\'AdomMechanical\\\\'},\\\\n \\\\'bodies\\\\': [body_measure(b) for b in comp.bRepBodies],\\\\n \\\\'sketches\\\\': [{\\\\'name\\\\': s.name, \\\\'fullyConstrained\\\\': s.isFullyConstrained,\\\\n \\\\'curves\\\\': s.sketchCurves.count, \\\\'profiles\\\\': s.profiles.count} for s in comp.sketches]})\\\\n for occurrence in root.allOccurrences:\\\\n matrix = list(occurrence.transform2.asArray())\\\\n for index in (3, 7, 11): matrix[index] *= 10\\\\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\\\\n all_bodies.extend(bodies)\\\\n occurrences.append({\\\\'path\\\\': occurrence.fullPathName, \\\\'component\\\\': occurrence.component.name,\\\\n \\\\'transform\\\\': matrix, \\\\'bodies\\\\': bodies})\\\\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\\\n return {\\\\'parameters\\\\': {p.name: p.expression for p in design.allParameters},\\\\n \\\\'timelineCount\\\\': design.timeline.count,\\\\n \\\\'components\\\\': sorted(components, key=lambda c: c[\\\\'name\\\\']),\\\\n \\\\'occurrences\\\\': sorted(occurrences, key=lambda o: o[\\\\'path\\\\']),\\\\n \\\\'physical\\\\': {\\\\'volume\\\\': props.volume * 1000, \\\\'mass\\\\': props.mass,\\\\n \\\\'centerOfMass\\\\': vector(props.centerOfMass)},\\\\n \\\\'instanceVolume\\\\': sum(b[\\\\'volume\\\\'] for b in all_bodies),\\\\n \\\\'instanceCount\\\\': len(all_bodies)}\\\\n\\\\nrequire(platform.node().lower() == REQUEST[\\\\'host\\\\'].lower(), \\\\'Host identity differs from expected host\\\\')\\\\nrequire(re.fullmatch(r\\\\'[A-Za-z0-9_-]{12,100}\\\\', REQUEST[\\\\'runId\\\\']) is not None, \\\\'Invalid run ID\\\\')\\\\nmodules = [m for n, m in list(sys.modules.items())\\\\n if n.endswith(\\\\'.mechanical.core\\\\') and getattr(m, \\\\'SESSION_ID\\\\', None) == REQUEST[\\\\'sessionId\\\\']]\\\\nrequire(len(modules) == 1, \\\\'Exact serving mechanical session is unavailable; no ownership inference\\\\')\\\\ncore = modules[0]\\\\nregistries = getattr(builtins, \\\\'_adom_mechanical_ralph_runs\\\\', None)\\\\nif registries is None:\\\\n registries = {}\\\\n builtins._adom_mechanical_ralph_runs = registries\\\\naction = REQUEST[\\\\'action\\\\']\\\\nrun = registries.get(REQUEST[\\\\'runId\\\\'])\\\\n\\\\ndef documents():\\\\n return [{\\\\'creationId\\\\': d.creationId, \\\\'name\\\\': d.name, \\\\'modified\\\\': d.isModified, \\\\'saved\\\\': d.isSaved}\\\\n for d in app.documents]\\\\n\\\\ndef idle():\\\\n require(ui.activeCommand in (\\\\'\\\\', \\\\'SelectCommand\\\\', \\\\'Select\\\\'), \\\\'Interactive command active; refusing document lifecycle action\\\\')\\\\n\\\\ndef fingerprint(document):\\\\n return {\\\\'creationId\\\\': document.creationId, \\\\'name\\\\': document.name,\\\\n \\\\'modified\\\\': document.isModified, \\\\'saved\\\\': document.isSaved}\\\\n\\\\ndef owned(document_id, allow_closed=False):\\\\n require(document_id in run[\\\\'documents\\\\'], \\\\'Document has no exact native ownership entry\\\\')\\\\n row = run[\\\\'documents\\\\'][document_id]\\\\n if row.get(\\\\'closed\\\\'):\\\\n require(allow_closed, \\\\'Owned document is already closed\\\\')\\\\n return row\\\\n document = row[\\\\'object\\\\']\\\\n require(any(d == document for d in app.documents), \\\\'Exact owned document is no longer open\\\\')\\\\n require(not any(d == document for d in run[\\\\'baselineObjects\\\\']), \\\\'Refusing a baseline document\\\\')\\\\n require(document.name == row[\\\\'name\\\\'] and not document.isSaved, \\\\'Owned document was renamed or saved externally\\\\')\\\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\\\'DesignProductType\\\\'))\\\\n marker = design.rootComponent.attributes.itemByName(\\\\'AdomRalph\\\\', \\\\'owner\\\\')\\\\n require(marker and marker.value == REQUEST[\\\\'runId\\\\'], \\\\'Run ownership marker changed\\\\')\\\\n marker = design.rootComponent.attributes.itemByName(\\\\'AdomRalph\\\\', \\\\'documentId\\\\')\\\\n require(marker and marker.value == document_id, \\\\'Runtime document marker changed\\\\')\\\\n return row\\\\n\\\\ndef path_in_scratch(path):\\\\n root = os.path.realpath(run[\\\\'scratch\\\\'])\\\\n path = os.path.abspath(path)\\\\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\\\\n \\\\'Artifact is not inside the owned scratch directory\\\\')\\\\n require(not os.path.islink(path), \\\\'Artifact is a symlink\\\\')\\\\n return path\\\\n\\\\ndef file_info(path):\\\\n path = path_in_scratch(path)\\\\n require(os.path.isfile(path), \\\\'Checkpoint file is absent\\\\')\\\\n require(os.path.getsize(path) <= 32 * 1024 * 1024, \\\\'Fixture artifact exceeds 32 MiB budget\\\\')\\\\n with open(path, \\\\'rb\\\\') as stream: data = stream.read()\\\\n return {\\\\'path\\\\': path.replace(\\\\'\\\\\\\\\\\\\\\\\\\\', \\\\'/\\\\'), \\\\'sha256\\\\': hashlib.sha256(data).hexdigest(), \\\\'bytes\\\\': len(data)}\\\\n\\\\ndef register(document, document_id, role):\\\\n require(not any(d == document for d in run[\\\\'baselineObjects\\\\']), \\\\'Creation returned a baseline document\\\\')\\\\n require(document_id not in run[\\\\'documents\\\\'], \\\\'Runtime ID is already registered\\\\')\\\\n # Retain exact object first, including if marker creation later fails.\\\\n row = {\\\\'object\\\\': document, \\\\'documentId\\\\': document_id, \\\\'role\\\\': role,\\\\n \\\\'creationId\\\\': document.creationId, \\\\'name\\\\': document.name, \\\\'closed\\\\': False, \\\\'checkpoint\\\\': None}\\\\n run[\\\\'documents\\\\'][document_id] = row\\\\n require(not document.isSaved and document.name.startswith(\\\\'Untitled\\\\'), \\\\'Only new unnamed designs are owned\\\\')\\\\n design = adsk.fusion.Design.cast(document.products.itemByProductType(\\\\'DesignProductType\\\\'))\\\\n design.rootComponent.attributes.add(\\\\'AdomRalph\\\\', \\\\'owner\\\\', REQUEST[\\\\'runId\\\\'])\\\\n design.rootComponent.attributes.add(\\\\'AdomRalph\\\\', \\\\'documentId\\\\', document_id)\\\\n return row\\\\n\\\\ndef public_row(row):\\\\n return {k: v for k, v in row.items() if k not in (\\\\'object\\\\', \\\\'witness\\\\')}\\\\n\\\\nif action == \\\\'begin\\\\':\\\\n idle()\\\\n require(run is None, \\\\'Native run registry already exists; use recover\\\\')\\\\n require(app.documents.count > 0, \\\\'An existing active design is required for a read-only baseline\\\\')\\\\n baseline = documents()\\\\n require(baseline == REQUEST[\\\\'baseline\\\\'], \\\\'Documents changed after baseline; refusing to start\\\\')\\\\n scratch = os.path.join(tempfile.gettempdir(), \\\\'adom-fusion-ralph\\\\', REQUEST[\\\\'runId\\\\'])\\\\n require(not os.path.exists(scratch), \\\\'Run scratch already exists\\\\')\\\\n parent = os.path.dirname(scratch)\\\\n require(os.path.realpath(parent) == os.path.abspath(parent), \\\\'Scratch parent resolves through a link\\\\')\\\\n os.makedirs(scratch)\\\\n run = {\\\\'sessionId\\\\': REQUEST[\\\\'sessionId\\\\'], \\\\'documents\\\\': {}, \\\\'scratch\\\\': scratch,\\\\n \\\\'baselineObjects\\\\': list(app.documents), \\\\'baseline\\\\': baseline,\\\\n \\\\'activeObject\\\\': app.activeDocument, \\\\'activeFingerprint\\\\': fingerprint(app.activeDocument)}\\\\n registries[REQUEST[\\\\'runId\\\\']] = run\\\\n result = {\\\\'success\\\\': True, \\\\'scratch\\\\': scratch.replace(\\\\'\\\\\\\\\\\\\\\\\\\\', \\\\'/\\\\'), \\\\'documents\\\\': baseline}\\\\nelse:\\\\n require(run is not None and run[\\\\'sessionId\\\\'] == REQUEST[\\\\'sessionId\\\\'], \\\\'Native registry/session missing; no close attempted\\\\')\\\\n if action == \\\\'inventory\\\\':\\\\n result = {\\\\'success\\\\': True, \\\\'documents\\\\': [public_row(r) for r in run[\\\\'documents\\\\'].values()],\\\\n \\\\'provisionalImportCount\\\\': len(run.get(\\\\'provisionalImports\\\\', [])),\\\\n \\\\'scratch\\\\': run[\\\\'scratch\\\\'].replace(\\\\'\\\\\\\\\\\\\\\\\\\\', \\\\'/\\\\')}\\\\n elif action == \\\\'register\\\\':\\\\n idle()\\\\n document, design, document_id = core.active(app)\\\\n require(document_id == REQUEST[\\\\'documentId\\\\'], \\\\'Active runtime document differs from typed creation result\\\\')\\\\n row = register(document, document_id, REQUEST[\\\\'role\\\\'])\\\\n result = {\\\\'success\\\\': True, **public_row(row)}\\\\n elif action in (\\\\'witness\\\\', \\\\'verify\\\\', \\\\'activate\\\\', \\\\'close\\\\', \\\\'checkpoint\\\\', \\\\'capture\\\\'):\\\\n row = owned(REQUEST[\\\\'documentId\\\\'], action in (\\\\'close\\\\', \\\\'verify\\\\'))\\\\n document = row[\\\\'object\\\\']\\\\n if action == \\\\'verify\\\\':\\\\n if not row.get(\\\\'closed\\\\'):\\\\n checkpoint = row[\\\\'checkpoint\\\\']\\\\n require(checkpoint is not None, \\\\'No verified native checkpoint\\\\')\\\\n require(file_info(checkpoint[\\\\'path\\\\'])[\\\\'sha256\\\\'] == checkpoint[\\\\'sha256\\\\'], \\\\'Checkpoint bytes changed\\\\')\\\\n require(same(witness(document), row[\\\\'witness\\\\']), \\\\'Model changed since checkpoint\\\\')\\\\n result = {\\\\'success\\\\': True, \\\\'documentId\\\\': row[\\\\'documentId\\\\'], \\\\'ownerRunId\\\\': REQUEST[\\\\'runId\\\\'], \\\\'closed\\\\': row[\\\\'closed\\\\']}\\\\n elif action == \\\\'witness\\\\':\\\\n require(app.activeDocument == document, \\\\'Active document changed; no implicit activation\\\\')\\\\n result = {\\\\'success\\\\': True, \\\\'documentId\\\\': row[\\\\'documentId\\\\'], \\\\'witness\\\\': witness(document)}\\\\n elif action == \\\\'activate\\\\':\\\\n idle()\\\\n require(any(app.activeDocument == r[\\\\'object\\\\'] for r in run[\\\\'documents\\\\'].values() if not r[\\\\'closed\\\\']),\\\\n \\\\'User selected an external document; refusing activation\\\\')\\\\n if app.activeDocument != document:\\\\n require(document.activate(), \\\\'Owned document activation failed\\\\')\\\\n result = {\\\\'success\\\\': True, \\\\'documentId\\\\': row[\\\\'documentId\\\\']}\\\\n elif action == \\\\'close\\\\':\\\\n idle()\\\\n if not row[\\\\'closed\\\\']:\\\\n require(any(app.activeDocument == r[\\\\'object\\\\'] for r in run[\\\\'documents\\\\'].values() if not r[\\\\'closed\\\\']),\\\\n \\\\'User selected an external document; refusing lifecycle changes\\\\')\\\\n checkpoint = row[\\\\'checkpoint\\\\']\\\\n require(checkpoint is not None, \\\\'No verified native checkpoint\\\\')\\\\n require(file_info(checkpoint[\\\\'path\\\\'])[\\\\'sha256\\\\'] == checkpoint[\\\\'sha256\\\\'], \\\\'Checkpoint bytes changed\\\\')\\\\n require(same(witness(document), row[\\\\'witness\\\\']), \\\\'Model changed since checkpoint\\\\')\\\\n require(document.close(False), \\\\'Owned document close returned false\\\\')\\\\n require(not any(d == document for d in app.documents), \\\\'Owned document still appears in open documents\\\\')\\\\n row[\\\\'closed\\\\'] = True\\\\n result = {\\\\'success\\\\': True, \\\\'closedDocumentId\\\\': row[\\\\'documentId\\\\'], \\\\'closed\\\\': True}\\\\n elif action == \\\\'capture\\\\':\\\\n require(app.activeDocument == document, \\\\'Active document changed before capture\\\\')\\\\n path = path_in_scratch(REQUEST[\\\\'path\\\\'])\\\\n require(not os.path.exists(path), \\\\'Capture destination already exists\\\\')\\\\n viewport = app.activeViewport\\\\n viewport.fit()\\\\n viewport.refresh()\\\\n require(viewport.saveAsImageFile(path, 1280, 900), \\\\'Viewport capture failed\\\\')\\\\n result = {\\\\'success\\\\': True, **file_info(path)}\\\\n else:\\\\n idle()\\\\n require(app.activeDocument == document, \\\\'Active document changed before roundtrip\\\\')\\\\n path = path_in_scratch(REQUEST[\\\\'path\\\\'])\\\\n archive = file_info(path)\\\\n before = witness(document)\\\\n options = app.importManager.createFusionArchiveImportOptions(path)\\\\n imported = app.importManager.importToNewDocument(options)\\\\n # Keep the actual returned API object before any fragile getter or\\\\n # identity lookup. A provisional object can only be retained/reported.\\\\n provisional = {\\\\'object\\\\': imported}\\\\n run.setdefault(\\\\'provisionalImports\\\\', []).append(provisional)\\\\n require(imported is not None and app.activeDocument == imported, \\\\'Archive import returned no active document\\\\')\\\\n reopened_doc, reopened_design, reopened_id = core.active(app)\\\\n require(reopened_doc == imported, \\\\'Imported document identity mismatch\\\\')\\\\n reopened = register(imported, reopened_id, row[\\\\'role\\\\'] + \\\\'-reopened\\\\')\\\\n run[\\\\'provisionalImports\\\\'].remove(provisional)\\\\n after = witness(imported)\\\\n require(same(before, after), \\\\'Native archive roundtrip changed measured model state\\\\')\\\\n # Mark both sides only after independent semantic comparison.\\\\n for item in (row, reopened):\\\\n item[\\\\'checkpoint\\\\'] = archive\\\\n item[\\\\'witness\\\\'] = before\\\\n result = {\\\\'success\\\\': True, \\\\'archive\\\\': archive, \\\\'before\\\\': before, \\\\'after\\\\': after,\\\\n \\\\'reopened\\\\': public_row(reopened), \\\\'source\\\\': public_row(row)}\\\\n elif action == \\\\'file\\\\':\\\\n info = file_info(REQUEST[\\\\'path\\\\'])\\\\n with open(info[\\\\'path\\\\'], \\\\'rb\\\\') as stream: data = stream.read()\\\\n result = {\\\\'success\\\\': True, **info, \\\\'base64\\\\': base64.b64encode(data).decode(\\\\'ascii\\\\')}\\\\n if REQUEST.get(\\\\'csv\\\\'):\\\\n with open(info[\\\\'path\\\\'], encoding=\\\\'utf-8\\\\', newline=\\\\'\\\\') as stream:\\\\n result[\\\\'rows\\\\'] = list(csv.DictReader(stream))\\\\n elif action == \\\\'restore\\\\':\\\\n idle()\\\\n require(not run.get(\\\\'provisionalImports\\\\'), \\\\'Unresolved imported object remains; restoration refused\\\\')\\\\n require(all(row[\\\\'closed\\\\'] for row in run[\\\\'documents\\\\'].values()), \\\\'Owned documents remain open\\\\')\\\\n require(len(list(app.documents)) == len(run[\\\\'baselineObjects\\\\']) and\\\\n all(any(d == original for d in app.documents) for original in run[\\\\'baselineObjects\\\\']),\\\\n \\\\'Document set changed; refusing to change active document\\\\')\\\\n require(documents() == run[\\\\'baseline\\\\'], \\\\'Original document flags changed\\\\')\\\\n original = run[\\\\'activeObject\\\\']\\\\n if app.activeDocument != original:\\\\n require(original.activate(), \\\\'Original document activation failed\\\\')\\\\n require(fingerprint(original) == run[\\\\'activeFingerprint\\\\'], \\\\'Original active document changed\\\\')\\\\n result = {\\\\'success\\\\': True, \\\\'documents\\\\': documents(), \\\\'activeCreationId\\\\': original.creationId}\\\\n else:\\\\n raise RuntimeError(\\\\'Unknown native action\\\\')\\\\n\\\\nEXPECTED = json.loads(\\\\'{\\\"runId\\\": \\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\\\", \\\"sessionId\\\": \\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\", \\\"host\\\": \\\"ADOM_DREW2\\\", \\\"pid\\\": 41728, \\\"scratch\\\": \\\"C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T210310Z-568fe7869d0b41d5a83014811fe170ac\\\", \\\"nonce\\\": \\\"7575c5bb7b3b474ab621f55d649416a4\\\", \\\"original\\\": {\\\"creationId\\\": \\\"70b2c575-f830-4751-9f88-2f1f3ab91fb1\\\", \\\"modified\\\": false, \\\"name\\\": \\\"Untitled\\\", \\\"saved\\\": false}}\\\\')\\\\n\\\\nimport time, threading\\\\nrequire(threading.current_thread() is threading.main_thread(), \\\\'Main thread changed\\\\')\\\\nrequire(os.getpid() == EXPECTED[\\\\'pid\\\\'], \\\\'Native Fusion PID changed\\\\')\\\\nrequire(not run.get(\\\\'provisionalImports\\\\') and not run.get(\\\\'retainRequired\\\\'), \\\\'Native recovery remains unresolved\\\\')\\\\nrequire(len(run[\\\\'documents\\\\']) <= 1024 and all(row.get(\\\\'closed\\\\') is True and not row.get(\\\\'retainRequired\\\\') for row in run[\\\\'documents\\\\'].values()), \\\\'Owned native document remains open or retained\\\\')\\\\nrequire(len(run[\\\\'baselineObjects\\\\']) == 1 and app.documents.count == 1, \\\\'Native original inventory differs\\\\')\\\\noriginal = run[\\\\'activeObject\\\\']\\\\nrequire(app.activeDocument == original and app.documents.item(0) == original and run[\\\\'baselineObjects\\\\'][0] == original, \\\\'Exact original object differs\\\\')\\\\nrequire(run[\\\\'activeFingerprint\\\\'] == EXPECTED[\\\\'original\\\\'] and fingerprint(original) == EXPECTED[\\\\'original\\\\'], \\\\'Original fingerprint changed\\\\')\\\\nrequire(not original.isModified and not original.isSaved, \\\\'Original is not pristine\\\\')\\\\nrequire(documents() == run[\\\\'baseline\\\\'] == [EXPECTED[\\\\'original\\\\']], \\\\'Original baseline changed\\\\')\\\\nidle()\\\\ndesign = adsk.fusion.Design.cast(original.products.itemByProductType(\\\\'DesignProductType\\\\'))\\\\nrequire(design is not None and design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, \\\\'Original geometry is not pristine\\\\')\\\\nrequire(os.path.normcase(os.path.abspath(run[\\\\'scratch\\\\'])) == os.path.normcase(os.path.abspath(EXPECTED[\\\\'scratch\\\\'])), \\\\'Scratch differs from native registry\\\\')\\\\nrequire(os.path.isdir(run[\\\\'scratch\\\\']) and os.path.realpath(run[\\\\'scratch\\\\']) == os.path.abspath(run[\\\\'scratch\\\\']), \\\\'Scratch root is linked or absent\\\\')\\\\ndef state():\\\\n require(app.activeDocument == original and app.documents.count == 1 and app.documents.item(0) == original, \\\\'Original object changed during hold\\\\')\\\\n require(fingerprint(original) == EXPECTED[\\\\'original\\\\'], \\\\'Original fingerprint changed during hold\\\\')\\\\n require(design.rootComponent.bRepBodies.count == 0 and design.rootComponent.sketches.count == 0 and design.rootComponent.allOccurrences.count == 0 and design.timeline.count == 0, \\\\'Original geometry changed during hold\\\\')\\\\n idle()\\\\n return fingerprint(original)\\\\nresult = {\\\\'success\\\\': True, \\\\'sessionId\\\\': EXPECTED[\\\\'sessionId\\\\'], \\\\'runId\\\\': EXPECTED[\\\\'runId\\\\'], \\\\'pid\\\\': os.getpid(), \\\\'original\\\\': state()}\\\\n',scope,scope)\\n print('ADOM_HISTORY_NATIVE='+json.dumps(scope['result']))\\n\", \"readOnly\": true}}, \"timeout\": 40}", + "runId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac", + "caller": "Fusion roadmap build", + "startedAt": 1791235281.4971187, + "mutating": false, + "stdout": "{\n \"_hint\": \"Autodesk MCP tool result. Content is usually a list of {type,text} blocks. If it complains about no active document, open one first (fusion_aps_open) - MCP acts on the ACTIVE Fusion document.\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"durationMs\": 122,\n \"error\": \"\",\n \"output\": \"{\\\"_hint\\\":\\\"Autodesk MCP tool result. Content is usually a list of {type,text} blocks. If it complains about no active document, open one first (fusion_aps_open) - MCP acts on the ACTIVE Fusion document.\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"result\\\":{\\\"content\\\":[{\\\"text\\\":\\\"{\\\\n \\\\\\\"message\\\\\\\": \\\\\\\"Workspace Activated: Design\\\\\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\\\\\\\nWorkspace Deactivated event received\\\\\\\\nToolbar State: event: workspaceDeactivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\\\\\nWorkspace Activated: Design\\\\\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\\\\\n\\\\\\\",\\\\n \\\\\\\"success\\\\\\\": true\\\\n}\\\",\\\"type\\\":\\\"text\\\"}]},\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_mcp_status\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60,\\\"tool\\\":\\\"fusion_mcp_execute\\\"}\",\n \"result\": {\n \"content\": [\n {\n \"text\": \"{\\n \\\"message\\\": \\\"Workspace Activated: Design\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\\\nWorkspace Deactivated event received\\\\nToolbar State: event: workspaceDeactivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\nWorkspace Activated: Design\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\n\\\",\\n \\\"success\\\": true\\n}\",\n \"type\": \"text\"\n }\n ]\n },\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_mcp_status\",\n \"success\": true,\n \"timeoutSeconds\": 60,\n \"tool\": \"fusion_mcp_execute\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235281.6277673, + "raw": { + "_hint": "Autodesk MCP tool result. Content is usually a list of {type,text} blocks. If it complains about no active document, open one first (fusion_aps_open) - MCP acts on the ACTIVE Fusion document.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "durationMs": 122, + "error": "", + "output": "{\"_hint\":\"Autodesk MCP tool result. Content is usually a list of {type,text} blocks. If it complains about no active document, open one first (fusion_aps_open) - MCP acts on the ACTIVE Fusion document.\",\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"result\":{\"content\":[{\"text\":\"{\\n \\\"message\\\": \\\"Workspace Activated: Design\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\\\nWorkspace Deactivated event received\\\\nToolbar State: event: workspaceDeactivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\nWorkspace Activated: Design\\\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\\\n\\\",\\n \\\"success\\\": true\\n}\",\"type\":\"text\"}]},\"shell\":\"rust\",\"statusVerb\":\"fusion_mcp_status\",\"success\":true,\"timeoutSeconds\":60,\"tool\":\"fusion_mcp_execute\"}", + "result": { + "content": [ + { + "text": "{\n \"message\": \"Workspace Activated: Design\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: False, isValid: True, name: Adom, productType: DesignProductType\\nWorkspace Deactivated event received\\nToolbar State: event: workspaceDeactivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\nWorkspace Activated: Design\\nToolbar State: event: workspaceActivated, tabId: AdomTab, isActive: False, isVisible: True, isValid: True, name: Adom, productType: DesignProductType\\n\",\n \"success\": true\n}", + "type": "text" + } + ] + }, + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_mcp_status", + "success": true, + "timeoutSeconds": 60, + "tool": "fusion_mcp_execute" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/restart-preflight-original/report.json b/docs/mechanical-verification/cp8/restart-preflight-original/report.json new file mode 100644 index 0000000..4e45c02 --- /dev/null +++ b/docs/mechanical-verification/cp8/restart-preflight-original/report.json @@ -0,0 +1,34 @@ +{ + "status": "FAIL", + "captureRequests": 0, + "shotlogUploadRequests": 0, + "restartRequests": 0, + "ordinaryEvidence": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-ordinary-1", + "snapshot": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp8-r6-history-snapshot.json", + "beforeProcess": { + "host": "ADOM_DREW2", + "pid": 41728, + "createdUtc": "2026-10-05T21:01:46.6536380Z", + "executable": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\736d2b4c5e6b95e77c11721da222cf21c6a1fc1f\\Fusion360.exe" + }, + "beforePin": { + "devPinned": true, + "paused": false, + "installedVersion": "1.12.0-dev.8", + "entryMismatch": false + }, + "beforePreferences": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "error": { + "type": "IndexError", + "message": "list index out of range" + } +} diff --git a/docs/mechanical-verification/cp8/runtime-source-manifest.json b/docs/mechanical-verification/cp8/runtime-source-manifest.json new file mode 100644 index 0000000..d701749 --- /dev/null +++ b/docs/mechanical-verification/cp8/runtime-source-manifest.json @@ -0,0 +1,4755 @@ +{ + "source": "/home/adom/project/research/fusion-roadmap-build-2026-10-02/cp8-runtime-source-r6", + "files": [ + { + "path": ".github/workflows/validate.yml", + "sha256": "2de4ee7c96e66d332dbc9c9f1dfb1441ff651d92cd477d45de8d6add1fa7ef28", + "bytes": 3010 + }, + { + "path": ".gitignore", + "sha256": "d3e47127fa765fcf174256fa515f6b2b9647d6485578ccd4f2b04bcd701f2b1e", + "bytes": 876 + }, + { + "path": ".insiders-stage/fusion-bridge/version.json", + "sha256": "02aa2f475a58be87b1b37622b5ca090eb69c3ee51cea664e23794cc579ebcdd0", + "bytes": 405 + }, + { + "path": ".release-page-head", + "sha256": "c14c08a777b137b825523198aadb76bdcec205453f635dd87ff5a182a81b6356", + "bytes": 40 + }, + { + "path": "3d-viewer-and-export.md", + "sha256": "a086d2c806e31399bde6dfe39aa74b99374c71e0aae40a97c045193a8236496b", + "bytes": 5440 + }, + { + "path": "AdomBasicParts-138-library.mp4", + "sha256": "1ab0dea3ad477c31a961931f50afe2c218890ecce52d4a478794c6639cc98e8d", + "bytes": 1293149 + }, + { + "path": "AdomBasicParts_full.lbr", + "sha256": "4c6de2c34854250392025165ec1885df1813d29a93fa241dcf5a007b94086a10", + "bytes": 114743 + }, + { + "path": "BRIDGE_VERSION", + "sha256": "7c60c6078683d49c9e4f4b0704eb03830b50e2048f28f9de3c27bde05f06e734", + "bytes": 12 + }, + { + "path": "CHANGELOG.md", + "sha256": "2cee5092cff6c22f394864fd6ec7a1f2ff72eb0a8efaf8467646036e1e9b353a", + "bytes": 94948 + }, + { + "path": "CHANGELOG_ARCHIVE.md", + "sha256": "3bd611581d02a4e2f6ae63c6306e834d7453aca3a7b90d1e50d1ea5c9bfb14b8", + "bytes": 36806 + }, + { + "path": "CLAUDE.md", + "sha256": "8f4e2603506de422f978a1bfe030ed58f34713da3f440804f5f3768fa8b75616", + "bytes": 12295 + }, + { + "path": "CONTRIBUTING.md", + "sha256": "6210a2440dd6d23870c5d619f569c749d83cf978c012c5530ac97ed81822358d", + "bytes": 8034 + }, + { + "path": "CREATING_BASIC_PARTS_LIBRARIES.md", + "sha256": "24975b6d999d4bee31bf71b677728b1c79ba30108bc0cd1f0750cb0335ec830e", + "bytes": 10412 + }, + { + "path": "LIBRARY_FINDINGS.md", + "sha256": "4a62db43b23a6617657207e2bbac8441214195eedd687b972d48bfb60ec548dd", + "bytes": 13861 + }, + { + "path": "LICENSE", + "sha256": "b54f07e0c4b28129ad48464bf91e59a465b645aee4f565890e648a005551667f", + "bytes": 1095 + }, + { + "path": "MAKING_LIBRARIES.md", + "sha256": "08cf1f358e28624e87d8cd3bca0f10204268fb94af3f7e2f3c1325a195758b48", + "bytes": 9860 + }, + { + "path": "NEXT-SESSION-bq25792-viewer.md", + "sha256": "0decf98eae99b09c717707a3d2bedc1af789847e4c1df06a41d7848d368bfcba", + "bytes": 4830 + }, + { + "path": "PUBLISHING.md", + "sha256": "e5d46e9bbf17c7e0a3387ddf915f16d29e2ca080a0cf1f5c773ce63633712410", + "bytes": 8936 + }, + { + "path": "README.md", + "sha256": "1886caac100366f753a933e507d0dff46eef15d8d5e7f69b8492c8e49c082469", + "bytes": 57075 + }, + { + "path": "README_VERBS.md", + "sha256": "13cb4a101d8c355e3f0f8876eb27b5e9e6b0d12c42bdb7333e5c065172291c7b", + "bytes": 15557 + }, + { + "path": "SKILL.md", + "sha256": "18060273e636d0f7c8ade8def247244d4b3e1f92af94129ac6daa08ccc96ddd7", + "bytes": 31395 + }, + { + "path": "VERBS.md", + "sha256": "5022f35f643a7e89443b195c5794e41a093e77197ede71ff6af0e8bffdd42575", + "bytes": 21015 + }, + { + "path": "ab_client.py", + "sha256": "f6a0a55fdd325ffd3fbae5c7acc62a552f94b415e54524f09be85238c115d6a5", + "bytes": 11745 + }, + { + "path": "ad_client.py", + "sha256": "c324775d17ccebe671acd54818eaf801e3f3136f5586ec9352331d98fce4ea0c", + "bytes": 11544 + }, + { + "path": "addin/AdomBridge/AdomBridge.manifest", + "sha256": "f356ef43df83e7ba3846cbaf3725d826f9c263c05c1b4b042135fd822dbe0e05", + "bytes": 336 + }, + { + "path": "addin/AdomBridge/AdomBridge.py", + "sha256": "1b25ef32ed61ea699cc4c44aff2d5971d4e73bf0e2660560b86315cb1814eeee", + "bytes": 10058 + }, + { + "path": "addin/AdomBridge/commands/__init__.py", + "sha256": "7821ab9a0a716eecbf65c426d88b87187bb610e073eb959e563dbb6a2fca80df", + "bytes": 7072 + }, + { + "path": "addin/AdomBridge/commands/activity_palette.py", + "sha256": "894c5966df2442ba36f8a8e10d9d1480ede4296fe59aa8da68cf27f447a191e5", + "bytes": 21382 + }, + { + "path": "addin/AdomBridge/commands/app_state.py", + "sha256": "1899be6a92bd173cce430c38015b1d6a3e0669fd353309d3c510b286bd0ebc21", + "bytes": 4059 + }, + { + "path": "addin/AdomBridge/commands/assembly_bom.py", + "sha256": "46a17e23ce5cad9d2ca51fa7351529a22ed40d0182a197506c39d4e19d04fcd5", + "bytes": 7371 + }, + { + "path": "addin/AdomBridge/commands/close_document.py", + "sha256": "b36530d09384e76cdb8f27c0897a134a57edbc6fa25263562415404723b41ceb", + "bytes": 14254 + }, + { + "path": "addin/AdomBridge/commands/cloud_documents.py", + "sha256": "e585650dd307cf0d76d18f9b58a04b489f7f9bf665f0b9c4d90ac4bbc06b544d", + "bytes": 75393 + }, + { + "path": "addin/AdomBridge/commands/design_info.py", + "sha256": "9665ee56c73f72a37f66f975abd2f411674fc4f2c3ddf545b5983a1dcad0843b", + "bytes": 2990 + }, + { + "path": "addin/AdomBridge/commands/document_hygiene.py", + "sha256": "e5491a77d9715a6194bacd3ccd33dcd197810ab863c298bb8c5f6d6c388d9e29", + "bytes": 2911 + }, + { + "path": "addin/AdomBridge/commands/document_info.py", + "sha256": "9ed183f7691606fe8634fe834af1c446bf15fd6683833fa77f0e381ca363ef2c", + "bytes": 12982 + }, + { + "path": "addin/AdomBridge/commands/electron_view.py", + "sha256": "46ed462b54ee0bdf693d671ade553d7f4f684c56fed716cc1a86f21b449eaef6", + "bytes": 7648 + }, + { + "path": "addin/AdomBridge/commands/electronics.py", + "sha256": "f0fc92b6d0398b13ea10ef5350eed53c5c8b2dcfa084e3b9035c7f9ac0153eeb", + "bytes": 47300 + }, + { + "path": "addin/AdomBridge/commands/export.py", + "sha256": "faba021cec8bfce6f17262f75fdd530179c47b0fac9944bf25d726968b3645d2", + "bytes": 2178 + }, + { + "path": "addin/AdomBridge/commands/import_file.py", + "sha256": "3c49c3f78294d68770e8abb2b0e266aeb8ccf2de7a177cd5b6c7095cd018c753", + "bytes": 4033 + }, + { + "path": "addin/AdomBridge/commands/manufacturing.py", + "sha256": "47e9a5cb7fc5a9ba70d25130e26b69c87e904f087db0f6ed36feb8d05c1b16a9", + "bytes": 48114 + }, + { + "path": "addin/AdomBridge/commands/mechanical/__init__.py", + "sha256": "3e52c5e0bfc306306158ce948070f3cc36597a8cd45479a08df6768b2626119f", + "bytes": 10465 + }, + { + "path": "addin/AdomBridge/commands/mechanical/assemblies.py", + "sha256": "a9097aefea289eb7748269e47158b80e70eeacbb9b5a155c2b4d7f016c747876", + "bytes": 27491 + }, + { + "path": "addin/AdomBridge/commands/mechanical/assembly_state.py", + "sha256": "eb53be1b5011873719e3e9d1e382696f5e4401441962b88c4486de2d3d251d1e", + "bytes": 5489 + }, + { + "path": "addin/AdomBridge/commands/mechanical/bill_of_materials.py", + "sha256": "960c010226ab1ce21515b59c18528abe34146119be5383600d7d1d6076a0d7b0", + "bytes": 8624 + }, + { + "path": "addin/AdomBridge/commands/mechanical/configurations.py", + "sha256": "f99276ad97639d5540beb642bb3d4416fb77cf24c9345594d3437e7e2ebe70d0", + "bytes": 20259 + }, + { + "path": "addin/AdomBridge/commands/mechanical/core.py", + "sha256": "9f57dd86f4f5a7bdd62c147b45bb5e16d9d24549b8b92b2394d93ea535ae721a", + "bytes": 16863 + }, + { + "path": "addin/AdomBridge/commands/mechanical/exporting.py", + "sha256": "cf3468aadfee8b765d6bb1305e6b2aaf8c4e84aef50bd6d3421370dc10d73868", + "bytes": 5184 + }, + { + "path": "addin/AdomBridge/commands/mechanical/features.py", + "sha256": "e05b4cb1f9892700ab74e625d9c3b5c1a69545d3d58cc7c73637e7d0d5285e0d", + "bytes": 15042 + }, + { + "path": "addin/AdomBridge/commands/mechanical/geometry.py", + "sha256": "6759f684f847cddcd4853d20579743ddbb5c19500b96491f2798b6346cfec939", + "bytes": 16171 + }, + { + "path": "addin/AdomBridge/commands/mechanical/joint_state.py", + "sha256": "a02659931d99861018749a0d31a809f5ebe9417d48df02a631436b4f449d61ba", + "bytes": 10676 + }, + { + "path": "addin/AdomBridge/commands/mechanical/journal.py", + "sha256": "3d0f64f83abd1a60fb64d285e484977df97bb1b71e62150fbcadda5e0620ab15", + "bytes": 18252 + }, + { + "path": "addin/AdomBridge/commands/mechanical/motion_links.py", + "sha256": "2d0ddafcd4cf97f6eb0be65e1ffd3e3ec43d897bb0d34838f281a670241cbe99", + "bytes": 9168 + }, + { + "path": "addin/AdomBridge/commands/mechanical/operation_history.py", + "sha256": "83f775dafe11a105af7be545e7db3d2cda500b7c2bbf62ac9a35fac58414a27c", + "bytes": 14925 + }, + { + "path": "addin/AdomBridge/commands/mechanical/operations.py", + "sha256": "e3d124bd0ef4aa67b5653af72b0ecacc2e1dbc420e48e05855e60d75816c94cd", + "bytes": 13927 + }, + { + "path": "addin/AdomBridge/commands/mechanical/purchased.py", + "sha256": "c2acd7624409ba69e9fbd63c3b17672c1a3ff41c5af5a56669d70e792dcc12d1", + "bytes": 8253 + }, + { + "path": "addin/AdomBridge/commands/mechanical/readback.py", + "sha256": "56eb07b64c36ad365fc1768de6ac613eb054c9a2f7c3a5c977f1c000cd32384e", + "bytes": 12935 + }, + { + "path": "addin/AdomBridge/commands/mechanical/regular_joints.py", + "sha256": "22f358233a9d755bfb9af5a3c6649bbfa113bfab8a771202c1908e7e42063434", + "bytes": 28788 + }, + { + "path": "addin/AdomBridge/commands/mechanical/schema.json", + "sha256": "41804a160a0bb6d0ed31d74429a3ab3a97fd5146a4db05aee72cd8fefd180c88", + "bytes": 168469 + }, + { + "path": "addin/AdomBridge/commands/mechanical/sketch_edits.py", + "sha256": "5c1be0a81c69ac23c89585bbe133caf0168b7152c056930f3dd1ecfecbdc6981", + "bytes": 10093 + }, + { + "path": "addin/AdomBridge/commands/mechanical/sketches.py", + "sha256": "1117e1e18d12ce3b4a92a20da43e4283d717f041ec4b05afdc64b5bb0984fe0c", + "bytes": 13288 + }, + { + "path": "addin/AdomBridge/commands/mechanical/transactions.py", + "sha256": "4fcb0f1a5138bbcc7739390e38a81ec24efcc0e5e4476b45252511e5a2d2ab4f", + "bytes": 7526 + }, + { + "path": "addin/AdomBridge/commands/modeling.py", + "sha256": "328d5240e2db8d694fb7aa7c90d76b4c758634e463cc6cd5b4bd26d88aa98356", + "bytes": 8669 + }, + { + "path": "addin/AdomBridge/commands/open_electronics_file.py", + "sha256": "26aca7b13302a70aea6db560081d9a5e424034c67488c028995c7edccf3311cd", + "bytes": 27119 + }, + { + "path": "addin/AdomBridge/commands/open_lbr.py", + "sha256": "acea94edf09620685136a2e069d79de02e8755b898fe37ca77274984ca45ac94", + "bytes": 7340 + }, + { + "path": "addin/AdomBridge/commands/parameters.py", + "sha256": "d4c5be59e329b42ab0a66efc477bf6b732befa5726a3f195fbdb92a2e9b0f471", + "bytes": 4829 + }, + { + "path": "addin/AdomBridge/commands/physical_properties.py", + "sha256": "126248f52172f0062678f2992ae3deae8def33d031f15f7f123fd2ffede86c29", + "bytes": 2541 + }, + { + "path": "addin/AdomBridge/commands/screenshot.py", + "sha256": "3a3930cb368823f3749a39a8b1c88068b03b01264af380ba17756c4e1f64ff86", + "bytes": 5031 + }, + { + "path": "addin/AdomBridge/commands/silkscreen_capture.py", + "sha256": "71978bbce24ab3907d9dbf75c28533bb0540285f6504498bbcb073536c7be9b1", + "bytes": 10707 + }, + { + "path": "addin/AdomBridge/http_server.py", + "sha256": "018efd4c1201b9f9d234ca70f88e35b8dd063360d953bd5cb1915b6f3bdda285", + "bytes": 26804 + }, + { + "path": "addin/AdomBridge/resources/cam/jlcpcb-2layers.cam", + "sha256": "7c3cb11a4c9710a15ea60bc7b8015f3fae45b1ea2b0ba4c93789eabd36137f19", + "bytes": 8886 + }, + { + "path": "addin/AdomBridge/resources/cam/jlcpcb-4layers.cam", + "sha256": "68d25e5560b1b8e01b09aea4e50ca435effdd304b32f3a4a0a8f4e2d49c3bc47", + "bytes": 9743 + }, + { + "path": "addin/AdomBridge/resources/dru/Adom-InstaPCB-2-Layer.edru", + "sha256": "30a933ba954d60b276cba6c7cad5a12ba3c6630d8e569e4c2ef5608861e84e2d", + "bytes": 10673 + }, + { + "path": "addin/AdomBridge/resources/dru/Adom-InstaPCB-4-Layer.edru", + "sha256": "fc05ae26c6035d02fa944a48026bdf8a69872bd1531b8b088f5f0bac0ef9f92b", + "bytes": 12120 + }, + { + "path": "addin/AdomBridge/resources/dru/AdomDefaults-jlcpcb-2layers-accurate.edru", + "sha256": "7bb4355593810ecfb224ab3bc4f5393b82921421fcd274a0c76f0f1e84776d8a", + "bytes": 10646 + }, + { + "path": "addin/AdomBridge/resources/dru/AdomDefaults-jlcpcb-4layers-accurate.edru", + "sha256": "98027dde4314fb2c10837028d11bd136d16e6122388aff72a338288719329748", + "bytes": 12093 + }, + { + "path": "addin/AdomBridge/resources/ulp/detect_layers.ulp", + "sha256": "7c7a95b901ec0879fe92bd575fec88ea9403e01df3e31c4f23f9b9a7539379e6", + "bytes": 2931 + }, + { + "path": "adom-bridge-fusion-manifest.json", + "sha256": "6ea920797ca1f598be538793e22523966f395e6f26f19d2c71a27b7c17d4c652", + "bytes": 401 + }, + { + "path": "aps-cloud-search.md", + "sha256": "17a29220cbc605237eadeb92ee9a596fbe0f8bea761f727debc5436072bd577d", + "bytes": 5155 + }, + { + "path": "aps.py", + "sha256": "872325ad79d780e3438b44ead8c704e7c95919c17eb467515e8a7e38dfe13c76", + "bytes": 81475 + }, + { + "path": "arch.png", + "sha256": "fb69ec0987e0fefff007d95d48ab3277e74567686d9fd8c186f1f4f3d093995b", + "bytes": 46782 + }, + { + "path": "bin/fusion-dashboard", + "sha256": "f56205faec0b625bc40821411d16dc7e98d8f749a698d3063a21bdfccdec74ba", + "bytes": 727400 + }, + { + "path": "board-layout-2d.md", + "sha256": "0751ad5cc9740deb306b1ca9a6e99372640356b9fc4753bf277eaed15d2bbe57", + "bytes": 3541 + }, + { + "path": "bridge.json", + "sha256": "5e8f2de378470f41e7cd0c84d041e8e7a7ec5305840158c65b1fc622cc5ce7d8", + "bytes": 8994 + }, + { + "path": "bridges-hero.png", + "sha256": "296b0ac6bc1ee078f807a5f7546bd7ba413282228ab8e31e7024c08c9ebcf8a1", + "bytes": 402725 + }, + { + "path": "contracts/describe.json", + "sha256": "cec3b54f62de409b4b8c0442a85515a0fa30e2e3aa2881a01229dade58193853", + "bytes": 608929 + }, + { + "path": "dashboard/.gitignore", + "sha256": "b53ee26e6ff1da219b0563333a76d2c9ec19eec713d6ee54e11a1edacb0e9f3d", + "bytes": 8 + }, + { + "path": "dashboard/Cargo.lock", + "sha256": "39b2cc399b0e82481cc862d8c0d76b9de4ff5d660b1d4ccd964134feda7c2532", + "bytes": 2653 + }, + { + "path": "dashboard/Cargo.toml", + "sha256": "5526930d258504b125a9f460846ee73df839c8bdf2d66da6d2a7ef95fbf07ebd", + "bytes": 170 + }, + { + "path": "dashboard/src/demo_audio.rs", + "sha256": "9f0bc1252a3469ec20cb2e3c04c1357b116a0ea9c41b20ef9917c85b1dba2b10", + "bytes": 1537 + }, + { + "path": "dashboard/src/main.rs", + "sha256": "853700ca597d7b9bf458a0af574ab36dd47d9eb951f10b704714c6250746762d", + "bytes": 114497 + }, + { + "path": "dashboard/ui/fusion-icon.png", + "sha256": "a5554421f76c39e3c9a271a95af1f4a623c416381d4c81e2413604b00dd71f5f", + "bytes": 5814 + }, + { + "path": "dashboard/ui/index.html", + "sha256": "319be1ee31938d4873b00cbcf8e4cb63187ba5960493c249b1f5a82a7a854254", + "bytes": 68660 + }, + { + "path": "dashboard/ui/quick-actions.html", + "sha256": "8f7e61c684d96c242ecd124a608b634a5cd14e29e1108d5f3e5cc6582d1039fb", + "bytes": 57761 + }, + { + "path": "dashboard/ui/vendor/newbie-panel.js", + "sha256": "5ed214867df8d16e7c5c50f2508361aa41c04547bc42caf90da7129939e7b8d2", + "bytes": 123068 + }, + { + "path": "demo/audio/2d-board.json", + "sha256": "bac3d363446469c0d65be171944b6e8ef61d7d675cdce7fedce372bbafa59009", + "bytes": 263 + }, + { + "path": "demo/audio/2d-board.mp3", + "sha256": "aa3d9708a741395391ff1291aa80022faa82c0ede318aa475d68f099480da809", + "bytes": 32112 + }, + { + "path": "demo/audio/3d-board.json", + "sha256": "14ebaa795cd101d3bc6be512b5107245dde0288275d51983c1e52027bd0b7051", + "bytes": 290 + }, + { + "path": "demo/audio/3d-board.mp3", + "sha256": "0e186a8724a661bded904d2fddfd734cea806fe4fc5fd1bf156f9b615170b8ad", + "bytes": 43344 + }, + { + "path": "demo/audio/3d-package.json", + "sha256": "9b4689aac3ef28c2c2d3c21b296c89fb93f7fdefad13fc784e679ea67367cfef", + "bytes": 468 + }, + { + "path": "demo/audio/3d-package.mp3", + "sha256": "0c8d3c0f21beb7a69dbdeb8c935897c5b6f138b93abb3fc56bcbee2cb4c0be20", + "bytes": 108864 + }, + { + "path": "demo/audio/aps.json", + "sha256": "9ac8af402a867bb36e415ee1ffd54e00dacb61e5b5cd54b3a4e9e9c37e04b069", + "bytes": 334 + }, + { + "path": "demo/audio/aps.mp3", + "sha256": "1d8bde4b955db04e8328e1dc2578c443217e7300321b9d4ef33df218e91315cf", + "bytes": 61488 + }, + { + "path": "demo/audio/datahub.json", + "sha256": "1ac3914a7f37fc520d04f055077c9f50a2fad89148ab5334242bdcfaa2300bd4", + "bytes": 332 + }, + { + "path": "demo/audio/datahub.mp3", + "sha256": "51da3bc18c696baff6c670cf1caf3e8592d431e801a3e4cce927f12c6a2407dc", + "bytes": 62208 + }, + { + "path": "demo/audio/device.json", + "sha256": "d476b15b42bb3adccf597e85279e0f2ed8792c51b2e8ef97f3e6ead7377cf995", + "bytes": 357 + }, + { + "path": "demo/audio/device.mp3", + "sha256": "25eafbaabdd04ed1671e790a0052c01c74ce6ecffe99f2858edd96e8e123bdf0", + "bytes": 68976 + }, + { + "path": "demo/audio/exports.json", + "sha256": "39f57466371ad5a2752d83ef978c3cf34753f6eb3b662bf260f033ce875498a0", + "bytes": 360 + }, + { + "path": "demo/audio/exports.mp3", + "sha256": "ba26a1ed4e7eccb289971126d747e4bb2fa84dc149fd14b156641cb4fd702684", + "bytes": 103680 + }, + { + "path": "demo/audio/footprint.json", + "sha256": "c36f5f172064b775f054f6f4e4e2239f1536b7fc78b3046228e7263cc213991b", + "bytes": 280 + }, + { + "path": "demo/audio/footprint.mp3", + "sha256": "40edb0635be76e07d55be8eb80a80b599baf8be3ff590b678d7f76837ee3cab3", + "bytes": 40608 + }, + { + "path": "demo/audio/launch.json", + "sha256": "f3dfb1509a695b6e1c4217c2783709dcd516306372a79454c9fb66f90e94a761", + "bytes": 467 + }, + { + "path": "demo/audio/launch.mp3", + "sha256": "0fb9eb73f8190dd0104a63564f21851d43d56869a2f806b59a64f37c49529a4f", + "bytes": 107568 + }, + { + "path": "demo/audio/library.json", + "sha256": "bfe19382a8a3921ff5f580088d9387b1f5b55d54cde3079807c957e08f6794b3", + "bytes": 348 + }, + { + "path": "demo/audio/library.mp3", + "sha256": "266fac1e5d9ffadae8ec2f14bec83860f872fa8df02bbc34bee017c968120c83", + "bytes": 64512 + }, + { + "path": "demo/audio/make-project.json", + "sha256": "b78579c5671a68fd9b1833ea7854e83e91069181614e18abf1d968cff6a2d022", + "bytes": 331 + }, + { + "path": "demo/audio/make-project.mp3", + "sha256": "a820c7e290493f77841f445a34fad8e040592eb1cbd7472dcee8d5d0c4f9d285", + "bytes": 61344 + }, + { + "path": "demo/audio/mcp.json", + "sha256": "e8958c6930be3848caa8fbc585858198135b0a7705ebfe93106604a2fbbdc887", + "bytes": 442 + }, + { + "path": "demo/audio/mcp.mp3", + "sha256": "e20fed5b4b379392cd07577cfa4dce0cfd4d0ec6c848f9d8319d7327c57de2ff", + "bytes": 112464 + }, + { + "path": "demo/audio/open-design.json", + "sha256": "f92cdb0e05a02ee73686f4be049be5870e419b9890ee83872b3858b102209bd1", + "bytes": 309 + }, + { + "path": "demo/audio/open-design.mp3", + "sha256": "c0995723fc3fc96821df77589c9790cb79e5d21935b6a246d3912d07f9051c6d", + "bytes": 47664 + }, + { + "path": "demo/audio/schematic.json", + "sha256": "a47427c536cac89357ec22eb05d4546af223e05e43840df327ab0f0e7a07976b", + "bytes": 256 + }, + { + "path": "demo/audio/schematic.mp3", + "sha256": "883aebd1fa3f0082c57c38a4cd252a46360581db37ddf7dfe057a0b7bfa141ee", + "bytes": 29952 + }, + { + "path": "demo/audio/stage.json", + "sha256": "ae13f32d97ab0161cc455ff27b66c2ce22e9bc6e5f8ba198abf1200b2954aee5", + "bytes": 339 + }, + { + "path": "demo/audio/stage.mp3", + "sha256": "6a644f2d40d60021e7aa51c29eec8c2472354f3ca6970b7e6f8afd96f7165c2e", + "bytes": 66816 + }, + { + "path": "demo/audio/symbol.json", + "sha256": "d147a300ec0392af40e3ce339ce418b9ea68b47b226b79ce58909543e4511cc9", + "bytes": 319 + }, + { + "path": "demo/audio/symbol.mp3", + "sha256": "a21241431172fb50e47c85a9fcd8cd424a668f884e0b98fc941c4652c7155e06", + "bytes": 54000 + }, + { + "path": "demo/captions.json", + "sha256": "14a7e6f5999b82fa5c858b4c577e4426694319e8b4a2a1cae5fd6b31563f2365", + "bytes": 2926 + }, + { + "path": "demo/lan7800-cloud-library-demo-hero.png", + "sha256": "4d3e32cc83011c5ff5742b6162ad794f18358825044393b2edf5a4f90037553b", + "bytes": 789627 + }, + { + "path": "demo/lan7800-cloud-library-demo-script.md", + "sha256": "961026c528e3fd7fc897458a1b3a31c033a3e0c22bd85903d007eed433660303", + "bytes": 3175 + }, + { + "path": "demo/lan7800-cloud-library-demo.webm", + "sha256": "c30fb1bb771096da75c25e913400150997b25a4d5a43b3551238381a5e432c2e", + "bytes": 50042488 + }, + { + "path": "demo/lan7800-cloud-library-manifest.json", + "sha256": "8da42ebd0f4c3d2a464538d0219681bab88d64d2f31bf82ac08e024c2f0de75a", + "bytes": 2298 + }, + { + "path": "demo/routing/README.md", + "sha256": "cb46c6387b8140bbd9ad5731b057da52fc859b34999b0af45ad148d099d3a860", + "bytes": 8675 + }, + { + "path": "demo/routing/bq25792/.gitignore", + "sha256": "8261abb1fbdbbc1169f11fd1b532c6d7c174e2bf9558611d0a2a1040c6223b6e", + "bytes": 2045 + }, + { + "path": "demo/routing/bq25792/README.md", + "sha256": "ca03f7764765dd3f3e595dc0645582938fcb56a78c8c7cacf29a90c9ff4a29cf", + "bytes": 6424 + }, + { + "path": "demo/routing/bq25792/ablation/README.md", + "sha256": "97ec5a21014c45f3f4712587bc9139912b8e77d055728c8daa0996a95460caaa", + "bytes": 2517 + }, + { + "path": "demo/routing/bq25792/ablation/coverage.py", + "sha256": "2a859be4b192ea0537df7ed3fc17a8a6845fab1b778c982f0c0e756b5beddca0", + "bytes": 4124 + }, + { + "path": "demo/routing/bq25792/ablation/edit/edit.json", + "sha256": "f181ba02accf6ac2a58725f196434ac14bb59c0930d8ffbddde2ea9d6ef00c6a", + "bytes": 2197 + }, + { + "path": "demo/routing/bq25792/ablation/edit/fusion-bq25792-astra-copper-retention-narrated.mp4", + "sha256": "f0e7ea40c4c303147d51d988bf71b3a4d30115a874c3a129ed2881f6ced37b4f", + "bytes": 17700087 + }, + { + "path": "demo/routing/bq25792/ablation/edit/script.json", + "sha256": "812829ee8ac1bdef282266ce5286a7ca9a803fe424f5569a9aa2d31b7630b3d6", + "bytes": 5560 + }, + { + "path": "demo/routing/bq25792/ablation/edit/verification.json", + "sha256": "fa037d0b8ad55d98693f55c12f4968cdbc3dba09d6d0cdcf8c0bc33f45b4e9df", + "bytes": 11070 + }, + { + "path": "demo/routing/bq25792/ablation/mix.py", + "sha256": "6fecff00fc825f615868b28c1bdea4f52799f37f75c865aac711c85d4183c4e2", + "bytes": 2972 + }, + { + "path": "demo/routing/bq25792/ablation/native.py", + "sha256": "01da87c183b22c61882891191c32f4f8b2b16e08656b0939398c329c0af56230", + "bytes": 1102 + }, + { + "path": "demo/routing/bq25792/ablation/record.py", + "sha256": "782eee1f1401e194e2e3559b89373d6abcf3aca2e9656e61353bf8b31a10f070", + "bytes": 5711 + }, + { + "path": "demo/routing/bq25792/ablation/render.py", + "sha256": "0269292f16dc261d2dbcfaa22c53f173c5bd201ccb0e6887afe707b2ade5cfa6", + "bytes": 6160 + }, + { + "path": "demo/routing/bq25792/ablation/take-02/bq25792-ablation-routed.brd", + "sha256": "242870df03ca50893b6985b798fdf076a074ed65ec8786af96ef8526a3a2c1bd", + "bytes": 1158509 + }, + { + "path": "demo/routing/bq25792/ablation/take-02/coverage.json", + "sha256": "8a48461a394279b6ae357c00f0a4da9bf5bb5b022ebaa3a131235d2dd0480cb5", + "bytes": 2695 + }, + { + "path": "demo/routing/bq25792/ablation/take-02/final.json", + "sha256": "0a932da3003d929708f595c5e47b3c02ae42913fd109d713c918f8983d7227d3", + "bytes": 202414 + }, + { + "path": "demo/routing/bq25792/bq25792-astra-unrouted.brd", + "sha256": "2699aad91c7620978107650949725dd65795738a1c381c10523a0f49092c918f", + "bytes": 321516 + }, + { + "path": "demo/routing/bq25792/bq25792-unrouted-rule-check.brd", + "sha256": "d3f6a257f1ebe9fe9a4084daf58bb2df2ccf051d4cf3de8aa29c61b7c973d449", + "bytes": 321515 + }, + { + "path": "demo/routing/bq25792/diagnostic_rules.py", + "sha256": "af452c3dd3e04aaa9aef2f81457d52eca6f072980ff869d264d0e4419b2c38e9", + "bytes": 908 + }, + { + "path": "demo/routing/bq25792/evidence.json", + "sha256": "3a273e4fa9bbffc190bb424e8c5760bbf98330c58428ed0f837aca862e05d0d9", + "bytes": 59957 + }, + { + "path": "demo/routing/bq25792/find_motion.py", + "sha256": "8f0b10cbb68d2ed345dc63146da0cb4657dbb077b04b48a49e10231d30d21ee4", + "bytes": 1648 + }, + { + "path": "demo/routing/bq25792/geometry.py", + "sha256": "9511ae40173621a05236c5fdfac1ec8c581b642497bf5966db79cb76e78fe397", + "bytes": 6469 + }, + { + "path": "demo/routing/bq25792/narration/make_narration.py", + "sha256": "41042e54a8cfaed4b69f88493b89869fbaf0b83ab3b11202f4efe1299641c960", + "bytes": 2799 + }, + { + "path": "demo/routing/bq25792/narration/mix.py", + "sha256": "94dd5ceb056a8499db414ef467be5eb7f1b4c983d30d88814907b1976d9059d2", + "bytes": 2889 + }, + { + "path": "demo/routing/bq25792/narration/script.json", + "sha256": "f415a2241afec949f60488cf56372a05ecac9e9fa1d2d9cf27f65a1c4e9707c0", + "bytes": 2559 + }, + { + "path": "demo/routing/bq25792/narration/verification.json", + "sha256": "15815f6e934bea65b923258cfa2db93b71e7a9496b4a088e8ac219433c562b36", + "bytes": 7845 + }, + { + "path": "demo/routing/bq25792/native-routed/bq25792-astra-routed.brd", + "sha256": "130cc63375a7eab7357969a08d9d916d5cb44619e78710a62f63050ba1e9fdef", + "bytes": 371014 + }, + { + "path": "demo/routing/bq25792/plan.py", + "sha256": "df00a1629cf14f60dc1d74cce679f22736754d7e7d12858c0586a650a2e1b40d", + "bytes": 8225 + }, + { + "path": "demo/routing/bq25792/prepare_middle.py", + "sha256": "bb091ac4881a0d8a06c9454ce63a403cf9eb994a387ea07c485fb63df186bc3c", + "bytes": 1657 + }, + { + "path": "demo/routing/bq25792/record_live.py", + "sha256": "d2ac5be33cb5c5a7eb41369d5c0a956a2b64ce736c3083f857b8a0e7d36ff6c8", + "bytes": 3339 + }, + { + "path": "demo/routing/bq25792/record_reference.py", + "sha256": "c7863d63df9c855dd8f31e39a16a0a80edbc7962f1920a1dc6b061af3d5b979c", + "bytes": 3684 + }, + { + "path": "demo/routing/bq25792/record_strip.py", + "sha256": "39e5411c18fd867cb88ff293fa5f923fae1a838162f7760ed24ca2622fd97ace", + "bytes": 3648 + }, + { + "path": "demo/routing/bq25792/render_demo.py", + "sha256": "bbb28e08201b65eea24a6a5c9c0f08f513bbed1723804e407075c6b30036c0cb", + "bytes": 4991 + }, + { + "path": "demo/routing/bq25792/repair-09/candidate-plan.json", + "sha256": "56e5575fe6a856ab79e9026cb22384064046b90caff2992ff399b3d8436303f4", + "bytes": 107233 + }, + { + "path": "demo/routing/bq25792/repair.py", + "sha256": "9107485d0b3139f9612938281d9f1aab38d038c4d438b487c8fdec6dc7dc117f", + "bytes": 2046 + }, + { + "path": "demo/routing/bq25792/replay_live.py", + "sha256": "9b738592899b5a5381a3e68401a16684d0d29d06b4a1688962931d65f1baa5f3", + "bytes": 6368 + }, + { + "path": "demo/routing/bq25792/ripup_local.py", + "sha256": "29f4383b8f9c086371cd7cd07176943fdef93b5b5304affdcf22e48c56402875", + "bytes": 731 + }, + { + "path": "demo/routing/bq25792/rule-diagnostic-manifest.json", + "sha256": "4533227edfb766ff683cb3ef0c099339e7dd6ae026cc0adb89ee4d8064d620c3", + "bytes": 1371 + }, + { + "path": "demo/routing/bq25792/thermal/README.md", + "sha256": "4ddf78248c49f6ddfc1694360c6003c42c02925206ced87615c2c204632276de", + "bytes": 4816 + }, + { + "path": "demo/routing/bq25792/thermal/audit_final.py", + "sha256": "57e466682b9c3ada8de0fbc081e4aa3952548a3e38c67afacb25aeca0e826a5b", + "bytes": 1589 + }, + { + "path": "demo/routing/bq25792/thermal/crr.example.py", + "sha256": "b2bb916aa0856c0ddb8277d8464f8465d4fbcaa364bcaffc2db82e02cc05e16d", + "bytes": 1329 + }, + { + "path": "demo/routing/bq25792/thermal/edit/cuts.json", + "sha256": "8bc02207b5fad9583bb389ffe856129d0d1ce38b168bae0aeabf9f0d8e00c207", + "bytes": 2682 + }, + { + "path": "demo/routing/bq25792/thermal/edit/edit.json", + "sha256": "7c538000faa6a69fab3cc9b1d116d1dcd63aaab7b2d5b3cdd85afc8b798596a4", + "bytes": 4076 + }, + { + "path": "demo/routing/bq25792/thermal/edit/fusion-bq25792-astra-thermal-narrated.mp4", + "sha256": "24042b594634ab0206b524bcf8e27fedb79d89225336de7b8caa3719ca37144c", + "bytes": 14600169 + }, + { + "path": "demo/routing/bq25792/thermal/edit/script.json", + "sha256": "e953c8a272da6e75c4b9c4539f111ce66442458c63823015470124f555d8c93c", + "bytes": 4740 + }, + { + "path": "demo/routing/bq25792/thermal/edit/verification.json", + "sha256": "bf6a4b40587b011753dd1d0785d0186a3d3dceab59120a30c1728f799ed3d308", + "bytes": 9806 + }, + { + "path": "demo/routing/bq25792/thermal/fanout_six.py", + "sha256": "e46d1f200a082d49c62c7adb76217ad16cb4bebc1319339556e3da815d8b1187", + "bytes": 2526 + }, + { + "path": "demo/routing/bq25792/thermal/measure_thermal.py", + "sha256": "707fcc6b9e8ae48ac13546e44bb4acf5a2e97c1a6fcc0dce2c0be80afd54e28c", + "bytes": 2731 + }, + { + "path": "demo/routing/bq25792/thermal/mix_thermal.py", + "sha256": "c79dd5e8ffcc644a73b483bc2e5f6c25255c5b4b34c390fc9d683de6c5293d33", + "bytes": 2385 + }, + { + "path": "demo/routing/bq25792/thermal/plan_45.py", + "sha256": "8bc982dae45f2b06fd7d246ef543677320b1878005f81a333ac5174d0292dc6b", + "bytes": 9296 + }, + { + "path": "demo/routing/bq25792/thermal/plan_priority.py", + "sha256": "7a9bf2173f64fde1d06389b0b7ac651ea95c13fb7e5a49b53c1bfde4ea7a69e8", + "bytes": 9592 + }, + { + "path": "demo/routing/bq25792/thermal/polish.py", + "sha256": "21003f44bc2cb0445315510908a595f2bbca7e55998a31abc00c3ac3ea1a5ba0", + "bytes": 1463 + }, + { + "path": "demo/routing/bq25792/thermal/record_live.py", + "sha256": "7fa899bb4a790b2909e1fdf07d571c3f94801b9788ea24342a48b19d3f03da9a", + "bytes": 7639 + }, + { + "path": "demo/routing/bq25792/thermal/recording-02/audit.json", + "sha256": "4fe28ddc3ae52f1a481c50e63ab907f3a9e80a5601b08af91f28715dae7ca25a", + "bytes": 5376 + }, + { + "path": "demo/routing/bq25792/thermal/recording-02/bq25792-astra-thermal-routed.brd", + "sha256": "3286a84ed3dd44445ed3b625726f4b074833223d0f36a220b1a18419516fa17c", + "bytes": 1232658 + }, + { + "path": "demo/routing/bq25792/thermal/recording-02/final.json", + "sha256": "239590e6097d124da0831655059d7b7a3460b2512cac6e56c1a1429c7c43ad56", + "bytes": 201744 + }, + { + "path": "demo/routing/bq25792/thermal/render_thermal.py", + "sha256": "a01698f5cbb54b7aa4748ec3729f327589b34eb5405840cebf000491a5344e15", + "bytes": 3315 + }, + { + "path": "demo/routing/bq25792/thermal/thermal-final/added-thermal-vias.json", + "sha256": "9ec1a4c0f76ae25e953d3551b692fc272c904dd2b46cb3dcfa6c4e0d2f25f812", + "bytes": 653 + }, + { + "path": "demo/routing/bq25792/thermal/thermal-final/candidate-plan.json", + "sha256": "915d681fbc73c37de0790502f65467e4a7ef113e8990d67fe2682175e69805d0", + "bytes": 115164 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/README.md", + "sha256": "1a9fff4466f6dd1bfb91358bd37e2fff39e72acfc45ba5cc09ca39016ff42989", + "bytes": 9678 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/analyze.py", + "sha256": "e7d6fa52833958ed486f29d344e75b0765ca2806270aebb0025a006305102ad8", + "bytes": 2832 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/audit.json", + "sha256": "a5b9b3bee52c8d4d81a100d61e1f9d32d86434c0203f5adc736696aedd87bfd0", + "bytes": 1002 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/audit.py", + "sha256": "defd27f9bf699c89cf624fa557dab2ac302848e5fbbbc9a18817de903e0ab225", + "bytes": 2040 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/candidate.py", + "sha256": "abc8db0b4d509a9836a88e3fcc13ab1b29b1409afab084f39204d287d31c6025", + "bytes": 2434 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/charts.py", + "sha256": "e891f96179d3667dea19c5ade865526ff0e0c0b63a06b764597e2a0f854f063e", + "bytes": 3309 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/expansion-03/bounds.json", + "sha256": "2f5527dea83b14e3d5dbf0aa70bf80802b338764628d898a319a0cf127ee4875", + "bytes": 207 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/narration.py", + "sha256": "c9b6bc23e12fe397601fe57f0159aa00dc3444ec7239dd951579f5740a600f27", + "bytes": 5862 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/prepare_live.py", + "sha256": "82b99ceb5746492bfc8b894b3727825470ca88f39245cb93f07cebf57ca2ca8c", + "bytes": 1382 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/record_expansion.py", + "sha256": "268dfdb952181580487185a5607fb1a27d2cc0a184177fdab3c3918e7c1208e3", + "bytes": 5124 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/recording/bq25792-expanded-thermal.brd", + "sha256": "1c568ddeb89fc3b57af14c3e0ba282474b58204f75449e6d5c214793948bf1c5", + "bytes": 1284977 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/render.py", + "sha256": "f3e4b528a6c3c03c9034b27fd6a6e07b4f5ba0a5e944663f21f566af6ccc633c", + "bytes": 4089 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/test_model.py", + "sha256": "eb4f5b0a69ebc43711a9b3da5e33e7c1972a71e507bf84a703d07629709e2b17", + "bytes": 777 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/thermal-results.json", + "sha256": "960c5c9a4bfae0e18f5b533aa6cc039b36c7b8483fb3645bf7cc5b3343c0cc78", + "bytes": 23976 + }, + { + "path": "demo/routing/bq25792/thermal-expansion/thermal_model.py", + "sha256": "a30b7a4c51742cc0b5f9016fb96ffc7cac2fc9b2ed9cbe029aad33b6e225ab70", + "bytes": 4343 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/README.md", + "sha256": "2f31532bf28d9b689f7a5ee4491f2d42828bfe9d261c5679b5437297a8b9d3ca", + "bytes": 7172 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/audit.py", + "sha256": "2f39c0eac3edecbd7dc5cb809f8d7492ee647b0e4fd67fd15981b35e27ccb462", + "bytes": 2142 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/candidate-01/audit.json", + "sha256": "f45264b21e547c0135b7b16f2b54b81cacd4a35cf20dace6640ef78b385ec5b6", + "bytes": 2850 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/candidate-01/bq25792-thermal-reroute.brd", + "sha256": "9b7d1120f304f4e7fddaef84b6bccc6978f55ba5f33d58fbcbdc459e11a5ecc0", + "bytes": 381177 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/candidate-01/comparison.json", + "sha256": "cd48fedd2f520c8f5f52d5cef08cbaf328f4619b4cc20c74f87051deac1b4c17", + "bytes": 3286 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/candidate-01/filled.brd", + "sha256": "9a06e01d7b6d08e6af007fc2926c422107efe0f351bfd96c7b8d8f4f1b9c33a8", + "bytes": 1287198 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/candidate-01/plan.json", + "sha256": "1858a11c916ffe7b82792c6be6ce28f51a7be5af63573c51e831619c4d972e09", + "bytes": 3640 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/charts.py", + "sha256": "427ebe86e368463969b3ad5313a4b17aa2c4fcf4a0f90d6388255f1fdd96dbbd", + "bytes": 1780 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/compare.py", + "sha256": "e979e95e94133105ba6010b2b9db9839b80d2ab94af5fa07d3a83ebcd3b5d483", + "bytes": 833 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/hop.py", + "sha256": "4ce557e9cf9bed5099048cfc0b34bf9d4a8d22ca31b5a8d2a4876e4e7b15caa8", + "bytes": 2850 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/inspect_board.py", + "sha256": "12fce875fd544237e907eaac4ad49edbf2fbfec13cc391e014ad58a9bd832ec0", + "bytes": 369 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/narration.py", + "sha256": "ef792418902b395b4d79e64ed7bffe20ca09297565fa4ef54dba7a3aba0e3190", + "bytes": 4569 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/plan.py", + "sha256": "d90e3c8bb90186be3f2a1131f6514bcb526c302d5f5082d6bf74a21318280976", + "bytes": 3579 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/plot_board.py", + "sha256": "82199a928fd206b8d11d23e30c365faa245afbb80a60dfcb6c0245d8fded3ec2", + "bytes": 1164 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/prepare.py", + "sha256": "3a5a1305bbe7ac657057219c34e16fda870a0a1da9ad015dbe9392cd9ffba825", + "bytes": 970 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/record.py", + "sha256": "40eacfe54c8ff8dd3bb4b66c8772f8745262ea0fc5979af49943bced95b5a5ce", + "bytes": 5850 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/render.py", + "sha256": "6b6e40c831089ed9d42885dd8982c828345f83054863101b118739d85e06f45d", + "bytes": 3903 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/test_ripup.py", + "sha256": "0d0d10f9a4de9ec86c8dd68be990dc517a916b720494d9645e94a135f2d37f91", + "bytes": 527 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/transport.py", + "sha256": "078b6e06a1d4f3aad6bf246be44c2277a80f52b119929adaefb4ffd032e3ad5a", + "bytes": 1403 + }, + { + "path": "demo/routing/bq25792/thermal-reroute/validate.py", + "sha256": "6acd559d304ff4f90f6afbee1f876fb5c723d5c1cc263ed7e8d5781d98dcaca5", + "bytes": 1565 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-1x.ass", + "sha256": "b2ff202b19c0182519372c7155ef3080f4b10e51b754fa678fd362993b6db108", + "bytes": 3429 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-1x.edit.json", + "sha256": "a9724c86b66cff3a197c19552ffa4a425844b91606c9ec9bb19d16aeea7529a9", + "bytes": 15491 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-1x.mp4", + "sha256": "59794b99d73d0db716be51ffc35b1ad8cc126d178d096f7c08bfde07837666c2", + "bytes": 19650003 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-3x-narrated.mp4", + "sha256": "a96634a44b56ac5a1f07b13bf428a3075e6b4cc1795845ff30e8ace157d07904", + "bytes": 13448920 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-3x.ass", + "sha256": "cf7e2ff7033f0ff22a2d2003e0f4c3136fd25aa9309b7eff796a5079dbe0075e", + "bytes": 3429 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-3x.edit.json", + "sha256": "7dfdbcc75606c026d3f845772073186da0eb31b964c4fd9463c313c1eaf80061", + "bytes": 15459 + }, + { + "path": "demo/routing/bq25792/video/fusion-bq25792-astra-3x.mp4", + "sha256": "8a4e25e7a28dca477f9600e207526285a8380d3906a09dc718a70617ea18e771", + "bytes": 10476673 + }, + { + "path": "demo/routing/bq25792/video/verification.json", + "sha256": "c52ad60254049ac1202aff38a509208bea941f625b8de9fa2e22498625b3b50b", + "bytes": 806 + }, + { + "path": "demo/routing/call.py", + "sha256": "05de50cc09791b58b93ad0c7729ed67bd80f39d38db878bc18ce8cd604b6396c", + "bytes": 1840 + }, + { + "path": "demo/routing/crossbar/README.md", + "sha256": "bb4615e2ca1056c5248fd52b9125566ba6857814dca7f506480118d3b4977fac", + "bytes": 4500 + }, + { + "path": "demo/routing/crossbar/delivery.json", + "sha256": "0ea04b7a6ae22fddb6b675c98588111adffe0a21920e27d408983df395ad1533", + "bytes": 1077 + }, + { + "path": "demo/routing/crossbar/final-frame.png", + "sha256": "e84cc944aca09f92605f8f8f733d8bceb52d9928f4afb079ac608adbf19498d6", + "bytes": 591250 + }, + { + "path": "demo/routing/crossbar/find_action.py", + "sha256": "a586dcf8109b4549c91a77ed93595ddab6c841109d4160684388abc5bac0dbbf", + "bytes": 1875 + }, + { + "path": "demo/routing/crossbar/fusion-crossbar-24-3x.ass", + "sha256": "dfca1fbcad88e226703a60cd278f7a34985c564a6d215baf97483d1a3b4d9dfe", + "bytes": 2919 + }, + { + "path": "demo/routing/crossbar/fusion-crossbar-24-3x.edit.json", + "sha256": "98d120c57da1ed7dc4ca286601f59f059ab072db2cd3f79ac1d10558cf421bea", + "bytes": 13538 + }, + { + "path": "demo/routing/crossbar/fusion-crossbar-24-3x.mp4", + "sha256": "f1ae07c26c2dbf91541ba71a97f4470018798170104fc375fe0d86c101972077", + "bytes": 1568684 + }, + { + "path": "demo/routing/crossbar/fusion-crossbar-24.brd", + "sha256": "4154563207b5f5530acab1acb9399d85008bc252adf9d733047f2fc3a8dd00cc", + "bytes": 17062 + }, + { + "path": "demo/routing/crossbar/install.json", + "sha256": "9c7f33f18005cb0983a1e28936b7164f2e29fab6a6dde1bf2362c5981b802b84", + "bytes": 426 + }, + { + "path": "demo/routing/crossbar/make_crossbar.py", + "sha256": "6d5eec33bb8b20a60beac88dc19d8a9e73557b4b2c22465516261e3066818b7f", + "bytes": 3527 + }, + { + "path": "demo/routing/crossbar/plan.json", + "sha256": "4410e544769dc9ccb0909cdbda67e132e9decc85ab4a2bdfe94a05df17ee7514", + "bytes": 14535 + }, + { + "path": "demo/routing/crossbar/player-open.json", + "sha256": "b9939001d94909b6c9bef30d15c7cec53806ae31817fbb51ff77d71028f6fb46", + "bytes": 135 + }, + { + "path": "demo/routing/crossbar/player-verification.json", + "sha256": "a7d162aec8ad51263d25a72c238f864d0e57bf7efa4910f520111e96cdb379f6", + "bytes": 588 + }, + { + "path": "demo/routing/crossbar/record_crossbar.py", + "sha256": "4f2c0d35eef71d3d2bc00e704e97e41e7899d5c63c169bff62fed7a9a231d997", + "bytes": 3124 + }, + { + "path": "demo/routing/crossbar/render_crossbar.py", + "sha256": "a392cbb9d3c9d816d8fa15b2ccadefe432125b022025be721e3d1d334734aa71", + "bytes": 5409 + }, + { + "path": "demo/routing/crossbar/take-01/action-ranges.json", + "sha256": "11c0afca06b53e6a1c4c54f87e34fb7c3ee560a7f9b400c423d5d7c8c93a94be", + "bytes": 5402 + }, + { + "path": "demo/routing/crossbar/take-01/before.json", + "sha256": "d87a68035d54c25aadec5ab6c4643487ca6501f5b5cf9136c96ba2c7051dda9e", + "bytes": 27081 + }, + { + "path": "demo/routing/crossbar/take-01/calls.json.gz", + "sha256": "5589a763316bf084e132c687cd4d36019f3695c16f9d4ea5f44f3ba3a57cd9fb", + "bytes": 602374 + }, + { + "path": "demo/routing/crossbar/take-01/export.json", + "sha256": "fe8f0f5a52d4038f73d2109d6faf9e9c96471aa9f26b76a7f96bb5ee065c257b", + "bytes": 1445 + }, + { + "path": "demo/routing/crossbar/take-01/final.json", + "sha256": "6ca4cc99030f6b955e95fd9ab0d66220a93e15b7e91951da9d0a97f29fed8aad", + "bytes": 50351 + }, + { + "path": "demo/routing/crossbar/take-01/fusion-crossbar-24-routed.brd", + "sha256": "efe8a8277b87fb9664102430c2f5e9881f9aa5e0379d34b2d234aeb4fb012dc9", + "bytes": 49488 + }, + { + "path": "demo/routing/crossbar/take-01/fusion-crossbar-24-routed.fbrd", + "sha256": "3023e86d55f3dcb9e6f2660700a657ff224609582575c078e8da8a5016f8c04c", + "bytes": 12632 + }, + { + "path": "demo/routing/crossbar/take-01/motion-scores.json", + "sha256": "2005d8bc13098bdc07f88726150818499dd6325afebc85a832af6f4e62d8e7f8", + "bytes": 22433 + }, + { + "path": "demo/routing/crossbar/take-01/record-start.json", + "sha256": "a66f7d2c0288cef6e869d2195232507f14bcbd34ab9cbdc3c5b042fa89648943", + "bytes": 1248 + }, + { + "path": "demo/routing/crossbar/take-01/record-stop.json", + "sha256": "0abf19adc00ed77e993201986a4a1637fcb8c4c395bd1e3999aa2b856bbe1866", + "bytes": 1098 + }, + { + "path": "demo/routing/crossbar/video-verification.json", + "sha256": "f7fe18ceae56d8508697e343a4054992f456381041b13962a9abfbc6990ce250", + "bytes": 827 + }, + { + "path": "demo/routing/evidence/boards/fusion-routing-routed.brd", + "sha256": "6ce1d1f9a6b040e516578f704203b7142c0cddbcb8054a3b7fd82efae07e3222", + "bytes": 30208 + }, + { + "path": "demo/routing/evidence/boards/fusion-routing-routed.fbrd", + "sha256": "9bfb959ac595a94fca6af8c6f2e03d5fa076238ccbfaabf602714f3d9e5646c6", + "bytes": 10280 + }, + { + "path": "demo/routing/evidence/dev-bridge.json", + "sha256": "7e1c08d05886c83439fdb26a2a5fe4cec6a7d826ffb439201b35c42e609838b0", + "bytes": 229 + }, + { + "path": "demo/routing/evidence/final-take/001-fusion_routing_state.json", + "sha256": "80a52451607b99d6475f11aca4ac436dce41f84f7f69961ab17aa6c079904a7e", + "bytes": 6559 + }, + { + "path": "demo/routing/evidence/final-take/002-fusion_route_net.json", + "sha256": "544d7236245370efe101d4ec43ea4866065040e6604929ad40415501ed379b73", + "bytes": 2185 + }, + { + "path": "demo/routing/evidence/final-take/003-fusion_route_net.json", + "sha256": "3af69585f94bf60a9dea23ad48b9153f21b13e76ffdcf245729d897e9b0c7e9d", + "bytes": 2193 + }, + { + "path": "demo/routing/evidence/final-take/004-fusion_route_net.json", + "sha256": "a201d9352992203bbe77e9f9fef7698e9ac1d7646754b13d90c0eb0dde573adb", + "bytes": 2682 + }, + { + "path": "demo/routing/evidence/final-take/005-fusion_route_net.json", + "sha256": "ecb315383fda86d917dc9a5e7312e9ada829708fdfa70d2121ac44176b881a82", + "bytes": 2192 + }, + { + "path": "demo/routing/evidence/final-take/006-fusion_route_net.json", + "sha256": "4aa410e75b483fa77d00df7b478461400117c0a5f336d245cb62baee0741f5e7", + "bytes": 2192 + }, + { + "path": "demo/routing/evidence/final-take/007-fusion_route_net.json", + "sha256": "143e45cab8f07b35493bbcc23d6a6b2d2593d244c48e76aacd2fd2662e17da93", + "bytes": 2854 + }, + { + "path": "demo/routing/evidence/final-take/008-fusion_execute_text_command.json", + "sha256": "6d18d7a38ac3cfc9bc625cb7984cc769a88ef89f7cf057d33858c7f6c835fda3", + "bytes": 1345 + }, + { + "path": "demo/routing/evidence/final-take/009-desktop_record_window_start.json", + "sha256": "3ee0135257fcdce198d754ec95e7b3b5edcb65dde539b3834810bb7a0752a3d4", + "bytes": 1485 + }, + { + "path": "demo/routing/evidence/final-take/010-fusion_route_net.json", + "sha256": "46f9f78b92287a18125ec86cc7093eecf92e4fc04d6bd6a79ef5d1194dba84a0", + "bytes": 7700 + }, + { + "path": "demo/routing/evidence/final-take/011-fusion_route_net.json", + "sha256": "bff4aa71958bc7f63702999964eaf93f82a9982c89f6ace7ef6aa5ba6e9901ec", + "bytes": 7917 + }, + { + "path": "demo/routing/evidence/final-take/012-fusion_route_net.json", + "sha256": "778fe08b8074c3a7b27b29d118637d12848983b695cb40056853cd5c5a3d7084", + "bytes": 7952 + }, + { + "path": "demo/routing/evidence/final-take/013-fusion_routing_drc.json", + "sha256": "527cfa3bb33d00e6d9b817ded505e867878d5d6be6b75a6f37baf3ce3357cbe5", + "bytes": 8017 + }, + { + "path": "demo/routing/evidence/final-take/014-fusion_route_net.json", + "sha256": "c6b9adbf2f06e066dd138504700b58658f5ecaf3e5c2c6446bd5c25969c3de14", + "bytes": 8180 + }, + { + "path": "demo/routing/evidence/final-take/015-fusion_route_net.json", + "sha256": "822660ef285b95b45cdd01fce0bf562ec42f3f7cca33f0d373a54da4e4d4834e", + "bytes": 8400 + }, + { + "path": "demo/routing/evidence/final-take/016-fusion_route_net.json", + "sha256": "8c909e6e3dc8b8205f2467b9057703ad0f5a8b9f09b4aae7af589d0f6e3ae317", + "bytes": 8433 + }, + { + "path": "demo/routing/evidence/final-take/017-fusion_routing_drc.json", + "sha256": "0051f652ee5d23bff5f8b4412881e7f201ae05acaeab6bcfe64e412c25792479", + "bytes": 8371 + }, + { + "path": "demo/routing/evidence/final-take/018-fusion_route_net.json", + "sha256": "ff6b62797cc3d15c3dcb5aee2610b50a9d82f6c63af42b2557729fa6066ebfc3", + "bytes": 8656 + }, + { + "path": "demo/routing/evidence/final-take/019-fusion_route_net.json", + "sha256": "716459114757e4868d29cdaf1278a8549a9130de187ceaa0af1bc1e1b93db426", + "bytes": 8871 + }, + { + "path": "demo/routing/evidence/final-take/020-fusion_route_net.json", + "sha256": "8fe316b80c6f1da2d652b4ffc5deceee0ca4c09b6906d617a4db234293bc8a5d", + "bytes": 9055 + }, + { + "path": "demo/routing/evidence/final-take/021-fusion_route_net.json", + "sha256": "f317180d887274114a8dfce1de1c503bea3796062d57f3cb1c13bfa314db1b2b", + "bytes": 9268 + }, + { + "path": "demo/routing/evidence/final-take/022-fusion_route_net.json", + "sha256": "c6701be23bd0e5c1f691162b3e8a3bec8ff4035f811db8eb4bdf5e5b89e67202", + "bytes": 9257 + }, + { + "path": "demo/routing/evidence/final-take/023-fusion_routing_drc.json", + "sha256": "98171c59c1593212de1301953efbe332a2eedc79071cc0a59d20a89bff479422", + "bytes": 9072 + }, + { + "path": "demo/routing/evidence/final-take/024-fusion_route_net.json", + "sha256": "e70793a2358dad1bffb9b73d59f1f3f4d3cfe116e2f709c72b6859ae0670e6d6", + "bytes": 9479 + }, + { + "path": "demo/routing/evidence/final-take/025-fusion_route_net.json", + "sha256": "a652c31b1b2388e41051c2fd47a059f536cdf1a1b25256bce8f34461124e7089", + "bytes": 9700 + }, + { + "path": "demo/routing/evidence/final-take/026-fusion_route_net.json", + "sha256": "fc7e834a3c317965959803d2310717645184b5a0f86c85f9cf71ca2fcdb6e4bd", + "bytes": 9734 + }, + { + "path": "demo/routing/evidence/final-take/027-fusion_routing_drc.json", + "sha256": "9513487a83d50184cdca1b03c0992624aa3fc0ecea52c897110e0c8f7f4d2e54", + "bytes": 9428 + }, + { + "path": "demo/routing/evidence/final-take/028-fusion_route_net.json", + "sha256": "f1f1a9f4965253563539cb33356df2543ec39807f26a44c7ec0b5954336931cc", + "bytes": 9956 + }, + { + "path": "demo/routing/evidence/final-take/029-fusion_route_net.json", + "sha256": "ad64bf44e4f6b15f23d25751bd4da082d7435bb00af50b706d42d395bdc30b97", + "bytes": 10176 + }, + { + "path": "demo/routing/evidence/final-take/030-fusion_route_net.json", + "sha256": "66e2ee52282fa351942ab781b2867ef2189ca58867c0fe5f63b830d753d29040", + "bytes": 10210 + }, + { + "path": "demo/routing/evidence/final-take/031-fusion_routing_drc.json", + "sha256": "388e65a33e6642efa10138b6598e1e98006ec95dbcf681f6ffc691b44d742e05", + "bytes": 9782 + }, + { + "path": "demo/routing/evidence/final-take/032-fusion_route_net.json", + "sha256": "7f6815270d698b4e1d51252d9ac1c8b6c478db5539ce8c3febd55aff28761ed0", + "bytes": 10432 + }, + { + "path": "demo/routing/evidence/final-take/033-fusion_route_net.json", + "sha256": "97f03abe0feeef557c65652c1d017ce54a59e1eec3feb56e08981690c3dce587", + "bytes": 10651 + }, + { + "path": "demo/routing/evidence/final-take/034-fusion_route_net.json", + "sha256": "0b9b979931e98637bac8e08a0577c94088a3bb3663cbd3b655d6f608e9cf5cc5", + "bytes": 10708 + }, + { + "path": "demo/routing/evidence/final-take/035-fusion_route_net.json", + "sha256": "662e0971c785d617d5cd0188a4152a4e47ff20326521715d028d9a06d4fc5956", + "bytes": 11150 + }, + { + "path": "demo/routing/evidence/final-take/036-fusion_route_net.json", + "sha256": "f63ca7aadd5f947453eb483d2a82763d8928875866e1b1cefc2647282a0ac479", + "bytes": 11180 + }, + { + "path": "demo/routing/evidence/final-take/037-fusion_routing_drc.json", + "sha256": "7b1160cbbbb564fe2098401e5637f3610be82953556ac733352713be1826641c", + "bytes": 10502 + }, + { + "path": "demo/routing/evidence/final-take/038-desktop_record_window_stop.json", + "sha256": "1ebf8e82fd22d10cdbd0f7e801659ca87787502595aac4d17d09e9e2ef3fd045", + "bytes": 1329 + }, + { + "path": "demo/routing/evidence/final-take/result.json", + "sha256": "e82dca508b90c99578d36cadc81da8b1e2c92306f46d4cbf4345de4a304f58d3", + "bytes": 10340 + }, + { + "path": "demo/routing/evidence/final-video-probe.json", + "sha256": "189e08fd62b4393fa0df18f49b248048afcae58ea346cd350c84426977f634ae", + "bytes": 313 + }, + { + "path": "demo/routing/evidence/final-video-recording.json", + "sha256": "1222c866c7a4e36c5744433bc09a3384a45d382e6ce5eb211372e0c07b4ddd87", + "bytes": 1088 + }, + { + "path": "demo/routing/evidence/install.json", + "sha256": "08a77e19d339ed91c9acff79cb5e5aedf057e560b1e008b7a53affdfb1bbf598", + "bytes": 419 + }, + { + "path": "demo/routing/evidence/live-rejections.json", + "sha256": "7da1c325c0cdf5864fab29ece8ca6a2871a12121c5d83aee103bdde821969de1", + "bytes": 4334 + }, + { + "path": "demo/routing/evidence/per-net/001-fusion_routing_state.json", + "sha256": "abeae0e1106c9da55216f3477611009cc70504ca1d7963c16097c95cc7d696f8", + "bytes": 6559 + }, + { + "path": "demo/routing/evidence/per-net/002-fusion_route_net.json", + "sha256": "46e12f33042b9ff224dda7cdc080d084f5a5ecf5fa8088baac03d6d151e4d0a4", + "bytes": 2185 + }, + { + "path": "demo/routing/evidence/per-net/003-fusion_route_net.json", + "sha256": "8efc12fa35a9100a0f942f7cb38fe9309650fd04ea5225b0c570774b3ada6511", + "bytes": 2193 + }, + { + "path": "demo/routing/evidence/per-net/004-fusion_route_net.json", + "sha256": "3c5c4bc3749633c41c39a7372eaa0470386e2966404d768d01298f204459cd2d", + "bytes": 2683 + }, + { + "path": "demo/routing/evidence/per-net/005-fusion_route_net.json", + "sha256": "7c92a59a123bcc36f0bddceb52da88ff7502e847fbd1c399c8bb1c765f7510f5", + "bytes": 2193 + }, + { + "path": "demo/routing/evidence/per-net/006-fusion_route_net.json", + "sha256": "0fa413f3469f066fb4e31ea8aac87f01db985ecf2ccd1e341495724aebd205a7", + "bytes": 2193 + }, + { + "path": "demo/routing/evidence/per-net/007-fusion_route_net.json", + "sha256": "b3b84c60ac7ce86d86e04f7b14007572daa1b300a924de8372cbdbce584724ed", + "bytes": 2854 + }, + { + "path": "demo/routing/evidence/per-net/008-fusion_route_net.json", + "sha256": "8f3f4646bd45bb3aafafa1bb09430a1902eba48186835cf05d5d4306664d25d7", + "bytes": 8754 + }, + { + "path": "demo/routing/evidence/per-net/009-fusion_routing_drc.json", + "sha256": "5253628ef9bcd7a5ec99f55ff141f7513968bbeb2b2683e2c07f6897c1f16cd9", + "bytes": 8017 + }, + { + "path": "demo/routing/evidence/per-net/010-fusion_route_net.json", + "sha256": "23a1cc4943f93bdc5545866392510e9285351a5e4c3ac16f6668d8b9e1280c98", + "bytes": 9244 + }, + { + "path": "demo/routing/evidence/per-net/011-fusion_routing_drc.json", + "sha256": "82bccf27ffe398ed38e12628972c717ac9abcbbdcacc06e6e9539bc9f4e3151f", + "bytes": 8372 + }, + { + "path": "demo/routing/evidence/per-net/012-fusion_route_net.json", + "sha256": "c1ea2a3c1ea8a42e187f5cdbd4fd6ea53580d5f6cdfd970a59f29237c2c266fa", + "bytes": 10800 + }, + { + "path": "demo/routing/evidence/per-net/013-fusion_routing_drc.json", + "sha256": "2070e76229c6d951a2815f8592c8c73fb487abd3366e92df10dd034a111410be", + "bytes": 9073 + }, + { + "path": "demo/routing/evidence/per-net/014-fusion_route_net.json", + "sha256": "5b08fc4b9adad0c7c2ab959a73c30d8c8d69aa531498715c811a178dc856f7e1", + "bytes": 10544 + }, + { + "path": "demo/routing/evidence/per-net/015-fusion_routing_drc.json", + "sha256": "49e31b2880069d8877e1fcc21b8658e04c47accb325662db156636cde6a41fff", + "bytes": 9428 + }, + { + "path": "demo/routing/evidence/per-net/016-fusion_route_net.json", + "sha256": "abe0196e3ace12dbee4ca97b9440a84f4affd610d6bf176843f8cd918502380a", + "bytes": 11020 + }, + { + "path": "demo/routing/evidence/per-net/017-fusion_routing_drc.json", + "sha256": "de55175856b535ae1331bb1e1d12924e43a2b2560ec8cc2b8e7e32f56acb9993", + "bytes": 9782 + }, + { + "path": "demo/routing/evidence/per-net/018-fusion_route_net.json", + "sha256": "536efcd77dad3ce1bed6174f97a76726bbadcaf99eeafa1782040e7d8902ec7e", + "bytes": 12842 + }, + { + "path": "demo/routing/evidence/per-net/019-fusion_routing_drc.json", + "sha256": "4a1777f2deecc84ef3470683630090b26a6999e4151baa944313e78bcabab438", + "bytes": 10503 + }, + { + "path": "demo/routing/evidence/per-net/result.json", + "sha256": "7ef17a7d87864a43a53daa9f20075d6e2a3e04d04120a1fba391ca43d8fcc2e9", + "bytes": 10338 + }, + { + "path": "demo/routing/evidence/pinned-refresh.json", + "sha256": "481ec84354c69e766e0f646c32d7b64e7b30d1244eb0b0ff21303d091d848b66", + "bytes": 1316 + }, + { + "path": "demo/routing/evidence/redo-final.json", + "sha256": "89c577b96f26a12caa05e9279c9601737efdc70080f733c2f80b13d5444d64f3", + "bytes": 8983 + }, + { + "path": "demo/routing/evidence/showcase-delivery.json", + "sha256": "05990d995750c34cac0465187b2ff156c69b53ff6c4fcce7ac8f4daea77d3b47", + "bytes": 1080 + }, + { + "path": "demo/routing/evidence/showcase-player-open.json", + "sha256": "15abb38a1d41fd4758cd72226d4be8295013a287c74c561c796ee538511097f9", + "bytes": 135 + }, + { + "path": "demo/routing/evidence/showcase-player-verification.json", + "sha256": "45931301f180d12246b2f9393a6ffc3ec1d13b626875e92ceb14e4871274b97e", + "bytes": 587 + }, + { + "path": "demo/routing/evidence/showcase-video-validation.json", + "sha256": "37987af6780ed3a9ae4508c2b9ca7fa8f8ba22a583b13991562dd17614a6a10e", + "bytes": 5231 + }, + { + "path": "demo/routing/evidence/undo-final.json", + "sha256": "2c908b3adc250f03ac43d0514dc074d8b5c344a76df2e95b759b6cff7944f96c", + "bytes": 8963 + }, + { + "path": "demo/routing/evidence/video-delivery.json", + "sha256": "4936d1233e2a322f031e1021019ce503890b6398907dd4e0bbca9e74b4d9cb73", + "bytes": 1078 + }, + { + "path": "demo/routing/fixture/fusion-routing.brd", + "sha256": "8f34753e934e7f40da9b10f76629a139eb4aeb920f53d128d22696334f7a0c43", + "bytes": 9325 + }, + { + "path": "demo/routing/fixture/fusion-routing.sch", + "sha256": "6c09e7da57b17a872c9255679525bce4d0b718faf406458e7475272ff54fafbf", + "bytes": 9964 + }, + { + "path": "demo/routing/fixture/plan.json", + "sha256": "e7cd7a18b0a4616b28f909c767cd2a70c0f91ba23ebe1a01fbc50abeaa0bf224", + "bytes": 1939 + }, + { + "path": "demo/routing/live_panel.py", + "sha256": "93c0b4c3086a615483c826a08ad19bc87953015e6ad2c08e719ba8800d9a6e81", + "bytes": 4995 + }, + { + "path": "demo/routing/make_fixture.py", + "sha256": "26de62cb938374664a43a28221dcb8458e311206347f0abad897da849a236344", + "bytes": 5516 + }, + { + "path": "demo/routing/obstacles/README.md", + "sha256": "23ed3938c4dc5bc7775ea03e961e3bbb3b71b90190a1157839b848ac5ad9d3f1", + "bytes": 5941 + }, + { + "path": "demo/routing/obstacles/delivery.json", + "sha256": "72a325687c9a775aaae92bc6166360fa07e61baa8e017a7ed4516c0c798719aa", + "bytes": 1159 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-lab-v2.brd", + "sha256": "524fdb88a713b9e5317e44b8a83200ad0a572ef4f4940ff1f0d0b297871ebbe8", + "bytes": 6709 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-lab-v3.brd", + "sha256": "524fdb88a713b9e5317e44b8a83200ad0a572ef4f4940ff1f0d0b297871ebbe8", + "bytes": 6709 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-lab.brd", + "sha256": "524fdb88a713b9e5317e44b8a83200ad0a572ef4f4940ff1f0d0b297871ebbe8", + "bytes": 6709 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-1x.ass", + "sha256": "39e30891c4bbff7caaa60dc68602351b34f5bf9a3f2ac12c43b83b70b04f7533", + "bytes": 1311 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-1x.edit.json", + "sha256": "0bbc8a36fdd23be3ac989c819ea46addbd5aa36962a21d3d4d137af07a25b991", + "bytes": 645 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-1x.mp4", + "sha256": "c76e5eae815b61743307c500b6f0cae4fd5d5a16c12eced9cf2041b8227a3e16", + "bytes": 1589166 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-3x.ass", + "sha256": "f5fd67c62eff9370923873508c903c255f20fc60a35aef99c7f291a043aab9b5", + "bytes": 1311 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-3x.edit.json", + "sha256": "397466814ec2c1d2ff2232ad9cc958754ef55453e620a68f5684ffc71c6b636d", + "bytes": 656 + }, + { + "path": "demo/routing/obstacles/fusion-obstacle-live-3x.mp4", + "sha256": "0104fae34e4654065a2e772a59aefb3f753cf74e266da4336297f8c890645426", + "bytes": 976138 + }, + { + "path": "demo/routing/obstacles/install-v4.json", + "sha256": "fb86f830f1121de7a2f6bac94d2b9e9c5bf8d7e000dc4fee28732e29554c948f", + "bytes": 426 + }, + { + "path": "demo/routing/obstacles/install.json", + "sha256": "3bea7d372b79b74ff1c9a44a1b6780742af2d17ac047b36c7b87cabfe5b0b019", + "bytes": 426 + }, + { + "path": "demo/routing/obstacles/live-planning-probes.json", + "sha256": "0629855d694ec4ce53065f4f7966446f98256b515bd5a9e696e8a08a49640afe", + "bytes": 5768 + }, + { + "path": "demo/routing/obstacles/player-verification.json", + "sha256": "f1d2d96bb54073a5893442a8707d24dad904389e3372754ac80909b1c85ea48b", + "bytes": 693 + }, + { + "path": "demo/routing/obstacles/player-windows.json", + "sha256": "fa50a0c24a372deefdedbee0b607b0d848171fc306bc263bcb8900216c119699", + "bytes": 445 + }, + { + "path": "demo/routing/obstacles/record_obstacles.py", + "sha256": "46c1b2ba8699056bcf7d7c1e456be78c6645a13911dbf8de67fa9c6d398e456b", + "bytes": 7068 + }, + { + "path": "demo/routing/obstacles/render_obstacles.py", + "sha256": "8ee147792e2bc3c2650212d6ddd4ea400e6f4e7ecabf95630df8747ca26a6d13", + "bytes": 3195 + }, + { + "path": "demo/routing/obstacles/requirements.json", + "sha256": "43bd12c7ee662f756ae97b441efd8ca15c7a88e6812691a38637c64fe1debb97", + "bytes": 482 + }, + { + "path": "demo/routing/obstacles/take-01/before.json", + "sha256": "e91f92e1d2a021bc0871407ac5c30278bfd5283c0d355d7045ce2fc4c4307e6d", + "bytes": 3851 + }, + { + "path": "demo/routing/obstacles/take-01/calls.json.gz", + "sha256": "e73f18405c166bd378868010d0b1f8d26cfdd1facc2775d700be6e58847f977d", + "bytes": 5001 + }, + { + "path": "demo/routing/obstacles/take-01/plan-1.json", + "sha256": "4610fbd2af3917f0fea7caa0ae3e1e33c8304ba9507ca905ded5ba01adc2aefe", + "bytes": 2587 + }, + { + "path": "demo/routing/obstacles/take-01/plan-2.json", + "sha256": "87160c2402d04d2cf69df8e2bf488091f911f038a185b405081669c118d9a67a", + "bytes": 2677 + }, + { + "path": "demo/routing/obstacles/take-01/record-start.json", + "sha256": "b9634e8ba4dc232b38053f7681bf9b5f40e48afa9ff84bb62710fe97916f7e63", + "bytes": 1250 + }, + { + "path": "demo/routing/obstacles/take-01/record-stop.json", + "sha256": "0f95744bdecd6f7c6c8a2513c30fda042650653dcd9b9dd7d03444e8f03979a7", + "bytes": 1086 + }, + { + "path": "demo/routing/obstacles/take-02/calls.json.gz", + "sha256": "d7fd7ef7fddb848e5a6fb4ba6b8d969ac28e223f206bce0c09da196793018c28", + "bytes": 454 + }, + { + "path": "demo/routing/obstacles/take-03/before.json", + "sha256": "c9e85233ec06a67195c70de5d9944a47c321287cefeefc46e3f4a8bb711bdaeb", + "bytes": 3854 + }, + { + "path": "demo/routing/obstacles/take-03/calls.json.gz", + "sha256": "f209cb89b765865755f20e8e1ae6e87f12d46c939eb84e5b791fc2c415238842", + "bytes": 5964 + }, + { + "path": "demo/routing/obstacles/take-03/final.json", + "sha256": "7e8a7a3855c368e9a315714477b8d988a339193565399ac6e5a856fc314df4cc", + "bytes": 5305 + }, + { + "path": "demo/routing/obstacles/take-03/fusion-obstacle-routed.brd", + "sha256": "7aff8a475e832f2dfe8c28c8bbc0d824040aaa7999c39021478e6c75961ec446", + "bytes": 28945 + }, + { + "path": "demo/routing/obstacles/take-03/fusion-obstacle-routed.fbrd", + "sha256": "8bab1c2cdf062599494c70d8fbc9150f875407715162d8ae22ed522525228879", + "bytes": 10053 + }, + { + "path": "demo/routing/obstacles/take-03/plan-1.json", + "sha256": "aa8453467e301e91ae4c13d855b9a140437ea48297d013b1c7696ea44ab2f342", + "bytes": 2590 + }, + { + "path": "demo/routing/obstacles/take-03/plan-2.json", + "sha256": "a4ade666159ee54ca063cb98942c06da4192b40889c1c5f3564d78685b37cb72", + "bytes": 2680 + }, + { + "path": "demo/routing/obstacles/take-03/plan-3.json", + "sha256": "bc4e4bf393dc9982050e631c5d34d48c3a8a49b19dddf086369a2f6aedf43a76", + "bytes": 1650 + }, + { + "path": "demo/routing/obstacles/take-03/record-start.json", + "sha256": "88c74e01d6cbbb0362def8b381704e68d361659c8b772a1bc1a4b541512d5766", + "bytes": 1247 + }, + { + "path": "demo/routing/obstacles/take-04/before.json", + "sha256": "7a8b4f6e5aea47b55e52da0fa8a4386bdc62991dbb131274ee7384ed876bfafb", + "bytes": 3854 + }, + { + "path": "demo/routing/obstacles/take-04/calls.json.gz", + "sha256": "17d3bb275a6b3a39eb5eb9cd84e3e2b0eb2f424bc54c7ffc062903490c1b9615", + "bytes": 9661 + }, + { + "path": "demo/routing/obstacles/take-04/final.json", + "sha256": "752e2d2e2d278942a71df7b1e5a39bfee17fe570e9fbfe8b43e86ba9d5c18851", + "bytes": 5305 + }, + { + "path": "demo/routing/obstacles/take-04/fusion-obstacle-live-routed.brd", + "sha256": "6ecae2964536f34b1f2e9e1586560c53b7d079ed5ee3256e14d248b5216d2927", + "bytes": 28945 + }, + { + "path": "demo/routing/obstacles/take-04/fusion-obstacle-live-routed.fbrd", + "sha256": "8755af70e113ed7fe0a04783b674382f2851c4bc9f35791b685c7d311ec17bc1", + "bytes": 10051 + }, + { + "path": "demo/routing/obstacles/take-04/panel-events.jsonl", + "sha256": "11dff7e45eddac85987a4f367002b4a25c3366fc010c84b0ce77914fba84d4a1", + "bytes": 12040 + }, + { + "path": "demo/routing/obstacles/take-04/panel-record-start.json", + "sha256": "f79accd0a583d88033b38a06a7b56913b89f782900cfd62d75c32be168518aab", + "bytes": 1109 + }, + { + "path": "demo/routing/obstacles/take-04/panel-record-stop.json", + "sha256": "bb4bbc4d4faba4eed9a606feae83bdacc6798abc4e2d610731ae571fe124ae6b", + "bytes": 1093 + }, + { + "path": "demo/routing/obstacles/take-04/plan-1.json", + "sha256": "2cb59da3135fc5739bef1fe2cfe038d903f8cc3d90c38b342cf4346d4318d6fe", + "bytes": 2589 + }, + { + "path": "demo/routing/obstacles/take-04/plan-2.json", + "sha256": "1c3cca39ba9519ec93d1a3832a5f85e2fdf57ea761fa2a1681ee5380c44651d2", + "bytes": 2680 + }, + { + "path": "demo/routing/obstacles/take-04/plan-3.json", + "sha256": "3c6b6603fae567af0e81e97d76366008b364e50e4f41ef8d71c71bfbd76e0be1", + "bytes": 1652 + }, + { + "path": "demo/routing/obstacles/take-04/record-start.json", + "sha256": "806aa33ef56d81242013fc70008a05260ab733c8d2ef475c084f5e407bcb5381", + "bytes": 1256 + }, + { + "path": "demo/routing/obstacles/take-04/record-stop.json", + "sha256": "f0f87020f367d27e91f81118114f4ea705b92711e26f8bcef164ebca318751bc", + "bytes": 1092 + }, + { + "path": "demo/routing/obstacles/video-verification.json", + "sha256": "708fcb6cae2e9595e29cd544106a020fd399c6998ce4acdb72dec569b9747b59", + "bytes": 682 + }, + { + "path": "demo/routing/prepare_live_panel.py", + "sha256": "4904b0d096cbbf280c6937840fae00db8c4a7b6e565454b820f32effe350ed63", + "bytes": 1311 + }, + { + "path": "demo/routing/render_showcase.py", + "sha256": "dda258ff587aec40d6e1c41e7c483e9433b1580f3950ff4efbce1bc1b47069b6", + "bytes": 4197 + }, + { + "path": "demo/routing/run_demo.py", + "sha256": "cc516e4dd7b390772790c799c985a5e5b0ed3994f780aae03c309083b2093531", + "bytes": 3807 + }, + { + "path": "demo/routing/screenshots/end.png", + "sha256": "efa14aa6334d58b0f06add9c0f896ef3fba8a896ffb7e3e317db2d68dad55f94", + "bytes": 455562 + }, + { + "path": "demo/routing/screenshots/start.png", + "sha256": "265090aa39c7f838db09dbe769c28116d6f3986b8bff5095ef3bb3a563ee806f", + "bytes": 629227 + }, + { + "path": "demo/routing/videos/fusion-live-trace-routing.mp4", + "sha256": "0887b7543e744ff64f4ae4c138c7a336d9d3a688633cc31cb41faf4968431c59", + "bytes": 526268 + }, + { + "path": "demo/routing/videos/fusion-routing-showcase-3x.ass", + "sha256": "a8351a750e7adc5b5bd1bbed0d0406b5124739cd608d22ed556274966987f6df", + "bytes": 2295 + }, + { + "path": "demo/routing/videos/fusion-routing-showcase-3x.edit.json", + "sha256": "543cf8f3b6e7b49c79de4cc889967f676ff1f14eef60a5925fd3c743e080025f", + "bytes": 1060 + }, + { + "path": "demo/routing/videos/fusion-routing-showcase-3x.mp4", + "sha256": "76cc6a6283fe65d2b96f503cde9c0116514bea209220cf778bbedf8a206fb07a", + "bytes": 325196 + }, + { + "path": "describe.py", + "sha256": "66247d28ffbb4b375e12ab6e49bbf2277401fce56541739c3b980ca3e92199d8", + "bytes": 135698 + }, + { + "path": "dev-skills/fusion-auth-surfaces/SKILL.md", + "sha256": "f749f04411e832b7e17f0878202b559fa56dd09378069835ec20313cd88335e2", + "bytes": 7970 + }, + { + "path": "dev-skills/fusion-background-etiquette/SKILL.md", + "sha256": "3ca4312bedf76c66335e596231beeaac4d0da3daa82071b75d0d4cc98c87ef92", + "bytes": 11814 + }, + { + "path": "dev-skills/fusion-bridge-dev/SKILL.md", + "sha256": "5a4869becc573bb30a68c872b1ffc2dc6dc171f31e7650a2d3c1442863b3d4ac", + "bytes": 38095 + }, + { + "path": "dev-skills/fusion-dashboard/SKILL.md", + "sha256": "ee0244e2daea8a44ac5864bb948dea9163d8833898b3ece1f15a5ce093bd091b", + "bytes": 9260 + }, + { + "path": "dev-skills/fusion-dialogs/SKILL.md", + "sha256": "76f838df69ae627e4c4ef0ffe427b5b23f934ba218238be06944237187f5aa6b", + "bytes": 8809 + }, + { + "path": "dev-skills/fusion-hero/SKILL.md", + "sha256": "de663fc1b8b166fd01b1037988fffd8300d27609315a98c66a00d98b85e18806", + "bytes": 8512 + }, + { + "path": "dev-skills/fusion-publishing/SKILL.md", + "sha256": "fa8372c56a74319cf168a9b6fffe58a5d83ace8f1abe77f2852911102fa8e1f4", + "bytes": 6607 + }, + { + "path": "dev-skills/fusion-taskbar-badge/SKILL.md", + "sha256": "efe038d863a8492fa1e1dea10e3e3aaaa1da834dd7a499ce84fa854e9c0ee512", + "bytes": 7229 + }, + { + "path": "dev-skills/fusion-verb-tests/SKILL.md", + "sha256": "f580e57ee5da55b71edf3ffbd71206fc1d6bce964a5db47864a5388814c5bc52", + "bytes": 9772 + }, + { + "path": "dev-skills/fusion-verb-timing/SKILL.md", + "sha256": "3ce709d177791cdb29a5ffa0b67725cc6cd832390d764918c994d415bcf37ec8", + "bytes": 6686 + }, + { + "path": "dockbar.json", + "sha256": "0de36d6305ebec71d5936dc1d29274ee8215d5fd7302f8459658a821d8022f00", + "bytes": 1800 + }, + { + "path": "docs/3d-viewer-and-export.md", + "sha256": "4923df462e44f17045c60073be5044a8782496cc85e09b5155eb1cfeb308684a", + "bytes": 8182 + }, + { + "path": "docs/CP8-ACCEPTANCE.md", + "sha256": "8e7707219ca636576e4df5f1fed547f7234c5d936b3d142d7abe8fdf9f187c6e", + "bytes": 3265 + }, + { + "path": "docs/MECHANICAL.md", + "sha256": "5a5b017346d4129e1f32983a196350d8bb8b230780a1c6ef98d1a3910a377639", + "bytes": 26840 + }, + { + "path": "docs/MULTIPART_LIBRARY_IMPORT.md", + "sha256": "4dbc6ebc5055696aa1116ecd540c9cf49299f664495bb270f3e69da2288b3d1f", + "bytes": 10928 + }, + { + "path": "docs/TESTING.md", + "sha256": "c22d11e405b8c21e3e4871eb5ac9d34954a7e12201cbe814b8e8fa3bbac02175", + "bytes": 10519 + }, + { + "path": "docs/aps-cloud-search.md", + "sha256": "54d24da1e8fa92d35e3aa720026b71a7651970234e27f2e5e1f4543ce89eba9a", + "bytes": 7691 + }, + { + "path": "docs/astra-placement-routing-3d.md", + "sha256": "ba999b40d2ec1eaf691793bba1c713d8949551a7e0cccdfc06346c5e54ba0348", + "bytes": 5470 + }, + { + "path": "docs/board-layout-2d.md", + "sha256": "93de4f7ebf4d086961b3eb78e347ee79929e248091e23ca62053953cdcc888c2", + "bytes": 9389 + }, + { + "path": "docs/build-2026-10-02-2.md", + "sha256": "5924572244c78e20a1f27ec31641264d5442613bd8a1b41d380bfcd7064bdcbb", + "bytes": 8386 + }, + { + "path": "docs/build-2026-10-02.md", + "sha256": "a6407d2ed9a0b471a122077f15aa930f70a1553e9be128a5d77f55acf39c58d8", + "bytes": 14854 + }, + { + "path": "docs/build-2026-10-05.md", + "sha256": "23bbef3607a9853d4577f12d64e8ef1b790bcd4038f822b78fb940f28eb13673", + "bytes": 5280 + }, + { + "path": "docs/electronics-libraries.md", + "sha256": "4e47de97d8def6061bf140900894e516422bb7992cdb8aa98b9213165fa734dc", + "bytes": 6710 + }, + { + "path": "docs/fusion-demo-tour.md", + "sha256": "0669e7aa95606344acee0231c1096864bf946b020801a832d281cb0d22542dc1", + "bytes": 3448 + }, + { + "path": "docs/fusion-mcp-server.md", + "sha256": "99c108092236f6be4383e092247602bf968a8ee865d428b03a613fd9ad31deca", + "bytes": 18850 + }, + { + "path": "docs/fusion-preferences.md", + "sha256": "6adb3207d7dc43cc44533ed1847e0f1a1f893ea1e5378c4fd32c6a6bb373949d", + "bytes": 5532 + }, + { + "path": "docs/img/.retired-dock-fusion.png", + "sha256": "a5554421f76c39e3c9a271a95af1f4a623c416381d4c81e2413604b00dd71f5f", + "bytes": 5814 + }, + { + "path": "docs/img/circle-2dboard.webp", + "sha256": "5a51aaece1cc2c82e8075616bb537651ee994c1ba1890861ebf7ec7fa2a855fe", + "bytes": 34812 + }, + { + "path": "docs/img/circle-3dboard.webp", + "sha256": "c639945b0fbdd7bbe8597378310243444e25c964a8ddd0c7d833b00b52ce1b4d", + "bytes": 19000 + }, + { + "path": "docs/img/circle-3dchip.webp", + "sha256": "48f1feb8144953a540ec46e4b12c92bf26fc5a43c1c1c79c9c0484cecdaee143", + "bytes": 21624 + }, + { + "path": "docs/img/circle-footprint.webp", + "sha256": "9ee5290418d7c45f82a00085cfb5846d31dbd5571c414f528030cef7689e71b4", + "bytes": 39430 + }, + { + "path": "docs/img/circle-library.webp", + "sha256": "6bf11ba1981221ad1463adb13195463ab6827cbf65df2c865d2657c361b74dd2", + "bytes": 34454 + }, + { + "path": "docs/img/circle-project.webp", + "sha256": "f4598e5aa9a5b968393a90ef58aaa2061f8323c1ee5b6c725aedb989b0bb837a", + "bytes": 36700 + }, + { + "path": "docs/img/circle-schematic.webp", + "sha256": "f5c0417ba300f463e0372cef04b1ee9f2f91561ad9e09d467ec081b4f4a43f22", + "bytes": 32176 + }, + { + "path": "docs/img/circle-symbol.webp", + "sha256": "b478a8f2f26e2432e320b48056a72a4d040e8cc9fda9f977b265c830a67fa757", + "bytes": 29776 + }, + { + "path": "docs/img/dock-fusion.png", + "sha256": "a5554421f76c39e3c9a271a95af1f4a623c416381d4c81e2413604b00dd71f5f", + "bytes": 5814 + }, + { + "path": "docs/img/dock-fusion.svg", + "sha256": "365d419a49a6a79f0b88460a067352dd5506d5dbfa1311f3e70d7484103c5cc6", + "bytes": 893 + }, + { + "path": "docs/img/multipart/banner-in-package3d-generator.png", + "sha256": "476c0d05147829f3501b06b584d5643d5844f47b4a2f910f6da31a2b97ce5574", + "bytes": 20778 + }, + { + "path": "docs/img/multipart/end-state-library-open.png", + "sha256": "3609762f4208491e377074c7c003c9e6541b0419a5541a4411795933b9b8e3fd", + "bytes": 194214 + }, + { + "path": "docs/img/multipart/library-three-parts-ganged.png", + "sha256": "c4abc62e7de7aaf907a77a97077adbe6b82b94a5404593cfa5dfad558da8f6d6", + "bytes": 209721 + }, + { + "path": "docs/img/multipart/own-footprint-tps54427ddar.png", + "sha256": "0c8157746dfc6fcc99063eee85e12147e5de486dc8764807211200deb2ccf182", + "bytes": 546032 + }, + { + "path": "docs/img/multipart/quick-actions-live-view.png", + "sha256": "07ef3b69d132eb533f07be85da25ff3efc6c492bf893d81272922479f2e0d0bf", + "bytes": 299376 + }, + { + "path": "docs/img/multipart/quick-actions-multi-pick.png", + "sha256": "eae34d7366beb5e52beb95e792c5d178a8bac4bf4f40c26892a41eaa87fca693", + "bytes": 238784 + }, + { + "path": "docs/img/multipart/wrong-footprint-tps54427ddar.png", + "sha256": "b1efd8d42e41cf298473df19f01323bcd51cea3e021ed85b69e733a8bd33ec68", + "bytes": 549398 + }, + { + "path": "docs/img/prefs-1-open.png", + "sha256": "22830f99884fb16f486d1b4d87add6c53044b7b075d33ef2b043d13a2f37fde1", + "bytes": 252832 + }, + { + "path": "docs/img/prefs-2-general-expanded.png", + "sha256": "fb850d9dc1e6054a015e64b969ff0f3d6ddb4371b2377bd4b7181fa32fb3638a", + "bytes": 280622 + }, + { + "path": "docs/img/prefs-3-api-mcp.png", + "sha256": "a4809a142f3caec505851de00317cd9e1d6c70423b858c10195d00c919148bd9", + "bytes": 258511 + }, + { + "path": "docs/img/step-colorize-after.png", + "sha256": "83b61d34340ae3104c4425ca65e5971363d8239a56807d9af882bb36e08e0d71", + "bytes": 176805 + }, + { + "path": "docs/img/step-colorize-before.png", + "sha256": "1adea907dcc3fd4889680be0f9969d106ef63af2b100ff00c6c51dadbbd92163", + "bytes": 190283 + }, + { + "path": "docs/implementation-roadmap.md", + "sha256": "4b003531870502736ebb049018ce7d454b6855cbfb80b945db89b0f412b156a7", + "bytes": 4071 + }, + { + "path": "docs/mechanical-bom.md", + "sha256": "a5d338b5b30ff0d80bc16e4fe1178b4a2dc9d3bc1d572fe8ff21ac811a9a7b3e", + "bytes": 5100 + }, + { + "path": "docs/mechanical-build-plan.md", + "sha256": "245b29a211f3e981439b12e47f857586e9231f87ae366f736b4ff656021db7b4", + "bytes": 3874 + }, + { + "path": "docs/mechanical-comparison/ACTION-MATRIX.md", + "sha256": "303a5b7f6e6b5e8570e66d82b088d402a06c958c1aa0c136e9f2f512a1b66153", + "bytes": 41054 + }, + { + "path": "docs/mechanical-comparison/CHECKPOINT-STATUS.md", + "sha256": "262064951564f53404dfff52f5534afeb7e6b797c09dc8f293c920aa40625486", + "bytes": 3014 + }, + { + "path": "docs/mechanical-comparison/FEATURE-MATRIX.md", + "sha256": "3e63d5bbaf642167c9f1e8ccbe61e9598e95f12e99ba8b85af0496a8be46196e", + "bytes": 259391 + }, + { + "path": "docs/mechanical-comparison/PROTOCOL-MATRIX.md", + "sha256": "f01e441d619f60d2dbba0d0778b537ec23ff22666b434a500f5856dda377546d", + "bytes": 14724 + }, + { + "path": "docs/mechanical-comparison/README.md", + "sha256": "a6216e434d7a519544a248bf8c9eae3c111c448294c3406ff87ea234e53a14b1", + "bytes": 3272 + }, + { + "path": "docs/mechanical-comparison/REMAINING-GAPS.md", + "sha256": "568b919d014be5c31f5dec0b5b158e52daf2278b675cd283c87acff8effaf5a5", + "bytes": 3061 + }, + { + "path": "docs/mechanical-comparison/action-features.csv", + "sha256": "80e420870fafd1ca046993dc50700eb90f6b1db75bf83773dd09da524189775c", + "bytes": 38932 + }, + { + "path": "docs/mechanical-comparison/action-features.json", + "sha256": "0329a873db61bd972ec8490b7c5822e66884e7a7e38cb8714c731959b4a09836", + "bytes": 125318 + }, + { + "path": "docs/mechanical-comparison/additional-completeness.json", + "sha256": "6dd48ca1e594958601c26c24aa4db91261abaf91338bc8a3f19fac1c7cffa81d", + "bytes": 2673 + }, + { + "path": "docs/mechanical-comparison/additional-source-review.md", + "sha256": "0f01c2246774d60aa50562b2c500249d5ccbfddac4d5051731cbb3193b2ad492", + "bytes": 7089 + }, + { + "path": "docs/mechanical-comparison/autodesk-compute.md", + "sha256": "7f83db6b03ba423259802f9d51544f03339400e56c21ba84ba2054923a4f4cb9", + "bytes": 3343 + }, + { + "path": "docs/mechanical-comparison/autodesk-desktop-tools.json", + "sha256": "696192aa40253a66056e10cb5eda3302475baafde3f0689b8261eb1cb135dd5e", + "bytes": 46552 + }, + { + "path": "docs/mechanical-comparison/external-features.csv", + "sha256": "683856bf54d35016ba1eda9d47c621fe126ea042fd332eaa1a5baa7c3b52d6ac", + "bytes": 293043 + }, + { + "path": "docs/mechanical-comparison/external-features.json", + "sha256": "45f9cf0f92b7ac88a2ca3269328bc89e079d2ec23aa37a127661999c1fc38686", + "bytes": 1223540 + }, + { + "path": "docs/mechanical-comparison/external-source-caveats.md", + "sha256": "0907170d4c7f39fc56362054c55cc14b118e00136501f39262f36bbe6858c9c5", + "bytes": 10278 + }, + { + "path": "docs/mechanical-comparison/licenses/FusionMCPSample-LICENSE.txt", + "sha256": "edee7b97964cc8c5c10899c38b9a95884aafecbed5f18faecdeb281aa1fd0a93", + "bytes": 1076 + }, + { + "path": "docs/mechanical-comparison/licenses/Justus-LICENSE.txt", + "sha256": "49321fdec2af0c725df6246f060c48a536fc2a07fb78b3d2dd4eb9b2c3db4e44", + "bytes": 1073 + }, + { + "path": "docs/mechanical-comparison/licenses/Poyraxx-LICENSE.txt", + "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "bytes": 35149 + }, + { + "path": "docs/mechanical-comparison/licenses/artapo-LICENSE.txt", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "bytes": 11358 + }, + { + "path": "docs/mechanical-comparison/licenses/artapo-NOTICE.txt", + "sha256": "4592fbf8e841dcc08013abc8369a9baa3410c97a42dd8702128156288da875f0", + "bytes": 234 + }, + { + "path": "docs/mechanical-comparison/licenses/f360mcp-LICENSE.txt", + "sha256": "3bed3331b7048bac17cf50e249d560ccc9508c970da8d7b9283bf4f2e633a91d", + "bytes": 1055 + }, + { + "path": "docs/mechanical-comparison/licenses/faust-LICENSE.txt", + "sha256": "fa5a11621d70cca71b90f8b3059c3e300960e8bf001a49d92342604923663135", + "bytes": 1076 + }, + { + "path": "docs/mechanical-comparison/licenses/frankhommers-LICENSE.txt", + "sha256": "22ce38518cd74aca237c9fc51befae738f5ddbe69012549d8e501a6118d75bb7", + "bytes": 1083 + }, + { + "path": "docs/mechanical-comparison/licenses/fusion-cam-mcp-LICENSE.txt", + "sha256": "a2fb435161a80983700969eced80f7ce3fc794066d730fa26d7cd2bf493c5461", + "bytes": 1061 + }, + { + "path": "docs/mechanical-comparison/licenses/mcp-fusion360-LICENSE.txt", + "sha256": "c2bd8b0d7c345adb249b5f4ca71f5e3dfd0dd6ff25c1ad93fd871653627595b4", + "bytes": 1071 + }, + { + "path": "docs/mechanical-comparison/licenses/ncmlabs-LICENSE.txt", + "sha256": "6ad80417d1ece7b86229d7b7e5992b02a9ecc73e1c3d56b9f922a092cc232ee2", + "bytes": 1070 + }, + { + "path": "docs/mechanical-comparison/licenses/prim-LICENSE.txt", + "sha256": "996e64892afa962c10bb867a4b8b0a679bf6e397591e8db1d4a5b011f1577963", + "bytes": 1068 + }, + { + "path": "docs/mechanical-comparison/licenses/ulfandpete-LICENSE.txt", + "sha256": "0d96a4ff68ad6d4b6f1f30f713b18d5184912ba8dd389f86aa7710db079abcb0", + "bytes": 34523 + }, + { + "path": "docs/mechanical-comparison/licenses/zkbkb-LICENSE.txt", + "sha256": "3711f963c05d0be80d53e5923308a6dee31b203da23435c9cfb7c7b6e4dd5e19", + "bytes": 19346 + }, + { + "path": "docs/mechanical-comparison/mcmaster-and-bom.md", + "sha256": "d17642995bfa0f31bd3859ab7a049ebf1e5ac0cd902ed2e22a7b685ed4f1b74e", + "bytes": 3848 + }, + { + "path": "docs/mechanical-comparison/official-features.json", + "sha256": "bc8af5fa4a462bab66843198fa3d67bc0a8ade6b5a4b7330be66160e59b31648", + "bytes": 27378 + }, + { + "path": "docs/mechanical-comparison/protocol-features.json", + "sha256": "13c97250cb7fd24af1db3ed2c74e4523397df2884565977600bed5af35d2fec8", + "bytes": 43166 + }, + { + "path": "docs/mechanical-comparison/solidworks-catalog.json", + "sha256": "6da78739c797b7c2351a2ef976430e6b19e4b409a5427090df1e81f1e313d6e8", + "bytes": 12441 + }, + { + "path": "docs/mechanical-comparison/solidworks-parity.md", + "sha256": "aa458ee93223b37d370b35f881ca8344c51f66b8e29329fd772eb42c7d86d43e", + "bytes": 4421 + }, + { + "path": "docs/mechanical-verification/CP1-VERIFICATION.md", + "sha256": "000e3ffb59dd8011e536328d73cd8925848f051484bc748bba9923b79ea982c7", + "bytes": 5813 + }, + { + "path": "docs/mechanical-verification/CP2-VERIFICATION.md", + "sha256": "405601852b5cdab3a990409205d5235cc605ce4c4edc4ab1e4dafd196cc928ae", + "bytes": 6827 + }, + { + "path": "docs/mechanical-verification/CP3-LIVE-FINDINGS.md", + "sha256": "8f9a4cc47a0a2d041c0b0cb2cceb965a1052c0f6b5e24dba995faf32de118b0e", + "bytes": 11575 + }, + { + "path": "docs/mechanical-verification/CP3-SOURCE-REVIEW.md", + "sha256": "1437dccae0a0a7a4a586db6b6ef97a01f4712258c5a62c6393471477fe8b56d9", + "bytes": 16534 + }, + { + "path": "docs/mechanical-verification/CP3-VERIFICATION.md", + "sha256": "6300ed57aef8da48a115f8475969b6975d9b948004aa53988b667504ae9a42dd", + "bytes": 10903 + }, + { + "path": "docs/mechanical-verification/CP4-ADVERSARY.md", + "sha256": "8c399a41ebf4498ab39668060ce9bb356423d7954b119db7b0f2480e43b7e023", + "bytes": 11171 + }, + { + "path": "docs/mechanical-verification/CP5-ACCEPTANCE.md", + "sha256": "82f8d50c8e0747693383746ca366bb1da93de14e19fdd135637713a3a946f798", + "bytes": 5391 + }, + { + "path": "docs/mechanical-verification/CP5-RUNNER-REVIEW.md", + "sha256": "5edbde414eb14789aec0f893c4fba172538ba33cdf376677dedb0c7bd5bf8531", + "bytes": 5628 + }, + { + "path": "docs/mechanical-verification/CP5-SOURCE-REVIEW.md", + "sha256": "2ebca82ca85662cc5bf7c9b6e4b35c4b87365a5793f3abc8cf5d7254cbfce0a5", + "bytes": 9281 + }, + { + "path": "docs/mechanical-verification/CP6-ACCEPTANCE.md", + "sha256": "b7e926ef0395351216f59edb62bdffd97af4f90153bcbf42070de7f34fb83be2", + "bytes": 6863 + }, + { + "path": "docs/mechanical-verification/CP7-ACCEPTANCE.md", + "sha256": "d5bb992ae2c2311edb84a80a68b837c55e192100070a37f961b68878b4d51ba9", + "bytes": 3315 + }, + { + "path": "docs/mechanical-verification/cp3-artifact-hashes.json", + "sha256": "3cbfd8b85dba6f41ae6aaabc9f97e21547c3e9adb318a09f88f8021804c873f1", + "bytes": 4639 + }, + { + "path": "docs/mechanical-verification/cp3-final-accounting.json", + "sha256": "9871f99f47c76296d618cb5faa1d88d6a56aadbf3a692cab85bc9ef82ffdb435", + "bytes": 3693 + }, + { + "path": "docs/mechanical-verification/cp3-final-adjudicated-summary.json", + "sha256": "b2c04636d8fe16f55464adef7917d117357320230ad3b615031b187b315d7f4f", + "bytes": 662675 + }, + { + "path": "docs/mechanical-verification/cp4-assembly.png", + "sha256": "2239949ef5b91fc362fd746ee2e8a81e235d7dc33a48e587501c561a2aee8e01", + "bytes": 13874 + }, + { + "path": "docs/mechanical-verification/cp4-bracket.png", + "sha256": "9f6189f217ba40dc6197af7cd16ff4df3df9cdee3bb096769dbc5a2c20d057b8", + "bytes": 28410 + }, + { + "path": "docs/mechanical-verification/cp4-supplier.png", + "sha256": "cd745a1060daef66a92598d16051cfc54c069033eebcce4621eb4592b2445b64", + "bytes": 134026 + }, + { + "path": "docs/mechanical-verification/cp4-verification.json", + "sha256": "de06978097a57fa32f660cc64ca92402072eb654b7a6ce110bacc6eee65e2d14", + "bytes": 311884 + }, + { + "path": "docs/mechanical-verification/cp5-assembly.png", + "sha256": "2239949ef5b91fc362fd746ee2e8a81e235d7dc33a48e587501c561a2aee8e01", + "bytes": 13874 + }, + { + "path": "docs/mechanical-verification/cp5-axes.png", + "sha256": "5d97b9509ebc4362b00de79846458ea413f3b110c84db79630da453e1d59486c", + "bytes": 18027 + }, + { + "path": "docs/mechanical-verification/cp5-axis_context.png", + "sha256": "579ac460b0d601adfedc28670d472aa574437092c350188bc87850142f931a2e", + "bytes": 22080 + }, + { + "path": "docs/mechanical-verification/cp5-bracket.png", + "sha256": "9f6189f217ba40dc6197af7cd16ff4df3df9cdee3bb096769dbc5a2c20d057b8", + "bytes": 28410 + }, + { + "path": "docs/mechanical-verification/cp5-curve_break.png", + "sha256": "5e440c07ad82a7ffe5c4baf1cc49ae28f8ba85a3cb8bd324c5cfb1ce10882884", + "bytes": 41921 + }, + { + "path": "docs/mechanical-verification/cp5-curve_extend.png", + "sha256": "ec33c378f84ea53533d92c4065139e6cf85c5ded6b8a7cb05d1da869a6551612", + "bytes": 30459 + }, + { + "path": "docs/mechanical-verification/cp5-curve_split.png", + "sha256": "9dd2e2f8b14f3853a6fb2f0ffeb5b8f70e32b0b5b76ad51bff368f8ea977d1d8", + "bytes": 30961 + }, + { + "path": "docs/mechanical-verification/cp5-curve_trim.png", + "sha256": "ec33c378f84ea53533d92c4065139e6cf85c5ded6b8a7cb05d1da869a6551612", + "bytes": 30459 + }, + { + "path": "docs/mechanical-verification/cp5-diagnostics.png", + "sha256": "48c3aa84d405edf74dbf8cae691d9f787a2ecf64f1b7e30f3baa7fb2c14979b1", + "bytes": 49349 + }, + { + "path": "docs/mechanical-verification/cp5-measurements.png", + "sha256": "e6e0a50f48ad2697b4134299e278b1f88daf7f3c946d8827c94e7d8cbe88526d", + "bytes": 34865 + }, + { + "path": "docs/mechanical-verification/cp5-offset_chain.png", + "sha256": "c52737f87161824581270161637eb21bec30c3e780bdfe3c0a1e010be7d23da4", + "bytes": 60445 + }, + { + "path": "docs/mechanical-verification/cp5-offset_negative.png", + "sha256": "7acb8927465c61025d438a7c9983e2155f206807a5e7d64b38d59295eeaca983", + "bytes": 54900 + }, + { + "path": "docs/mechanical-verification/cp5-offset_positive.png", + "sha256": "f1760c70d7ac9ada7fd8f2c22d44a7356becbe1b4c3690801cc47c6e495937ab", + "bytes": 55561 + }, + { + "path": "docs/mechanical-verification/cp5-persistence_graph.png", + "sha256": "0899e832fbba1234b76bf36171ef55df7d3b57a6024bc5acc593adbb4ea3e7cf", + "bytes": 48569 + }, + { + "path": "docs/mechanical-verification/cp5-query_contexts.png", + "sha256": "393f1fa36c0179ffe0b0edd46d57994026b36f8839e3128d8b65a5594b4f22c0", + "bytes": 13737 + }, + { + "path": "docs/mechanical-verification/cp5-query_root.png", + "sha256": "10390eaeee8944fa6775779ad5bdc4ecb358944207ab127b32c043a4f86b8eac", + "bytes": 11664 + }, + { + "path": "docs/mechanical-verification/cp5-verification.json", + "sha256": "643cde2e49120554faae627c49233c6c6faf2b89aa8a6c736e7f7309e5528f6d", + "bytes": 21174 + }, + { + "path": "docs/preprod/fusion-bridge-1.10.6-2026-09-08.md", + "sha256": "2f0fe8835943209bc533ca2e805fe801b94f90c23deaa143bc637259a93e1f4d", + "bytes": 2747 + }, + { + "path": "docs/schematics.md", + "sha256": "e50a8986c33c9d0418fcd9d7ac20e2a569f925e6fc4e3d849d6f0863b838902a", + "bytes": 9522 + }, + { + "path": "docs/sign-in-and-updates.md", + "sha256": "7f0150b3c1ab0ca8b44e228757b966b24ef2c9ceccc03fba347baf4ec834871e", + "bytes": 9332 + }, + { + "path": "eagle_lbr.py", + "sha256": "b1e4900ec49ed6bd5f1367869a2d9f9ff39a445fc7c0ef9c0443cb42a7008cdf", + "bytes": 10240 + }, + { + "path": "electronics-libraries.md", + "sha256": "b4d889b019e39ff024fa0be0c405bf1c09afc7e7310398503a7c6f3bdd19cd60", + "bytes": 3159 + }, + { + "path": "examples/ADS8588SIPM.fusion.lbr", + "sha256": "4c81b506a96ceb49101d57c88a925773452b45bcebbc7b21bf4407f63859515f", + "bytes": 18863 + }, + { + "path": "examples/ADS8588SIPM.step", + "sha256": "82a880ae4f382b223c2310e5137ed422b610d572c02bd5c46779d9dc38e706cc", + "bytes": 245077 + }, + { + "path": "examples/jst_connector_generator.py", + "sha256": "a4f3efb3672197ae66cc532a4d2bd98391c5e63b5cf78ee668e5f6a2957eee5e", + "bytes": 6177 + }, + { + "path": "examples/jst_ph_connector.py", + "sha256": "b35b7ec33c064a3fdf0e967bc4c3fa61b78c4ca3d8d638bf0928733f983286ba", + "bytes": 5032 + }, + { + "path": "fusion-hero-new.png", + "sha256": "7827d37ff9f1eceadaaca375b86ef823c058b24ded368888ebf514a89666788a", + "bytes": 515210 + }, + { + "path": "fusion-hero.png", + "sha256": "ea21bac43c7480e4d0e642051685118647f567053816c7e89a3c5af9026dfbe5", + "bytes": 504925 + }, + { + "path": "fusion-mcp-server.md", + "sha256": "f0f198d1aa969161397f98ca402ad696394d7ea8a21dca356e8c2cd91fda236e", + "bytes": 16226 + }, + { + "path": "fusion-preferences.md", + "sha256": "6bc0f5ddf4de5ed5ff200b6ee15df6ab9f740bcca53ed1196e6ccd70b0ff0490", + "bytes": 5070 + }, + { + "path": "fusion_detect.py", + "sha256": "75f5f65fcc4f72373840a684b786f06a79700d0776d6a2000b9ad337edf6bd8b", + "bytes": 68362 + }, + { + "path": "fusion_helper.py", + "sha256": "d53ba9a940d52c42bbcb49c93b96f70bca7ea52080da0e94d1a4a1e5765b979a", + "bytes": 13090 + }, + { + "path": "fusion_ui.py", + "sha256": "0767b1321cf50d53e29fadbbbd21d418a8b886c208cd82f39c6e136abace5dd5", + "bytes": 27521 + }, + { + "path": "fz-2d.png", + "sha256": "6f189228efc236b78a63dcc848b0e6bb583a2cf2b38a1b7378eab2932ff7e2ba", + "bytes": 658681 + }, + { + "path": "fz-3d.png", + "sha256": "0bf6d1bec8a2450a86086546c262a3db13f053ace1a707c46f3fa290766a8d2c", + "bytes": 70199 + }, + { + "path": "fz-bom.png", + "sha256": "70424c123e54eb28f286af8f45ae8572d02a19b778ed22d6939f21fb96b9a39d", + "bytes": 335356 + }, + { + "path": "fz-cloud-files.png", + "sha256": "2080d3bae8c778a1c6750a0645b5fe4e4d76b06b769f033dc767d9561f58ebfb", + "bytes": 209728 + }, + { + "path": "fz-schematic.png", + "sha256": "55066c939c71633f13c924d45afa1dec6ac1d589b8032c09456f1d44de5cffce", + "bytes": 293749 + }, + { + "path": "fz-sensor.png", + "sha256": "c202ee721f711b2f9c09bf6d38d5d2f5004f340f7a27116c1cfe46aa1a825008", + "bytes": 496612 + }, + { + "path": "fz-sessions.png", + "sha256": "b474a67d746993e44f40067de54d4270a3477c3c4dea668bd11496cff760bbcc", + "bytes": 35796 + }, + { + "path": "handlers/__init__.py", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "handlers/close_fusion.py", + "sha256": "fc962c743bebb33e5b43f8d660b2c84f3c197e6770571052d4080f8e50834d53", + "bytes": 19524 + }, + { + "path": "handlers/dialog_classify.py", + "sha256": "c51895f289589f065b6017d2857a83325051c41e5dd9c46c6e5396a3f3d0b7d5", + "bytes": 21337 + }, + { + "path": "handlers/dismiss_recovery.py", + "sha256": "ab5528e38fa6af44620e2b38ff80c306981ad843fca0d730adbef14f27083f03", + "bytes": 14615 + }, + { + "path": "handlers/fusion_ui.py", + "sha256": "33e209bd784f17986bc8b6b5016ad0c0c519e77093ea5498c8fe49d24e4470d9", + "bytes": 39994 + }, + { + "path": "handlers/open_design.py", + "sha256": "cee0cfdea20c259c7122e0b6c754048b57a54fa13efbd424706568d52bbacbc7", + "bytes": 4211 + }, + { + "path": "handlers/taskbar_overlay.py", + "sha256": "5e02457667c879cad05ca34e934c2034354e489a4d9c1c4701d10ec396456d78", + "bytes": 9642 + }, + { + "path": "hero-billboard-v2.png", + "sha256": "2c531ac8f5168e6aa1f9dd3ccb3aafc4a961dbb613cfb901562e180b313d5049", + "bytes": 1637762 + }, + { + "path": "hero-billboard-v3.png", + "sha256": "f9f7aa455a42d2786c258b790cdd993a9ceac4967414ba218311d305caf17c93", + "bytes": 881321 + }, + { + "path": "hero-billboard-v4.png", + "sha256": "0f45af5b834c7f4d6246f09f3e5cd3e8a84892bf3d33277566d22ed24bc098b5", + "bytes": 1087994 + }, + { + "path": "hero-billboard-v5.png", + "sha256": "0f45af5b834c7f4d6246f09f3e5cd3e8a84892bf3d33277566d22ed24bc098b5", + "bytes": 1087994 + }, + { + "path": "hero-billboard-v6.png", + "sha256": "8c1faa648ea255da628b39532951980a3a06c2f9022a8514ea0231adc33fd700", + "bytes": 1081164 + }, + { + "path": "hero-billboard.png", + "sha256": "bac9ce7dea85059c051eab5ad7a17d3844d038562044877f7dfbd9081da4dce6", + "bytes": 1947847 + }, + { + "path": "hero.png", + "sha256": "ae0197bdd31c2cd5667dea7a6c2b2e42488ec39b3430a02bc2ae284a18dc8cde", + "bytes": 324410 + }, + { + "path": "install.sh", + "sha256": "6dd911be23e30e3c5b9028a8000693107483703043ab45bbd33648ec467b7e27", + "bytes": 3342 + }, + { + "path": "install_addin.py", + "sha256": "3c549bed77bca1b844ff3823aaba5da079f9faf6e41cdbff3cd71a058933bea0", + "bytes": 9051 + }, + { + "path": "kicad_lbr.py", + "sha256": "1e0407a64c8bcac8b2a191fbab7b4b0f11455e710035f4e05bb5bc321fde58cc", + "bytes": 21022 + }, + { + "path": "lib-01-open.png", + "sha256": "e1e78227e2192059fb99c2e9749cb432e72c2d3a065fe0b95d1ea2e4bb975ab4", + "bytes": 239881 + }, + { + "path": "lib-02-generator.png", + "sha256": "f3e0cbceeafd387e26096c9c9fabc39c36669dfa025eed4af5fdb1710ebf92f0", + "bytes": 194203 + }, + { + "path": "lib-03-chip-on-footprint.png", + "sha256": "89d96b7a736f5f02ed894a602b21428778751cedce0075e91aa55f321331c9b7", + "bytes": 199654 + }, + { + "path": "lib-04-named-on-footprint.png", + "sha256": "e1c46329b90616b7ef41924f2f9ad6256fb0aaaefd3c654c7f258ce39232c3fd", + "bytes": 336592 + }, + { + "path": "lib-05-clean-ads-on-footprint.png", + "sha256": "adcbac87626e180bf54e03972b12c9118fe5d49e5014850b57b5795f590a24b6", + "bytes": 333743 + }, + { + "path": "lib-06-adomlbr-viewer.png", + "sha256": "d65c8d7935e2a801883b1d10ff780164523da1f0276a934cf9058f3c9c85070e", + "bytes": 602478 + }, + { + "path": "lib-07-lbr-reopened.png", + "sha256": "a5440bd2b861c1b3953f45ab33e311dabdf8936c8f6a69adc5f675dbe0dc8b59", + "bytes": 266366 + }, + { + "path": "lib-08-fixed-4sided-footprint.png", + "sha256": "91affb40cac53b95f085365fb47ce4a8cee1198a169cbd68fce36f419790e945", + "bytes": 272898 + }, + { + "path": "lib-09-3d-bound-moneyshot.png", + "sha256": "dfdc0924d956b8d81dbb0ce7e1f219ce174a75d88c4921a2957db0cab30365f9", + "bytes": 301421 + }, + { + "path": "lib-10-ads-chip-on-footprint.png", + "sha256": "ba81fac9b6f7b52bd33512b33c5766d38928597b1230917d916211615a8df052", + "bytes": 447570 + }, + { + "path": "lib2-12part-library.png", + "sha256": "af749971837de7ad7cf18343e64fa37eca662d491e7c33d8171604bc2ecfa28d", + "bytes": 274394 + }, + { + "path": "lib2-atsamd-chip.png", + "sha256": "0660d1fd895326ae1da6446820b7f92716c261192d23b9d18187466206b7eff3", + "bytes": 313921 + }, + { + "path": "lib2-component.png", + "sha256": "dd587f5a9ea77b10f81a59368f797d80d366fa18518fc413095e21820dc3b35c", + "bytes": 462542 + }, + { + "path": "lib2-esp32-chip.png", + "sha256": "198ea6fe17fe1aecf2b5112fe1ca98df5797097b5872ff5750fe940b10bc97c9", + "bytes": 270223 + }, + { + "path": "lib2-esp32-footprint.png", + "sha256": "373faee1eaa94ac6072efc65ef16ef6980e7517217bbb4b20f3913d770d75858", + "bytes": 216198 + }, + { + "path": "lib2-footprint-editor.png", + "sha256": "1806c11b6ef733c97197de37a02bb97bac397bef38fe3c52073ebed4993e3b1f", + "bytes": 392172 + }, + { + "path": "lib2-symbol.png", + "sha256": "7080c0e3d83df063510c3bb719d519b7b4444644cdec7f5c99a3527395235ef4", + "bytes": 428704 + }, + { + "path": "lib3-138-overview.png", + "sha256": "d57b8001e818f46d864bd310e222b06d7370f9c4e8c904ee542ab539604c1205", + "bytes": 324949 + }, + { + "path": "lib3-cap-3d.png", + "sha256": "c35057f717be98d9b7ecb681c3ce8c9f7a0d0337d880abb45fef9800210263a3", + "bytes": 210383 + }, + { + "path": "lib3-resistor-3d.png", + "sha256": "2be448bb8d22bb2d651ac083f3d1e6118c577b5ba1122dca99a55c362ce7800c", + "bytes": 190100 + }, + { + "path": "library-3d-demo.mp4", + "sha256": "5292fe2f72da773a261871f87d27ad67ce1088ec71074c3aba58d8acfdaf68ea", + "bytes": 3772569 + }, + { + "path": "library-3d-montage.mp4", + "sha256": "b6297730c6e058dc558e55287331c79af78d25e8b9eb6114b3e3da5ec2ef6f3e", + "bytes": 1055064 + }, + { + "path": "library-demo-live.mp4", + "sha256": "5292fe2f72da773a261871f87d27ad67ce1088ec71074c3aba58d8acfdaf68ea", + "bytes": 3772569 + }, + { + "path": "library-demo.mp4", + "sha256": "0ede35bcad262dadc8a33956805ea11f38362e6f9c01c9368e40c7c62302fe55", + "bytes": 2717465 + }, + { + "path": "library2-3d-montage.mp4", + "sha256": "4ba7f3eadcdd82b85a59f1268a6217116b5b07d1f8a2d63549e6ef9c4ed35e7b", + "bytes": 1711888 + }, + { + "path": "library_bundle.py", + "sha256": "d071b600cefb20243259a8a1e27eb3edfbcefd1c502503ac7698ce0b919646c6", + "bytes": 12064 + }, + { + "path": "mechanical-bom.md", + "sha256": "a8a488e57d380a299fbccb66fd568224802cace6793b52151112d91c6fd224f9", + "bytes": 4587 + }, + { + "path": "outcomes.png", + "sha256": "75baad17e52e8b42f56f512a776c80cb9c8aed3c4bf64342ae7fca879aacae13", + "bytes": 34798 + }, + { + "path": "package.json", + "sha256": "761f95ecb6151d85d9dc6ad6c353378c936fce95a956414db122b955b7a0095f", + "bytes": 4783 + }, + { + "path": "page.json", + "sha256": "4a394b32e88f7e82abba6399885c605b373d33db92a3638931770a1d1ae2602a", + "bytes": 7082 + }, + { + "path": "prefs-1-open.png", + "sha256": "22830f99884fb16f486d1b4d87add6c53044b7b075d33ef2b043d13a2f37fde1", + "bytes": 252832 + }, + { + "path": "prefs-2-general-expanded.png", + "sha256": "fb850d9dc1e6054a015e64b969ff0f3d6ddb4371b2377bd4b7181fa32fb3638a", + "bytes": 280622 + }, + { + "path": "prefs-3-api-mcp.png", + "sha256": "a4809a142f3caec505851de00317cd9e1d6c70423b858c10195d00c919148bd9", + "bytes": 258511 + }, + { + "path": "pub-bridge-list.png", + "sha256": "9dc81163e3cb2f5a29d50664252c2bfcbd66e9a0f9ac18bd7af492ffd7f99117", + "bytes": 349829 + }, + { + "path": "pub-releases.png", + "sha256": "d991a31b1beed52b3f16c49721552723b0e3e819a8c3a513a6992f894555764a", + "bytes": 359786 + }, + { + "path": "requirements-test.txt", + "sha256": "c144e88f7a259b078519c943f54987885467114d211de382f1e2ab4124753733", + "bytes": 139 + }, + { + "path": "resources/adom-overlay-32.png", + "sha256": "23014fd52b3a531e4567837cfed0668843353e02ff7682e06a1c4a2f57d394c5", + "bytes": 678 + }, + { + "path": "resources/adom-overlay.ico", + "sha256": "a5c4559b3ddc28f21d571e2ff47a6b673b05fb2adf3d0b5b74a55df090e6830d", + "bytes": 2078 + }, + { + "path": "resources/demo-audio/aps-f1.mp3", + "sha256": "9f5b210006c232e1fe96f6cbb459166364c4740b2c3f9b738a7eeabd57c244f4", + "bytes": 41040 + }, + { + "path": "resources/demo-audio/aps.json", + "sha256": "d0107fd8a71a8dbb0347f3669b539b53f98b82a3a5f401a86833173e6fb5792e", + "bytes": 327 + }, + { + "path": "resources/demo-audio/aps.mp3", + "sha256": "6fc82677de6bb4c6b0e9ff525a3799e65f324fe78e01bcf98e9c95841c88680a", + "bytes": 60192 + }, + { + "path": "resources/demo-audio/board2d-b.mp3", + "sha256": "b9d68014943e52a2f0fd5ffa5e4d10d0743840d0456d53f2904cb1e6baef975b", + "bytes": 43920 + }, + { + "path": "resources/demo-audio/board2d-f1.mp3", + "sha256": "80c5bd1f45b32e402f6369a6c6722de287add0b9ca7d5e6333fd8f780d403f35", + "bytes": 47664 + }, + { + "path": "resources/demo-audio/board2d-f2.mp3", + "sha256": "4e2edb76c69593b3cb9334f65525c79c421fe8cf38e7f1bed76122666ca20b49", + "bytes": 31392 + }, + { + "path": "resources/demo-audio/board2d-solo.mp3", + "sha256": "f6de4308c191e2feeae1ec0d530f9503a78be33e9d0d124b563c459e19fcb696", + "bytes": 44928 + }, + { + "path": "resources/demo-audio/board2d.json", + "sha256": "9fef8a3a8943cc3101ed3e277ba3dcc8135d0a8eaee21400d30c4e07dbe05bef", + "bytes": 309 + }, + { + "path": "resources/demo-audio/board2d.mp3", + "sha256": "4bc34cd72bac60111b8ad0d4dada3f1a6b7f2f32b376d44264d969e4c202c114", + "bytes": 49680 + }, + { + "path": "resources/demo-audio/board3d-a.mp3", + "sha256": "ebd619ad4a4b8efd2d499e47199edffba6408c3c9779eb874bc144175acf2ab9", + "bytes": 29808 + }, + { + "path": "resources/demo-audio/board3d-b.mp3", + "sha256": "2e3c844eaceabe0322ac87622747402543d28ff7c843e3b5e48d959b1d00736b", + "bytes": 49680 + }, + { + "path": "resources/demo-audio/board3d-f1.mp3", + "sha256": "382c5cbc5051aec453c76031825ea8508708b0012cde2c498c9a4cd8ba2b7022", + "bytes": 47808 + }, + { + "path": "resources/demo-audio/board3d-f2.mp3", + "sha256": "579653b5739449f1bcb7bdea6a0e4407a5adebeb3fac3f8d16ede89ad3c662b5", + "bytes": 43200 + }, + { + "path": "resources/demo-audio/board3d-f3.mp3", + "sha256": "497cbbc777b3cec2142488522973c0ccf46270adf8dba0ec0af61c85ea1bfc99", + "bytes": 46224 + }, + { + "path": "resources/demo-audio/board3d-solo.mp3", + "sha256": "2b3ed7c310a1bb60e8fd33d0c3c75e43b033c88cf2f1d323178983d0f5672c4d", + "bytes": 59184 + }, + { + "path": "resources/demo-audio/board3d.json", + "sha256": "5f9b419c8132d2b41f51c46d6cf4b8218b8b23c1f6a58976d822c35ff543a85f", + "bytes": 333 + }, + { + "path": "resources/demo-audio/board3d.mp3", + "sha256": "0c64eaa912b6c812b8b5f0f35866114736ae7d543e247212507590d03c964215", + "bytes": 56880 + }, + { + "path": "resources/demo-audio/chip-b.mp3", + "sha256": "d6ec97cdaa9878690d11a158a94808ea23cc20fa27652a4ae65587219f183f7e", + "bytes": 62064 + }, + { + "path": "resources/demo-audio/chip-f1.mp3", + "sha256": "c8ed83272ca1669149f05820919f113eabb34b2d4f38d05b82b7679e2d86475f", + "bytes": 41040 + }, + { + "path": "resources/demo-audio/chip-f2.mp3", + "sha256": "f727ee28db5c719c992ada87ba07d75253b19b72282d2eddd115b9b3825bd948", + "bytes": 50544 + }, + { + "path": "resources/demo-audio/chip-f3.mp3", + "sha256": "718f448426c4642a116988a74b62507648bd6f6922c7f4f17ce405baa5b8300a", + "bytes": 47088 + }, + { + "path": "resources/demo-audio/chip-f4.mp3", + "sha256": "51e61bdf3751c3ae8f81466ae60a9ce740a59b09c70145804500e2d5f0fd182f", + "bytes": 44928 + }, + { + "path": "resources/demo-audio/chip-f5.mp3", + "sha256": "db1baeb0b9c4626ca3b7b649e85e81dc9c7c0e6e3e135e8f9a800961f7ad369e", + "bytes": 42624 + }, + { + "path": "resources/demo-audio/chip-f6.mp3", + "sha256": "83c6f7b9c17fd7941ff6f769c81c13336698c0a650e5de030ee6962b03e92c4e", + "bytes": 50112 + }, + { + "path": "resources/demo-audio/chip-f7.mp3", + "sha256": "b4b1434f0ba938ee45c6229902d10dcbe2ed6448a6c5f9882dcf6c6c2fd4be54", + "bytes": 47664 + }, + { + "path": "resources/demo-audio/chip-f8.mp3", + "sha256": "6b89f8045b20fea8568ae281ba6a0f993f74904cdf5680aff3ce0e50922ac1c9", + "bytes": 46368 + }, + { + "path": "resources/demo-audio/chip-f9.mp3", + "sha256": "0c53d12031806111a5fd6c4337065dc065d4934bddb5eede3f506dacf78b5f18", + "bytes": 50256 + }, + { + "path": "resources/demo-audio/chip.json", + "sha256": "108625fcbd1e8fb0303995b1cd06cbd7cf980573a5403e544c030f77b00a466a", + "bytes": 488 + }, + { + "path": "resources/demo-audio/chip.mp3", + "sha256": "22042cd28eecfc9a8f4918b09144324b8fe12de3176088f445c22a2c3a85958a", + "bytes": 118080 + }, + { + "path": "resources/demo-audio/dashboard-short.json", + "sha256": "729ebfc1bb6ff014e2d256801a794268fdaa9c203f008e1636bc30cfbf6d6064", + "bytes": 202 + }, + { + "path": "resources/demo-audio/dashboard-short.mp3", + "sha256": "c72356a21bf47037a34cf8e1588b3e14990bfbc31219dfe2e17028306dc990e6", + "bytes": 8928 + }, + { + "path": "resources/demo-audio/dashboard.mp3", + "sha256": "7641acf8c9ea8564f76052d2c35ea9272b4a83eb159da9da12d7134ea0125fb8", + "bytes": 63360 + }, + { + "path": "resources/demo-audio/dock-short.json", + "sha256": "51a092c9e40b8b0b678547d5c7eaa1a84c7298d7108301a2b198659f70b2007d", + "bytes": 225 + }, + { + "path": "resources/demo-audio/dock-short.mp3", + "sha256": "41c3b3f10c1978a5a93be4984cbdb8951f697a88551c15fcc146792df5ecf9cf", + "bytes": 17424 + }, + { + "path": "resources/demo-audio/dock.mp3", + "sha256": "50c414e7e6d13648997c15321ed992f2609194567184f853a0034fc1eb69b26d", + "bytes": 59904 + }, + { + "path": "resources/demo-audio/done.json", + "sha256": "86071bbb6efe9831e6069689921e3ccdabeae9bbf7661799e32137a0ea6cdf84", + "bytes": 403 + }, + { + "path": "resources/demo-audio/done.mp3", + "sha256": "e697b911db111b73cff4f6d6ac5629b810bdd5e6a8fda40fb511c23990b49838", + "bytes": 95616 + }, + { + "path": "resources/demo-audio/footprint-b.mp3", + "sha256": "c3cada80b069e6a82b07b41d976bd9264277400db274d5a199cdce665f2e8864", + "bytes": 70704 + }, + { + "path": "resources/demo-audio/footprint-f1.mp3", + "sha256": "d58b5554c1a302445879d036065ff3c2122f786875ac5ec9a8bcdd1102a89c22", + "bytes": 40320 + }, + { + "path": "resources/demo-audio/footprint-f2.mp3", + "sha256": "a24be978dca728a023fd5a0d2ee825152b91044708f0c0a7c15113bd903df062", + "bytes": 34992 + }, + { + "path": "resources/demo-audio/footprint.json", + "sha256": "85407860a4e272573ebc1d06775d224061b4fdda80850542168e812544362519", + "bytes": 305 + }, + { + "path": "resources/demo-audio/footprint.mp3", + "sha256": "9681c7dcd1af5dd91ef282d17aba04e81aa9b09768a562b41d1f6f41b3c201b1", + "bytes": 53712 + }, + { + "path": "resources/demo-audio/generic-f1.mp3", + "sha256": "feaf9a4bc0121f1af6be17fe35e35d62266340f12f528d732af6940fd442897f", + "bytes": 42336 + }, + { + "path": "resources/demo-audio/generic-f2.mp3", + "sha256": "2258f702708db4bbe05149a118d9357d1718d8398aa96c5000fd957328e41893", + "bytes": 32976 + }, + { + "path": "resources/demo-audio/generic-f3.mp3", + "sha256": "8414a67af981b8625f06a57b3687e90a6b6326d6809ba8b75844831e71d47d94", + "bytes": 63216 + }, + { + "path": "resources/demo-audio/generic-f4.mp3", + "sha256": "9921d49aaf45b19b1b6f88742bd4a3bae72375344c13f8b1230bfee3d4ebab99", + "bytes": 33840 + }, + { + "path": "resources/demo-audio/hl-board2d.json", + "sha256": "8433a47ba350bf0869236cc40c736a8309aebdca7c15f543a2fa494e4af37a07", + "bytes": 266 + }, + { + "path": "resources/demo-audio/hl-board2d.mp3", + "sha256": "4b4ad03edb6f8e60ee6c7c31480a411ab82ddf2900474c5e45886d737c04df39", + "bytes": 36576 + }, + { + "path": "resources/demo-audio/hl-board3d.json", + "sha256": "7eefcaa25afaedc9d6f40868497ea7a68a831ea685087d474d0e45ea3e6bbdea", + "bytes": 254 + }, + { + "path": "resources/demo-audio/hl-board3d.mp3", + "sha256": "ce4771fc6b41d14c4c95e01937cdbc91d12b6665345b188428dfb7a153905745", + "bytes": 32688 + }, + { + "path": "resources/demo-audio/hl-chip.json", + "sha256": "c5f09113c501991cf315c7cdecc88f33657a5cd523d3cebab87777d76829920d", + "bytes": 280 + }, + { + "path": "resources/demo-audio/hl-chip.mp3", + "sha256": "aa83a2ddfb3dd1149c7deead33cc006799e33922ce23d064c9767d5f61d472ac", + "bytes": 41904 + }, + { + "path": "resources/demo-audio/hl-footprint.json", + "sha256": "21107f4b4178c5cbe518fcfbc74cbb200a11a38ea00f6e8a923613789603542d", + "bytes": 298 + }, + { + "path": "resources/demo-audio/hl-footprint.mp3", + "sha256": "5d17b40bfe2507d555d815c4269f768e6d158f2edf3cf411b1e154ba21b6daba", + "bytes": 48384 + }, + { + "path": "resources/demo-audio/hl-library.json", + "sha256": "4e92a1e8dce00ffcecae6c8a50f6c6fd93010b74006c1c8b8d86842f18128481", + "bytes": 326 + }, + { + "path": "resources/demo-audio/hl-library.mp3", + "sha256": "4df680591597b378303a605008e859ec4056571f0b4061eabc6f411858bcd538", + "bytes": 56304 + }, + { + "path": "resources/demo-audio/hl-opening.json", + "sha256": "13a0b0a5cbd052317c5f11e12e4ac574f07ad990f761a09279a81d401b861f9e", + "bytes": 356 + }, + { + "path": "resources/demo-audio/hl-opening.mp3", + "sha256": "9c204d69d657826b5175185a8cd3d8bbbb1436973a9b3042871887f07524ab05", + "bytes": 69120 + }, + { + "path": "resources/demo-audio/hl-outro.json", + "sha256": "2a6f369e2b230badbeea0b888ba2388426537955edfdb85d17a8a5b56a19d5f5", + "bytes": 293 + }, + { + "path": "resources/demo-audio/hl-outro.mp3", + "sha256": "0c88d562a54c6b4c8cece78699dd8d4364e3105ce65e3d42881542b0c6e6974c", + "bytes": 51120 + }, + { + "path": "resources/demo-audio/hl-schematic.json", + "sha256": "f835e7df761d5258dafae3b631269a0a4d0e0143b375ee8132cb1728ad2ebd67", + "bytes": 270 + }, + { + "path": "resources/demo-audio/hl-schematic.mp3", + "sha256": "2deb8c44d91a29ec8bae1b36b9614e83f96cad4ebe48081f434442498e7a78d3", + "bytes": 45360 + }, + { + "path": "resources/demo-audio/hl-symbol.json", + "sha256": "10773ea983a7a5c818d16e6a23b1b2f4cab32ba253b5018dce99e31be0c1f0cd", + "bytes": 283 + }, + { + "path": "resources/demo-audio/hl-symbol.mp3", + "sha256": "ff2d429081f480b8a331c703303ec0fb52b6d4e165dd6a69640054e0bfeda0d9", + "bytes": 45792 + }, + { + "path": "resources/demo-audio/library-a.mp3", + "sha256": "1dec1f83675cc0d674946f1142698a23be5067f53a2a8820571b0590cd0b508d", + "bytes": 26208 + }, + { + "path": "resources/demo-audio/library-f1.mp3", + "sha256": "07c0c7d2b84e641a8c4f399947185309aa2a86ae2c2feb2fa7e21a1e3217a6c8", + "bytes": 53424 + }, + { + "path": "resources/demo-audio/library-f2.mp3", + "sha256": "9c5d34a19851af11d1a278161643acdd4dadb901741abd0085ef3d453706302d", + "bytes": 47520 + }, + { + "path": "resources/demo-audio/library.json", + "sha256": "22acf33312aa9acb622ba1cdd31d4be5bdd3f2ad246fce23e27557a4fef1fcee", + "bytes": 555 + }, + { + "path": "resources/demo-audio/library.mp3", + "sha256": "0b548388462968525859270734bac986911adc3ff1216135524faf6c938cb282", + "bytes": 150480 + }, + { + "path": "resources/demo-audio/multipart.json", + "sha256": "bb60f56813524ec57bae387cb8f5709ef72fce0b1af39d28fee6828793199c9d", + "bytes": 389 + }, + { + "path": "resources/demo-audio/schematic-a.mp3", + "sha256": "a807059c8c5adae9d65af7d7b62e2c0fa7c712aa886b100f14e816e87f2fa0ee", + "bytes": 72864 + }, + { + "path": "resources/demo-audio/schematic-b.mp3", + "sha256": "8f60568f1e1333afa730c39c48e74f14acb7739eeecfd02f8207c0333a2102fd", + "bytes": 50256 + }, + { + "path": "resources/demo-audio/schematic-f1.mp3", + "sha256": "8a34878eb22be6934eb5ad0c03e53a46b5759895ea455fd18ac5d36ba4aeb638", + "bytes": 54288 + }, + { + "path": "resources/demo-audio/schematic-f2.mp3", + "sha256": "f07c3440ed26c2b03b0c7514e34dc6de3520edb8a00ac7ea5fc40dce60475edd", + "bytes": 38016 + }, + { + "path": "resources/demo-audio/schematic-f3.mp3", + "sha256": "8be6705fcbd31b00e9bb2788ef8f0f7d1bea4c8685216bcc2c01c771ed3b3f81", + "bytes": 32688 + }, + { + "path": "resources/demo-audio/schematic-f4.mp3", + "sha256": "ee8d136d8011734ef35f79cb666fa74afd4bd0d602529b9a198635721b9b2344", + "bytes": 55008 + }, + { + "path": "resources/demo-audio/schematic-f5.mp3", + "sha256": "0d0f3bca28398123a0b35cd65beb65e6a7c6195637b1db94ce8c481ff6313b1d", + "bytes": 45648 + }, + { + "path": "resources/demo-audio/schematic-solo.mp3", + "sha256": "93890cddd4410096cc4fcd252ab80e4bc0480577eaf3da5825ba04ffa2eb1c94", + "bytes": 76176 + }, + { + "path": "resources/demo-audio/schematic.json", + "sha256": "368235fd210961653e9f6747b82984bd729662d46b5e63a244b7bf3309eb2266", + "bytes": 387 + }, + { + "path": "resources/demo-audio/schematic.mp3", + "sha256": "febda5d26604fd12260b6630ed5bc194f0328359e94b9ca93dda5c39071abd65", + "bytes": 86688 + }, + { + "path": "resources/demo-audio/symbol-b.mp3", + "sha256": "2259d266a7dd7f11e90d5f8641e4808780cdac88384639e1322aff991c23cbdf", + "bytes": 82080 + }, + { + "path": "resources/demo-audio/symbol-f1.mp3", + "sha256": "18b0eda7c9abe42a8f47f5779510f9c3a2074432ab34c25b3c6403bee7553f39", + "bytes": 41184 + }, + { + "path": "resources/demo-audio/symbol-f2.mp3", + "sha256": "b22aa4d3337d38cfd686b252ed781e8c17df88795110731601886f8486f51233", + "bytes": 41616 + }, + { + "path": "resources/demo-audio/symbol.json", + "sha256": "ee0e284528ee289c0f1a2448f44754def26582f8bc3ade8c638444a645853077", + "bytes": 406 + }, + { + "path": "resources/demo-audio/symbol.mp3", + "sha256": "23b3702f838862a6fc24cfd336e0f24e79a7b25c87c9e884a6dc7d9e1b9b616e", + "bytes": 81504 + }, + { + "path": "resources/samples/0603WAF3300T5E.lbr", + "sha256": "99913ea90c4bab475507c6d0e06bb8c1e45686398b566c92b10156aaaf5b4809", + "bytes": 5928 + }, + { + "path": "resources/samples/0603WAF3300T5E.step", + "sha256": "1875571c326d0d9e96f36b4efeb8094068ef7619f0a449c781caf0b49c2e5861", + "bytes": 40618 + }, + { + "path": "resources/samples/ADS8588SIPM.fusion.lbr", + "sha256": "da31a822b7f533f5ef7a52ecfd978888a9e4defb16f967edce20de4de72f0188", + "bytes": 18863 + }, + { + "path": "resources/samples/ADS8588SIPM.step", + "sha256": "82a880ae4f382b223c2310e5137ed422b610d572c02bd5c46779d9dc38e706cc", + "bytes": 245077 + }, + { + "path": "rust/Cargo.lock", + "sha256": "55055865b89830fa3c77281abecb2eb87c5e6cb48faa5f56b0d150df5435cddb", + "bytes": 35387 + }, + { + "path": "rust/Cargo.toml", + "sha256": "453e33046d6e2a4a575356efdb7d55eced58eb25bd2baae5d9c6daba6be432d7", + "bytes": 556 + }, + { + "path": "rust/PORTING.md", + "sha256": "cdbd1c7795936a73c4fa294964cc89937b32854b7d1474668c55c781e0407d71", + "bytes": 49485 + }, + { + "path": "rust/bridge/Cargo.toml", + "sha256": "a4a29bcb211c9713f78f8c6846b8cd84d3868373d4b5cfcb8ffc82c264153177", + "bytes": 853 + }, + { + "path": "rust/bridge/src/addin.rs", + "sha256": "1c047f60ff494524886c3042accc6c8466363dde9ccfc7f0cea7f639eba5a38a", + "bytes": 25090 + }, + { + "path": "rust/bridge/src/addin_install.rs", + "sha256": "aa75349181977f7985210c56688621b62744a23f3083d69ec9e4e544fb706092", + "bytes": 8454 + }, + { + "path": "rust/bridge/src/aps_signin.rs", + "sha256": "21d01ee554dd95e61d550860b1d3d090d15e1ceaf99c5a965d16a712ebc67686", + "bytes": 29049 + }, + { + "path": "rust/bridge/src/attach_orient_block.py", + "sha256": "e6fd837dad1b266f999202224665c6d9ea602b8afea13bd759c9cdd735446cbc", + "bytes": 199 + }, + { + "path": "rust/bridge/src/attach_template.py", + "sha256": "c402f7ec4a928280e38feea2c5a864d8e93496840473832db73908de76f35c38", + "bytes": 1688 + }, + { + "path": "rust/bridge/src/chainexec.rs", + "sha256": "4d02d83422ab70485ef413c87a189acf980254954430781dbafafab074fa01a9", + "bytes": 17780 + }, + { + "path": "rust/bridge/src/chains.rs", + "sha256": "dac4d311cae41e7a086fa08931afdbe2c29dd9f6ff7ecff74da8f92278aedc4f", + "bytes": 53996 + }, + { + "path": "rust/bridge/src/demo.rs", + "sha256": "e2069c22d85e48869b934b17e6b07f91d0c137848cb25a0c6c29d0eea2a6df31", + "bytes": 58911 + }, + { + "path": "rust/bridge/src/electronics.rs", + "sha256": "3a83fbe0f615db400a74ef5a3eec949d615dbe4e4f7d065af42b951630967984", + "bytes": 16239 + }, + { + "path": "rust/bridge/src/epg.rs", + "sha256": "0ccedd7192514b02ceffc082508362d4807e3a27fcf6dd4ab0e54e11959891f4", + "bytes": 8427 + }, + { + "path": "rust/bridge/src/epg_template.py", + "sha256": "b9bfeeb270e8505d04625d41f69d7a4a48646478c1c64e1c9e171c2ed7db40a1", + "bytes": 10595 + }, + { + "path": "rust/bridge/src/epg_types.json", + "sha256": "be5fd128d7becf98002e3ce257f5a2f5c630480a385fe7d5319800c62e19636a", + "bytes": 875 + }, + { + "path": "rust/bridge/src/etiquette.rs", + "sha256": "2ebc3ae027f1a976c6d1265832507bafb32d14732295d487602093dd9e2c3822", + "bytes": 27735 + }, + { + "path": "rust/bridge/src/fusion_prefs.rs", + "sha256": "2aee1d6d12545aaead793719589484a1b1b628230bc0849cbbc0eb3d485a0634", + "bytes": 9912 + }, + { + "path": "rust/bridge/src/fusionpath.rs", + "sha256": "e9d7b98507c70d9d1fccb35f312143e0f6a05e5462b6926b08a2cb48d17e6a45", + "bytes": 7016 + }, + { + "path": "rust/bridge/src/inspect_bodies_script.py", + "sha256": "5e1cf1a6516b3fc4fc705d1dcf7eb4dacc23bef9124a2e0cd6f13dd977cb7dea", + "bytes": 2005 + }, + { + "path": "rust/bridge/src/janitor.rs", + "sha256": "76b64e601dd22f68634498c39829ecea6003cc0648fd645283ab242c3e61df18", + "bytes": 10388 + }, + { + "path": "rust/bridge/src/launch.rs", + "sha256": "76054e794a63abf15defc89166703f0d3da87531a4ea7c9bf2123e1e279dac14", + "bytes": 30613 + }, + { + "path": "rust/bridge/src/lbr_wrap_parts.json", + "sha256": "f237770833807f095940f8b8acbf544b0ce337f44a9b0593eef336a46e3dfb29", + "bytes": 4349 + }, + { + "path": "rust/bridge/src/lifecycle.rs", + "sha256": "7a909d100de6cd57779ab9bb9dcd786293b6d531ce1aeff2e7555a85908b5057", + "bytes": 39826 + }, + { + "path": "rust/bridge/src/livefeed.rs", + "sha256": "08d1f445b524aa602fac937b28bec3e2254f3e7f9405b09a932d8e39d0a1c3b9", + "bytes": 7383 + }, + { + "path": "rust/bridge/src/main.rs", + "sha256": "4c1a7cfd3ab1928327f96e870817cd945c973c3593b4e5a433501ff11b80118a", + "bytes": 135406 + }, + { + "path": "rust/bridge/src/maintenance.rs", + "sha256": "f5e98a22248c217edf399993cf8bbc2462fba781c7de64d1c5f8c8141a77a5ce", + "bytes": 17501 + }, + { + "path": "rust/bridge/src/make3d_orient_block.py", + "sha256": "8bcd3f2b86602ea74229a6fd686db5b306d49085d0bf4920b7e37c1fa4b186e1", + "bytes": 412 + }, + { + "path": "rust/bridge/src/make3d_placement_block.py", + "sha256": "9aa001d7eae80edb8a8c23da55ea60f5af8917c7e705896099c35b5ac4b9d879", + "bytes": 1190 + }, + { + "path": "rust/bridge/src/make3d_template.py", + "sha256": "ee5506673f832002796f227c71d693e4879867c7edcdd24b80abd22602d89bc5", + "bytes": 5661 + }, + { + "path": "rust/bridge/src/managed.rs", + "sha256": "941398dc076d4c7189a297cba0361cd5823687e7f64953c68575212da8f3ee62", + "bytes": 30679 + }, + { + "path": "rust/bridge/src/mcp.rs", + "sha256": "f71d03df88067d4d5e20b4a7cf4822ace25b114db8d361b5dc987962e41672d5", + "bytes": 12304 + }, + { + "path": "rust/bridge/src/mint.rs", + "sha256": "85d6430a129bc2ffc5ac005656d6f297058413eef2ae2e6532accd85c247b187", + "bytes": 59385 + }, + { + "path": "rust/bridge/src/operation_status.rs", + "sha256": "cdc3b88f214abeac3d0b0dc50ae10a356cd0c061388d2d39d95bb6fff0753dc1", + "bytes": 5004 + }, + { + "path": "rust/bridge/src/orchestrations.rs", + "sha256": "d996f1499047e45af23be2ea7ab31f6b7f926d85cb1351d61b54bd2b31f49af0", + "bytes": 127993 + }, + { + "path": "rust/bridge/src/palette.rs", + "sha256": "dea46dbce7c7644ee2f366ab7a848dca77872e8224787b784324dbe2d3dd6541", + "bytes": 8046 + }, + { + "path": "rust/bridge/src/pref_script.py", + "sha256": "d057d8240103313483bb8627a4a980553e8cc5901dd62249e87d97fd70935f19", + "bytes": 4262 + }, + { + "path": "rust/bridge/src/prove.rs", + "sha256": "4fa3bab3277f885c6017ad368af80d161f8fb5f9c8d0481ef42d0892e2ccd37d", + "bytes": 26631 + }, + { + "path": "rust/bridge/src/readiness_exec.rs", + "sha256": "f6653592d7ec05ebbf6eb548b7484fc4e99a14970e87fc486de6810ca810ef14", + "bytes": 11631 + }, + { + "path": "rust/bridge/src/routing.rs", + "sha256": "42851d9f6f00be76199f9ce3f038f57ac0ed8b1f6a31f8d9e20fe0ffa442302c", + "bytes": 2400 + }, + { + "path": "rust/bridge/src/routing_planner.py", + "sha256": "d60d3cd24c702cc6c6ce5f4eb8de7b859b894d6a8dea24fd8b0cea1c1901f303", + "bytes": 6146 + }, + { + "path": "rust/bridge/src/routing_script.py", + "sha256": "6cf55372ff5cd2e7e4e64b44b9c6f87a8c67f1c20251be6459bc930e453ca7a2", + "bytes": 21046 + }, + { + "path": "rust/bridge/src/seat.rs", + "sha256": "62029258deddc252ae016ba2afcd8904cbe697e5cd38a03302f6798018317f49", + "bytes": 10090 + }, + { + "path": "rust/bridge/src/services.rs", + "sha256": "73c5c017b8a943521c7ed0a320ca58a8797af6369fbf64bfd26c1200e3dc580c", + "bytes": 31697 + }, + { + "path": "rust/bridge/src/signin.rs", + "sha256": "cb4dcbbabaf83dc1dbd8ce2e80fd1733b6a81c4fbbc4cf20e78b3cba7c37bd61", + "bytes": 61629 + }, + { + "path": "rust/bridge/src/small_verbs.rs", + "sha256": "a05053ce098062498e7f9b912d12e5998b93b8903f7bec4db243cf22c4a0c526", + "bytes": 47978 + }, + { + "path": "rust/bridge/src/testproject.rs", + "sha256": "02b4d1ec6ab2d196b396f57f58b07e0bdcc522f02524ccbedfae4a4af5f90e21", + "bytes": 38186 + }, + { + "path": "rust/bridge/src/timings.rs", + "sha256": "b41fc1604c44f403bc1fe51f01119c19d62e93d5e5d393c2f733539ad2d6daad", + "bytes": 7226 + }, + { + "path": "rust/bridge/src/tour.rs", + "sha256": "bec9eac6fa40075325f66280f3509633b26cd18b3878b3e7cd84696e4d1a2bed", + "bytes": 94173 + }, + { + "path": "rust/bridge/tests/fixtures/board_info_sample.json", + "sha256": "f2c8688bf3f877f7c13efa6510d73af4792553e8325e91bd4f3be14c20df4ba6", + "bytes": 23538 + }, + { + "path": "rust/bridge/tests/golden/attach_script.json", + "sha256": "506b21ab31ebe8a7a948056bed532186decefabe220e739d1d96894f3caf5495", + "bytes": 3896 + }, + { + "path": "rust/bridge/tests/golden/epg_script.json", + "sha256": "748f7b1c161cdf663cdec3e720714fec0d3757819d96b645b38e3ac5dbbe338c", + "bytes": 44275 + }, + { + "path": "rust/bridge/tests/golden/make3d_script.json", + "sha256": "80ff2d73c9a7c88e5170935d292a8475ef963e324957200c6764b8342356d1c2", + "bytes": 12563 + }, + { + "path": "rust/bridge/tests/golden/mtp.json", + "sha256": "1d61ddf58ff5d121f878cb3304101ff328fb1e219d99652894b34ec2e172fe35", + "bytes": 108747 + }, + { + "path": "rust/core/Cargo.toml", + "sha256": "317c07a50b175ae3fd3ac9ee82065568738e3e84fbe647612c109ecd7ba076dd", + "bytes": 463 + }, + { + "path": "rust/core/src/ab.rs", + "sha256": "f71893214420b66fa75abce0c1ebaeb763fa26b191c6d420abae6201acd0c943", + "bytes": 5197 + }, + { + "path": "rust/core/src/alerts.rs", + "sha256": "e51914d3c4a8122762a45c0ee825f0459ba4197488b319fb755a4170c405b593", + "bytes": 4211 + }, + { + "path": "rust/core/src/aps.rs", + "sha256": "a5bb2860aa8a2b155f41280e8abb1cb8a01fcc50379b1c964f032816d3a2c4fa", + "bytes": 28053 + }, + { + "path": "rust/core/src/contract.rs", + "sha256": "69ca49c4469c323887efecb10333b51ad9f6813fc450422c155f9983238acd26", + "bytes": 1051 + }, + { + "path": "rust/core/src/dialog_rules.json", + "sha256": "05c015e80ee38b68d3a0330d34327cacd294d8f0e235dba1a21d2999c6091784", + "bytes": 9702 + }, + { + "path": "rust/core/src/dialogs.rs", + "sha256": "a6e99c6e836dbb462d8d9a90e94234e980b321a61d23d5b0e2493ebbb9663607", + "bytes": 6422 + }, + { + "path": "rust/core/src/host.rs", + "sha256": "7183e1cb5e3fc00d2f1c0b98446612de77a397bc77adcb677822131df36d3943", + "bytes": 5973 + }, + { + "path": "rust/core/src/lib.rs", + "sha256": "4897c959c4bc61a118d4039f2550c7ea365a839e6d537a3f041f26ad6bb41662", + "bytes": 760 + }, + { + "path": "rust/core/src/readiness.rs", + "sha256": "0e89546a8411645e880e27e22d113bebbe04d2a61e019738b82b3ff215737e2d", + "bytes": 15240 + }, + { + "path": "rust/core/src/readiness_hints.json", + "sha256": "c9825ddc2cace06e73c414e2117748f0b49754b240eee0f69a37705034bff867", + "bytes": 6390 + }, + { + "path": "rust/core/src/windows_facts.rs", + "sha256": "12a76a7a56ff7b28cd229bf93628e836deb6d804177b2d65c3545e8793c28013", + "bytes": 8219 + }, + { + "path": "rust/core/tests/alerts_golden.rs", + "sha256": "286b72406009bf3041954c2e4e0becf6bb1c71b30b7458a6251e47ff067e503c", + "bytes": 903 + }, + { + "path": "rust/core/tests/dialogs_golden.rs", + "sha256": "15247100daca1c2cb70d0d434998934191e0fa0d317d92ab3ef53593a011c850", + "bytes": 437 + }, + { + "path": "rust/core/tests/golden/alerts.json", + "sha256": "87a0f799497e63ad1e3ae36c469dcd667cd41bec79d8c733cf391746bae59ffc", + "bytes": 1400 + }, + { + "path": "rust/core/tests/golden/dialog_titles.json", + "sha256": "ca164599b90d6d3b800c232bf9105e10130a5d35c92a93428e3ab63a2f668076", + "bytes": 9056 + }, + { + "path": "rust/core/tests/golden/readiness.json", + "sha256": "2475846c8c047d78dc72d4770f2b1ef4d6b755907576b217c4ad507e8c6df98d", + "bytes": 25147 + }, + { + "path": "rust/core/tests/readiness_golden.rs", + "sha256": "092afc32a81098c2cd8267b827751606a34794be6358fe7c7c3b2a6860a19359", + "bytes": 3195 + }, + { + "path": "rust/lbr/Cargo.toml", + "sha256": "9e943260ba115865f6c734e12a4088a0474963615ad3138b5631513f5336feb0", + "bytes": 502 + }, + { + "path": "rust/lbr/src/lib.rs", + "sha256": "c23a1c6aa81c95ae24d76e2d1bcb5c3d8ca9321a0d11069987d7758f3135c676", + "bytes": 57938 + }, + { + "path": "rust/lbr/tests/fixtures/ABM8-16.000MHZ-B2-T.lbr", + "sha256": "7cab1a3cf059fa908e06be9f7b87fe8b81a03bc78a1ee3641125ad423470bd61", + "bytes": 7565 + }, + { + "path": "rust/lbr/tests/fixtures/ABM8-16.000MHZ-B2-T.lbrx", + "sha256": "7cab1a3cf059fa908e06be9f7b87fe8b81a03bc78a1ee3641125ad423470bd61", + "bytes": 7565 + }, + { + "path": "rust/lbr/tests/fixtures/CH340G.lbr", + "sha256": "d77277a84841a7b5a9d696e090ea2c5dc917b2aec997aa679ca0f617bf23f479", + "bytes": 9776 + }, + { + "path": "rust/lbr/tests/fixtures/CH340G.lbrx", + "sha256": "d77277a84841a7b5a9d696e090ea2c5dc917b2aec997aa679ca0f617bf23f479", + "bytes": 9776 + }, + { + "path": "rust/lbr/tests/fixtures/Demo_Board.bundle.zip", + "sha256": "ad7d754bebdae8e46ee67de4901373b2114c87ad4356da44b6601a38d5c0721f", + "bytes": 354656 + }, + { + "path": "rust/lbr/tests/fixtures/Demo_Board.lbr", + "sha256": "d875a73f00299b45bbc3d69b0273ea8a0eee0e9781917119be9d915ef863d9db", + "bytes": 47513 + }, + { + "path": "rust/lbr/tests/fixtures/Demo_Board.lbrx", + "sha256": "d875a73f00299b45bbc3d69b0273ea8a0eee0e9781917119be9d915ef863d9db", + "bytes": 47513 + }, + { + "path": "rust/lbr/tests/fixtures/IN-S63BTG.lbr", + "sha256": "35db6272a61665eba2ec81a6abe543572bd479af32307200ce2517ffe89fac67", + "bytes": 7259 + }, + { + "path": "rust/lbr/tests/fixtures/IN-S63BTG.lbrx", + "sha256": "35db6272a61665eba2ec81a6abe543572bd479af32307200ce2517ffe89fac67", + "bytes": 7259 + }, + { + "path": "rust/lbr/tests/fixtures/LAN7800.lbr", + "sha256": "ba2c72a1c62007189359e8b12525c26f9960116a307087cbec832573075d8007", + "bytes": 18585 + }, + { + "path": "rust/lbr/tests/fixtures/LAN7800.lbrx", + "sha256": "ba2c72a1c62007189359e8b12525c26f9960116a307087cbec832573075d8007", + "bytes": 18585 + }, + { + "path": "rust/lbr/tests/fixtures/STM32L431RCT6TR.lbr", + "sha256": "0ade993800cb3159d7b31e035ea6f8460dd879a9af42c06724b45474bd06a2ad", + "bytes": 20255 + }, + { + "path": "rust/lbr/tests/fixtures/STM32L431RCT6TR.lbrx", + "sha256": "0ade993800cb3159d7b31e035ea6f8460dd879a9af42c06724b45474bd06a2ad", + "bytes": 20255 + }, + { + "path": "rust/lbr/tests/fixtures/syn_deadconnect.lbr", + "sha256": "d391a1d70976bb9f79a48416d0de507067c89b9916126a0f2fd80a7f872d5d6c", + "bytes": 9781 + }, + { + "path": "rust/lbr/tests/fixtures/syn_deadconnect.lbrx", + "sha256": "d391a1d70976bb9f79a48416d0de507067c89b9916126a0f2fd80a7f872d5d6c", + "bytes": 9781 + }, + { + "path": "rust/lbr/tests/fixtures/syn_duppad.lbr", + "sha256": "af3bbf98629b7d8ffbd15754b0fd98cd5412f0da5985f64a8b7c50a4d2209333", + "bytes": 9776 + }, + { + "path": "rust/lbr/tests/fixtures/syn_duppad.lbrx", + "sha256": "af3bbf98629b7d8ffbd15754b0fd98cd5412f0da5985f64a8b7c50a4d2209333", + "bytes": 9776 + }, + { + "path": "rust/lbr/tests/fixtures/syn_noteagle.lbr", + "sha256": "2881c47145e15bd2ad3770825e390630841be83fc4f788709810746ee8c64fc7", + "bytes": 348 + }, + { + "path": "rust/lbr/tests/fixtures/syn_noteagle.lbrx", + "sha256": "2881c47145e15bd2ad3770825e390630841be83fc4f788709810746ee8c64fc7", + "bytes": 348 + }, + { + "path": "rust/lbr/tests/fixtures/syn_truncated.lbr", + "sha256": "bac1e5d759f5ad41f39c0a4d851a320fedf87e37ad3252187953c05682c3ed11", + "bytes": 77 + }, + { + "path": "rust/lbr/tests/fixtures/syn_truncated.lbrx", + "sha256": "bac1e5d759f5ad41f39c0a4d851a320fedf87e37ad3252187953c05682c3ed11", + "bytes": 77 + }, + { + "path": "rust/lbr/tests/fixtures/zipslip.zip", + "sha256": "62789c0c18ec56ea3a7ae6c6dcceff94581ea5a3f4a7d250229820fc44fb1657", + "bytes": 128 + }, + { + "path": "rust/lbr/tests/golden/ABM8-16.000MHZ-B2-T.json", + "sha256": "59f0a1eb337db1aecd9bd4438c29fa39ff50fc3829e9fc34f8e8b09f1dd6e75d", + "bytes": 300 + }, + { + "path": "rust/lbr/tests/golden/CH340G.json", + "sha256": "a6ab7cc05ec4ef537a499dc844857bbd0b4fbcb693d42f60be2755efa47d7412", + "bytes": 223 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound3.lbr", + "sha256": "91744af418f0b50679b9837a94b28956769817f9a6389e93659ad527f7fe5d68", + "bytes": 48741 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound3.lbrx", + "sha256": "91744af418f0b50679b9837a94b28956769817f9a6389e93659ad527f7fe5d68", + "bytes": 48741 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound5.lbr", + "sha256": "35018f2a1ae5f9754c2825fb0f3397bf40fb2fab3caa1815f922984bba239e00", + "bytes": 49544 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound5.lbrx", + "sha256": "35018f2a1ae5f9754c2825fb0f3397bf40fb2fab3caa1815f922984bba239e00", + "bytes": 49544 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound5again.lbr", + "sha256": "e747baabaaefc45b8cc5af295cdacd9a580c7a457e48cbe0b157a29773ef3e08", + "bytes": 49545 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.bound5again.lbrx", + "sha256": "e747baabaaefc45b8cc5af295cdacd9a580c7a457e48cbe0b157a29773ef3e08", + "bytes": 49545 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.json", + "sha256": "f5250ac9d4e1761ea2a37f99437dbb431d90011863bbdc3793cddd586334f900", + "bytes": 845 + }, + { + "path": "rust/lbr/tests/golden/Demo_Board.metadata.json", + "sha256": "f77498a63f5c99f5e228dbc6d5d27d32ffbbdb0fc385f3e6f423812105eefd1a", + "bytes": 2024 + }, + { + "path": "rust/lbr/tests/golden/IN-S63BTG.json", + "sha256": "2c9695c52cb73609c8c11af135609746a25f903b556e45dbb1b2bffcde031cda", + "bytes": 206 + }, + { + "path": "rust/lbr/tests/golden/LAN7800.json", + "sha256": "400187b6fa0d2c2a55a1fc166f45be48fd1e1716910f97c15bc86ee3ca29ba9f", + "bytes": 202 + }, + { + "path": "rust/lbr/tests/golden/STM32L431RCT6TR.json", + "sha256": "a4abd1bc6e0d9e22ecb3bb05b188a0df3dcd3acfe645c00c3c0ffdf394526212", + "bytes": 262 + }, + { + "path": "rust/lbr/tests/golden/bundle_files.json", + "sha256": "e9ce9c1fcc880aebdfd9ca91cd3c489fca0c44a109f594d6d71535e24e98b02d", + "bytes": 598 + }, + { + "path": "rust/lbr/tests/golden/inject_bindings.json", + "sha256": "70f08781980c5b3932154f4e05bde9527b8519e57cb79fb625e650d91e428680", + "bytes": 567 + }, + { + "path": "rust/lbr/tests/golden/pair_parts.json", + "sha256": "269217c7b343b934c49668fd3cf31ca26124759198df05971d195c5eff2f7fc5", + "bytes": 7912 + }, + { + "path": "rust/lbr/tests/golden/preflight_and_parts.json", + "sha256": "3fab24b531175c303933c303550bbb36b1a4fac84631e8e136cc5bf5c3d7f4fc", + "bytes": 61036 + }, + { + "path": "rust/lbr/tests/golden/split/ABM8-16.000MHZ-B2-T.lbr", + "sha256": "2bd45bbae0af1681b4645a22fddfcdb82cece1ef750cf70a48a6571c10276852", + "bytes": 7607 + }, + { + "path": "rust/lbr/tests/golden/split/ABM8-16.000MHZ-B2-T.lbrx", + "sha256": "2bd45bbae0af1681b4645a22fddfcdb82cece1ef750cf70a48a6571c10276852", + "bytes": 7607 + }, + { + "path": "rust/lbr/tests/golden/split/ABM8-16.000MHZ-B2-T__Crystal_SMD_3225-4Pin_3.2x2.5mm.lbr", + "sha256": "2bd45bbae0af1681b4645a22fddfcdb82cece1ef750cf70a48a6571c10276852", + "bytes": 7607 + }, + { + "path": "rust/lbr/tests/golden/split/ABM8-16.000MHZ-B2-T__Crystal_SMD_3225-4Pin_3.2x2.5mm.lbrx", + "sha256": "2bd45bbae0af1681b4645a22fddfcdb82cece1ef750cf70a48a6571c10276852", + "bytes": 7607 + }, + { + "path": "rust/lbr/tests/golden/split/CH340G.lbr", + "sha256": "d7688b6e5416f447fd379a18fefe6c4a6cf6c65d1656dac62116a610a52a6fdc", + "bytes": 9852 + }, + { + "path": "rust/lbr/tests/golden/split/CH340G.lbrx", + "sha256": "d7688b6e5416f447fd379a18fefe6c4a6cf6c65d1656dac62116a610a52a6fdc", + "bytes": 9852 + }, + { + "path": "rust/lbr/tests/golden/split/CH340G__SOIC-16_3.9x9.9mm_P1.27mm.lbr", + "sha256": "d7688b6e5416f447fd379a18fefe6c4a6cf6c65d1656dac62116a610a52a6fdc", + "bytes": 9852 + }, + { + "path": "rust/lbr/tests/golden/split/CH340G__SOIC-16_3.9x9.9mm_P1.27mm.lbrx", + "sha256": "d7688b6e5416f447fd379a18fefe6c4a6cf6c65d1656dac62116a610a52a6fdc", + "bytes": 9852 + }, + { + "path": "rust/lbr/tests/golden/split/IN-S63BTG.lbr", + "sha256": "e9d652ebfae8d51768054daa11ef6a2bc3a742ae5d6b847bfd1252fa6d89040d", + "bytes": 7312 + }, + { + "path": "rust/lbr/tests/golden/split/IN-S63BTG.lbrx", + "sha256": "e9d652ebfae8d51768054daa11ef6a2bc3a742ae5d6b847bfd1252fa6d89040d", + "bytes": 7312 + }, + { + "path": "rust/lbr/tests/golden/split/IN-S63BTG__IN-S63BTG.lbr", + "sha256": "e9d652ebfae8d51768054daa11ef6a2bc3a742ae5d6b847bfd1252fa6d89040d", + "bytes": 7312 + }, + { + "path": "rust/lbr/tests/golden/split/IN-S63BTG__IN-S63BTG.lbrx", + "sha256": "e9d652ebfae8d51768054daa11ef6a2bc3a742ae5d6b847bfd1252fa6d89040d", + "bytes": 7312 + }, + { + "path": "rust/lbr/tests/golden/split/LAN7800.lbr", + "sha256": "18543107003d7a83f9e96cc32cd5c1c64bd77fb5a05c51d8fd59f8592c3b30c9", + "bytes": 18724 + }, + { + "path": "rust/lbr/tests/golden/split/LAN7800.lbrx", + "sha256": "18543107003d7a83f9e96cc32cd5c1c64bd77fb5a05c51d8fd59f8592c3b30c9", + "bytes": 18724 + }, + { + "path": "rust/lbr/tests/golden/split/LAN7800__QFN-48_7x7mm.lbr", + "sha256": "18543107003d7a83f9e96cc32cd5c1c64bd77fb5a05c51d8fd59f8592c3b30c9", + "bytes": 18724 + }, + { + "path": "rust/lbr/tests/golden/split/LAN7800__QFN-48_7x7mm.lbrx", + "sha256": "18543107003d7a83f9e96cc32cd5c1c64bd77fb5a05c51d8fd59f8592c3b30c9", + "bytes": 18724 + }, + { + "path": "rust/lbr/tests/golden/split/STM32L431RCT6TR.lbr", + "sha256": "b87bc274a16274e08712af6b2b9bebb5e8671e368ce3460ec83d18902376e45a", + "bytes": 20500 + }, + { + "path": "rust/lbr/tests/golden/split/STM32L431RCT6TR.lbrx", + "sha256": "b87bc274a16274e08712af6b2b9bebb5e8671e368ce3460ec83d18902376e45a", + "bytes": 20500 + }, + { + "path": "rust/lbr/tests/golden/split/STM32L431RCT6TR__LQFP-64_10x10mm_P0.5mm.lbr", + "sha256": "b87bc274a16274e08712af6b2b9bebb5e8671e368ce3460ec83d18902376e45a", + "bytes": 20500 + }, + { + "path": "rust/lbr/tests/golden/split/STM32L431RCT6TR__LQFP-64_10x10mm_P0.5mm.lbrx", + "sha256": "b87bc274a16274e08712af6b2b9bebb5e8671e368ce3460ec83d18902376e45a", + "bytes": 20500 + }, + { + "path": "rust/lbr/tests/golden/split/index.json", + "sha256": "a21429c3d77845998f97a2233394e1756ed99a1ca1b24d19a2fee2a156d0b362", + "bytes": 1942 + }, + { + "path": "rust/lbr/tests/golden.rs", + "sha256": "02df17a9be23b9727e1732f4b5079c23910b2fbfd45dbeaa8b07636c23a306cf", + "bytes": 10582 + }, + { + "path": "rust/os-mac/Cargo.toml", + "sha256": "864f9685ed5bb133c51c7fb979ab03175c6310f7a74db761e024b7635aa10851", + "bytes": 307 + }, + { + "path": "rust/os-mac/src/lib.rs", + "sha256": "d0840cfd26262792ed9318b73df071eb523f7d19ffb72277ccc3ba1ba47263a4", + "bytes": 1334 + }, + { + "path": "rust/os-win/Cargo.toml", + "sha256": "1dbd93b057c4ac2a895a0b2dc2636c19330248854f3a8bde8922d27011b01f45", + "bytes": 692 + }, + { + "path": "rust/os-win/src/lib.rs", + "sha256": "4461931dbe8899dfc8ccc1e80e557cdb7eefbc4e584d4dbe743a31b507f1682b", + "bytes": 29982 + }, + { + "path": "schematics.md", + "sha256": "42bfe500374aefc3dafb0889c3fbbbbf8348fd8b8b2d9f63385287d861da6e04", + "bytes": 3498 + }, + { + "path": "screenshots/architecture.svg", + "sha256": "2319edc086627189e7fd623af8088488c0c5888a9144653b0b554acfe3afe498", + "bytes": 6537 + }, + { + "path": "screenshots/dialog-active-sessions.png", + "sha256": "b474a67d746993e44f40067de54d4270a3477c3c4dea668bd11496cff760bbcc", + "bytes": 35796 + }, + { + "path": "screenshots/epg-0603-103.png", + "sha256": "e6381163177f748434a0a32cf322736a15d6e2f539460e65aa26a4e2986ec31e", + "bytes": 184015 + }, + { + "path": "screenshots/epg-2line-margins.png", + "sha256": "9b98a5e08c32ff5559a7e25822b6a640339ba11fee9a85aea414fb34e3c52a5f", + "bytes": 203913 + }, + { + "path": "screenshots/epg-soic8-lm358-white.png", + "sha256": "862a66046fae1bb6c6fc569af25739907ee8a829dd5f5cba850954ec072fae31", + "bytes": 190679 + }, + { + "path": "screenshots/hero.png", + "sha256": "2ef70acf69d93f208122cd7289abca851fa68e218ea45556412e185015624e6b", + "bytes": 1478470 + }, + { + "path": "screenshots/lib2-12part-library.png", + "sha256": "af749971837de7ad7cf18343e64fa37eca662d491e7c33d8171604bc2ecfa28d", + "bytes": 274394 + }, + { + "path": "screenshots/lib2-atsamd-chip.png", + "sha256": "0660d1fd895326ae1da6446820b7f92716c261192d23b9d18187466206b7eff3", + "bytes": 313921 + }, + { + "path": "screenshots/lib2-component.png", + "sha256": "dd587f5a9ea77b10f81a59368f797d80d366fa18518fc413095e21820dc3b35c", + "bytes": 462542 + }, + { + "path": "screenshots/lib2-esp32-chip.png", + "sha256": "198ea6fe17fe1aecf2b5112fe1ca98df5797097b5872ff5750fe940b10bc97c9", + "bytes": 270223 + }, + { + "path": "screenshots/lib2-esp32-footprint.png", + "sha256": "373faee1eaa94ac6072efc65ef16ef6980e7517217bbb4b20f3913d770d75858", + "bytes": 216198 + }, + { + "path": "screenshots/lib2-footprint-editor.png", + "sha256": "1806c11b6ef733c97197de37a02bb97bac397bef38fe3c52073ebed4993e3b1f", + "bytes": 392172 + }, + { + "path": "screenshots/lib2-symbol.png", + "sha256": "7080c0e3d83df063510c3bb719d519b7b4444644cdec7f5c99a3527395235ef4", + "bytes": 428704 + }, + { + "path": "screenshots/lib3-138-overview.png", + "sha256": "d57b8001e818f46d864bd310e222b06d7370f9c4e8c904ee542ab539604c1205", + "bytes": 324949 + }, + { + "path": "screenshots/lib3-cap-3d.png", + "sha256": "c35057f717be98d9b7ecb681c3ce8c9f7a0d0337d880abb45fef9800210263a3", + "bytes": 210383 + }, + { + "path": "screenshots/lib3-resistor-3d.png", + "sha256": "2be448bb8d22bb2d651ac083f3d1e6118c577b5ba1122dca99a55c362ce7800c", + "bytes": 190100 + }, + { + "path": "screenshots/library-manager-138.png", + "sha256": "9046970a1320bb013a658ffce6faed97bddfa2420ece352f5ab08816aab68457", + "bytes": 165444 + }, + { + "path": "screenshots/readme-2d-board.png", + "sha256": "dbcaba565c5592aacbffb0dc3aa90295b4e59657b9efa5c2955a691da0b2dd09", + "bytes": 301134 + }, + { + "path": "screenshots/readme-3d-board.png", + "sha256": "a016303a131201b9d81de4a30c164d111707a806b96b7eb6daa1c80e63889465", + "bytes": 422940 + }, + { + "path": "screenshots/readme-find-open.png", + "sha256": "e6034889238ed48db87c3ed0c884964f92b3c07b98fbbc86117b15a9875cb0b2", + "bytes": 255859 + }, + { + "path": "screenshots/readme-lbr.png", + "sha256": "8cacd05b8203385cfd860891c97dd95e3f86fc70ec269a385eed03c8815ac900", + "bytes": 353184 + }, + { + "path": "screenshots/readme-modeling.png", + "sha256": "df5d00fa96b459769a4d14bec77fcfc6f443f6b2d6761cad4dd06f4017092c89", + "bytes": 212917 + }, + { + "path": "screenshots/readme-schematic.png", + "sha256": "dee058e3e9d26eeb722dbbb0db76ccd2f1837b7c35dcabe1e15a457e326613f8", + "bytes": 251207 + }, + { + "path": "screenshots/showcase.png", + "sha256": "11cde4adde541a3473b8ee74520a924d9fae03140c0039b6a80eff164dc3e9ed", + "bytes": 461091 + }, + { + "path": "server.py", + "sha256": "6779dcd4c6f5cca5560062399ae092aaacf702b2f7250fc633da588455829e6c", + "bytes": 997517 + }, + { + "path": "sign-in-and-updates.md", + "sha256": "245688ceba2eeea85ebbd004256e2f9e7627f1b94b9f1b12ef023ee276ff0380", + "bytes": 5394 + }, + { + "path": "skills/fusion-aps-org-setup/SKILL.md", + "sha256": "61b8c82788147745e64470e45fbf8e672a1b5fab0d33eeb3cca0a5d476f3199e", + "bytes": 5351 + }, + { + "path": "skills/fusion-aps-search/SKILL.md", + "sha256": "8dd58b025963b45230ae45b51a67f98b243cb797cfd914e9f5f4bf205bee3883", + "bytes": 10586 + }, + { + "path": "skills/fusion-aps-signin/SKILL.md", + "sha256": "b6b1d0b6b30df79968f01541fefee6a5283a0a7d933744e563d675d9379a3cfd", + "bytes": 25352 + }, + { + "path": "skills/fusion-autodesk-signin/SKILL.md", + "sha256": "18259c66a9c3fb23dbbeec1bf479c21cc30f1a42fc1191de5b6b1470b4f52d45", + "bytes": 10403 + }, + { + "path": "skills/fusion-bridge-dev/SKILL.md", + "sha256": "870d9037cba5b7be28e56f65ab120de0dcc4797642dbb3a3e5b9852f013e2817", + "bytes": 27123 + }, + { + "path": "skills/fusion-build-parts-library/SKILL.md", + "sha256": "07700a4852237796869d8f3b10a17c3003b0fec98c0c9dd6e022bcd56bc3a5c6", + "bytes": 7705 + }, + { + "path": "skills/fusion-cloud-hygiene/SKILL.md", + "sha256": "0243c18dba9ecc0923f4779d2a2991f4c977e9fb8a426c857cb01c18e60d76d8", + "bytes": 4981 + }, + { + "path": "skills/fusion-cloud-library-import/SKILL.md", + "sha256": "3de0c95dd5bf81d207fc58524eb2f2f78d3a93ddcc3bd0e11e452933afd67e91", + "bytes": 8339 + }, + { + "path": "skills/fusion-cloud-save/SKILL.md", + "sha256": "f3cbc90c0d6861fe9ce5421016afb010b010a3379c386fa57ebee3a7d4643a87", + "bytes": 6357 + }, + { + "path": "skills/fusion-contributing/SKILL.md", + "sha256": "91fcf8198d3a60caf07fda208d36d591857ed9197be56f6172d7708a50c99281", + "bytes": 6360 + }, + { + "path": "skills/fusion-dark-mode/SKILL.md", + "sha256": "b784702c7c54d47fb4583a5d6e29c971670756d7db8dc2088420000fdfbb7aa6", + "bytes": 5144 + }, + { + "path": "skills/fusion-dashboard/SKILL.md", + "sha256": "e8164bbd33d722e107843fa3fac37a349b48d75425a73e2e6aaf98bb766dc442", + "bytes": 3592 + }, + { + "path": "skills/fusion-demo/SKILL.md", + "sha256": "28d19179209271ae3892512c508d33b02a21968f2b874fb8f27479ac92345797", + "bytes": 14834 + }, + { + "path": "skills/fusion-driving/SKILL.md", + "sha256": "d044e5df509131479179f7551194833408e68c9ef4cca8215b476ca620e946f2", + "bytes": 21232 + }, + { + "path": "skills/fusion-eagle-commands/SKILL.md", + "sha256": "34475f68a1f04155de5b5a267d15b657314d7fd3714f8e12488c4f8f26a4e242", + "bytes": 7423 + }, + { + "path": "skills/fusion-electronics/SKILL.md", + "sha256": "8ced14c5fe44a7a8141148fbde236e5cdceaf1ac4fc9ab62352fe444fe8e6caf", + "bytes": 12512 + }, + { + "path": "skills/fusion-file-search/SKILL.md", + "sha256": "a2d82fd586835934bbb8634be70a9a671bb0f5241f2251e200a827b9f96446d1", + "bytes": 18097 + }, + { + "path": "skills/fusion-libraries/LIBRARY_FINDINGS.md", + "sha256": "344641aeca44f0f315999be0c3d9d66a6f84c67e79fcb7fec912e93e4311b38e", + "bytes": 14002 + }, + { + "path": "skills/fusion-libraries/MAKING_LIBRARIES.md", + "sha256": "416f37b4945500f73c72a6eb9e5035e422c9d0c3e685d2a80d2caef014c3ecec", + "bytes": 10095 + }, + { + "path": "skills/fusion-libraries/SKILL.md", + "sha256": "44f76c0833c0f9973e48a2028812ae086de715624f9bdb691c4c1ec7c4addd28", + "bytes": 12088 + }, + { + "path": "skills/fusion-license-seat/SKILL.md", + "sha256": "5ea699aa486a2197833692389ee143697bad082fae4d6f575dbd9ceb3281b5e2", + "bytes": 5938 + }, + { + "path": "skills/fusion-managed-libraries/SKILL.md", + "sha256": "8545410fbe124c5ea1ef70469e333f2ed3ccf23cc0c0be65df34636813d58167", + "bytes": 7399 + }, + { + "path": "skills/fusion-mcp-and-preferences/SKILL.md", + "sha256": "2936cc7365e7288c0f1e3b7cb886921be0c9aefb50503307d0bf1fd673cb96ea", + "bytes": 6220 + }, + { + "path": "skills/fusion-molecule-export/SKILL.md", + "sha256": "89f109c0b4c4bdebb3e6fc8936a4a04f21a6e392239a91974c478493036d3a03", + "bytes": 9428 + }, + { + "path": "skills/fusion-multipart-libraries/CREATING_BASIC_PARTS_LIBRARIES.md", + "sha256": "d298f5b0b23f967d7daf78b85a8fbb83773cd2fcdb791d328e740022440c4d32", + "bytes": 10437 + }, + { + "path": "skills/fusion-multipart-libraries/SKILL.md", + "sha256": "ce58b55d98fe2631c1cd133af7103d269c407d1c50d0f49f8e3a2233b57a305c", + "bytes": 20468 + }, + { + "path": "skills/fusion-multiprofile-signin/SKILL.md", + "sha256": "856f5829219379f83c1a617e0b4413b7138a8efc8082667b64dc583bf5f08c06", + "bytes": 17017 + }, + { + "path": "skills/fusion-no-modal-dialogs/SKILL.md", + "sha256": "045356656b4f55ddd55bf232c06713bed25143f4c802ef56f64307da7bb72a99", + "bytes": 12291 + }, + { + "path": "skills/fusion-onboarding/SKILL.md", + "sha256": "ef0217e8bc29c6af69ffab1d3de5b404b89cd852a865cd1167841cd21ae3707b", + "bytes": 11885 + }, + { + "path": "skills/fusion-part-metadata/SKILL.md", + "sha256": "84a1608d2250fb423a73e77ba8e91e4f622b535136b2ba2e5eea24bdddd6ba5f", + "bytes": 8689 + }, + { + "path": "skills/fusion-publishable-lbr/SKILL.md", + "sha256": "c2a8086d5dcfe86e763c315299f0a9baa6f825841a6395bc26b39bc52a94f13f", + "bytes": 8089 + }, + { + "path": "skills/fusion-publishable-lbr/genscript.sh", + "sha256": "d0221a87ea0d37095a56e6cbed270181d6763b5cbaf2ec1d83260b364e265aff", + "bytes": 482 + }, + { + "path": "skills/fusion-publishable-lbr/lbrgate.py", + "sha256": "60b7cd3b8a9bd1b453361b567e703e2d58b741f1b775ee00981a01fcc673fb1c", + "bytes": 2643 + }, + { + "path": "skills/fusion-ralph-test-via-wiki/SKILL.md", + "sha256": "ce98d97b2d0d307bac30c33f72c7e699e1bed4bf119247bbab0fdd953fffad88", + "bytes": 9621 + }, + { + "path": "skills/fusion-routing/SKILL.md", + "sha256": "8a1425226203736fee8a6ad9cca0e2e24425288784052b4cf85e8c353612750b", + "bytes": 6461 + }, + { + "path": "skills/fusion-routing/references/copper-thermal.md", + "sha256": "7e3a6b3934a29dca7697c3840950938107dad3c5181d16388b2015410ab70d0b", + "bytes": 3591 + }, + { + "path": "skills/fusion-routing/references/electrical-priorities.md", + "sha256": "80d33b837e7d6177b0493d15b678fb8219c935ea66f38869ebecb2f465f054f9", + "bytes": 2318 + }, + { + "path": "skills/fusion-web-control/SKILL.md", + "sha256": "9cb22f788e67a1f1338f5359484aab55f5b63261a03933acde47f786162361a7", + "bytes": 17497 + }, + { + "path": "skills/fusion-web-export/SKILL.md", + "sha256": "812622a08c72ed5e4622fa3f0661dac3db9bfd3d0d4a02994d0133a7db5206f9", + "bytes": 7210 + }, + { + "path": "skills/fusion-web-signin/SKILL.md", + "sha256": "eb3713a21abd6f542463b7b232bc8683136077fad5b5a3fb15ab224de3b71b26", + "bytes": 4356 + }, + { + "path": "skills/pcb-stackup/SKILL.md", + "sha256": "14cac0ec8ebb57e2012a5335a7f9e259e16d143e79de36c59fdd9399968c9ceb", + "bytes": 9027 + }, + { + "path": "start.bat", + "sha256": "34bbe2dec678d02f4dbae1e1b983336febad561a9d5e1d440ba861cd77ac46ba", + "bytes": 129 + }, + { + "path": "step-colorize-after.png", + "sha256": "83b61d34340ae3104c4425ca65e5971363d8239a56807d9af882bb36e08e0d71", + "bytes": 176805 + }, + { + "path": "step-colorize-before.png", + "sha256": "1adea907dcc3fd4889680be0f9969d106ef63af2b100ff00c6c51dadbbd92163", + "bytes": 190283 + }, + { + "path": "tests/daily_verb_cron.sh", + "sha256": "6c94a5bc0d157a91e1363eda40b62895a05d9e1b75667e66e1d02a8d63adcb4e", + "bytes": 1660 + }, + { + "path": "tests/fusion_harness.py", + "sha256": "0ded009f2ad0b5d8919ac215b9366df2b44d9ef98416e5f4a076e36656f88ec2", + "bytes": 28903 + }, + { + "path": "tests/ralph_assemblies.py", + "sha256": "63887179683952bb4103f9365b7284f4c28f822ff6565531133374d96e7aa607", + "bytes": 58600 + }, + { + "path": "tests/ralph_everyday.py", + "sha256": "b9fc306d311a29257301496186a56aa7bd0159f5bba35df4cde3f49b29d31c71", + "bytes": 42960 + }, + { + "path": "tests/ralph_jobs.py", + "sha256": "4322d735104fb82f722fe03a1a806f6cc64fb264541ef22968111df14150a56f", + "bytes": 17361 + }, + { + "path": "tests/ralph_mechanical.py", + "sha256": "ab7451dbc3dda32442128a6262aebf3b9b53884571c6174e9bc2151e5f912d2e", + "bytes": 39936 + }, + { + "path": "tests/ralph_support.py", + "sha256": "a152fed6766ba0e86f89a84b52ce9090bcabcbc3bf888ae1b7f7b08836895e27", + "bytes": 25311 + }, + { + "path": "tests/run_verb_tests.py", + "sha256": "63453076d817b8934fc3540481306177314c59a72a31ffca90a3d6f28b913ee6", + "bytes": 38523 + }, + { + "path": "tests/test_addin_lifecycle.py", + "sha256": "25511747a47c2062ed569798adfbb62795b386572058a4f9ea0980d616896b03", + "bytes": 16544 + }, + { + "path": "tests/test_bridge_contracts.py", + "sha256": "056ddda03091ccc99e257023f6d5d8d75849ab38dba2c7b763e29d9a368d6364", + "bytes": 6048 + }, + { + "path": "tests/test_document_hygiene.py", + "sha256": "650eea3f8a1d577a90c7e57016188b0c812415f48f9ad8948f1f94a17fdbad13", + "bytes": 1734 + }, + { + "path": "tests/test_fusion_harness.py", + "sha256": "42d9f33cb6359296712ed8aeb43f1d290cf4269dc07d6a9668dde1588e534de2", + "bytes": 33740 + }, + { + "path": "tests/test_http_server.py", + "sha256": "2a4da041d350600ff4e0736a03a4cbde816c2d2074e92163203b2fa89c51827c", + "bytes": 13580 + }, + { + "path": "tests/test_live_feed_drain.py", + "sha256": "76a838eaec5314e6498357b02d4df65e67c4508abb7712cb867e398eb90952b2", + "bytes": 9618 + }, + { + "path": "tests/test_mechanical.py", + "sha256": "4abb8cc9d2f0ba2e6e0541ee87b84299a580446476e5fd1a8b63ddb286189246", + "bytes": 16171 + }, + { + "path": "tests/test_mechanical_assemblies.py", + "sha256": "1f9c6bb003eedb01f9012e331f81a5b88504c5468f0b31bba0b489b8ad670fc9", + "bytes": 30696 + }, + { + "path": "tests/test_mechanical_configurations.py", + "sha256": "8dede467568a1b9f284c00acda9c6c8429f7da26f618dae4cea18003c5a58eb5", + "bytes": 26101 + }, + { + "path": "tests/test_mechanical_everyday.py", + "sha256": "f7e3d1eddd953c86b5f85c9a6d1788085df4968f02c89383c1addf0b06208d32", + "bytes": 19209 + }, + { + "path": "tests/test_mechanical_regular_joints.py", + "sha256": "7688bb79489ca7f3be92ff2b811da555dc29fe1f347d9751d4dd3119ae45dbb4", + "bytes": 34488 + }, + { + "path": "tests/test_mechanical_transactions.py", + "sha256": "ccf361720e2917d474a784e2cfd9c735bfb148ebf9d007d70b4463ae11e84622", + "bytes": 14136 + }, + { + "path": "tests/test_operation_dispatch.py", + "sha256": "19bb8c9dcb4856a10a502b2f4c342a3b40d2ca23327729aede523c23f3ff9eb7", + "bytes": 16186 + }, + { + "path": "tests/test_operation_history.py", + "sha256": "1d049c7cb2e4b965b153f80dead344eccf619094b5a5641c5de1731e665ba3f6", + "bytes": 15318 + }, + { + "path": "tests/test_operation_journal.py", + "sha256": "67e39c879041a192295f6b94972a446d1b06bd9502c171cb4361ceb8d8917fb4", + "bytes": 12623 + }, + { + "path": "tests/test_operation_status_route.py", + "sha256": "7fe221d1a802a69a93624a4b8cbf33406e97d4123ec7399d4c8e84f0fa7bfc32", + "bytes": 5735 + }, + { + "path": "tests/test_portable_tree.py", + "sha256": "c0cef12a2355bbae33f056d4bf7d4af96e64652d0e86118d2da4232419e96b7a", + "bytes": 1852 + }, + { + "path": "tests/test_ralph_assemblies.py", + "sha256": "000d6c8bb00d0a07f963d4c786585511ec7fd1ec8601f010725a605cbdbee795", + "bytes": 23898 + }, + { + "path": "tests/test_ralph_campaign.py", + "sha256": "132ce2f342305f71a4ae4473ffe8710967528bafd82b002f1fd29d4af940329a", + "bytes": 17238 + }, + { + "path": "tests/test_ralph_everyday.py", + "sha256": "20487252a3ab759e5236c71e22009a84cc7e80e4f9aa0af5d243e36e7ef60fb8", + "bytes": 8050 + }, + { + "path": "tests/test_ralph_jobs.py", + "sha256": "176f0b4e69b6c9766b1085a6922532220f9e5bfe85366daee1db213f8c2c9662", + "bytes": 13739 + }, + { + "path": "tests/test_routing.py", + "sha256": "be671c46a6a1474a39d2b1846fc76fb27796647cc430bcfc828f9c1957c0e52f", + "bytes": 7427 + }, + { + "path": "timings.py", + "sha256": "b17f946f88286358bcebf397d1467c00010cc3626411a40b7ccfb6522dae425a", + "bytes": 12160 + }, + { + "path": "tools/abrun.py", + "sha256": "5e7a7cd09a3c18c88b912bee5fba3afe77a92aaaa70ace0f52f973f7bb6a4801", + "bytes": 1969 + }, + { + "path": "tools/adrun.py", + "sha256": "ed088ab89f82e13c355f1c60316e5d96e4df3971e998bdeee037a87bee9474ef", + "bytes": 1969 + }, + { + "path": "tools/check-bridge.py", + "sha256": "cb15bef8cbc3d4252a3d656a5484e7459ff340edce171f0489c62baa2212b72b", + "bytes": 8270 + }, + { + "path": "tools/check-naming.sh", + "sha256": "38b4c22c8af31127e5d20b6c24f56cb8000ed6c825a2eda0efc8058952140ebd", + "bytes": 522 + }, + { + "path": "tools/check-portable.sh", + "sha256": "a637d7db4e6dd1948029dd32ac657f3dff48ba31d72af856100b51edf05f033f", + "bytes": 817 + }, + { + "path": "tools/check_portable_tree.py", + "sha256": "56dba86e9d779d8d94acd0db1967ad393b30455c40382c2bfd65e4029d19803d", + "bytes": 2580 + }, + { + "path": "tools/exe-only-flip.sh", + "sha256": "4b19223eb3b198d6ce672502b949634c061ed9f679ac88fbf1966403361d381e", + "bytes": 2634 + }, + { + "path": "tools/freeze-contract.py", + "sha256": "82f51090a79c57adf2f41c27229a860acdc75598aa4ead16893126cd7c848886", + "bytes": 2381 + }, + { + "path": "tools/gen-readme-verbs.py", + "sha256": "c56804ad5e17daef470849724017151956945acb4859fd0083aabd84dc09c45e", + "bytes": 6271 + }, + { + "path": "tools/install-mechanical-dev.ps1", + "sha256": "d6a6b456e65d2b9adffa7d2aaf53a82905bbd720868234bbc8e3ca848ccb3445", + "bytes": 3337 + }, + { + "path": "tools/install-routing-dev.ps1", + "sha256": "6b7aaf8f4e6bad49f1ea01f76e0684ee533ff93290dc0ce81cbf0174132ea3a4", + "bytes": 1240 + }, + { + "path": "tools/live_feed_drain.py", + "sha256": "5c4c383aa317f30f78ef4ee8059d6a5101b278cb3383a3fee90ccb65e35457dd", + "bytes": 11741 + }, + { + "path": "tools/package-mechanical-dev.py", + "sha256": "d8522a4fa8c9b48a93f6c50ebeb84e90fb840eed5d3c8e706fb5951a9aec6f3d", + "bytes": 2376 + }, + { + "path": "tools/promote.py", + "sha256": "d1eca1f21c0af7f085e8e6965f3417c1052bc25e2bff2624c59a851aa656ac09", + "bytes": 975 + }, + { + "path": "tools/promote.sh", + "sha256": "b2577eac39267f94ec6d810d6fee62b211a4cedea7d084e52c77d30b7c685bd5", + "bytes": 2021 + }, + { + "path": "tools/promotions.log", + "sha256": "7c5e6040e4b2d68dd5d588a7544e98b1d700b8afe58d93610ef73f33fc9cb5d9", + "bytes": 807 + }, + { + "path": "tools/release-files.txt", + "sha256": "3a00cc7daf773883d68cd2facfd7d03118d835a9aeefdb0f1bb3cbeded5871e4", + "bytes": 3716 + }, + { + "path": "tools/release.sh", + "sha256": "d38172bebf6819c23d542a4f5325e20482c311a3be93231ba1b757d12f60981c", + "bytes": 25889 + }, + { + "path": "tools/rust-commit.sh", + "sha256": "c331c26bde94231b667924bbdabd3e56d1e975729cb7edf9eae8e5537a4151cf", + "bytes": 318 + }, + { + "path": "tools/rust-ship.sh", + "sha256": "1254e4950f1d76bed5e0a4aa81f0bc45a719acb73193cdab753ecf9e5cb8e093", + "bytes": 878 + }, + { + "path": "tools/shadow_check.py", + "sha256": "6cebf4f1e42cb3847360df8b83793bef4a5d36a7cec1bbb744d2e875c2b6919b", + "bytes": 2579 + }, + { + "path": "uninstall.sh", + "sha256": "a181a9fdd5b0ce4718160787ad0e5b935b98da961789022a864602cd3b9079d4", + "bytes": 357 + }, + { + "path": "verbs.png", + "sha256": "fe609ea32203fc53ea0aa1a2732970a5c15c22e753a948b646092993856fe4f7", + "bytes": 43114 + } + ] +} diff --git a/docs/mechanical-verification/cp8/stale-session/calls/0001-fusion_mechanical.json b/docs/mechanical-verification/cp8/stale-session/calls/0001-fusion_mechanical.json new file mode 100644 index 0000000..67d5e91 --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/calls/0001-fusion_mechanical.json @@ -0,0 +1,118 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "inspect" + }, + "requestJson": "{\"op\": \"inspect\"}", + "runId": "cp8-stale-session-refusal", + "caller": "Fusion roadmap build", + "startedAt": 1791235818.481683, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"bodies\": [],\n \"complete\": true,\n \"components\": [\n {\n \"attributes\": {},\n \"bodyCount\": 0,\n \"description\": \"\",\n \"id\": \"da2acca6-89f0-482b-beea-27583349090a\",\n \"material\": null,\n \"name\": \"(Unsaved)\",\n \"partNumber\": \"2026-10-05-14-27-49-746\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\n \"objectType\": \"adsk::fusion::Component\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\",\n \"rootComponentId\": \"da2acca6-89f0-482b-beea-27583349090a\",\n \"token\": \"/v4BAAEAAwAAAAAAAAAAAAAA\"\n },\n \"sketchCount\": 0\n }\n ],\n \"configuration\": {\n \"complete\": true,\n \"configurationRowId\": \"\",\n \"configurationWritesEnabled\": false,\n \"configured\": false,\n \"configuredOccurrences\": [],\n \"isConfiguration\": false,\n \"readErrors\": [],\n \"scope\": \"loaded Design ordinary and reserved test rows; no activation or recompute\",\n \"table\": null,\n \"unsupported\": []\n },\n \"constructionAxes\": [],\n \"designIntent\": \"2\",\n \"document\": {\n \"creationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\n \"name\": \"Untitled\",\n \"saved\": false\n },\n \"features\": [],\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": null,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 0,\n \"unknown\": []\n },\n \"jointOrigins\": [],\n \"joints\": [],\n \"motionLinks\": [],\n \"occurrences\": [],\n \"parameters\": [],\n \"rigidGroups\": [],\n \"sketches\": [],\n \"target\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\n \"revision\": \"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\"\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 0,\n \"openDocumentCount\": 1,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 950,\n \"error\": \"\",\n \"operation\": \"inspect\",\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"data\\\":{\\\"bodies\\\":[],\\\"complete\\\":true,\\\"components\\\":[{\\\"attributes\\\":{},\\\"bodyCount\\\":0,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"da2acca6-89f0-482b-beea-27583349090a\\\",\\\"material\\\":null,\\\"name\\\":\\\"(Unsaved)\\\",\\\"partNumber\\\":\\\"2026-10-05-14-27-49-746\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\\\",\\\"objectType\\\":\\\"adsk::fusion::Component\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\\\",\\\"rootComponentId\\\":\\\"da2acca6-89f0-482b-beea-27583349090a\\\",\\\"token\\\":\\\"/v4BAAEAAwAAAAAAAAAAAAAA\\\"},\\\"sketchCount\\\":0}],\\\"configuration\\\":{\\\"complete\\\":true,\\\"configurationRowId\\\":\\\"\\\",\\\"configurationWritesEnabled\\\":false,\\\"configured\\\":false,\\\"configuredOccurrences\\\":[],\\\"isConfiguration\\\":false,\\\"readErrors\\\":[],\\\"scope\\\":\\\"loaded Design ordinary and reserved test rows; no activation or recompute\\\",\\\"table\\\":null,\\\"unsupported\\\":[]},\\\"constructionAxes\\\":[],\\\"designIntent\\\":\\\"2\\\",\\\"document\\\":{\\\"creationId\\\":\\\"cdf1e4ec-a727-4ffe-8975-d10e11191864\\\",\\\"name\\\":\\\"Untitled\\\",\\\"saved\\\":false},\\\"features\\\":[],\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":null,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":0,\\\"unknown\\\":[]},\\\"jointOrigins\\\":[],\\\"joints\\\":[],\\\"motionLinks\\\":[],\\\"occurrences\\\":[],\\\"parameters\\\":[],\\\"rigidGroups\\\":[],\\\"sketches\\\":[],\\\"target\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\\\",\\\"revision\\\":\\\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\\\"},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}},\\\"documentHygiene\\\":{\\\"documents\\\":[{\\\"isModified\\\":false,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":false,\\\"saveStateKnown\\\":true}],\\\"inspectionComplete\\\":true,\\\"needsSaveCount\\\":0,\\\"openDocumentCount\\\":1,\\\"ownership\\\":\\\"notInferred\\\",\\\"recoveryHealth\\\":\\\"notInspected\\\"},\\\"operation\\\":\\\"inspect\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235819.4387252, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "bodies": [], + "complete": true, + "components": [ + { + "attributes": {}, + "bodyCount": 0, + "description": "", + "id": "da2acca6-89f0-482b-beea-27583349090a", + "material": null, + "name": "(Unsaved)", + "partNumber": "2026-10-05-14-27-49-746", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d", + "objectType": "adsk::fusion::Component", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc", + "rootComponentId": "da2acca6-89f0-482b-beea-27583349090a", + "token": "/v4BAAEAAwAAAAAAAAAAAAAA" + }, + "sketchCount": 0 + } + ], + "configuration": { + "complete": true, + "configurationRowId": "", + "configurationWritesEnabled": false, + "configured": false, + "configuredOccurrences": [], + "isConfiguration": false, + "readErrors": [], + "scope": "loaded Design ordinary and reserved test rows; no activation or recompute", + "table": null, + "unsupported": [] + }, + "constructionAxes": [], + "designIntent": "2", + "document": { + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "name": "Untitled", + "saved": false + }, + "features": [], + "health": { + "complete": true, + "computeSucceeded": null, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 0, + "unknown": [] + }, + "jointOrigins": [], + "joints": [], + "motionLinks": [], + "occurrences": [], + "parameters": [], + "rigidGroups": [], + "sketches": [], + "target": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d", + "revision": "ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc" + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 0, + "openDocumentCount": 1, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 950, + "error": "", + "operation": "inspect", + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"data\":{\"bodies\":[],\"complete\":true,\"components\":[{\"attributes\":{},\"bodyCount\":0,\"description\":\"\",\"id\":\"da2acca6-89f0-482b-beea-27583349090a\",\"material\":null,\"name\":\"(Unsaved)\",\"partNumber\":\"2026-10-05-14-27-49-746\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\"objectType\":\"adsk::fusion::Component\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\",\"rootComponentId\":\"da2acca6-89f0-482b-beea-27583349090a\",\"token\":\"/v4BAAEAAwAAAAAAAAAAAAAA\"},\"sketchCount\":0}],\"configuration\":{\"complete\":true,\"configurationRowId\":\"\",\"configurationWritesEnabled\":false,\"configured\":false,\"configuredOccurrences\":[],\"isConfiguration\":false,\"readErrors\":[],\"scope\":\"loaded Design ordinary and reserved test rows; no activation or recompute\",\"table\":null,\"unsupported\":[]},\"constructionAxes\":[],\"designIntent\":\"2\",\"document\":{\"creationId\":\"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\"name\":\"Untitled\",\"saved\":false},\"features\":[],\"health\":{\"complete\":true,\"computeSucceeded\":null,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":0,\"unknown\":[]},\"jointOrigins\":[],\"joints\":[],\"motionLinks\":[],\"occurrences\":[],\"parameters\":[],\"rigidGroups\":[],\"sketches\":[],\"target\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\"revision\":\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\"},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}},\"documentHygiene\":{\"documents\":[{\"isModified\":false,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":false,\"saveStateKnown\":true}],\"inspectionComplete\":true,\"needsSaveCount\":0,\"openDocumentCount\":1,\"ownership\":\"notInferred\",\"recoveryHealth\":\"notInspected\"},\"operation\":\"inspect\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/stale-session/calls/0002-fusion_mech_operation_status.json b/docs/mechanical-verification/cp8/stale-session/calls/0002-fusion_mech_operation_status.json new file mode 100644 index 0000000..590719f --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/calls/0002-fusion_mech_operation_status.json @@ -0,0 +1,113 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mech_operation_status", + "args": { + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth" + }, + "requestJson": "{\"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\", \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\"}", + "runId": "cp8-stale-session-refusal", + "caller": "Fusion roadmap build", + "startedAt": 1791235819.440971, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"currentSessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"durationMs\": 36,\n \"error\": \"\",\n \"historical\": true,\n \"history\": {\n \"createdAt\": 1791234223.44495,\n \"events\": [\n {\n \"at\": 1791234223.44495,\n \"phase\": \"admitted\"\n },\n {\n \"at\": 1791234223.4515686,\n \"phase\": \"dispatched\"\n },\n {\n \"at\": 1791234223.4627895,\n \"phase\": \"executing\"\n },\n {\n \"at\": 1791234223.534875,\n \"phase\": \"succeeded\"\n }\n ],\n \"observedDocument\": {\n \"creationId\": \"94431d29-0acf-4799-b677-3f564085aa9d\",\n \"dataFileId\": null,\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\"\n },\n \"operation\": \"parameter_set\",\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"phase\": \"succeeded\",\n \"requestDigest\": \"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\",\n \"requestedTarget\": {\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\n \"revision\": \"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\"\n },\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"sourceVersion\": \"1.12.0-dev.8\",\n \"storageVersion\": 1,\n \"updatedAt\": 1791234223.534875\n },\n \"nativeExecutionStarted\": null,\n \"observedResult\": null,\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"outcome\": \"recorded\",\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"currentSessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"historical\\\":true,\\\"history\\\":{\\\"createdAt\\\":1791234223.44495,\\\"events\\\":[{\\\"at\\\":1791234223.44495,\\\"phase\\\":\\\"admitted\\\"},{\\\"at\\\":1791234223.4515686,\\\"phase\\\":\\\"dispatched\\\"},{\\\"at\\\":1791234223.4627895,\\\"phase\\\":\\\"executing\\\"},{\\\"at\\\":1791234223.534875,\\\"phase\\\":\\\"succeeded\\\"}],\\\"observedDocument\\\":{\\\"creationId\\\":\\\"94431d29-0acf-4799-b677-3f564085aa9d\\\",\\\"dataFileId\\\":null,\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\"},\\\"operation\\\":\\\"parameter_set\\\",\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"phase\\\":\\\"succeeded\\\",\\\"requestDigest\\\":\\\"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\\\",\\\"requestedTarget\\\":{\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\",\\\"revision\\\":\\\"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\\\"},\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"sourceVersion\\\":\\\"1.12.0-dev.8\\\",\\\"storageVersion\\\":1,\\\"updatedAt\\\":1791234223.534875},\\\"nativeExecutionStarted\\\":null,\\\"observedResult\\\":null,\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"outcome\\\":\\\"recorded\\\",\\\"persistenceFailure\\\":null,\\\"phase\\\":\\\"succeeded\\\",\\\"reconciliationRequired\\\":false,\\\"result\\\":{\\\"data\\\":{\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":true,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":2,\\\"unknown\\\":[]},\\\"parameter\\\":{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"20 mm\\\",\\\"name\\\":\\\"depth\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},\\\"recoveryStrategy\\\":\\\"restore_parameter_expression\\\",\\\"target\\\":{\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\",\\\"revision\\\":\\\"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\\\"},\\\"transactional\\\":false},\\\"durability\\\":{\\\"phase\\\":\\\"succeeded\\\",\\\"recordedSessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"storageVersion\\\":1,\\\"terminalRecorded\\\":true},\\\"operation\\\":\\\"parameter_set\\\",\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"success\\\":true},\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"state\\\":\\\"succeeded\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"persistenceFailure\": null,\n \"phase\": \"succeeded\",\n \"reconciliationRequired\": false,\n \"result\": {\n \"data\": {\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": true,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 2,\n \"unknown\": []\n },\n \"parameter\": {\n \"displayUnit\": \"mm\",\n \"expression\": \"20 mm\",\n \"name\": \"depth\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n \"recoveryStrategy\": \"restore_parameter_expression\",\n \"target\": {\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\n \"revision\": \"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\"\n },\n \"transactional\": false\n },\n \"durability\": {\n \"phase\": \"succeeded\",\n \"recordedSessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"storageVersion\": 1,\n \"terminalRecorded\": true\n },\n \"operation\": \"parameter_set\",\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"success\": true\n },\n \"schemaVersion\": 1,\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"state\": \"succeeded\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235819.484957, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "durationMs": 36, + "error": "", + "historical": true, + "history": { + "createdAt": 1791234223.44495, + "events": [ + { + "at": 1791234223.44495, + "phase": "admitted" + }, + { + "at": 1791234223.4515686, + "phase": "dispatched" + }, + { + "at": 1791234223.4627895, + "phase": "executing" + }, + { + "at": 1791234223.534875, + "phase": "succeeded" + } + ], + "observedDocument": { + "creationId": "94431d29-0acf-4799-b677-3f564085aa9d", + "dataFileId": null, + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38" + }, + "operation": "parameter_set", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "phase": "succeeded", + "requestDigest": "13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828", + "requestedTarget": { + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38", + "revision": "b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0" + }, + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "sourceVersion": "1.12.0-dev.8", + "storageVersion": 1, + "updatedAt": 1791234223.534875 + }, + "nativeExecutionStarted": null, + "observedResult": null, + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "outcome": "recorded", + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"currentSessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"historical\":true,\"history\":{\"createdAt\":1791234223.44495,\"events\":[{\"at\":1791234223.44495,\"phase\":\"admitted\"},{\"at\":1791234223.4515686,\"phase\":\"dispatched\"},{\"at\":1791234223.4627895,\"phase\":\"executing\"},{\"at\":1791234223.534875,\"phase\":\"succeeded\"}],\"observedDocument\":{\"creationId\":\"94431d29-0acf-4799-b677-3f564085aa9d\",\"dataFileId\":null,\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\"},\"operation\":\"parameter_set\",\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"phase\":\"succeeded\",\"requestDigest\":\"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\",\"requestedTarget\":{\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\"revision\":\"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\"},\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"sourceVersion\":\"1.12.0-dev.8\",\"storageVersion\":1,\"updatedAt\":1791234223.534875},\"nativeExecutionStarted\":null,\"observedResult\":null,\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"outcome\":\"recorded\",\"persistenceFailure\":null,\"phase\":\"succeeded\",\"reconciliationRequired\":false,\"result\":{\"data\":{\"health\":{\"complete\":true,\"computeSucceeded\":true,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":2,\"unknown\":[]},\"parameter\":{\"displayUnit\":\"mm\",\"expression\":\"20 mm\",\"name\":\"depth\",\"unit\":\"mm\",\"value\":20.0},\"recoveryStrategy\":\"restore_parameter_expression\",\"target\":{\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\"revision\":\"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\"},\"transactional\":false},\"durability\":{\"phase\":\"succeeded\",\"recordedSessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"storageVersion\":1,\"terminalRecorded\":true},\"operation\":\"parameter_set\",\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"success\":true},\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"state\":\"succeeded\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "persistenceFailure": null, + "phase": "succeeded", + "reconciliationRequired": false, + "result": { + "data": { + "health": { + "complete": true, + "computeSucceeded": true, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 2, + "unknown": [] + }, + "parameter": { + "displayUnit": "mm", + "expression": "20 mm", + "name": "depth", + "unit": "mm", + "value": 20.0 + }, + "recoveryStrategy": "restore_parameter_expression", + "target": { + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38", + "revision": "1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96" + }, + "transactional": false + }, + "durability": { + "phase": "succeeded", + "recordedSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "storageVersion": 1, + "terminalRecorded": true + }, + "operation": "parameter_set", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "success": true + }, + "schemaVersion": 1, + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "state": "succeeded", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/stale-session/calls/0003-fusion_mechanical.json b/docs/mechanical-verification/cp8/stale-session/calls/0003-fusion_mechanical.json new file mode 100644 index 0000000..2086cbf --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/calls/0003-fusion_mechanical.json @@ -0,0 +1,39 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "parameter_set", + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "name": "depth", + "expression": "20 mm", + "target": { + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38", + "revision": "b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0" + } + }, + "requestJson": "{\"op\": \"parameter_set\", \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\", \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\", \"name\": \"depth\", \"expression\": \"20 mm\", \"target\": {\"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\", \"revision\": \"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\"}}", + "runId": "cp8-stale-session-refusal", + "caller": "Fusion roadmap build", + "startedAt": 1791235819.4869926, + "mutating": true, + "stdout": "{\n \"_contribute\": \"If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"durationMs\": 1983,\n \"error\": \"Old-session history is readable, but native execution requires the current add-in session.\",\n \"errorCode\": \"session_mismatch\",\n \"output\": \"{\\\"_contribute\\\":\\\"If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"error\\\":\\\"Old-session history is readable, but native execution requires the current add-in session.\\\",\\\"errorCode\\\":\\\"session_mismatch\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":false,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"error\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": false,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235821.4785025, + "raw": { + "_contribute": "If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "durationMs": 1983, + "error": "Old-session history is readable, but native execution requires the current add-in session.", + "errorCode": "session_mismatch", + "output": "{\"_contribute\":\"If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.\",\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"error\":\"Old-session history is readable, but native execution requires the current add-in session.\",\"errorCode\":\"session_mismatch\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":false,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "error", + "statusVerb": "fusion_get_app_state", + "success": false, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/stale-session/calls/0004-fusion_mechanical.json b/docs/mechanical-verification/cp8/stale-session/calls/0004-fusion_mechanical.json new file mode 100644 index 0000000..4dd62be --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/calls/0004-fusion_mechanical.json @@ -0,0 +1,118 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "inspect" + }, + "requestJson": "{\"op\": \"inspect\"}", + "runId": "cp8-stale-session-refusal", + "caller": "Fusion roadmap build", + "startedAt": 1791235821.4790525, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"bodies\": [],\n \"complete\": true,\n \"components\": [\n {\n \"attributes\": {},\n \"bodyCount\": 0,\n \"description\": \"\",\n \"id\": \"da2acca6-89f0-482b-beea-27583349090a\",\n \"material\": null,\n \"name\": \"(Unsaved)\",\n \"partNumber\": \"2026-10-05-14-27-49-746\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\n \"objectType\": \"adsk::fusion::Component\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\",\n \"rootComponentId\": \"da2acca6-89f0-482b-beea-27583349090a\",\n \"token\": \"/v4BAAEAAwAAAAAAAAAAAAAA\"\n },\n \"sketchCount\": 0\n }\n ],\n \"configuration\": {\n \"complete\": true,\n \"configurationRowId\": \"\",\n \"configurationWritesEnabled\": false,\n \"configured\": false,\n \"configuredOccurrences\": [],\n \"isConfiguration\": false,\n \"readErrors\": [],\n \"scope\": \"loaded Design ordinary and reserved test rows; no activation or recompute\",\n \"table\": null,\n \"unsupported\": []\n },\n \"constructionAxes\": [],\n \"designIntent\": \"2\",\n \"document\": {\n \"creationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\n \"name\": \"Untitled\",\n \"saved\": false\n },\n \"features\": [],\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": null,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 0,\n \"unknown\": []\n },\n \"jointOrigins\": [],\n \"joints\": [],\n \"motionLinks\": [],\n \"occurrences\": [],\n \"parameters\": [],\n \"rigidGroups\": [],\n \"sketches\": [],\n \"target\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\n \"revision\": \"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\"\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 0,\n \"openDocumentCount\": 1,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 831,\n \"error\": \"\",\n \"operation\": \"inspect\",\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"data\\\":{\\\"bodies\\\":[],\\\"complete\\\":true,\\\"components\\\":[{\\\"attributes\\\":{},\\\"bodyCount\\\":0,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"da2acca6-89f0-482b-beea-27583349090a\\\",\\\"material\\\":null,\\\"name\\\":\\\"(Unsaved)\\\",\\\"partNumber\\\":\\\"2026-10-05-14-27-49-746\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\\\",\\\"objectType\\\":\\\"adsk::fusion::Component\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\\\",\\\"rootComponentId\\\":\\\"da2acca6-89f0-482b-beea-27583349090a\\\",\\\"token\\\":\\\"/v4BAAEAAwAAAAAAAAAAAAAA\\\"},\\\"sketchCount\\\":0}],\\\"configuration\\\":{\\\"complete\\\":true,\\\"configurationRowId\\\":\\\"\\\",\\\"configurationWritesEnabled\\\":false,\\\"configured\\\":false,\\\"configuredOccurrences\\\":[],\\\"isConfiguration\\\":false,\\\"readErrors\\\":[],\\\"scope\\\":\\\"loaded Design ordinary and reserved test rows; no activation or recompute\\\",\\\"table\\\":null,\\\"unsupported\\\":[]},\\\"constructionAxes\\\":[],\\\"designIntent\\\":\\\"2\\\",\\\"document\\\":{\\\"creationId\\\":\\\"cdf1e4ec-a727-4ffe-8975-d10e11191864\\\",\\\"name\\\":\\\"Untitled\\\",\\\"saved\\\":false},\\\"features\\\":[],\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":null,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":0,\\\"unknown\\\":[]},\\\"jointOrigins\\\":[],\\\"joints\\\":[],\\\"motionLinks\\\":[],\\\"occurrences\\\":[],\\\"parameters\\\":[],\\\"rigidGroups\\\":[],\\\"sketches\\\":[],\\\"target\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\\\",\\\"revision\\\":\\\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\\\"},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}},\\\"documentHygiene\\\":{\\\"documents\\\":[{\\\"isModified\\\":false,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":false,\\\"saveStateKnown\\\":true}],\\\"inspectionComplete\\\":true,\\\"needsSaveCount\\\":0,\\\"openDocumentCount\\\":1,\\\"ownership\\\":\\\"notInferred\\\",\\\"recoveryHealth\\\":\\\"notInspected\\\"},\\\"operation\\\":\\\"inspect\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235822.3170903, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "bodies": [], + "complete": true, + "components": [ + { + "attributes": {}, + "bodyCount": 0, + "description": "", + "id": "da2acca6-89f0-482b-beea-27583349090a", + "material": null, + "name": "(Unsaved)", + "partNumber": "2026-10-05-14-27-49-746", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d", + "objectType": "adsk::fusion::Component", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc", + "rootComponentId": "da2acca6-89f0-482b-beea-27583349090a", + "token": "/v4BAAEAAwAAAAAAAAAAAAAA" + }, + "sketchCount": 0 + } + ], + "configuration": { + "complete": true, + "configurationRowId": "", + "configurationWritesEnabled": false, + "configured": false, + "configuredOccurrences": [], + "isConfiguration": false, + "readErrors": [], + "scope": "loaded Design ordinary and reserved test rows; no activation or recompute", + "table": null, + "unsupported": [] + }, + "constructionAxes": [], + "designIntent": "2", + "document": { + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "name": "Untitled", + "saved": false + }, + "features": [], + "health": { + "complete": true, + "computeSucceeded": null, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 0, + "unknown": [] + }, + "jointOrigins": [], + "joints": [], + "motionLinks": [], + "occurrences": [], + "parameters": [], + "rigidGroups": [], + "sketches": [], + "target": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d", + "revision": "ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc" + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 0, + "openDocumentCount": 1, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 831, + "error": "", + "operation": "inspect", + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"data\":{\"bodies\":[],\"complete\":true,\"components\":[{\"attributes\":{},\"bodyCount\":0,\"description\":\"\",\"id\":\"da2acca6-89f0-482b-beea-27583349090a\",\"material\":null,\"name\":\"(Unsaved)\",\"partNumber\":\"2026-10-05-14-27-49-746\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\"objectType\":\"adsk::fusion::Component\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\",\"rootComponentId\":\"da2acca6-89f0-482b-beea-27583349090a\",\"token\":\"/v4BAAEAAwAAAAAAAAAAAAAA\"},\"sketchCount\":0}],\"configuration\":{\"complete\":true,\"configurationRowId\":\"\",\"configurationWritesEnabled\":false,\"configured\":false,\"configuredOccurrences\":[],\"isConfiguration\":false,\"readErrors\":[],\"scope\":\"loaded Design ordinary and reserved test rows; no activation or recompute\",\"table\":null,\"unsupported\":[]},\"constructionAxes\":[],\"designIntent\":\"2\",\"document\":{\"creationId\":\"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\"name\":\"Untitled\",\"saved\":false},\"features\":[],\"health\":{\"complete\":true,\"computeSucceeded\":null,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":0,\"unknown\":[]},\"jointOrigins\":[],\"joints\":[],\"motionLinks\":[],\"occurrences\":[],\"parameters\":[],\"rigidGroups\":[],\"sketches\":[],\"target\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:72dd2f49-6a55-447b-bf68-29a34bae727d\",\"revision\":\"ff16d03752c2f8b6725d23cb6ce88759fd3e9c096a7237b39c1716a8160be9dc\"},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}},\"documentHygiene\":{\"documents\":[{\"isModified\":false,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":false,\"saveStateKnown\":true}],\"inspectionComplete\":true,\"needsSaveCount\":0,\"openDocumentCount\":1,\"ownership\":\"notInferred\",\"recoveryHealth\":\"notInspected\"},\"operation\":\"inspect\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/stale-session/calls/0005-fusion_mech_operation_status.json b/docs/mechanical-verification/cp8/stale-session/calls/0005-fusion_mech_operation_status.json new file mode 100644 index 0000000..0e4c8c2 --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/calls/0005-fusion_mech_operation_status.json @@ -0,0 +1,113 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mech_operation_status", + "args": { + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth" + }, + "requestJson": "{\"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\", \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\"}", + "runId": "cp8-stale-session-refusal", + "caller": "Fusion roadmap build", + "startedAt": 1791235822.3178256, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"currentSessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"durationMs\": 56,\n \"error\": \"\",\n \"historical\": true,\n \"history\": {\n \"createdAt\": 1791234223.44495,\n \"events\": [\n {\n \"at\": 1791234223.44495,\n \"phase\": \"admitted\"\n },\n {\n \"at\": 1791234223.4515686,\n \"phase\": \"dispatched\"\n },\n {\n \"at\": 1791234223.4627895,\n \"phase\": \"executing\"\n },\n {\n \"at\": 1791234223.534875,\n \"phase\": \"succeeded\"\n }\n ],\n \"observedDocument\": {\n \"creationId\": \"94431d29-0acf-4799-b677-3f564085aa9d\",\n \"dataFileId\": null,\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\"\n },\n \"operation\": \"parameter_set\",\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"phase\": \"succeeded\",\n \"requestDigest\": \"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\",\n \"requestedTarget\": {\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\n \"revision\": \"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\"\n },\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"sourceVersion\": \"1.12.0-dev.8\",\n \"storageVersion\": 1,\n \"updatedAt\": 1791234223.534875\n },\n \"nativeExecutionStarted\": null,\n \"observedResult\": null,\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"outcome\": \"recorded\",\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"currentSessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"historical\\\":true,\\\"history\\\":{\\\"createdAt\\\":1791234223.44495,\\\"events\\\":[{\\\"at\\\":1791234223.44495,\\\"phase\\\":\\\"admitted\\\"},{\\\"at\\\":1791234223.4515686,\\\"phase\\\":\\\"dispatched\\\"},{\\\"at\\\":1791234223.4627895,\\\"phase\\\":\\\"executing\\\"},{\\\"at\\\":1791234223.534875,\\\"phase\\\":\\\"succeeded\\\"}],\\\"observedDocument\\\":{\\\"creationId\\\":\\\"94431d29-0acf-4799-b677-3f564085aa9d\\\",\\\"dataFileId\\\":null,\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\"},\\\"operation\\\":\\\"parameter_set\\\",\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"phase\\\":\\\"succeeded\\\",\\\"requestDigest\\\":\\\"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\\\",\\\"requestedTarget\\\":{\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\",\\\"revision\\\":\\\"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\\\"},\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"sourceVersion\\\":\\\"1.12.0-dev.8\\\",\\\"storageVersion\\\":1,\\\"updatedAt\\\":1791234223.534875},\\\"nativeExecutionStarted\\\":null,\\\"observedResult\\\":null,\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"outcome\\\":\\\"recorded\\\",\\\"persistenceFailure\\\":null,\\\"phase\\\":\\\"succeeded\\\",\\\"reconciliationRequired\\\":false,\\\"result\\\":{\\\"data\\\":{\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":true,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":2,\\\"unknown\\\":[]},\\\"parameter\\\":{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"20 mm\\\",\\\"name\\\":\\\"depth\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},\\\"recoveryStrategy\\\":\\\"restore_parameter_expression\\\",\\\"target\\\":{\\\"documentId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\\\",\\\"revision\\\":\\\"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\\\"},\\\"transactional\\\":false},\\\"durability\\\":{\\\"phase\\\":\\\"succeeded\\\",\\\"recordedSessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"storageVersion\\\":1,\\\"terminalRecorded\\\":true},\\\"operation\\\":\\\"parameter_set\\\",\\\"operationId\\\":\\\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\\\",\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"success\\\":true},\\\"sessionId\\\":\\\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\\\",\\\"state\\\":\\\"succeeded\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"persistenceFailure\": null,\n \"phase\": \"succeeded\",\n \"reconciliationRequired\": false,\n \"result\": {\n \"data\": {\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": true,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 2,\n \"unknown\": []\n },\n \"parameter\": {\n \"displayUnit\": \"mm\",\n \"expression\": \"20 mm\",\n \"name\": \"depth\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n \"recoveryStrategy\": \"restore_parameter_expression\",\n \"target\": {\n \"documentId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\n \"revision\": \"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\"\n },\n \"transactional\": false\n },\n \"durability\": {\n \"phase\": \"succeeded\",\n \"recordedSessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"storageVersion\": 1,\n \"terminalRecorded\": true\n },\n \"operation\": \"parameter_set\",\n \"operationId\": \"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"success\": true\n },\n \"schemaVersion\": 1,\n \"sessionId\": \"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\n \"state\": \"succeeded\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235822.3812897, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "durationMs": 56, + "error": "", + "historical": true, + "history": { + "createdAt": 1791234223.44495, + "events": [ + { + "at": 1791234223.44495, + "phase": "admitted" + }, + { + "at": 1791234223.4515686, + "phase": "dispatched" + }, + { + "at": 1791234223.4627895, + "phase": "executing" + }, + { + "at": 1791234223.534875, + "phase": "succeeded" + } + ], + "observedDocument": { + "creationId": "94431d29-0acf-4799-b677-3f564085aa9d", + "dataFileId": null, + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38" + }, + "operation": "parameter_set", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "phase": "succeeded", + "requestDigest": "13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828", + "requestedTarget": { + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38", + "revision": "b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0" + }, + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "sourceVersion": "1.12.0-dev.8", + "storageVersion": 1, + "updatedAt": 1791234223.534875 + }, + "nativeExecutionStarted": null, + "observedResult": null, + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "outcome": "recorded", + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"currentSessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"historical\":true,\"history\":{\"createdAt\":1791234223.44495,\"events\":[{\"at\":1791234223.44495,\"phase\":\"admitted\"},{\"at\":1791234223.4515686,\"phase\":\"dispatched\"},{\"at\":1791234223.4627895,\"phase\":\"executing\"},{\"at\":1791234223.534875,\"phase\":\"succeeded\"}],\"observedDocument\":{\"creationId\":\"94431d29-0acf-4799-b677-3f564085aa9d\",\"dataFileId\":null,\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\"},\"operation\":\"parameter_set\",\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"phase\":\"succeeded\",\"requestDigest\":\"13c5f19db24f72644eea170718cb893fe751a7e2bcfeebc5952a9438ddfa8828\",\"requestedTarget\":{\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\"revision\":\"b4495a66c9ad2830889838c2e77f116374580d149e6585bb9059e1565e6a8cf0\"},\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"sourceVersion\":\"1.12.0-dev.8\",\"storageVersion\":1,\"updatedAt\":1791234223.534875},\"nativeExecutionStarted\":null,\"observedResult\":null,\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"outcome\":\"recorded\",\"persistenceFailure\":null,\"phase\":\"succeeded\",\"reconciliationRequired\":false,\"result\":{\"data\":{\"health\":{\"complete\":true,\"computeSucceeded\":true,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":2,\"unknown\":[]},\"parameter\":{\"displayUnit\":\"mm\",\"expression\":\"20 mm\",\"name\":\"depth\",\"unit\":\"mm\",\"value\":20.0},\"recoveryStrategy\":\"restore_parameter_expression\",\"target\":{\"documentId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38\",\"revision\":\"1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96\"},\"transactional\":false},\"durability\":{\"phase\":\"succeeded\",\"recordedSessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"storageVersion\":1,\"terminalRecorded\":true},\"operation\":\"parameter_set\",\"operationId\":\"20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth\",\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"success\":true},\"sessionId\":\"3c5e6744-d1ac-4276-9264-b05a96c51e3d\",\"state\":\"succeeded\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "persistenceFailure": null, + "phase": "succeeded", + "reconciliationRequired": false, + "result": { + "data": { + "health": { + "complete": true, + "computeSucceeded": true, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 2, + "unknown": [] + }, + "parameter": { + "displayUnit": "mm", + "expression": "20 mm", + "name": "depth", + "unit": "mm", + "value": 20.0 + }, + "recoveryStrategy": "restore_parameter_expression", + "target": { + "documentId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d:62ef982d-2751-4709-be62-b9da61c64a38", + "revision": "1f857c58f281bac954328309c7bae9a5f33681a1b3dd3d5d6316c28b03910a96" + }, + "transactional": false + }, + "durability": { + "phase": "succeeded", + "recordedSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "storageVersion": 1, + "terminalRecorded": true + }, + "operation": "parameter_set", + "operationId": "20261005T210310Z-568fe7869d0b41d5a83014811fe170ac-depth", + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "success": true + }, + "schemaVersion": 1, + "sessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "state": "succeeded", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp8/stale-session/report.json b/docs/mechanical-verification/cp8/stale-session/report.json new file mode 100644 index 0000000..ad9483e --- /dev/null +++ b/docs/mechanical-verification/cp8/stale-session/report.json @@ -0,0 +1,24 @@ +{ + "status": "PASS", + "oldSessionId": "3c5e6744-d1ac-4276-9264-b05a96c51e3d", + "currentSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "refusal": { + "_contribute": "If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "durationMs": 1983, + "error": "Old-session history is readable, but native execution requires the current add-in session.", + "errorCode": "session_mismatch", + "output": "{\"_contribute\":\"If this is a bridge defect or a gap, the source is open: adom-wiki repo clone adom/fusion-bridge (the wiki page is the repo; a GitHub mirror is linked from the page). File it with this reply JSON (adom-wiki issue create adom/fusion-bridge) or fix it and send a PR (adom-wiki pr create). The fusion-contributing skill has the steps, including trying your build on your own box behind a dev pin.\",\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"error\":\"Old-session history is readable, but native execution requires the current add-in session.\",\"errorCode\":\"session_mismatch\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":false,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "error", + "statusVerb": "fusion_get_app_state", + "success": false, + "timeoutSeconds": 60 + }, + "completeCurrentInspectionUnchanged": true, + "completeHistoricalStatusUnchanged": true, + "captureRequests": 0, + "shotlogUploadRequests": 0 +} diff --git a/docs/mechanical-verification/cp9-readonly/accepted-diagnostic.json b/docs/mechanical-verification/cp9-readonly/accepted-diagnostic.json new file mode 100644 index 0000000..9d4da0d --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/accepted-diagnostic.json @@ -0,0 +1,100 @@ +{ + "scope": "CP9 diagnostic preparation only", + "nativeOperator": "root", + "builderHostCalls": 0, + "report": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/report.json", + "reportSha256": "3324ae9e6fc6ad42d205c425aa2b6a832b414b27893d4dde9cdec3ab1d1bae54", + "overall": "PASS_DIAGNOSTIC", + "counts": { + "PASS": 12, + "FAIL": 0 + }, + "cleanup": "PASS", + "acceptanceScope": { + "sceneDiagnostic": "PASS", + "rendering": "NOT_RUN", + "futureLifecycle": "NOT_RUN", + "sceneCompleteness": "NOT_PROVEN", + "queueOwnership": "NOT_PROVEN", + "visual": "NOT_REQUESTED" + }, + "diagnosticQualification": { + "qualification": "PARTIAL", + "sceneWitnessComplete": false, + "renderingQualified": false, + "nativeQueueIdle": "UNVERIFIED", + "exclusiveSettingsOwnership": "UNVERIFIED", + "fieldErrors": [ + { + "error": "Native object absent or invalid", + "field": "camera" + } + ], + "gaps": [ + "No render execution or RenderFuture instance was created.", + "No global renderer queue/coexistence proof.", + "Appearance, material, texture, light and occurrence-visibility graphs are outside this bounded probe.", + "Environment IDs and names do not prove custom environment content identity.", + "No admitted revision-to-pixels or full source snapshot claim." + ] + }, + "visual": { + "status": "NOT_REQUESTED", + "reason": "This diagnostic forbids images; no visual acceptance claim." + }, + "imagesCreated": 0, + "sourceAndArchiveHashesVerified": true, + "diagnosticSources": [ + { + "name": "ralph_jobs.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/ralph_jobs.py", + "sha256": "4322d735104fb82f722fe03a1a806f6cc64fb264541ef22968111df14150a56f" + }, + { + "name": "ralph_mechanical.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/ralph_mechanical.py", + "sha256": "ab7451dbc3dda32442128a6262aebf3b9b53884571c6174e9bc2151e5f912d2e" + }, + { + "name": "ralph_support.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/ralph_support.py", + "sha256": "a152fed6766ba0e86f89a84b52ce9090bcabcbc3bf888ae1b7f7b08836895e27" + }, + { + "name": "fusion_harness.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/fusion_harness.py", + "sha256": "0ded009f2ad0b5d8919ac215b9366df2b44d9ef98416e5f4a076e36656f88ec2" + }, + { + "name": "probe/read_scene_probe.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/probe/read_scene_probe.py", + "sha256": "bc2bcf78675f28151faa4ab0c67276e553792cc0c6c206fad98718219e02814c" + }, + { + "name": "probe/test_read_scene_probe.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/probe/test_read_scene_probe.py", + "sha256": "8df35f06355717a0c8bfd64b66a951a4a349b9257aff0b14ff1db7a02edb8ba4" + }, + { + "name": "probe/READONLY-PROBE.md", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/probe/READONLY-PROBE.md", + "sha256": "01f33dde1a9bfa821b308a91d0889cadce7c6098af73cdcfbe98e66bc527ff41" + }, + { + "name": "diagnostic_scene.py", + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/diagnostic-sources-20261005T213050Z-422781656d64490da02934d1757322ed/diagnostic_scene.py", + "sha256": "bad536a1d0159eb5e2426e5e671510bc3e0178aee80866f477152f43c3b02073" + } + ], + "artifacts": [ + { + "path": "/home/adom/project/research/fusion-mechanical-verification-2026-10-02/cp9-readonly-native-1/artifacts/01-scene_diagnostic-fad76a63.f3d", + "sha256": "239216a650721a4fb104c4cdb36d697afd4480d1be4b22f6fe3ab6f971ed3764", + "bytes": 65067, + "kind": "native-archive", + "hostPath": "C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T213050Z-422781656d64490da02934d1757322ed/01-scene_diagnostic-fad76a63.f3d", + "fixture": "01-scene_diagnostic" + } + ], + "nextGate": "Rendering, settings ownership, scene completeness and future lifecycle remain unqualified. No new host work enabled by this record." +} diff --git a/docs/mechanical-verification/cp9-readonly/baseline.json b/docs/mechanical-verification/cp9-readonly/baseline.json new file mode 100644 index 0000000..589212f --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/baseline.json @@ -0,0 +1,518 @@ +{ + "state": { + "_hint": "Fusion is clear. The screenshot shows the current surface - this is the verb to render any fusion_show_* result (they open in the background by design).", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "activeDocument": "Untitled", + "addinResponding": true, + "blockingDialogs": [], + "dialogs": [], + "drivingBadge": { + "active": false, + "enabled": true, + "idleShedSeconds": 300, + "lastDrivingVerbAt": 1791234613.3465655, + "lastError": null + }, + "durationMs": 253, + "error": "", + "focusEvents": [], + "hwnd": 4658928, + "mainThreadBusy": null, + "output": "{\"running\":true,\"activeDocument\":\"Untitled\",\"mainThreadBusy\":null,\"blockingDialogs\":[],\"screenshot\":null}", + "rect": { + "bottom": 1549, + "height": 1549, + "left": -11, + "right": 2572, + "top": 0, + "width": 2583 + }, + "running": true, + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "timings": { + "launch": { + "cold": { + "count": 10, + "lastAt": 1791234147, + "p50": 41.1, + "p90": 216.2 + }, + "warm": { + "count": 2, + "lastAt": 1791230617, + "p50": 0.0, + "p90": 1.0 + } + }, + "verb:activate_document": { + "any": { + "count": 3, + "lastAt": 1789145672, + "p50": 3.1, + "p90": 5.6 + } + }, + "verb:addin_status": { + "any": { + "count": 3, + "lastAt": 1788899767, + "p50": 2.0, + "p90": 2.0 + } + }, + "verb:aps_browse": { + "any": { + "count": 4, + "lastAt": 1789143968, + "p50": 1.9, + "p90": 2.3 + } + }, + "verb:aps_file_info": { + "any": { + "count": 10, + "lastAt": 1789144745, + "p50": 34.8, + "p90": 36.2 + } + }, + "verb:aps_get_browser": { + "any": { + "count": 1, + "lastAt": 1787944552, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:aps_open": { + "any": { + "count": 5, + "lastAt": 1788196241, + "p50": 0.2, + "p90": 37.2 + } + }, + "verb:aps_search": { + "any": { + "count": 10, + "lastAt": 1789684900, + "p50": 35.7, + "p90": 65.6 + } + }, + "verb:aps_signin": { + "any": { + "count": 2, + "lastAt": 1787949063, + "p50": 0.4, + "p90": 1.1 + } + }, + "verb:aps_status": { + "any": { + "count": 10, + "lastAt": 1788899782, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:assembly_bom": { + "any": { + "count": 3, + "lastAt": 1790955710, + "p50": 0.1, + "p90": 0.6 + } + }, + "verb:check_dialogs": { + "any": { + "count": 1, + "lastAt": 1788195388, + "p50": 1.4, + "p90": 1.4 + } + }, + "verb:close_document": { + "any": { + "count": 9, + "lastAt": 1789145809, + "p50": 6.7, + "p90": 46.1 + } + }, + "verb:describe": { + "any": { + "count": 3, + "lastAt": 1789144008, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:document_info": { + "any": { + "count": 10, + "lastAt": 1791234611, + "p50": 0.1, + "p90": 0.2 + } + }, + "verb:eagle_import_status": { + "any": { + "count": 1, + "lastAt": 1790978404, + "p50": 1.8, + "p90": 1.8 + } + }, + "verb:electron_run": { + "any": { + "count": 10, + "lastAt": 1788456727, + "p50": 6.3, + "p90": 13.3 + } + }, + "verb:export_cloud_file": { + "any": { + "count": 4, + "lastAt": 1789685179, + "p50": 223.4, + "p90": 290.3 + } + }, + "verb:export_eagle_source": { + "any": { + "count": 10, + "lastAt": 1788456713, + "p50": 1.7, + "p90": 2.2 + } + }, + "verb:export_f3d": { + "any": { + "count": 2, + "lastAt": 1790955227, + "p50": 3.7, + "p90": 4.4 + } + }, + "verb:export_obj": { + "any": { + "count": 2, + "lastAt": 1787944913, + "p50": 0.7, + "p90": 0.7 + } + }, + "verb:export_step": { + "any": { + "count": 10, + "lastAt": 1788456783, + "p50": 5.5, + "p90": 7.9 + } + }, + "verb:get_app_state": { + "any": { + "count": 10, + "lastAt": 1791234147, + "p50": 1.3, + "p90": 3.6 + } + }, + "verb:get_design_info": { + "any": { + "count": 5, + "lastAt": 1788900070, + "p50": 5.2, + "p90": 10.8 + } + }, + "verb:help": { + "any": { + "count": 1, + "lastAt": 1788194522, + "p50": 1.0, + "p90": 1.0 + } + }, + "verb:kill": { + "any": { + "count": 1, + "lastAt": 1787833443, + "p50": 66.9, + "p90": 66.9 + } + }, + "verb:list_cloud_files": { + "any": { + "count": 1, + "lastAt": 1787832975, + "p50": 15.8, + "p90": 15.8 + } + }, + "verb:mcp_call": { + "any": { + "count": 5, + "lastAt": 1788455586, + "p50": 0.0, + "p90": 1.8 + } + }, + "verb:mech_capabilities": { + "any": { + "count": 10, + "lastAt": 1791235757, + "p50": 0.1, + "p90": 0.1 + } + }, + "verb:mech_operation_status": { + "any": { + "count": 10, + "lastAt": 1791229196, + "p50": 0.1, + "p90": 0.1 + } + }, + "verb:mechanical": { + "any": { + "count": 10, + "lastAt": 1791235822, + "p50": 0.8, + "p90": 2.0 + } + }, + "verb:open_by_urn": { + "any": { + "count": 10, + "lastAt": 1789144985, + "p50": 43.4, + "p90": 59.1 + } + }, + "verb:open_cloud_file": { + "any": { + "count": 8, + "lastAt": 1789666231, + "p50": 24.2, + "p90": 87.5 + } + }, + "verb:open_design": { + "any": { + "count": 3, + "lastAt": 1790955721, + "p50": 5.9, + "p90": 6.1 + } + }, + "verb:open_lbr": { + "any": { + "count": 2, + "lastAt": 1788195396, + "p50": 2.7, + "p90": 5.0 + } + }, + "verb:physical_properties": { + "any": { + "count": 3, + "lastAt": 1790955710, + "p50": 0.1, + "p90": 0.2 + } + }, + "verb:readiness": { + "any": { + "count": 5, + "lastAt": 1788900108, + "p50": 14.9, + "p90": 56.9 + } + }, + "verb:restart_for_addin": { + "any": { + "count": 10, + "lastAt": 1791234174, + "p50": 0.0, + "p90": 125.2 + } + }, + "verb:run_modeling_script": { + "any": { + "count": 10, + "lastAt": 1791234623, + "p50": 1.7, + "p90": 1.9 + } + }, + "verb:search_cloud_files": { + "any": { + "count": 3, + "lastAt": 1789143642, + "p50": 0.0, + "p90": 0.4 + } + }, + "verb:show_2d_board": { + "any": { + "count": 2, + "lastAt": 1788456656, + "p50": 26.6, + "p90": 34.9 + } + }, + "verb:show_3d_board": { + "any": { + "count": 6, + "lastAt": 1788456760, + "p50": 10.2, + "p90": 19.6 + } + }, + "verb:signin": { + "any": { + "count": 1, + "lastAt": 1788899909, + "p50": 56.1, + "p90": 56.1 + } + }, + "verb:start": { + "any": { + "count": 7, + "lastAt": 1791230617, + "p50": 57.4, + "p90": 64.9 + } + }, + "verb:status": { + "any": { + "count": 2, + "lastAt": 1788194217, + "p50": 0.8, + "p90": 1.0 + } + }, + "verb:stop": { + "any": { + "count": 1, + "lastAt": 1787831926, + "p50": 19.7, + "p90": 19.7 + } + }, + "verb:window_info": { + "any": { + "count": 10, + "lastAt": 1788899841, + "p50": 7.2, + "p90": 10.9 + } + } + }, + "timingsSentence": "on this machine Fusion starts in cold 41s, warm 0s (measured)", + "title": "Untitled - Autodesk Fusion " + }, + "addin": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "addinStale": false, + "addinVersion": "1.12.0-dev.8", + "busy": false, + "durationMs": 68, + "error": "", + "expectedAddinVersion": "1.12.0-dev.8", + "output": "{\"busy\":false,\"version\":\"1.12.0-dev.8\",\"pyThreads\":4,\"addinVersion\":\"1.12.0-dev.8\",\"expectedAddinVersion\":\"1.12.0-dev.8\",\"addinStale\":false}", + "pyThreads": 4, + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "version": "1.12.0-dev.8" + }, + "runtime": { + "name": "fusion360", + "devPinned": true, + "paused": false, + "runningVersion": "1.12.0-dev.5", + "installedVersion": "1.12.0-dev.8", + "entryMismatch": false, + "instanceCount": 1 + }, + "liveIdentity": { + "image": "adom-fusion-bridge.exe", + "listenerAddresses": [ + "127.0.0.1" + ], + "executablePath": "C:\\Users\\drew\\AppData\\Local\\Adom Bridge\\bridges-cache\\fusion360\\adom-fusion-bridge.exe", + "stable": true, + "processCreatedUtc": "2026-10-05T21:01:31.6721740Z", + "host": "ADOM_DREW2", + "health": { + "status": "ok", + "busy": false, + "longOp": null, + "led": "green", + "summary": "Fusion ready", + "tooltip": "Fusion 360 running, AdomBridge add-in connected. All fusion_* verbs available.", + "bridgeVersion": "1.12.0-dev.8", + "fusion": { + "installed": true, + "exe_path": "C:\\Users\\drew\\AppData\\Local\\Autodesk\\webdeploy\\production\\6a0c9611291d45bb9226980209917c3d\\FusionLauncher.exe", + "addins_dir": "C:\\Users\\drew\\AppData\\Roaming\\Autodesk\\FusionAddins", + "addin_installed": true, + "running": true + }, + "addin": { + "busy": false, + "version": "1.12.0-dev.8", + "pyThreads": 4 + }, + "shell": "rust", + "needsSignin": false, + "licensingDialog": false, + "windowTitle": "Untitled - Autodesk Fusion ", + "windowFactsDegraded": false, + "windowFactsError": null, + "exePort": 50618 + }, + "pid": 42780, + "port": 50618 + }, + "preferences": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "native": { + "activeCommand": "SelectCommand", + "activeCreationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "activeProductType": "DesignProductType", + "documents": [ + { + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "modified": false, + "name": "Untitled", + "saved": false + } + ], + "fusionVersion": "2705.1.30", + "host": "adom_drew2", + "platform": "Windows", + "temporaryDirectory": "C:/Users/drew/AppData/Local/Temp" + } +} diff --git a/docs/mechanical-verification/cp9-readonly/calls/0001-fusion_state.json b/docs/mechanical-verification/cp9-readonly/calls/0001-fusion_state.json new file mode 100644 index 0000000..b906dc1 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0001-fusion_state.json @@ -0,0 +1,439 @@ +{ + "target": "adom_drew2", + "verb": "fusion_state", + "args": { + "screenshot": false, + "nativeViewport": false + }, + "requestJson": "{\"screenshot\": false, \"nativeViewport\": false}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235850.6986318, + "mutating": false, + "stdout": "{\n \"_hint\": \"Fusion is clear. The screenshot shows the current surface - this is the verb to render any fusion_show_* result (they open in the background by design).\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"activeDocument\": \"Untitled\",\n \"addinResponding\": true,\n \"blockingDialogs\": [],\n \"dialogs\": [],\n \"drivingBadge\": {\n \"active\": false,\n \"enabled\": true,\n \"idleShedSeconds\": 300,\n \"lastDrivingVerbAt\": 1791234613.3465655,\n \"lastError\": null\n },\n \"durationMs\": 253,\n \"error\": \"\",\n \"focusEvents\": [],\n \"hwnd\": 4658928,\n \"mainThreadBusy\": null,\n \"output\": \"{\\\"running\\\":true,\\\"activeDocument\\\":\\\"Untitled\\\",\\\"mainThreadBusy\\\":null,\\\"blockingDialogs\\\":[],\\\"screenshot\\\":null}\",\n \"rect\": {\n \"bottom\": 1549,\n \"height\": 1549,\n \"left\": -11,\n \"right\": 2572,\n \"top\": 0,\n \"width\": 2583\n },\n \"running\": true,\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60,\n \"timings\": {\n \"launch\": {\n \"cold\": {\n \"count\": 10,\n \"lastAt\": 1791234147,\n \"p50\": 41.1,\n \"p90\": 216.2\n },\n \"warm\": {\n \"count\": 2,\n \"lastAt\": 1791230617,\n \"p50\": 0.0,\n \"p90\": 1.0\n }\n },\n \"verb:activate_document\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1789145672,\n \"p50\": 3.1,\n \"p90\": 5.6\n }\n },\n \"verb:addin_status\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1788899767,\n \"p50\": 2.0,\n \"p90\": 2.0\n }\n },\n \"verb:aps_browse\": {\n \"any\": {\n \"count\": 4,\n \"lastAt\": 1789143968,\n \"p50\": 1.9,\n \"p90\": 2.3\n }\n },\n \"verb:aps_file_info\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1789144745,\n \"p50\": 34.8,\n \"p90\": 36.2\n }\n },\n \"verb:aps_get_browser\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1787944552,\n \"p50\": 0.0,\n \"p90\": 0.0\n }\n },\n \"verb:aps_open\": {\n \"any\": {\n \"count\": 5,\n \"lastAt\": 1788196241,\n \"p50\": 0.2,\n \"p90\": 37.2\n }\n },\n \"verb:aps_search\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1789684900,\n \"p50\": 35.7,\n \"p90\": 65.6\n }\n },\n \"verb:aps_signin\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1787949063,\n \"p50\": 0.4,\n \"p90\": 1.1\n }\n },\n \"verb:aps_status\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1788899782,\n \"p50\": 0.0,\n \"p90\": 0.0\n }\n },\n \"verb:assembly_bom\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1790955710,\n \"p50\": 0.1,\n \"p90\": 0.6\n }\n },\n \"verb:check_dialogs\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1788195388,\n \"p50\": 1.4,\n \"p90\": 1.4\n }\n },\n \"verb:close_document\": {\n \"any\": {\n \"count\": 9,\n \"lastAt\": 1789145809,\n \"p50\": 6.7,\n \"p90\": 46.1\n }\n },\n \"verb:describe\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1789144008,\n \"p50\": 0.0,\n \"p90\": 0.0\n }\n },\n \"verb:document_info\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791234611,\n \"p50\": 0.1,\n \"p90\": 0.2\n }\n },\n \"verb:eagle_import_status\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1790978404,\n \"p50\": 1.8,\n \"p90\": 1.8\n }\n },\n \"verb:electron_run\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1788456727,\n \"p50\": 6.3,\n \"p90\": 13.3\n }\n },\n \"verb:export_cloud_file\": {\n \"any\": {\n \"count\": 4,\n \"lastAt\": 1789685179,\n \"p50\": 223.4,\n \"p90\": 290.3\n }\n },\n \"verb:export_eagle_source\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1788456713,\n \"p50\": 1.7,\n \"p90\": 2.2\n }\n },\n \"verb:export_f3d\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1790955227,\n \"p50\": 3.7,\n \"p90\": 4.4\n }\n },\n \"verb:export_obj\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1787944913,\n \"p50\": 0.7,\n \"p90\": 0.7\n }\n },\n \"verb:export_step\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1788456783,\n \"p50\": 5.5,\n \"p90\": 7.9\n }\n },\n \"verb:get_app_state\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791234147,\n \"p50\": 1.3,\n \"p90\": 3.6\n }\n },\n \"verb:get_design_info\": {\n \"any\": {\n \"count\": 5,\n \"lastAt\": 1788900070,\n \"p50\": 5.2,\n \"p90\": 10.8\n }\n },\n \"verb:help\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1788194522,\n \"p50\": 1.0,\n \"p90\": 1.0\n }\n },\n \"verb:kill\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1787833443,\n \"p50\": 66.9,\n \"p90\": 66.9\n }\n },\n \"verb:list_cloud_files\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1787832975,\n \"p50\": 15.8,\n \"p90\": 15.8\n }\n },\n \"verb:mcp_call\": {\n \"any\": {\n \"count\": 5,\n \"lastAt\": 1788455586,\n \"p50\": 0.0,\n \"p90\": 1.8\n }\n },\n \"verb:mech_capabilities\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791235757,\n \"p50\": 0.1,\n \"p90\": 0.1\n }\n },\n \"verb:mech_operation_status\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791229196,\n \"p50\": 0.1,\n \"p90\": 0.1\n }\n },\n \"verb:mechanical\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791235822,\n \"p50\": 0.8,\n \"p90\": 2.0\n }\n },\n \"verb:open_by_urn\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1789144985,\n \"p50\": 43.4,\n \"p90\": 59.1\n }\n },\n \"verb:open_cloud_file\": {\n \"any\": {\n \"count\": 8,\n \"lastAt\": 1789666231,\n \"p50\": 24.2,\n \"p90\": 87.5\n }\n },\n \"verb:open_design\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1790955721,\n \"p50\": 5.9,\n \"p90\": 6.1\n }\n },\n \"verb:open_lbr\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1788195396,\n \"p50\": 2.7,\n \"p90\": 5.0\n }\n },\n \"verb:physical_properties\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1790955710,\n \"p50\": 0.1,\n \"p90\": 0.2\n }\n },\n \"verb:readiness\": {\n \"any\": {\n \"count\": 5,\n \"lastAt\": 1788900108,\n \"p50\": 14.9,\n \"p90\": 56.9\n }\n },\n \"verb:restart_for_addin\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791234174,\n \"p50\": 0.0,\n \"p90\": 125.2\n }\n },\n \"verb:run_modeling_script\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1791234623,\n \"p50\": 1.7,\n \"p90\": 1.9\n }\n },\n \"verb:search_cloud_files\": {\n \"any\": {\n \"count\": 3,\n \"lastAt\": 1789143642,\n \"p50\": 0.0,\n \"p90\": 0.4\n }\n },\n \"verb:show_2d_board\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1788456656,\n \"p50\": 26.6,\n \"p90\": 34.9\n }\n },\n \"verb:show_3d_board\": {\n \"any\": {\n \"count\": 6,\n \"lastAt\": 1788456760,\n \"p50\": 10.2,\n \"p90\": 19.6\n }\n },\n \"verb:signin\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1788899909,\n \"p50\": 56.1,\n \"p90\": 56.1\n }\n },\n \"verb:start\": {\n \"any\": {\n \"count\": 7,\n \"lastAt\": 1791230617,\n \"p50\": 57.4,\n \"p90\": 64.9\n }\n },\n \"verb:status\": {\n \"any\": {\n \"count\": 2,\n \"lastAt\": 1788194217,\n \"p50\": 0.8,\n \"p90\": 1.0\n }\n },\n \"verb:stop\": {\n \"any\": {\n \"count\": 1,\n \"lastAt\": 1787831926,\n \"p50\": 19.7,\n \"p90\": 19.7\n }\n },\n \"verb:window_info\": {\n \"any\": {\n \"count\": 10,\n \"lastAt\": 1788899841,\n \"p50\": 7.2,\n \"p90\": 10.9\n }\n }\n },\n \"timingsSentence\": \"on this machine Fusion starts in cold 41s, warm 0s (measured)\",\n \"title\": \"Untitled - Autodesk Fusion \"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235850.960691, + "raw": { + "_hint": "Fusion is clear. The screenshot shows the current surface - this is the verb to render any fusion_show_* result (they open in the background by design).", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "activeDocument": "Untitled", + "addinResponding": true, + "blockingDialogs": [], + "dialogs": [], + "drivingBadge": { + "active": false, + "enabled": true, + "idleShedSeconds": 300, + "lastDrivingVerbAt": 1791234613.3465655, + "lastError": null + }, + "durationMs": 253, + "error": "", + "focusEvents": [], + "hwnd": 4658928, + "mainThreadBusy": null, + "output": "{\"running\":true,\"activeDocument\":\"Untitled\",\"mainThreadBusy\":null,\"blockingDialogs\":[],\"screenshot\":null}", + "rect": { + "bottom": 1549, + "height": 1549, + "left": -11, + "right": 2572, + "top": 0, + "width": 2583 + }, + "running": true, + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "timings": { + "launch": { + "cold": { + "count": 10, + "lastAt": 1791234147, + "p50": 41.1, + "p90": 216.2 + }, + "warm": { + "count": 2, + "lastAt": 1791230617, + "p50": 0.0, + "p90": 1.0 + } + }, + "verb:activate_document": { + "any": { + "count": 3, + "lastAt": 1789145672, + "p50": 3.1, + "p90": 5.6 + } + }, + "verb:addin_status": { + "any": { + "count": 3, + "lastAt": 1788899767, + "p50": 2.0, + "p90": 2.0 + } + }, + "verb:aps_browse": { + "any": { + "count": 4, + "lastAt": 1789143968, + "p50": 1.9, + "p90": 2.3 + } + }, + "verb:aps_file_info": { + "any": { + "count": 10, + "lastAt": 1789144745, + "p50": 34.8, + "p90": 36.2 + } + }, + "verb:aps_get_browser": { + "any": { + "count": 1, + "lastAt": 1787944552, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:aps_open": { + "any": { + "count": 5, + "lastAt": 1788196241, + "p50": 0.2, + "p90": 37.2 + } + }, + "verb:aps_search": { + "any": { + "count": 10, + "lastAt": 1789684900, + "p50": 35.7, + "p90": 65.6 + } + }, + "verb:aps_signin": { + "any": { + "count": 2, + "lastAt": 1787949063, + "p50": 0.4, + "p90": 1.1 + } + }, + "verb:aps_status": { + "any": { + "count": 10, + "lastAt": 1788899782, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:assembly_bom": { + "any": { + "count": 3, + "lastAt": 1790955710, + "p50": 0.1, + "p90": 0.6 + } + }, + "verb:check_dialogs": { + "any": { + "count": 1, + "lastAt": 1788195388, + "p50": 1.4, + "p90": 1.4 + } + }, + "verb:close_document": { + "any": { + "count": 9, + "lastAt": 1789145809, + "p50": 6.7, + "p90": 46.1 + } + }, + "verb:describe": { + "any": { + "count": 3, + "lastAt": 1789144008, + "p50": 0.0, + "p90": 0.0 + } + }, + "verb:document_info": { + "any": { + "count": 10, + "lastAt": 1791234611, + "p50": 0.1, + "p90": 0.2 + } + }, + "verb:eagle_import_status": { + "any": { + "count": 1, + "lastAt": 1790978404, + "p50": 1.8, + "p90": 1.8 + } + }, + "verb:electron_run": { + "any": { + "count": 10, + "lastAt": 1788456727, + "p50": 6.3, + "p90": 13.3 + } + }, + "verb:export_cloud_file": { + "any": { + "count": 4, + "lastAt": 1789685179, + "p50": 223.4, + "p90": 290.3 + } + }, + "verb:export_eagle_source": { + "any": { + "count": 10, + "lastAt": 1788456713, + "p50": 1.7, + "p90": 2.2 + } + }, + "verb:export_f3d": { + "any": { + "count": 2, + "lastAt": 1790955227, + "p50": 3.7, + "p90": 4.4 + } + }, + "verb:export_obj": { + "any": { + "count": 2, + "lastAt": 1787944913, + "p50": 0.7, + "p90": 0.7 + } + }, + "verb:export_step": { + "any": { + "count": 10, + "lastAt": 1788456783, + "p50": 5.5, + "p90": 7.9 + } + }, + "verb:get_app_state": { + "any": { + "count": 10, + "lastAt": 1791234147, + "p50": 1.3, + "p90": 3.6 + } + }, + "verb:get_design_info": { + "any": { + "count": 5, + "lastAt": 1788900070, + "p50": 5.2, + "p90": 10.8 + } + }, + "verb:help": { + "any": { + "count": 1, + "lastAt": 1788194522, + "p50": 1.0, + "p90": 1.0 + } + }, + "verb:kill": { + "any": { + "count": 1, + "lastAt": 1787833443, + "p50": 66.9, + "p90": 66.9 + } + }, + "verb:list_cloud_files": { + "any": { + "count": 1, + "lastAt": 1787832975, + "p50": 15.8, + "p90": 15.8 + } + }, + "verb:mcp_call": { + "any": { + "count": 5, + "lastAt": 1788455586, + "p50": 0.0, + "p90": 1.8 + } + }, + "verb:mech_capabilities": { + "any": { + "count": 10, + "lastAt": 1791235757, + "p50": 0.1, + "p90": 0.1 + } + }, + "verb:mech_operation_status": { + "any": { + "count": 10, + "lastAt": 1791229196, + "p50": 0.1, + "p90": 0.1 + } + }, + "verb:mechanical": { + "any": { + "count": 10, + "lastAt": 1791235822, + "p50": 0.8, + "p90": 2.0 + } + }, + "verb:open_by_urn": { + "any": { + "count": 10, + "lastAt": 1789144985, + "p50": 43.4, + "p90": 59.1 + } + }, + "verb:open_cloud_file": { + "any": { + "count": 8, + "lastAt": 1789666231, + "p50": 24.2, + "p90": 87.5 + } + }, + "verb:open_design": { + "any": { + "count": 3, + "lastAt": 1790955721, + "p50": 5.9, + "p90": 6.1 + } + }, + "verb:open_lbr": { + "any": { + "count": 2, + "lastAt": 1788195396, + "p50": 2.7, + "p90": 5.0 + } + }, + "verb:physical_properties": { + "any": { + "count": 3, + "lastAt": 1790955710, + "p50": 0.1, + "p90": 0.2 + } + }, + "verb:readiness": { + "any": { + "count": 5, + "lastAt": 1788900108, + "p50": 14.9, + "p90": 56.9 + } + }, + "verb:restart_for_addin": { + "any": { + "count": 10, + "lastAt": 1791234174, + "p50": 0.0, + "p90": 125.2 + } + }, + "verb:run_modeling_script": { + "any": { + "count": 10, + "lastAt": 1791234623, + "p50": 1.7, + "p90": 1.9 + } + }, + "verb:search_cloud_files": { + "any": { + "count": 3, + "lastAt": 1789143642, + "p50": 0.0, + "p90": 0.4 + } + }, + "verb:show_2d_board": { + "any": { + "count": 2, + "lastAt": 1788456656, + "p50": 26.6, + "p90": 34.9 + } + }, + "verb:show_3d_board": { + "any": { + "count": 6, + "lastAt": 1788456760, + "p50": 10.2, + "p90": 19.6 + } + }, + "verb:signin": { + "any": { + "count": 1, + "lastAt": 1788899909, + "p50": 56.1, + "p90": 56.1 + } + }, + "verb:start": { + "any": { + "count": 7, + "lastAt": 1791230617, + "p50": 57.4, + "p90": 64.9 + } + }, + "verb:status": { + "any": { + "count": 2, + "lastAt": 1788194217, + "p50": 0.8, + "p90": 1.0 + } + }, + "verb:stop": { + "any": { + "count": 1, + "lastAt": 1787831926, + "p50": 19.7, + "p90": 19.7 + } + }, + "verb:window_info": { + "any": { + "count": 10, + "lastAt": 1788899841, + "p50": 7.2, + "p90": 10.9 + } + } + }, + "timingsSentence": "on this machine Fusion starts in cold 41s, warm 0s (measured)", + "title": "Untitled - Autodesk Fusion " + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0002-fusion_addin_status.json b/docs/mechanical-verification/cp9-readonly/calls/0002-fusion_addin_status.json new file mode 100644 index 0000000..fb5e25f --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0002-fusion_addin_status.json @@ -0,0 +1,32 @@ +{ + "target": "adom_drew2", + "verb": "fusion_addin_status", + "args": {}, + "requestJson": "{}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235850.961958, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"addinStale\": false,\n \"addinVersion\": \"1.12.0-dev.8\",\n \"busy\": false,\n \"durationMs\": 68,\n \"error\": \"\",\n \"expectedAddinVersion\": \"1.12.0-dev.8\",\n \"output\": \"{\\\"busy\\\":false,\\\"version\\\":\\\"1.12.0-dev.8\\\",\\\"pyThreads\\\":4,\\\"addinVersion\\\":\\\"1.12.0-dev.8\\\",\\\"expectedAddinVersion\\\":\\\"1.12.0-dev.8\\\",\\\"addinStale\\\":false}\",\n \"pyThreads\": 4,\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60,\n \"version\": \"1.12.0-dev.8\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235851.0384605, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "addinStale": false, + "addinVersion": "1.12.0-dev.8", + "busy": false, + "durationMs": 68, + "error": "", + "expectedAddinVersion": "1.12.0-dev.8", + "output": "{\"busy\":false,\"version\":\"1.12.0-dev.8\",\"pyThreads\":4,\"addinVersion\":\"1.12.0-dev.8\",\"expectedAddinVersion\":\"1.12.0-dev.8\",\"addinStale\":false}", + "pyThreads": 4, + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "version": "1.12.0-dev.8" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0003-bridge_list.json b/docs/mechanical-verification/cp9-readonly/calls/0003-bridge_list.json new file mode 100644 index 0000000..adb9f61 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0003-bridge_list.json @@ -0,0 +1,1455 @@ +{ + "target": "adom_drew2", + "verb": "bridge_list", + "args": {}, + "requestJson": "{}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235851.039006, + "mutating": false, + "stdout": "{\n \"_hint\": \"Per-bridge runtime info. `source` tells you where the bridge code lives: bundled (installer ships it) / cache (wiki-streamed, writable) / third_party (installed via bridge_install). Use bridge_install to add a new bridge from a wiki manifest URL, bridge_pause/resume to control lifecycle without uninstalling, bridge_uninstall to remove. v1.8.0+.\",\n \"_skillsHint\": \"For each bridge here with skillPkg != null, the container should run its `installSkill` to get that bridge's SKILL.md into ~/.claude/skills/ (then `adom-wiki pkg update` keeps them current). skillPkg:null bridges ship their skill in the adom-bridge core pkg (or have none).\",\n \"bridges\": [\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"CAD\",\n \"depsInstallingSec\": null,\n \"description\": \"Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.\",\n \"devPinned\": true,\n \"displayName\": \"Autodesk Fusion 360\",\n \"docs\": \"https://wiki.adom.inc/adom/fusion-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360/adom-fusion-bridge.exe\",\n \"expectedImage\": \"adom-fusion-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/fusion-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360\",\n \"installSkill\": \"adom-wiki pkg install adom/fusion-bridge\",\n \"installedVersion\": \"1.12.0-dev.8\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Python\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791235850988,\n \"latest\": null,\n \"livePids\": [\n 42780\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/fusion360.log\",\n \"manifestSource\": null,\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/fusion-bridge/files/adom-bridge-fusion-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"fusion360\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"Autodesk doesn't ship Fusion 360 for Linux, so there's no host app for the add-in to attach to.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"Fusion 360 runs on macOS; bridge + add-in install paths handled by fusion_detect.py.\",\n \"supported\": true\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 50618,\n \"prewarm\": {\n \"assets\": [\n \"AdomBridge add-in sync\",\n \"PCB design-rules catalog cache\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T15:41:57Z\",\n \"elapsedMs\": 2344,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"fusion_prewarm\",\n \"version\": \"1.12.0-dev.5\"\n },\n \"requiresHostApp\": true,\n \"timeoutSeconds\": null,\n \"verb\": \"fusion_prewarm\"\n },\n \"releasedAt\": \"2026-06-26T06:00:00Z\",\n \"runningImage\": \"adom-fusion-bridge.exe\",\n \"runningVersion\": \"1.12.0-dev.5\",\n \"skillPkg\": \"adom/fusion-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360\",\n \"spawn\": {\n \"entrypoint\": \"adom-fusion-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 50618\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/fusion360\",\n \"status\": \"running\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"tags\": [\n \"fusion360\",\n \"autodesk\",\n \"cad\",\n \"exports\",\n \"aps\",\n \"modeling\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"open\",\n \"seconds\": 150\n }\n ],\n \"verbs\": {\n \"aps_open\": 150,\n \"aps_recent\": 120,\n \"aps_search\": 120,\n \"build_library_3d\": 1800,\n \"capture_library_views\": 600,\n \"close_all_documents\": 90,\n \"demo\": 300,\n \"export_3mf\": 360,\n \"export_board_image\": 90,\n \"export_bom\": 90,\n \"export_cpl\": 90,\n \"export_dwg\": 150,\n \"export_dxf\": 150,\n \"export_f3d\": 360,\n \"export_fbx\": 360,\n \"export_gerbers\": 210,\n \"export_iges\": 360,\n \"export_obj\": 360,\n \"export_sat\": 360,\n \"export_skp\": 360,\n \"export_step\": 360,\n \"export_stl\": 360,\n \"export_usdz\": 360,\n \"generate_package\": 120,\n \"get_preferences\": 25,\n \"install_fusion\": 90,\n \"make_3d_package\": 200,\n \"prewarm\": 120,\n \"run_modeling_script\": 180,\n \"search_cloud_files\": 200,\n \"set_preference\": 40,\n \"signin\": 150,\n \"start\": 90,\n \"walk_cloud_tree\": 620\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 21195.150169811783,\n \"verbCount\": 167,\n \"verbPrefixes\": [\n \"fusion_\"\n ],\n \"verbs\": [\n \"fusion_account\",\n \"fusion_action_ledger\",\n \"fusion_activate_document\",\n \"fusion_addin_status\",\n \"fusion_alerts\",\n \"fusion_apply_fusion_update\",\n \"fusion_aps_browse\",\n \"fusion_aps_create_folder\",\n \"fusion_aps_download\",\n \"fusion_aps_file_info\",\n \"fusion_aps_forget_browser\",\n \"fusion_aps_get\",\n \"fusion_aps_get_browser\",\n \"fusion_aps_open\",\n \"fusion_aps_recent\",\n \"fusion_aps_search\",\n \"fusion_aps_set_browser\",\n \"fusion_aps_set_client_id\",\n \"fusion_aps_signin\",\n \"fusion_aps_status\",\n \"fusion_aps_upload\",\n \"fusion_aps_versions\",\n \"fusion_assembly_bom\",\n \"fusion_attach_3d_package\",\n \"fusion_bind_library_3d\",\n \"fusion_board_info\",\n \"fusion_board_stackup\",\n \"fusion_build_library_3d\",\n \"fusion_cancel_run\",\n \"fusion_capture_library_views\",\n \"fusion_check_recovery\",\n \"fusion_claim_seat\",\n \"fusion_cleanup_cloud_files\",\n \"fusion_close_all_documents\",\n \"fusion_close_document\",\n \"fusion_close_window\",\n \"fusion_create_cloud_folder\",\n \"fusion_create_library\",\n \"fusion_delete_cloud_file\",\n \"fusion_demo\",\n \"fusion_demo_progress\",\n \"fusion_describe\",\n \"fusion_detect_layers\",\n \"fusion_dismiss_blocking_dialogs\",\n \"fusion_document_info\",\n \"fusion_eagle_import_status\",\n \"fusion_electron_pan\",\n \"fusion_electron_run\",\n \"fusion_electron_select\",\n \"fusion_electron_zoom\",\n \"fusion_electronics_query\",\n \"fusion_execute_text_command\",\n \"fusion_export_3mf\",\n \"fusion_export_board_image\",\n \"fusion_export_bom\",\n \"fusion_export_cloud_file\",\n \"fusion_export_cpl\",\n \"fusion_export_dwg\",\n \"fusion_export_dxf\",\n \"fusion_export_eagle_source\",\n \"fusion_export_f3d\",\n \"fusion_export_fbx\",\n \"fusion_export_gerbers\",\n \"fusion_export_iges\",\n \"fusion_export_lbr\",\n \"fusion_export_obj\",\n \"fusion_export_optimized_glb\",\n \"fusion_export_sat\",\n \"fusion_export_skp\",\n \"fusion_export_source\",\n \"fusion_export_step\",\n \"fusion_export_stl\",\n \"fusion_export_usdz\",\n \"fusion_fetch_optimized_glb\",\n \"fusion_generate_package\",\n \"fusion_get_app_state\",\n \"fusion_get_design_info\",\n \"fusion_get_parameters\",\n \"fusion_get_preferences\",\n \"fusion_import_electronics\",\n \"fusion_import_step\",\n \"fusion_inspect_bodies\",\n \"fusion_install_fusion\",\n \"fusion_install_library_bundle\",\n \"fusion_interactive\",\n \"fusion_kill\",\n \"fusion_library_manager\",\n \"fusion_library_parts\",\n \"fusion_list_cloud_files\",\n \"fusion_list_cloud_projects\",\n \"fusion_list_text_commands\",\n \"fusion_live_feed\",\n \"fusion_make_3d_package\",\n \"fusion_make_showcase_project\",\n \"fusion_make_test_project\",\n \"fusion_managed_library_create\",\n \"fusion_managed_library_link\",\n \"fusion_managed_library_pull\",\n \"fusion_managed_library_push\",\n \"fusion_managed_library_unlink\",\n \"fusion_mcp_call\",\n \"fusion_mcp_enable\",\n \"fusion_mcp_resources\",\n \"fusion_mcp_status\",\n \"fusion_mcp_tools\",\n \"fusion_mech_capabilities\",\n \"fusion_mech_operation_status\",\n \"fusion_mechanical\",\n \"fusion_narrate\",\n \"fusion_new_electronics_from_eagle\",\n \"fusion_notify_owner\",\n \"fusion_open_board\",\n \"fusion_open_by_urn\",\n \"fusion_open_by_urn_note\",\n \"fusion_open_cloud_file\",\n \"fusion_open_design\",\n \"fusion_open_electronics\",\n \"fusion_open_lbr\",\n \"fusion_open_schematic\",\n \"fusion_physical_properties\",\n \"fusion_plan_library_import\",\n \"fusion_plan_route\",\n \"fusion_preflight_lbr\",\n \"fusion_prefs_close\",\n \"fusion_prefs_open\",\n \"fusion_prewarm\",\n \"fusion_prove_result\",\n \"fusion_readiness\",\n \"fusion_release_seat\",\n \"fusion_reset_workspace\",\n \"fusion_resolve_seat_dialog\",\n \"fusion_restart_for_addin\",\n \"fusion_route_net\",\n \"fusion_routing_drc\",\n \"fusion_routing_state\",\n \"fusion_run_modeling_script\",\n \"fusion_save_to_cloud\",\n \"fusion_schematic\",\n \"fusion_screenshot_fusion\",\n \"fusion_search_cloud_files\",\n \"fusion_set_auto_update\",\n \"fusion_set_design_rules\",\n \"fusion_set_driving_badge\",\n \"fusion_set_parameter\",\n \"fusion_set_preference\",\n \"fusion_set_seat_takeover\",\n \"fusion_set_window_sizing\",\n \"fusion_show_2d_board\",\n \"fusion_show_3d_board\",\n \"fusion_show_3d_package\",\n \"fusion_show_attributes\",\n \"fusion_show_footprint\",\n \"fusion_show_library\",\n \"fusion_show_project\",\n \"fusion_show_schematic\",\n \"fusion_show_symbol\",\n \"fusion_signin\",\n \"fusion_signin_2fa\",\n \"fusion_start\",\n \"fusion_state\",\n \"fusion_stop\",\n \"fusion_take_screenshot\",\n \"fusion_uninstall\",\n \"fusion_verb_times\",\n \"fusion_view\",\n \"fusion_walk_cloud_tree\",\n \"fusion_web_signin\"\n ],\n \"version\": \"1.12.0-dev.8\",\n \"versionDrift\": true,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"developer-tools\",\n \"depsInstallingSec\": null,\n \"description\": \"Bridge to Hydrogen Desktop's HTTP control API. Drives setup, the Claude workspace, WSL/container lifecycle, and read-only diagnostics via direct HTTP \u2014 no shell-out, no quote mangling. HD runs as a sibling Tauri app; AD does NOT spawn it.\",\n \"devPinned\": false,\n \"displayName\": \"Hydrogen Desktop\",\n \"docs\": \"https://wiki.adom.inc/adom/adom-desktop\",\n \"entryMismatch\": false,\n \"entrypoint\": \"//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd/\",\n \"expectedImage\": null,\n \"heroAvailable\": false,\n \"heroDocs\": \"https://wiki.adom.inc/adom/hydrogen-desktop\",\n \"homepage\": \"https://wiki.adom.inc/adom/adom-desktop\",\n \"installPath\": \"\\\\\\\\?\\\\C:\\\\Users\\\\drew\\\\AppData\\\\Local\\\\Adom Bridge\\\\bridges\\\\hd\",\n \"installSkill\": \"adom-wiki pkg install adom/adom-desktop\",\n \"installedVersion\": \"1.0.0\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": null,\n \"languages\": [],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 0,\n \"latest\": null,\n \"livePids\": [],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/hd.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": null,\n \"manifestUrlFollowed\": null,\n \"name\": \"hd\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"HD currently ships Windows-only; Linux variant in scope for HD's future releases.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"HD currently ships Windows-only.\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": null,\n \"prewarm\": null,\n \"releasedAt\": \"2026-06-30T13:13:22Z\",\n \"runningImage\": null,\n \"runningVersion\": null,\n \"skillPkg\": \"adom/adom-desktop\",\n \"source\": \"bundled\",\n \"sourceDir\": \"//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd\",\n \"spawn\": {\n \"entrypoint\": \"\",\n \"instanceCount\": null,\n \"kind\": \"external-http\",\n \"manifestPort\": 47084,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": null\n },\n \"spawnKind\": \"external-http\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/hd\",\n \"status\": \"stopped\",\n \"statusVerb\": null,\n \"tags\": [\n \"hydrogen-desktop\",\n \"control-api\",\n \"http\",\n \"lifecycle\"\n ],\n \"timeouts\": null,\n \"updateAvailable\": false,\n \"usageScore\": 0.0,\n \"verbCount\": 11,\n \"verbPrefixes\": [],\n \"verbs\": [\n \"hd_api\",\n \"hd_status\",\n \"hd_launch\",\n \"hd_stop\",\n \"hd_restart\",\n \"hd_log\",\n \"hd_screenshot\",\n \"hd_shot\",\n \"hd_open_url\",\n \"hd_browser_profiles\",\n \"hd_ship\"\n ],\n \"version\": \"1.0.0\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"EDA\",\n \"depsInstallingSec\": null,\n \"description\": \"Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.\",\n \"devPinned\": false,\n \"displayName\": \"KiCad EDA\",\n \"docs\": \"https://wiki.adom.inc/adom/kicad-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad/kicad-bridge.exe\",\n \"expectedImage\": \"kicad-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad\",\n \"installSkill\": \"adom-wiki pkg install adom/kicad-bridge\",\n \"installedVersion\": \"1.0.55\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Python\",\n \"PowerShell\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1790956354547,\n \"latest\": \"1.0.55\",\n \"livePids\": [\n 36872\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/kicad.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/kicad-bridge/files/adom-bridge-kicad-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"kicad\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 60896,\n \"prewarm\": {\n \"assets\": [\n \"kicad-cli warm (detection)\",\n \"KiCad first-run config + setup wizard marked done\",\n \"KiCad's own taskbar shortcut identity\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T15:41:58Z\",\n \"elapsedMs\": 273,\n \"error\": null,\n \"ok\": false,\n \"verb\": \"kicad_prewarm\",\n \"version\": \"1.0.55\"\n },\n \"requiresHostApp\": true,\n \"timeoutSeconds\": null,\n \"verb\": \"kicad_prewarm\"\n },\n \"releasedAt\": \"2026-06-26T16:00:00Z\",\n \"runningImage\": \"kicad-bridge.exe\",\n \"runningVersion\": \"1.0.55\",\n \"skillPkg\": \"adom/kicad-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad\",\n \"spawn\": {\n \"entrypoint\": \"kicad-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": 60896\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/kicad\",\n \"status\": \"running\",\n \"statusVerb\": \"kicad_status\",\n \"tags\": [\n \"pcb\",\n \"schematic\",\n \"open-source\",\n \"kicad-10\",\n \"kicad-11-ready\"\n ],\n \"timeouts\": {\n \"default\": 130,\n \"prefixes\": [],\n \"verbs\": {\n \"autoroute\": 900,\n \"demo\": 600,\n \"enable_software_opengl\": 240,\n \"export_gerber\": 210,\n \"export_molecule\": 420,\n \"export_pdf\": 180,\n \"export_step\": 300,\n \"export_svg\": 180,\n \"format_upgrade\": 180,\n \"freerouting\": 900,\n \"open_3d_viewer\": 300,\n \"prewarm\": 120,\n \"run_drc\": 300,\n \"run_erc\": 300,\n \"upgrade\": 900\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 1037.968740980212,\n \"verbCount\": 119,\n \"verbPrefixes\": [\n \"kicad_\"\n ],\n \"verbs\": [\n \"kicad_describe\",\n \"kicad_status\",\n \"kicad_readiness\",\n \"kicad_list_versions\",\n \"kicad_diagnostics\",\n \"kicad_run_drc\",\n \"kicad_run_erc\",\n \"kicad_export_gerber\",\n \"kicad_export_pdf\",\n \"kicad_export_svg\",\n \"kicad_export_step\",\n \"kicad_export_bom_csv\",\n \"kicad_uninstall\",\n \"kicad_extract_netlist\",\n \"kicad_trace_net\",\n \"kicad_find_connections\",\n \"kicad_analyze_connections\",\n \"kicad_lint_board\",\n \"kicad_lint_schematic\",\n \"kicad_lint_library\",\n \"kicad_format_upgrade\",\n \"kicad_list_symbols\",\n \"kicad_list_footprints\",\n \"kicad_adom_library_status\",\n \"kicad_get_settings\",\n \"kicad_set_settings\",\n \"kicad_list_design_rules\",\n \"kicad_set_design_rules\",\n \"kicad_3d_viewer_settings\",\n \"kicad_taskbar_repair\",\n \"kicad_prewarm\",\n \"kicad_model_check\",\n \"kicad_pcm_list\",\n \"kicad_pcm_install\",\n \"kicad_pcm_uninstall\",\n \"kicad_pcm_add_repository\",\n \"kicad_pcm_remove_repository\",\n \"kicad_check_for_updates\",\n \"kicad_upgrade\",\n \"kicad_sch_place_symbol\",\n \"kicad_sch_wire\",\n \"kicad_sch_label\",\n \"kicad_sch_move\",\n \"kicad_sch_delete\",\n \"kicad_sch_set_property\",\n \"kicad_ipc_api\",\n \"kicad_export_molecule\",\n \"kicad_errors\",\n \"kicad_log_tail\",\n \"kicad_bridge_status\",\n \"kicad_bridge_call\",\n \"kicad_install_plugin\",\n \"kicad_plugin_diagnose\",\n \"kicad_install_library\",\n \"kicad_uninstall_library\",\n \"kicad_install_symbol\",\n \"kicad_install_footprint\",\n \"kicad_install_library_bundle\",\n \"kicad_adom_library_heal\",\n \"kicad_make_part_project\",\n \"kicad_export_part\",\n \"kicad_silk_fields_batch\",\n \"kicad_silk_graphics_batch\",\n \"kicad_text_bounds\",\n \"kicad_silk_text_batch\",\n \"kicad_routing_state\",\n \"kicad_route_net\",\n \"kicad_remove_route\",\n \"kicad_add_zone\",\n \"kicad_apply_zone_plan\",\n \"kicad_zone_state\",\n \"kicad_select_net\",\n \"kicad_select_clear\",\n \"kicad_remove_zone\",\n \"kicad_routing_validate\",\n \"kicad_board_pads\",\n \"kicad_add_track\",\n \"kicad_add_via\",\n \"kicad_route\",\n \"kicad_autoroute\",\n \"kicad_freerouting\",\n \"kicad_placement_state\",\n \"kicad_move_footprint\",\n \"kicad_placement_validate\",\n \"kicad_refresh_board_views\",\n \"kicad_launch\",\n \"kicad_open_board\",\n \"kicad_open_schematic\",\n \"kicad_open_symbol_editor\",\n \"kicad_open_footprint_editor\",\n \"kicad_menu_items\",\n \"kicad_3d_view\",\n \"kicad_open_3d_viewer\",\n \"kicad_open_editors\",\n \"kicad_close\",\n \"kicad_close_symbol_editor\",\n \"kicad_close_footprint_editor\",\n \"kicad_close_3d_viewer\",\n \"kicad_dismiss_dialogs\",\n \"kicad_window_info\",\n \"kicad_state\",\n \"kicad_screenshot_all\",\n \"kicad_send_key\",\n \"kicad_click\",\n \"kicad_fix_keyboard\",\n \"kicad_place_footprint\",\n \"kicad_enable_software_opengl\",\n \"kicad_rescan_libraries\",\n \"kicad_show_project\",\n \"kicad_show_symbol\",\n \"kicad_show_footprint\",\n \"kicad_show_3d_chip\",\n \"kicad_show_schematic\",\n \"kicad_show_2d_board\",\n \"kicad_show_3d_board\",\n \"kicad_show_library\",\n \"kicad_progress\",\n \"kicad_verb_times\",\n \"kicad_demo\"\n ],\n \"version\": \"1.0.55\",\n \"versionDrift\": false,\n \"watcher\": {\n \"configKey\": \"project_watch\",\n \"defaultGlobs\": [\n \"*.kicad_pcb\",\n \"*.kicad_sch\",\n \"*.kicad_pro\"\n ],\n \"description\": \"Monitors a KiCad project folder for file changes and syncs them to Docker. Configured via the set_project_watch / trigger_project_watch verbs (AD core owns the watcher; the KiCad section of AD's Settings panel was removed in AD 1.9.117 \u2014 the config keys are still honored).\",\n \"displayName\": \"Project Watch\",\n \"supports\": true\n }\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Browser Automation\",\n \"depsInstallingSec\": null,\n \"description\": \"Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.\",\n \"devPinned\": false,\n \"displayName\": \"Adom Native Browser\",\n \"docs\": \"https://wiki.adom.inc/adom/nb-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser/server.js\",\n \"expectedImage\": \"node.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/nb-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser\",\n \"installSkill\": \"adom-wiki pkg install adom/nb-bridge\",\n \"installedVersion\": \"0.16.33\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Node/JS\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791220671752,\n \"latest\": \"0.16.33\",\n \"livePids\": [\n 32228\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/native-browser.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/pages/adom/nb-bridge/files/native-browser-bridge-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"native-browser\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"Pending; bridge + host are OS-agnostic Node, only the install/registration layer is Windows-specific.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"Windows-first; Kyle ports to macOS as a fast-follow (NativeMessagingHosts live under ~/Library/Application Support//NativeMessagingHosts; bridge/host are OS-agnostic Node).\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 51703,\n \"prewarm\": {\n \"assets\": [],\n \"lastRun\": {\n \"at\": \"2026-09-22T19:44:55Z\",\n \"elapsedMs\": 41,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"nbrowser_prewarm\",\n \"version\": \"0.16.33\"\n },\n \"requiresHostApp\": false,\n \"timeoutSeconds\": null,\n \"verb\": \"nbrowser_prewarm\"\n },\n \"releasedAt\": \"2026-09-22T15:18:44Z\",\n \"runningImage\": \"node.exe\",\n \"runningVersion\": \"0.16.33\",\n \"skillPkg\": \"adom/nb-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser\",\n \"spawn\": {\n \"entrypoint\": \"server.js\",\n \"instanceCount\": 1,\n \"kind\": \"node\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 51703\n },\n \"spawnKind\": \"node\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/native-browser\",\n \"status\": \"running\",\n \"statusVerb\": \"nbrowser_status\",\n \"tags\": [\n \"nb\",\n \"nbe\",\n \"native-browser\",\n \"chrome\",\n \"edge\",\n \"nbrowser\",\n \"pup-parity\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"screenshot\",\n \"seconds\": 120\n },\n {\n \"prefix\": \"record\",\n \"seconds\": 120\n }\n ],\n \"verbs\": {\n \"fetch_url\": 120,\n \"input_dispatch\": 120,\n \"select\": 30,\n \"wait\": 125\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 917.2194291149124,\n \"verbCount\": 88,\n \"verbPrefixes\": [\n \"nbrowser_\"\n ],\n \"verbs\": [\n \"nbrowser_status\",\n \"nbrowser_readiness\",\n \"nbrowser_install_chrome\",\n \"nbrowser_prewarm\",\n \"nbrowser_chrome_status\",\n \"nbrowser_ping\",\n \"nbrowser_progress\",\n \"nbrowser_activity\",\n \"nbrowser_open_window\",\n \"nbrowser_close_window\",\n \"nbrowser_owned\",\n \"nbrowser_cleanup\",\n \"nbrowser_force_close\",\n \"nbrowser_switch_window\",\n \"nbrowser_list_windows\",\n \"nbrowser_window_state\",\n \"nbrowser_fullscreen\",\n \"nbrowser_login_state\",\n \"nbrowser_credentials\",\n \"nbrowser_profiles\",\n \"nbrowser_use_profile\",\n \"nbrowser_pin_session\",\n \"nbrowser_open_os_window\",\n \"nbrowser_os_windows\",\n \"nbrowser_wake_profile\",\n \"nbrowser_resolve_profiles\",\n \"nbrowser_whoami\",\n \"nbrowser_profile_block\",\n \"nbrowser_profile_unblock\",\n \"nbrowser_rescan\",\n \"nbrowser_resync_sessions\",\n \"nbrowser_open_tab\",\n \"nbrowser_close_tab\",\n \"nbrowser_switch_tab\",\n \"nbrowser_list_tabs\",\n \"nbrowser_navigate\",\n \"nbrowser_reload\",\n \"nbrowser_back\",\n \"nbrowser_forward\",\n \"nbrowser_wait\",\n \"nbrowser_wait_for\",\n \"nbrowser_keepalive\",\n \"nbrowser_screenshot\",\n \"nbrowser_screenshot_full_res\",\n \"nbrowser_eval\",\n \"nbrowser_evaluate\",\n \"nbrowser_input_dispatch\",\n \"nbrowser_scroll\",\n \"nbrowser_click\",\n \"nbrowser_select\",\n \"nbrowser_set_file_input\",\n \"nbrowser_set_date\",\n \"nbrowser_totp\",\n \"nbrowser_register_totp\",\n \"nbrowser_add_extension_origin\",\n \"nbrowser_type\",\n \"nbrowser_press_key\",\n \"nbrowser_fetch_url\",\n \"nbrowser_download_wait\",\n \"nbrowser_errors\",\n \"nbrowser_close\",\n \"nbrowser_record_start\",\n \"nbrowser_record_stop\",\n \"nbrowser_record_status\",\n \"nbrowser_record_list\",\n \"nbrowser_flash\",\n \"nbrowser_flash_stop\",\n \"nbrowser_apply_settings\",\n \"nbrowser_settings\",\n \"nbrowser_flash_mode\",\n \"nbrowser_taskbar\",\n \"nbrowser_describe\",\n \"nbrowser_handle_dialog\",\n \"nbrowser_state\",\n \"nbrowser_demo\",\n \"nbrowser_uninstall\",\n \"nbrowser_dev_reload\",\n \"nbrowser_clear_cookies\",\n \"nbrowser_caption\",\n \"nbrowser_focus\",\n \"nbrowser_hover\",\n \"nbrowser_double_click\",\n \"nbrowser_right_click\",\n \"nbrowser_login_form\",\n \"nbrowser_autologin\",\n \"nbrowser_cursor\",\n \"nbrowser_events\",\n \"nbrowser_download\"\n ],\n \"version\": \"0.16.33\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Manufacturing\",\n \"depsInstallingSec\": null,\n \"description\": \"The Adom Desktop bridge for the Essemtec Puma / ePlace. Reads + dry-run: machine state, recipe/package/component/feeder reads, the full feeder fleet from Supply/Feeder/*.feeder.xml, and dry-run of any WriteOp (preflight + physics-bounds + unified diff). F4 adds puma_write \u2014 GATED production writes of FileWrite.* library objects to real XML files under --data-folder (atomic write + XML-verify + audit; approver enforced; refused when the machine is Productive), plus puma_revert \u2014 canonical revert of a prior write by correlationId (CAS-pinned to the recorded result hash, its own audit entry, same write gate). Off by default: requires --enable-writes. eData stays vendor-read-only. 0.2.5: puma_feeders binds each loaded lane to its component/part number (carrierType, componentName, partValue, packageName, componentBarcode) via the Supply/Carrier -> Component library chain (#639). 0.2.6: the write audit records ab's X-Adom-Verified-Origin (relay | local | bridge, plus the X-Adom-Caller-Delegate chain for a bridge callback; a missing header records as local-unattributed) beside the approver \u2014 attribution, never a gate. New puma_write_status (declared as statusVerb): what happened to a write by correlationId, so a caller whose transport timed out polls instead of declaring the write unknown. 0.2.7: the host is a GUI-subsystem exe (no console window of its own) and its git subprocess runs with CreateNoWindow, so the bridge can never leave a conhost window on the desktop across ab respawns or reinstalls.\",\n \"devPinned\": false,\n \"displayName\": \"Puma Bridge (Essemtec ePlace)\",\n \"docs\": \"https://wiki.adom.inc/adom/puma-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge/puma-bridge-host.exe\",\n \"expectedImage\": \"puma-bridge-host.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/puma-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge\",\n \"installSkill\": \"adom-wiki pkg install adom/puma-bridge\",\n \"installedVersion\": \"0.2.7\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1790623763822,\n \"latest\": \"0.2.6\",\n \"livePids\": [\n 32008\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/puma-bridge.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/adom/puma-bridge/files/adom-bridge-puma-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"puma-bridge\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"\",\n \"supported\": true\n },\n \"macos\": {\n \"reason\": \"\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 64764,\n \"prewarm\": null,\n \"releasedAt\": \"2026-09-23T15:54:11Z\",\n \"runningImage\": \"puma-bridge-host.exe\",\n \"runningVersion\": \"0.2.7\",\n \"skillPkg\": \"adom/puma-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge\",\n \"spawn\": {\n \"entrypoint\": \"puma-bridge-host.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 64764\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/puma-bridge\",\n \"status\": \"running\",\n \"statusVerb\": \"puma_write_status\",\n \"tags\": [\n \"smt\",\n \"essemtec\",\n \"puma\",\n \"eplace\",\n \"pick-and-place\",\n \"manufacturing\",\n \"factoryos\"\n ],\n \"timeouts\": null,\n \"updateAvailable\": false,\n \"usageScore\": 2.6915386721705734,\n \"verbCount\": 9,\n \"verbPrefixes\": [\n \"puma_\"\n ],\n \"verbs\": [\n \"puma_ping\",\n \"puma_state\",\n \"puma_get\",\n \"puma_feeders\",\n \"puma_dryrun\",\n \"puma_write\",\n \"puma_revert\",\n \"puma_write_status\",\n \"puma_describe\"\n ],\n \"version\": \"0.2.7\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"Browser Automation\",\n \"depsInstallingSec\": null,\n \"description\": \"Drives a browser ALREADY on the machine \u2014 installed Chrome, else Microsoft Edge (every Windows PC ships with Edge) \u2014 launched with a FRESH isolated profile, so the common case has NO ~150 MB Chrome-for-Testing download and it never touches the user's real tabs/logins. Binds its local server to LOOPBACK (127.0.0.1) only, so no Windows Firewall 'allow Node through the firewall' prompt ever pops. Chrome for Testing is fetched only as a LAST RESORT if the machine has no Chromium browser at all. SPAWN-VERIFIED fallback: pup tries each detected browser (Chrome \u2192 Edge \u2192 CfT) and actually launches it, falling through to the next if one won't start (and handling browsers like Edge that relaunch onto another PID), so a corrupt/partial install never hard-fails an open. The browser that launches is cached as the default (persisted across restarts) so it isn't re-probed each time. On spawn the bridge SELF-WARMS: detects browsers + disk, and only if the box has no Chrome/Edge and no cached CfT does it background-fetch CfT so the first open is instant. pup_use pins a specific browser (chrome | edge | cft | auto); {browser:'chrome',install:true} downloads & installs REAL Google Chrome (user-scoped, no admin) on an Edge-only box. pup_readiness (READ-ONLY) reports which browser will be used + the full candidate list + the default + free disk. Every failure returns a specific errorCode + _hint (chrome_install_no_disk, chrome_download_network, chrome_install_permission, chrome_stable_not_detected, \u2026). Launches with FULL browser permissions by default for full debug (strictPermissions:true opts out). Headful automation: open/close windows+tabs, navigate, screenshot, eval JS, record. pup is a GENERIC, non-profile browser only \u2014 every session is a fresh isolated Chrome/Edge process, never the user's real signed-in browser; profile defaults to sessionId. To drive the user's REAL Chrome/Edge (their profile, cookies, SSO), use the Adom browser EXTENSION's nbrowser_* verbs \u2014 a separate bridge, not pup's job. macOS (v1.9.74+): full parity with mac-native mechanics \u2014 background-by-default is the app-level hide (windows stay drivable/screenshottable while hidden), raise/lower map to unhide+activate/hide, pup_alert_window posts a native toast whose click focuses the window, pup_use {browser:'chrome',install:true} installs Chrome from the official dmg, and taskbar identity/badging remains Windows-only.\",\n \"devPinned\": false,\n \"displayName\": \"Puppeteer (Chrome for Testing + Native)\",\n \"docs\": \"https://wiki.adom.inc/adom/pup-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer/adom-pup-bridge.exe\",\n \"expectedImage\": \"adom-pup-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer\",\n \"installSkill\": \"adom-wiki pkg install adom/pup-bridge\",\n \"installedVersion\": \"2.0.697\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 1,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791212202067,\n \"latest\": \"2.0.697\",\n \"livePids\": [\n 68812\n ],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/puppeteer.log\",\n \"manifestSource\": \"insidersManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/pup-bridge/files/adom-bridge-puppeteer-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"puppeteer\",\n \"paused\": false,\n \"persistent\": true,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"not yet\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"The Rust exe is Windows-only for now; host-mac is stubbed for the Mac port. macOS runs the Node build (public tier).\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 57134,\n \"prewarm\": {\n \"assets\": [\n \"chrome-for-testing\"\n ],\n \"lastRun\": {\n \"at\": \"2026-10-05T14:55:58Z\",\n \"elapsedMs\": 1409,\n \"error\": null,\n \"ok\": true,\n \"verb\": \"pup_prewarm\",\n \"version\": \"2.0.697\"\n },\n \"requiresHostApp\": false,\n \"timeoutSeconds\": 900,\n \"verb\": \"pup_prewarm\"\n },\n \"releasedAt\": \"2026-10-05T14:55:48Z\",\n \"runningImage\": \"adom-pup-bridge.exe\",\n \"runningVersion\": \"2.0.697\",\n \"skillPkg\": \"adom/pup-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer\",\n \"spawn\": {\n \"entrypoint\": \"adom-pup-bridge.exe\",\n \"instanceCount\": 1,\n \"kind\": \"exe\",\n \"manifestPort\": 8851,\n \"persistent\": true,\n \"portBlocked\": null,\n \"runtimePort\": 57134\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/puppeteer\",\n \"status\": \"running\",\n \"statusVerb\": \"pup_readiness\",\n \"tags\": [\n \"puppeteer\",\n \"chrome\",\n \"headful\",\n \"recording\"\n ],\n \"timeouts\": {\n \"default\": 60,\n \"prefixes\": [\n {\n \"prefix\": \"record\",\n \"seconds\": 90\n }\n ],\n \"verbs\": {\n \"credential_reveal\": 150,\n \"fill_card\": 150,\n \"open_window\": 150,\n \"prewarm\": 240,\n \"use\": 240\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 580.1289752252278,\n \"verbCount\": 97,\n \"verbPrefixes\": [\n \"pup_\",\n \"browser_\"\n ],\n \"verbs\": [\n \"pup_describe\",\n \"pup_readiness\",\n \"pup_prewarm\",\n \"pup_status\",\n \"pup_list_windows\",\n \"pup_my_windows\",\n \"pup_list_sessions\",\n \"pup_open_window\",\n \"pup_navigate\",\n \"pup_eval\",\n \"pup_evaluate\",\n \"pup_screenshot\",\n \"pup_close_window\",\n \"pup_close\",\n \"pup_close_all_windows\",\n \"pup_window_info\",\n \"pup_open_tab\",\n \"pup_list_tabs\",\n \"pup_switch_tab\",\n \"pup_close_tab\",\n \"pup_switch_window\",\n \"pup_click\",\n \"pup_select\",\n \"pup_hover\",\n \"pup_type\",\n \"pup_press_key\",\n \"pup_scroll\",\n \"pup_fill\",\n \"pup_wait\",\n \"pup_reload\",\n \"pup_back\",\n \"pup_forward\",\n \"pup_set_viewport\",\n \"pup_errors\",\n \"pup_dialog\",\n \"pup_input_dispatch\",\n \"pup_render_html\",\n \"pup_fetch_url\",\n \"pup_maximize\",\n \"pup_raise_os_window\",\n \"pup_focus_window\",\n \"pup_lower_os_window\",\n \"pup_alert_window\",\n \"pup_progress\",\n \"pup_configure\",\n \"pup_use\",\n \"pup_clear_cookies\",\n \"pup_clear_site_data\",\n \"pup_quit_idle_browsers\",\n \"pup_rescan\",\n \"pup_restart_browser\",\n \"pup_set_identity\",\n \"pup_audit_icons\",\n \"pup_dashboard\",\n \"pup_credentials\",\n \"credential_list\",\n \"credential_set\",\n \"credential_delete\",\n \"pup_login\",\n \"pup_google_accounts\",\n \"pup_google_signin\",\n \"pup_credential_reveal\",\n \"pup_card_set\",\n \"pup_cards\",\n \"pup_card_delete\",\n \"pup_fill_card\",\n \"pup_wiki_set_view\",\n \"pup_annotate\",\n \"pup_floaty_click\",\n \"pup_record_start\",\n \"pup_record_stop\",\n \"pup_record_status\",\n \"pup_record_list\",\n \"pup_recorder_open\",\n \"pup_recorder_close\",\n \"pup_screen_record_start\",\n \"pup_screen_record_stop\",\n \"pup_screen_record_status\",\n \"pup_screen_record_list\",\n \"pup_highfps_extend\",\n \"pup_screenshot_element\",\n \"pup_screenshot_full_res\",\n \"pup_download\",\n \"pup_launch\",\n \"pup_deps\",\n \"pup_install_toolbar\",\n \"pup_reap_profiles\",\n \"pup_cache_prune\",\n \"pup_sweep_identities\",\n \"pup_uninstall\",\n \"pup_move_to_workspace\",\n \"pup_assisted_click\",\n \"pup_import_scan\",\n \"pup_import_browser_logins\",\n \"pup_vault_sync\",\n \"pup_vault_export\",\n \"pup_vault_import\"\n ],\n \"version\": \"2.0.697\",\n \"versionDrift\": false,\n \"watcher\": null\n },\n {\n \"author\": \"Adom Inc.\",\n \"category\": \"MCAD\",\n \"depsInstallingSec\": null,\n \"description\": \"Bridge for SOLIDWORKS desktop CAD \u2014 create and open documents, a modeling DSL, file management (find/open/save/export/Pack and Go), custom properties, BOM generation, design analysis (mass properties, bodies, parameters, interference, rebuild health) and background window/dialog etiquette, over the SOLIDWORKS COM API. Single native binary: no interpreter, no PowerShell, ~10ms cold start.\",\n \"devPinned\": false,\n \"displayName\": \"SOLIDWORKS\",\n \"docs\": \"https://wiki.adom.inc/adom/solidworks-bridge\",\n \"entryMismatch\": false,\n \"entrypoint\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks/swx-bridge.exe\",\n \"expectedImage\": \"swx-bridge.exe\",\n \"heroAvailable\": false,\n \"heroDocs\": null,\n \"homepage\": \"https://wiki.adom.inc/adom/adom-bridge\",\n \"installPath\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks\",\n \"installSkill\": \"adom-wiki pkg install adom/solidworks-bridge\",\n \"installedVersion\": \"0.9.21\",\n \"installedVersionSource\": \"cache\",\n \"instanceCount\": 0,\n \"languages\": [\n \"Binary\"\n ],\n \"lastSpawnError\": null,\n \"lastUsedMs\": 1791224978746,\n \"latest\": \"0.9.19\",\n \"livePids\": [],\n \"logPath\": \"C:/Users/drew/.adom/bridge-logs/solidworks.log\",\n \"manifestSource\": \"updateManifestUrl\",\n \"manifestUrl\": \"https://wiki.adom.inc/api/v1/pages/solidworks-bridge/files/adom-bridge-solidworks-manifest.json\",\n \"manifestUrlFollowed\": null,\n \"name\": \"solidworks\",\n \"paused\": false,\n \"persistent\": false,\n \"platforms\": {\n \"linux\": {\n \"reason\": \"SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.\",\n \"supported\": false\n },\n \"macos\": {\n \"reason\": \"SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.\",\n \"supported\": false\n },\n \"windows\": {\n \"reason\": \"\",\n \"supported\": true\n }\n },\n \"port\": 49861,\n \"prewarm\": null,\n \"releasedAt\": \"2026-10-05T18:49:46Z\",\n \"runningImage\": null,\n \"runningVersion\": \"0.9.19\",\n \"skillPkg\": \"adom/solidworks-bridge\",\n \"source\": \"cache\",\n \"sourceDir\": \"C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks\",\n \"spawn\": {\n \"entrypoint\": \"swx-bridge.exe\",\n \"instanceCount\": 0,\n \"kind\": \"exe\",\n \"manifestPort\": 0,\n \"persistent\": false,\n \"portBlocked\": null,\n \"runtimePort\": 49861\n },\n \"spawnKind\": \"exe\",\n \"stableUrl\": \"http://127.0.0.1:24680/open/solidworks\",\n \"status\": \"running\",\n \"statusVerb\": \"swx_status\",\n \"tags\": [\n \"solidworks\",\n \"mcad\",\n \"cad\",\n \"bom\",\n \"step\",\n \"mass-properties\",\n \"modeling\",\n \"fusion-parity\"\n ],\n \"timeouts\": {\n \"default\": 120,\n \"prefixes\": [],\n \"verbs\": {\n \"action_ledger\": 20,\n \"activate_document\": 180,\n \"bom\": 300,\n \"check_recovery\": 180,\n \"close_all_documents\": 240,\n \"close_all_safely\": 600,\n \"close_doc\": 180,\n \"close_import_temps\": 600,\n \"close_window\": 120,\n \"cloud_status\": 90,\n \"design_info\": 180,\n \"dismiss_blocking_dialogs\": 180,\n \"document_info\": 120,\n \"export\": 300,\n \"export_3mf\": 300,\n \"export_dwg\": 300,\n \"export_dxf\": 300,\n \"export_glb\": 300,\n \"export_iges\": 300,\n \"export_parasolid\": 300,\n \"export_pdf\": 300,\n \"export_sat\": 300,\n \"export_step\": 300,\n \"export_stl\": 300,\n \"find_files\": 180,\n \"get_app_state\": 90,\n \"get_parameters\": 240,\n \"get_preferences\": 90,\n \"import\": 420,\n \"inspect_bodies\": 180,\n \"interference\": 600,\n \"kill\": 240,\n \"new_document\": 180,\n \"open\": 300,\n \"pack_and_go\": 600,\n \"rebuild_check\": 300,\n \"render_image\": 600,\n \"reset_workspace\": 600,\n \"run_script\": 420,\n \"save_as\": 420,\n \"set_driving_badge\": 120,\n \"set_parameter\": 420,\n \"set_preference\": 90,\n \"show_assembly\": 600,\n \"show_drawing\": 600,\n \"show_part\": 600,\n \"shutdown\": 900,\n \"sign_in\": 240,\n \"start\": 300,\n \"state\": 180,\n \"stop\": 420,\n \"verb_times\": 20,\n \"window_info\": 120\n }\n },\n \"updateAvailable\": false,\n \"usageScore\": 561.391464863097,\n \"verbCount\": 69,\n \"verbPrefixes\": [\n \"swx_\"\n ],\n \"verbs\": [\n \"swx_action_ledger\",\n \"swx_activate_document\",\n \"swx_add_component\",\n \"swx_bom\",\n \"swx_check_recovery\",\n \"swx_close_all_documents\",\n \"swx_close_all_safely\",\n \"swx_close_doc\",\n \"swx_close_import_temps\",\n \"swx_close_window\",\n \"swx_cloud_status\",\n \"swx_com_eval\",\n \"swx_describe\",\n \"swx_design_info\",\n \"swx_dismiss_blocking_dialogs\",\n \"swx_docs\",\n \"swx_document_info\",\n \"swx_export\",\n \"swx_export_3mf\",\n \"swx_export_dwg\",\n \"swx_export_dxf\",\n \"swx_export_glb\",\n \"swx_export_iges\",\n \"swx_export_parasolid\",\n \"swx_export_pdf\",\n \"swx_export_sat\",\n \"swx_export_step\",\n \"swx_export_stl\",\n \"swx_find_files\",\n \"swx_get_app_state\",\n \"swx_get_parameters\",\n \"swx_get_preferences\",\n \"swx_import\",\n \"swx_inspect_bodies\",\n \"swx_interference\",\n \"swx_kill\",\n \"swx_mass_properties\",\n \"swx_new_document\",\n \"swx_open\",\n \"swx_pack_and_go\",\n \"swx_progress\",\n \"swx_props_get\",\n \"swx_props_set\",\n \"swx_readiness\",\n \"swx_rebuild_check\",\n \"swx_recover_list\",\n \"swx_render_image\",\n \"swx_reset_workspace\",\n \"swx_run_macro\",\n \"swx_run_script\",\n \"swx_save\",\n \"swx_save_as\",\n \"swx_screenshot\",\n \"swx_set_driving_badge\",\n \"swx_set_parameter\",\n \"swx_set_preference\",\n \"swx_show_assembly\",\n \"swx_show_drawing\",\n \"swx_show_part\",\n \"swx_shutdown\",\n \"swx_sign_in\",\n \"swx_start\",\n \"swx_state\",\n \"swx_status\",\n \"swx_stop\",\n \"swx_uninstall\",\n \"swx_user_presence\",\n \"swx_verb_times\",\n \"swx_window_info\"\n ],\n \"version\": \"0.9.21\",\n \"versionDrift\": true,\n \"watcher\": null\n }\n ],\n \"current_os\": \"windows\",\n \"durationMs\": 18,\n \"error\": \"\",\n \"invalidCount\": 0,\n \"ok\": true,\n \"output\": \"\",\n \"schemaVersion\": 1,\n \"staleCheckedAt\": 1791215191,\n \"status\": \"ok\",\n \"success\": true,\n \"summary\": {\n \"bundled\": 1,\n \"cache\": 6,\n \"invalid\": 0,\n \"paused\": 0,\n \"third_party\": 0,\n \"total\": 7\n },\n \"timeoutSeconds\": 10\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235851.0636072, + "raw": { + "_hint": "Per-bridge runtime info. `source` tells you where the bridge code lives: bundled (installer ships it) / cache (wiki-streamed, writable) / third_party (installed via bridge_install). Use bridge_install to add a new bridge from a wiki manifest URL, bridge_pause/resume to control lifecycle without uninstalling, bridge_uninstall to remove. v1.8.0+.", + "_skillsHint": "For each bridge here with skillPkg != null, the container should run its `installSkill` to get that bridge's SKILL.md into ~/.claude/skills/ (then `adom-wiki pkg update` keeps them current). skillPkg:null bridges ship their skill in the adom-bridge core pkg (or have none).", + "bridges": [ + { + "author": "Adom Inc.", + "category": "CAD", + "depsInstallingSec": null, + "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.", + "devPinned": true, + "displayName": "Autodesk Fusion 360", + "docs": "https://wiki.adom.inc/adom/fusion-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360/adom-fusion-bridge.exe", + "expectedImage": "adom-fusion-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/fusion-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360", + "installSkill": "adom-wiki pkg install adom/fusion-bridge", + "installedVersion": "1.12.0-dev.8", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Python" + ], + "lastSpawnError": null, + "lastUsedMs": 1791235850988, + "latest": null, + "livePids": [ + 42780 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/fusion360.log", + "manifestSource": null, + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/fusion-bridge/files/adom-bridge-fusion-manifest.json", + "manifestUrlFollowed": null, + "name": "fusion360", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "Autodesk doesn't ship Fusion 360 for Linux, so there's no host app for the add-in to attach to.", + "supported": false + }, + "macos": { + "reason": "Fusion 360 runs on macOS; bridge + add-in install paths handled by fusion_detect.py.", + "supported": true + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 50618, + "prewarm": { + "assets": [ + "AdomBridge add-in sync", + "PCB design-rules catalog cache" + ], + "lastRun": { + "at": "2026-10-05T15:41:57Z", + "elapsedMs": 2344, + "error": null, + "ok": true, + "verb": "fusion_prewarm", + "version": "1.12.0-dev.5" + }, + "requiresHostApp": true, + "timeoutSeconds": null, + "verb": "fusion_prewarm" + }, + "releasedAt": "2026-06-26T06:00:00Z", + "runningImage": "adom-fusion-bridge.exe", + "runningVersion": "1.12.0-dev.5", + "skillPkg": "adom/fusion-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/fusion360", + "spawn": { + "entrypoint": "adom-fusion-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 50618 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/fusion360", + "status": "running", + "statusVerb": "fusion_get_app_state", + "tags": [ + "fusion360", + "autodesk", + "cad", + "exports", + "aps", + "modeling" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "open", + "seconds": 150 + } + ], + "verbs": { + "aps_open": 150, + "aps_recent": 120, + "aps_search": 120, + "build_library_3d": 1800, + "capture_library_views": 600, + "close_all_documents": 90, + "demo": 300, + "export_3mf": 360, + "export_board_image": 90, + "export_bom": 90, + "export_cpl": 90, + "export_dwg": 150, + "export_dxf": 150, + "export_f3d": 360, + "export_fbx": 360, + "export_gerbers": 210, + "export_iges": 360, + "export_obj": 360, + "export_sat": 360, + "export_skp": 360, + "export_step": 360, + "export_stl": 360, + "export_usdz": 360, + "generate_package": 120, + "get_preferences": 25, + "install_fusion": 90, + "make_3d_package": 200, + "prewarm": 120, + "run_modeling_script": 180, + "search_cloud_files": 200, + "set_preference": 40, + "signin": 150, + "start": 90, + "walk_cloud_tree": 620 + } + }, + "updateAvailable": false, + "usageScore": 21195.150169811783, + "verbCount": 167, + "verbPrefixes": [ + "fusion_" + ], + "verbs": [ + "fusion_account", + "fusion_action_ledger", + "fusion_activate_document", + "fusion_addin_status", + "fusion_alerts", + "fusion_apply_fusion_update", + "fusion_aps_browse", + "fusion_aps_create_folder", + "fusion_aps_download", + "fusion_aps_file_info", + "fusion_aps_forget_browser", + "fusion_aps_get", + "fusion_aps_get_browser", + "fusion_aps_open", + "fusion_aps_recent", + "fusion_aps_search", + "fusion_aps_set_browser", + "fusion_aps_set_client_id", + "fusion_aps_signin", + "fusion_aps_status", + "fusion_aps_upload", + "fusion_aps_versions", + "fusion_assembly_bom", + "fusion_attach_3d_package", + "fusion_bind_library_3d", + "fusion_board_info", + "fusion_board_stackup", + "fusion_build_library_3d", + "fusion_cancel_run", + "fusion_capture_library_views", + "fusion_check_recovery", + "fusion_claim_seat", + "fusion_cleanup_cloud_files", + "fusion_close_all_documents", + "fusion_close_document", + "fusion_close_window", + "fusion_create_cloud_folder", + "fusion_create_library", + "fusion_delete_cloud_file", + "fusion_demo", + "fusion_demo_progress", + "fusion_describe", + "fusion_detect_layers", + "fusion_dismiss_blocking_dialogs", + "fusion_document_info", + "fusion_eagle_import_status", + "fusion_electron_pan", + "fusion_electron_run", + "fusion_electron_select", + "fusion_electron_zoom", + "fusion_electronics_query", + "fusion_execute_text_command", + "fusion_export_3mf", + "fusion_export_board_image", + "fusion_export_bom", + "fusion_export_cloud_file", + "fusion_export_cpl", + "fusion_export_dwg", + "fusion_export_dxf", + "fusion_export_eagle_source", + "fusion_export_f3d", + "fusion_export_fbx", + "fusion_export_gerbers", + "fusion_export_iges", + "fusion_export_lbr", + "fusion_export_obj", + "fusion_export_optimized_glb", + "fusion_export_sat", + "fusion_export_skp", + "fusion_export_source", + "fusion_export_step", + "fusion_export_stl", + "fusion_export_usdz", + "fusion_fetch_optimized_glb", + "fusion_generate_package", + "fusion_get_app_state", + "fusion_get_design_info", + "fusion_get_parameters", + "fusion_get_preferences", + "fusion_import_electronics", + "fusion_import_step", + "fusion_inspect_bodies", + "fusion_install_fusion", + "fusion_install_library_bundle", + "fusion_interactive", + "fusion_kill", + "fusion_library_manager", + "fusion_library_parts", + "fusion_list_cloud_files", + "fusion_list_cloud_projects", + "fusion_list_text_commands", + "fusion_live_feed", + "fusion_make_3d_package", + "fusion_make_showcase_project", + "fusion_make_test_project", + "fusion_managed_library_create", + "fusion_managed_library_link", + "fusion_managed_library_pull", + "fusion_managed_library_push", + "fusion_managed_library_unlink", + "fusion_mcp_call", + "fusion_mcp_enable", + "fusion_mcp_resources", + "fusion_mcp_status", + "fusion_mcp_tools", + "fusion_mech_capabilities", + "fusion_mech_operation_status", + "fusion_mechanical", + "fusion_narrate", + "fusion_new_electronics_from_eagle", + "fusion_notify_owner", + "fusion_open_board", + "fusion_open_by_urn", + "fusion_open_by_urn_note", + "fusion_open_cloud_file", + "fusion_open_design", + "fusion_open_electronics", + "fusion_open_lbr", + "fusion_open_schematic", + "fusion_physical_properties", + "fusion_plan_library_import", + "fusion_plan_route", + "fusion_preflight_lbr", + "fusion_prefs_close", + "fusion_prefs_open", + "fusion_prewarm", + "fusion_prove_result", + "fusion_readiness", + "fusion_release_seat", + "fusion_reset_workspace", + "fusion_resolve_seat_dialog", + "fusion_restart_for_addin", + "fusion_route_net", + "fusion_routing_drc", + "fusion_routing_state", + "fusion_run_modeling_script", + "fusion_save_to_cloud", + "fusion_schematic", + "fusion_screenshot_fusion", + "fusion_search_cloud_files", + "fusion_set_auto_update", + "fusion_set_design_rules", + "fusion_set_driving_badge", + "fusion_set_parameter", + "fusion_set_preference", + "fusion_set_seat_takeover", + "fusion_set_window_sizing", + "fusion_show_2d_board", + "fusion_show_3d_board", + "fusion_show_3d_package", + "fusion_show_attributes", + "fusion_show_footprint", + "fusion_show_library", + "fusion_show_project", + "fusion_show_schematic", + "fusion_show_symbol", + "fusion_signin", + "fusion_signin_2fa", + "fusion_start", + "fusion_state", + "fusion_stop", + "fusion_take_screenshot", + "fusion_uninstall", + "fusion_verb_times", + "fusion_view", + "fusion_walk_cloud_tree", + "fusion_web_signin" + ], + "version": "1.12.0-dev.8", + "versionDrift": true, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "developer-tools", + "depsInstallingSec": null, + "description": "Bridge to Hydrogen Desktop's HTTP control API. Drives setup, the Claude workspace, WSL/container lifecycle, and read-only diagnostics via direct HTTP \u2014 no shell-out, no quote mangling. HD runs as a sibling Tauri app; AD does NOT spawn it.", + "devPinned": false, + "displayName": "Hydrogen Desktop", + "docs": "https://wiki.adom.inc/adom/adom-desktop", + "entryMismatch": false, + "entrypoint": "//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd/", + "expectedImage": null, + "heroAvailable": false, + "heroDocs": "https://wiki.adom.inc/adom/hydrogen-desktop", + "homepage": "https://wiki.adom.inc/adom/adom-desktop", + "installPath": "\\\\?\\C:\\Users\\drew\\AppData\\Local\\Adom Bridge\\bridges\\hd", + "installSkill": "adom-wiki pkg install adom/adom-desktop", + "installedVersion": "1.0.0", + "installedVersionSource": "cache", + "instanceCount": null, + "languages": [], + "lastSpawnError": null, + "lastUsedMs": 0, + "latest": null, + "livePids": [], + "logPath": "C:/Users/drew/.adom/bridge-logs/hd.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": null, + "manifestUrlFollowed": null, + "name": "hd", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "HD currently ships Windows-only; Linux variant in scope for HD's future releases.", + "supported": false + }, + "macos": { + "reason": "HD currently ships Windows-only.", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": null, + "prewarm": null, + "releasedAt": "2026-06-30T13:13:22Z", + "runningImage": null, + "runningVersion": null, + "skillPkg": "adom/adom-desktop", + "source": "bundled", + "sourceDir": "//?/C:/Users/drew/AppData/Local/Adom Bridge/bridges/hd", + "spawn": { + "entrypoint": "", + "instanceCount": null, + "kind": "external-http", + "manifestPort": 47084, + "persistent": false, + "portBlocked": null, + "runtimePort": null + }, + "spawnKind": "external-http", + "stableUrl": "http://127.0.0.1:24680/open/hd", + "status": "stopped", + "statusVerb": null, + "tags": [ + "hydrogen-desktop", + "control-api", + "http", + "lifecycle" + ], + "timeouts": null, + "updateAvailable": false, + "usageScore": 0.0, + "verbCount": 11, + "verbPrefixes": [], + "verbs": [ + "hd_api", + "hd_status", + "hd_launch", + "hd_stop", + "hd_restart", + "hd_log", + "hd_screenshot", + "hd_shot", + "hd_open_url", + "hd_browser_profiles", + "hd_ship" + ], + "version": "1.0.0", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "EDA", + "depsInstallingSec": null, + "description": "Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.", + "devPinned": false, + "displayName": "KiCad EDA", + "docs": "https://wiki.adom.inc/adom/kicad-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad/kicad-bridge.exe", + "expectedImage": "kicad-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad", + "installSkill": "adom-wiki pkg install adom/kicad-bridge", + "installedVersion": "1.0.55", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Python", + "PowerShell" + ], + "lastSpawnError": null, + "lastUsedMs": 1790956354547, + "latest": "1.0.55", + "livePids": [ + 36872 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/kicad.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/kicad-bridge/files/adom-bridge-kicad-manifest.json", + "manifestUrlFollowed": null, + "name": "kicad", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "", + "supported": false + }, + "macos": { + "reason": "", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 60896, + "prewarm": { + "assets": [ + "kicad-cli warm (detection)", + "KiCad first-run config + setup wizard marked done", + "KiCad's own taskbar shortcut identity" + ], + "lastRun": { + "at": "2026-10-05T15:41:58Z", + "elapsedMs": 273, + "error": null, + "ok": false, + "verb": "kicad_prewarm", + "version": "1.0.55" + }, + "requiresHostApp": true, + "timeoutSeconds": null, + "verb": "kicad_prewarm" + }, + "releasedAt": "2026-06-26T16:00:00Z", + "runningImage": "kicad-bridge.exe", + "runningVersion": "1.0.55", + "skillPkg": "adom/kicad-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/kicad", + "spawn": { + "entrypoint": "kicad-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": false, + "portBlocked": null, + "runtimePort": 60896 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/kicad", + "status": "running", + "statusVerb": "kicad_status", + "tags": [ + "pcb", + "schematic", + "open-source", + "kicad-10", + "kicad-11-ready" + ], + "timeouts": { + "default": 130, + "prefixes": [], + "verbs": { + "autoroute": 900, + "demo": 600, + "enable_software_opengl": 240, + "export_gerber": 210, + "export_molecule": 420, + "export_pdf": 180, + "export_step": 300, + "export_svg": 180, + "format_upgrade": 180, + "freerouting": 900, + "open_3d_viewer": 300, + "prewarm": 120, + "run_drc": 300, + "run_erc": 300, + "upgrade": 900 + } + }, + "updateAvailable": false, + "usageScore": 1037.968740980212, + "verbCount": 119, + "verbPrefixes": [ + "kicad_" + ], + "verbs": [ + "kicad_describe", + "kicad_status", + "kicad_readiness", + "kicad_list_versions", + "kicad_diagnostics", + "kicad_run_drc", + "kicad_run_erc", + "kicad_export_gerber", + "kicad_export_pdf", + "kicad_export_svg", + "kicad_export_step", + "kicad_export_bom_csv", + "kicad_uninstall", + "kicad_extract_netlist", + "kicad_trace_net", + "kicad_find_connections", + "kicad_analyze_connections", + "kicad_lint_board", + "kicad_lint_schematic", + "kicad_lint_library", + "kicad_format_upgrade", + "kicad_list_symbols", + "kicad_list_footprints", + "kicad_adom_library_status", + "kicad_get_settings", + "kicad_set_settings", + "kicad_list_design_rules", + "kicad_set_design_rules", + "kicad_3d_viewer_settings", + "kicad_taskbar_repair", + "kicad_prewarm", + "kicad_model_check", + "kicad_pcm_list", + "kicad_pcm_install", + "kicad_pcm_uninstall", + "kicad_pcm_add_repository", + "kicad_pcm_remove_repository", + "kicad_check_for_updates", + "kicad_upgrade", + "kicad_sch_place_symbol", + "kicad_sch_wire", + "kicad_sch_label", + "kicad_sch_move", + "kicad_sch_delete", + "kicad_sch_set_property", + "kicad_ipc_api", + "kicad_export_molecule", + "kicad_errors", + "kicad_log_tail", + "kicad_bridge_status", + "kicad_bridge_call", + "kicad_install_plugin", + "kicad_plugin_diagnose", + "kicad_install_library", + "kicad_uninstall_library", + "kicad_install_symbol", + "kicad_install_footprint", + "kicad_install_library_bundle", + "kicad_adom_library_heal", + "kicad_make_part_project", + "kicad_export_part", + "kicad_silk_fields_batch", + "kicad_silk_graphics_batch", + "kicad_text_bounds", + "kicad_silk_text_batch", + "kicad_routing_state", + "kicad_route_net", + "kicad_remove_route", + "kicad_add_zone", + "kicad_apply_zone_plan", + "kicad_zone_state", + "kicad_select_net", + "kicad_select_clear", + "kicad_remove_zone", + "kicad_routing_validate", + "kicad_board_pads", + "kicad_add_track", + "kicad_add_via", + "kicad_route", + "kicad_autoroute", + "kicad_freerouting", + "kicad_placement_state", + "kicad_move_footprint", + "kicad_placement_validate", + "kicad_refresh_board_views", + "kicad_launch", + "kicad_open_board", + "kicad_open_schematic", + "kicad_open_symbol_editor", + "kicad_open_footprint_editor", + "kicad_menu_items", + "kicad_3d_view", + "kicad_open_3d_viewer", + "kicad_open_editors", + "kicad_close", + "kicad_close_symbol_editor", + "kicad_close_footprint_editor", + "kicad_close_3d_viewer", + "kicad_dismiss_dialogs", + "kicad_window_info", + "kicad_state", + "kicad_screenshot_all", + "kicad_send_key", + "kicad_click", + "kicad_fix_keyboard", + "kicad_place_footprint", + "kicad_enable_software_opengl", + "kicad_rescan_libraries", + "kicad_show_project", + "kicad_show_symbol", + "kicad_show_footprint", + "kicad_show_3d_chip", + "kicad_show_schematic", + "kicad_show_2d_board", + "kicad_show_3d_board", + "kicad_show_library", + "kicad_progress", + "kicad_verb_times", + "kicad_demo" + ], + "version": "1.0.55", + "versionDrift": false, + "watcher": { + "configKey": "project_watch", + "defaultGlobs": [ + "*.kicad_pcb", + "*.kicad_sch", + "*.kicad_pro" + ], + "description": "Monitors a KiCad project folder for file changes and syncs them to Docker. Configured via the set_project_watch / trigger_project_watch verbs (AD core owns the watcher; the KiCad section of AD's Settings panel was removed in AD 1.9.117 \u2014 the config keys are still honored).", + "displayName": "Project Watch", + "supports": true + } + }, + { + "author": "Adom Inc.", + "category": "Browser Automation", + "depsInstallingSec": null, + "description": "Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.", + "devPinned": false, + "displayName": "Adom Native Browser", + "docs": "https://wiki.adom.inc/adom/nb-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser/server.js", + "expectedImage": "node.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/nb-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser", + "installSkill": "adom-wiki pkg install adom/nb-bridge", + "installedVersion": "0.16.33", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Node/JS" + ], + "lastSpawnError": null, + "lastUsedMs": 1791220671752, + "latest": "0.16.33", + "livePids": [ + 32228 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/native-browser.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/pages/adom/nb-bridge/files/native-browser-bridge-manifest.json", + "manifestUrlFollowed": null, + "name": "native-browser", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "Pending; bridge + host are OS-agnostic Node, only the install/registration layer is Windows-specific.", + "supported": false + }, + "macos": { + "reason": "Windows-first; Kyle ports to macOS as a fast-follow (NativeMessagingHosts live under ~/Library/Application Support//NativeMessagingHosts; bridge/host are OS-agnostic Node).", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 51703, + "prewarm": { + "assets": [], + "lastRun": { + "at": "2026-09-22T19:44:55Z", + "elapsedMs": 41, + "error": null, + "ok": true, + "verb": "nbrowser_prewarm", + "version": "0.16.33" + }, + "requiresHostApp": false, + "timeoutSeconds": null, + "verb": "nbrowser_prewarm" + }, + "releasedAt": "2026-09-22T15:18:44Z", + "runningImage": "node.exe", + "runningVersion": "0.16.33", + "skillPkg": "adom/nb-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/native-browser", + "spawn": { + "entrypoint": "server.js", + "instanceCount": 1, + "kind": "node", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 51703 + }, + "spawnKind": "node", + "stableUrl": "http://127.0.0.1:24680/open/native-browser", + "status": "running", + "statusVerb": "nbrowser_status", + "tags": [ + "nb", + "nbe", + "native-browser", + "chrome", + "edge", + "nbrowser", + "pup-parity" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "screenshot", + "seconds": 120 + }, + { + "prefix": "record", + "seconds": 120 + } + ], + "verbs": { + "fetch_url": 120, + "input_dispatch": 120, + "select": 30, + "wait": 125 + } + }, + "updateAvailable": false, + "usageScore": 917.2194291149124, + "verbCount": 88, + "verbPrefixes": [ + "nbrowser_" + ], + "verbs": [ + "nbrowser_status", + "nbrowser_readiness", + "nbrowser_install_chrome", + "nbrowser_prewarm", + "nbrowser_chrome_status", + "nbrowser_ping", + "nbrowser_progress", + "nbrowser_activity", + "nbrowser_open_window", + "nbrowser_close_window", + "nbrowser_owned", + "nbrowser_cleanup", + "nbrowser_force_close", + "nbrowser_switch_window", + "nbrowser_list_windows", + "nbrowser_window_state", + "nbrowser_fullscreen", + "nbrowser_login_state", + "nbrowser_credentials", + "nbrowser_profiles", + "nbrowser_use_profile", + "nbrowser_pin_session", + "nbrowser_open_os_window", + "nbrowser_os_windows", + "nbrowser_wake_profile", + "nbrowser_resolve_profiles", + "nbrowser_whoami", + "nbrowser_profile_block", + "nbrowser_profile_unblock", + "nbrowser_rescan", + "nbrowser_resync_sessions", + "nbrowser_open_tab", + "nbrowser_close_tab", + "nbrowser_switch_tab", + "nbrowser_list_tabs", + "nbrowser_navigate", + "nbrowser_reload", + "nbrowser_back", + "nbrowser_forward", + "nbrowser_wait", + "nbrowser_wait_for", + "nbrowser_keepalive", + "nbrowser_screenshot", + "nbrowser_screenshot_full_res", + "nbrowser_eval", + "nbrowser_evaluate", + "nbrowser_input_dispatch", + "nbrowser_scroll", + "nbrowser_click", + "nbrowser_select", + "nbrowser_set_file_input", + "nbrowser_set_date", + "nbrowser_totp", + "nbrowser_register_totp", + "nbrowser_add_extension_origin", + "nbrowser_type", + "nbrowser_press_key", + "nbrowser_fetch_url", + "nbrowser_download_wait", + "nbrowser_errors", + "nbrowser_close", + "nbrowser_record_start", + "nbrowser_record_stop", + "nbrowser_record_status", + "nbrowser_record_list", + "nbrowser_flash", + "nbrowser_flash_stop", + "nbrowser_apply_settings", + "nbrowser_settings", + "nbrowser_flash_mode", + "nbrowser_taskbar", + "nbrowser_describe", + "nbrowser_handle_dialog", + "nbrowser_state", + "nbrowser_demo", + "nbrowser_uninstall", + "nbrowser_dev_reload", + "nbrowser_clear_cookies", + "nbrowser_caption", + "nbrowser_focus", + "nbrowser_hover", + "nbrowser_double_click", + "nbrowser_right_click", + "nbrowser_login_form", + "nbrowser_autologin", + "nbrowser_cursor", + "nbrowser_events", + "nbrowser_download" + ], + "version": "0.16.33", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "Manufacturing", + "depsInstallingSec": null, + "description": "The Adom Desktop bridge for the Essemtec Puma / ePlace. Reads + dry-run: machine state, recipe/package/component/feeder reads, the full feeder fleet from Supply/Feeder/*.feeder.xml, and dry-run of any WriteOp (preflight + physics-bounds + unified diff). F4 adds puma_write \u2014 GATED production writes of FileWrite.* library objects to real XML files under --data-folder (atomic write + XML-verify + audit; approver enforced; refused when the machine is Productive), plus puma_revert \u2014 canonical revert of a prior write by correlationId (CAS-pinned to the recorded result hash, its own audit entry, same write gate). Off by default: requires --enable-writes. eData stays vendor-read-only. 0.2.5: puma_feeders binds each loaded lane to its component/part number (carrierType, componentName, partValue, packageName, componentBarcode) via the Supply/Carrier -> Component library chain (#639). 0.2.6: the write audit records ab's X-Adom-Verified-Origin (relay | local | bridge, plus the X-Adom-Caller-Delegate chain for a bridge callback; a missing header records as local-unattributed) beside the approver \u2014 attribution, never a gate. New puma_write_status (declared as statusVerb): what happened to a write by correlationId, so a caller whose transport timed out polls instead of declaring the write unknown. 0.2.7: the host is a GUI-subsystem exe (no console window of its own) and its git subprocess runs with CreateNoWindow, so the bridge can never leave a conhost window on the desktop across ab respawns or reinstalls.", + "devPinned": false, + "displayName": "Puma Bridge (Essemtec ePlace)", + "docs": "https://wiki.adom.inc/adom/puma-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge/puma-bridge-host.exe", + "expectedImage": "puma-bridge-host.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/puma-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge", + "installSkill": "adom-wiki pkg install adom/puma-bridge", + "installedVersion": "0.2.7", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1790623763822, + "latest": "0.2.6", + "livePids": [ + 32008 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/puma-bridge.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/adom/puma-bridge/files/adom-bridge-puma-manifest.json", + "manifestUrlFollowed": null, + "name": "puma-bridge", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "", + "supported": true + }, + "macos": { + "reason": "", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 64764, + "prewarm": null, + "releasedAt": "2026-09-23T15:54:11Z", + "runningImage": "puma-bridge-host.exe", + "runningVersion": "0.2.7", + "skillPkg": "adom/puma-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puma-bridge", + "spawn": { + "entrypoint": "puma-bridge-host.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 0, + "persistent": true, + "portBlocked": null, + "runtimePort": 64764 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/puma-bridge", + "status": "running", + "statusVerb": "puma_write_status", + "tags": [ + "smt", + "essemtec", + "puma", + "eplace", + "pick-and-place", + "manufacturing", + "factoryos" + ], + "timeouts": null, + "updateAvailable": false, + "usageScore": 2.6915386721705734, + "verbCount": 9, + "verbPrefixes": [ + "puma_" + ], + "verbs": [ + "puma_ping", + "puma_state", + "puma_get", + "puma_feeders", + "puma_dryrun", + "puma_write", + "puma_revert", + "puma_write_status", + "puma_describe" + ], + "version": "0.2.7", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "Browser Automation", + "depsInstallingSec": null, + "description": "Drives a browser ALREADY on the machine \u2014 installed Chrome, else Microsoft Edge (every Windows PC ships with Edge) \u2014 launched with a FRESH isolated profile, so the common case has NO ~150 MB Chrome-for-Testing download and it never touches the user's real tabs/logins. Binds its local server to LOOPBACK (127.0.0.1) only, so no Windows Firewall 'allow Node through the firewall' prompt ever pops. Chrome for Testing is fetched only as a LAST RESORT if the machine has no Chromium browser at all. SPAWN-VERIFIED fallback: pup tries each detected browser (Chrome \u2192 Edge \u2192 CfT) and actually launches it, falling through to the next if one won't start (and handling browsers like Edge that relaunch onto another PID), so a corrupt/partial install never hard-fails an open. The browser that launches is cached as the default (persisted across restarts) so it isn't re-probed each time. On spawn the bridge SELF-WARMS: detects browsers + disk, and only if the box has no Chrome/Edge and no cached CfT does it background-fetch CfT so the first open is instant. pup_use pins a specific browser (chrome | edge | cft | auto); {browser:'chrome',install:true} downloads & installs REAL Google Chrome (user-scoped, no admin) on an Edge-only box. pup_readiness (READ-ONLY) reports which browser will be used + the full candidate list + the default + free disk. Every failure returns a specific errorCode + _hint (chrome_install_no_disk, chrome_download_network, chrome_install_permission, chrome_stable_not_detected, \u2026). Launches with FULL browser permissions by default for full debug (strictPermissions:true opts out). Headful automation: open/close windows+tabs, navigate, screenshot, eval JS, record. pup is a GENERIC, non-profile browser only \u2014 every session is a fresh isolated Chrome/Edge process, never the user's real signed-in browser; profile defaults to sessionId. To drive the user's REAL Chrome/Edge (their profile, cookies, SSO), use the Adom browser EXTENSION's nbrowser_* verbs \u2014 a separate bridge, not pup's job. macOS (v1.9.74+): full parity with mac-native mechanics \u2014 background-by-default is the app-level hide (windows stay drivable/screenshottable while hidden), raise/lower map to unhide+activate/hide, pup_alert_window posts a native toast whose click focuses the window, pup_use {browser:'chrome',install:true} installs Chrome from the official dmg, and taskbar identity/badging remains Windows-only.", + "devPinned": false, + "displayName": "Puppeteer (Chrome for Testing + Native)", + "docs": "https://wiki.adom.inc/adom/pup-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer/adom-pup-bridge.exe", + "expectedImage": "adom-pup-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer", + "installSkill": "adom-wiki pkg install adom/pup-bridge", + "installedVersion": "2.0.697", + "installedVersionSource": "cache", + "instanceCount": 1, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1791212202067, + "latest": "2.0.697", + "livePids": [ + 68812 + ], + "logPath": "C:/Users/drew/.adom/bridge-logs/puppeteer.log", + "manifestSource": "insidersManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/pup-bridge/files/adom-bridge-puppeteer-manifest.json", + "manifestUrlFollowed": null, + "name": "puppeteer", + "paused": false, + "persistent": true, + "platforms": { + "linux": { + "reason": "not yet", + "supported": false + }, + "macos": { + "reason": "The Rust exe is Windows-only for now; host-mac is stubbed for the Mac port. macOS runs the Node build (public tier).", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 57134, + "prewarm": { + "assets": [ + "chrome-for-testing" + ], + "lastRun": { + "at": "2026-10-05T14:55:58Z", + "elapsedMs": 1409, + "error": null, + "ok": true, + "verb": "pup_prewarm", + "version": "2.0.697" + }, + "requiresHostApp": false, + "timeoutSeconds": 900, + "verb": "pup_prewarm" + }, + "releasedAt": "2026-10-05T14:55:48Z", + "runningImage": "adom-pup-bridge.exe", + "runningVersion": "2.0.697", + "skillPkg": "adom/pup-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/puppeteer", + "spawn": { + "entrypoint": "adom-pup-bridge.exe", + "instanceCount": 1, + "kind": "exe", + "manifestPort": 8851, + "persistent": true, + "portBlocked": null, + "runtimePort": 57134 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/puppeteer", + "status": "running", + "statusVerb": "pup_readiness", + "tags": [ + "puppeteer", + "chrome", + "headful", + "recording" + ], + "timeouts": { + "default": 60, + "prefixes": [ + { + "prefix": "record", + "seconds": 90 + } + ], + "verbs": { + "credential_reveal": 150, + "fill_card": 150, + "open_window": 150, + "prewarm": 240, + "use": 240 + } + }, + "updateAvailable": false, + "usageScore": 580.1289752252278, + "verbCount": 97, + "verbPrefixes": [ + "pup_", + "browser_" + ], + "verbs": [ + "pup_describe", + "pup_readiness", + "pup_prewarm", + "pup_status", + "pup_list_windows", + "pup_my_windows", + "pup_list_sessions", + "pup_open_window", + "pup_navigate", + "pup_eval", + "pup_evaluate", + "pup_screenshot", + "pup_close_window", + "pup_close", + "pup_close_all_windows", + "pup_window_info", + "pup_open_tab", + "pup_list_tabs", + "pup_switch_tab", + "pup_close_tab", + "pup_switch_window", + "pup_click", + "pup_select", + "pup_hover", + "pup_type", + "pup_press_key", + "pup_scroll", + "pup_fill", + "pup_wait", + "pup_reload", + "pup_back", + "pup_forward", + "pup_set_viewport", + "pup_errors", + "pup_dialog", + "pup_input_dispatch", + "pup_render_html", + "pup_fetch_url", + "pup_maximize", + "pup_raise_os_window", + "pup_focus_window", + "pup_lower_os_window", + "pup_alert_window", + "pup_progress", + "pup_configure", + "pup_use", + "pup_clear_cookies", + "pup_clear_site_data", + "pup_quit_idle_browsers", + "pup_rescan", + "pup_restart_browser", + "pup_set_identity", + "pup_audit_icons", + "pup_dashboard", + "pup_credentials", + "credential_list", + "credential_set", + "credential_delete", + "pup_login", + "pup_google_accounts", + "pup_google_signin", + "pup_credential_reveal", + "pup_card_set", + "pup_cards", + "pup_card_delete", + "pup_fill_card", + "pup_wiki_set_view", + "pup_annotate", + "pup_floaty_click", + "pup_record_start", + "pup_record_stop", + "pup_record_status", + "pup_record_list", + "pup_recorder_open", + "pup_recorder_close", + "pup_screen_record_start", + "pup_screen_record_stop", + "pup_screen_record_status", + "pup_screen_record_list", + "pup_highfps_extend", + "pup_screenshot_element", + "pup_screenshot_full_res", + "pup_download", + "pup_launch", + "pup_deps", + "pup_install_toolbar", + "pup_reap_profiles", + "pup_cache_prune", + "pup_sweep_identities", + "pup_uninstall", + "pup_move_to_workspace", + "pup_assisted_click", + "pup_import_scan", + "pup_import_browser_logins", + "pup_vault_sync", + "pup_vault_export", + "pup_vault_import" + ], + "version": "2.0.697", + "versionDrift": false, + "watcher": null + }, + { + "author": "Adom Inc.", + "category": "MCAD", + "depsInstallingSec": null, + "description": "Bridge for SOLIDWORKS desktop CAD \u2014 create and open documents, a modeling DSL, file management (find/open/save/export/Pack and Go), custom properties, BOM generation, design analysis (mass properties, bodies, parameters, interference, rebuild health) and background window/dialog etiquette, over the SOLIDWORKS COM API. Single native binary: no interpreter, no PowerShell, ~10ms cold start.", + "devPinned": false, + "displayName": "SOLIDWORKS", + "docs": "https://wiki.adom.inc/adom/solidworks-bridge", + "entryMismatch": false, + "entrypoint": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks/swx-bridge.exe", + "expectedImage": "swx-bridge.exe", + "heroAvailable": false, + "heroDocs": null, + "homepage": "https://wiki.adom.inc/adom/adom-bridge", + "installPath": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks", + "installSkill": "adom-wiki pkg install adom/solidworks-bridge", + "installedVersion": "0.9.21", + "installedVersionSource": "cache", + "instanceCount": 0, + "languages": [ + "Binary" + ], + "lastSpawnError": null, + "lastUsedMs": 1791224978746, + "latest": "0.9.19", + "livePids": [], + "logPath": "C:/Users/drew/.adom/bridge-logs/solidworks.log", + "manifestSource": "updateManifestUrl", + "manifestUrl": "https://wiki.adom.inc/api/v1/pages/solidworks-bridge/files/adom-bridge-solidworks-manifest.json", + "manifestUrlFollowed": null, + "name": "solidworks", + "paused": false, + "persistent": false, + "platforms": { + "linux": { + "reason": "SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.", + "supported": false + }, + "macos": { + "reason": "SOLIDWORKS desktop is Windows-only; the bridge drives its COM API.", + "supported": false + }, + "windows": { + "reason": "", + "supported": true + } + }, + "port": 49861, + "prewarm": null, + "releasedAt": "2026-10-05T18:49:46Z", + "runningImage": null, + "runningVersion": "0.9.19", + "skillPkg": "adom/solidworks-bridge", + "source": "cache", + "sourceDir": "C:/Users/drew/AppData/Local/Adom Bridge/bridges-cache/solidworks", + "spawn": { + "entrypoint": "swx-bridge.exe", + "instanceCount": 0, + "kind": "exe", + "manifestPort": 0, + "persistent": false, + "portBlocked": null, + "runtimePort": 49861 + }, + "spawnKind": "exe", + "stableUrl": "http://127.0.0.1:24680/open/solidworks", + "status": "running", + "statusVerb": "swx_status", + "tags": [ + "solidworks", + "mcad", + "cad", + "bom", + "step", + "mass-properties", + "modeling", + "fusion-parity" + ], + "timeouts": { + "default": 120, + "prefixes": [], + "verbs": { + "action_ledger": 20, + "activate_document": 180, + "bom": 300, + "check_recovery": 180, + "close_all_documents": 240, + "close_all_safely": 600, + "close_doc": 180, + "close_import_temps": 600, + "close_window": 120, + "cloud_status": 90, + "design_info": 180, + "dismiss_blocking_dialogs": 180, + "document_info": 120, + "export": 300, + "export_3mf": 300, + "export_dwg": 300, + "export_dxf": 300, + "export_glb": 300, + "export_iges": 300, + "export_parasolid": 300, + "export_pdf": 300, + "export_sat": 300, + "export_step": 300, + "export_stl": 300, + "find_files": 180, + "get_app_state": 90, + "get_parameters": 240, + "get_preferences": 90, + "import": 420, + "inspect_bodies": 180, + "interference": 600, + "kill": 240, + "new_document": 180, + "open": 300, + "pack_and_go": 600, + "rebuild_check": 300, + "render_image": 600, + "reset_workspace": 600, + "run_script": 420, + "save_as": 420, + "set_driving_badge": 120, + "set_parameter": 420, + "set_preference": 90, + "show_assembly": 600, + "show_drawing": 600, + "show_part": 600, + "shutdown": 900, + "sign_in": 240, + "start": 300, + "state": 180, + "stop": 420, + "verb_times": 20, + "window_info": 120 + } + }, + "updateAvailable": false, + "usageScore": 561.391464863097, + "verbCount": 69, + "verbPrefixes": [ + "swx_" + ], + "verbs": [ + "swx_action_ledger", + "swx_activate_document", + "swx_add_component", + "swx_bom", + "swx_check_recovery", + "swx_close_all_documents", + "swx_close_all_safely", + "swx_close_doc", + "swx_close_import_temps", + "swx_close_window", + "swx_cloud_status", + "swx_com_eval", + "swx_describe", + "swx_design_info", + "swx_dismiss_blocking_dialogs", + "swx_docs", + "swx_document_info", + "swx_export", + "swx_export_3mf", + "swx_export_dwg", + "swx_export_dxf", + "swx_export_glb", + "swx_export_iges", + "swx_export_parasolid", + "swx_export_pdf", + "swx_export_sat", + "swx_export_step", + "swx_export_stl", + "swx_find_files", + "swx_get_app_state", + "swx_get_parameters", + "swx_get_preferences", + "swx_import", + "swx_inspect_bodies", + "swx_interference", + "swx_kill", + "swx_mass_properties", + "swx_new_document", + "swx_open", + "swx_pack_and_go", + "swx_progress", + "swx_props_get", + "swx_props_set", + "swx_readiness", + "swx_rebuild_check", + "swx_recover_list", + "swx_render_image", + "swx_reset_workspace", + "swx_run_macro", + "swx_run_script", + "swx_save", + "swx_save_as", + "swx_screenshot", + "swx_set_driving_badge", + "swx_set_parameter", + "swx_set_preference", + "swx_show_assembly", + "swx_show_drawing", + "swx_show_part", + "swx_shutdown", + "swx_sign_in", + "swx_start", + "swx_state", + "swx_status", + "swx_stop", + "swx_uninstall", + "swx_user_presence", + "swx_verb_times", + "swx_window_info" + ], + "version": "0.9.21", + "versionDrift": true, + "watcher": null + } + ], + "current_os": "windows", + "durationMs": 18, + "error": "", + "invalidCount": 0, + "ok": true, + "output": "", + "schemaVersion": 1, + "staleCheckedAt": 1791215191, + "status": "ok", + "success": true, + "summary": { + "bundled": 1, + "cache": 6, + "invalid": 0, + "paused": 0, + "third_party": 0, + "total": 7 + }, + "timeoutSeconds": 10 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0004-run_script.json b/docs/mechanical-verification/cp9-readonly/calls/0004-run_script.json new file mode 100644 index 0000000..ce9c476 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0004-run_script.json @@ -0,0 +1,31 @@ +{ + "target": "adom_drew2", + "verb": "run_script", + "args": { + "interpreter": "powershell", + "scriptB64": "CiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCcKdHJ5IHsKICAkcmFscGhFeHBlY3RlZCA9IFtUZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJpbmcoW0NvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKCdleUpvYjNOMElqb2dJa0ZFVDAxZlJGSkZWeklpTENBaWNHbGtJam9nTkRJM09EQXNJQ0p3YjNKMElqb2dOVEEyTVRnc0lDSmxlR1ZqZFhSaFlteGxVR0YwYUNJNklDSkRPbHhjVlhObGNuTmNYR1J5WlhkY1hFRndjRVJoZEdGY1hFeHZZMkZzWEZ4QlpHOXRJRUp5YVdSblpWeGNZbkpwWkdkbGN5MWpZV05vWlZ4Y1puVnphVzl1TXpZd1hGeGhaRzl0TFdaMWMybHZiaTFpY21sa1oyVXVaWGhsSWl3Z0ltbHRZV2RsSWpvZ0ltRmtiMjB0Wm5WemFXOXVMV0p5YVdSblpTNWxlR1VpZlE9PScpKSB8IENvbnZlcnRGcm9tLUpzb24KICAkcmFscGhQb3J0ID0gW2ludF0kcmFscGhFeHBlY3RlZC5wb3J0CiAgJHJhbHBoT3duZXIgPSBbaW50XSRyYWxwaEV4cGVjdGVkLnBpZAogIGlmIChbRW52aXJvbm1lbnRdOjpNYWNoaW5lTmFtZSAtaW5lIFtzdHJpbmddJHJhbHBoRXhwZWN0ZWQuaG9zdCkgeyB0aHJvdyAnTmF0aXZlIGhvc3QgaWRlbnRpdHkgZGlmZmVycycgfQogICRyYWxwaFByb2Nlc3MgPSBHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICgnUHJvY2Vzc0lkPScgKyAkcmFscGhPd25lcikKICBpZiAoLW5vdCAkcmFscGhQcm9jZXNzIC1vciAkcmFscGhQcm9jZXNzLk5hbWUgLWluZSBbc3RyaW5nXSRyYWxwaEV4cGVjdGVkLmltYWdlKSB7IHRocm93ICdJbnZlbnRvcnkgUElEL2ltYWdlIGlzIG5vdCB0aGUgbmF0aXZlIGJyaWRnZScgfQogIGlmIChbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRyYWxwaFByb2Nlc3MuRXhlY3V0YWJsZVBhdGgpIC1pbmUgW0lPLlBhdGhdOjpHZXRGdWxsUGF0aChbc3RyaW5nXSRyYWxwaEV4cGVjdGVkLmV4ZWN1dGFibGVQYXRoKSkgeyB0aHJvdyAnTmF0aXZlIGV4ZWN1dGFibGUgcGF0aCBkaWZmZXJzIGZyb20gaW52ZW50b3J5JyB9CiAgJHJhbHBoTGlzdGVuZXJzID0gQChHZXQtTmV0VENQQ29ubmVjdGlvbiAtU3RhdGUgTGlzdGVuIC1Mb2NhbFBvcnQgJHJhbHBoUG9ydCkKICBpZiAoJHJhbHBoTGlzdGVuZXJzLkNvdW50IC1lcSAwKSB7IHRocm93ICdEaXNjb3ZlcmVkIHBvcnQgaGFzIG5vIGxpc3RlbmVyJyB9CiAgZm9yZWFjaCAoJHJhbHBoTGlzdGVuZXIgaW4gJHJhbHBoTGlzdGVuZXJzKSB7CiAgICBpZiAoJHJhbHBoTGlzdGVuZXIuT3duaW5nUHJvY2VzcyAtbmUgJHJhbHBoT3duZXIgLW9yICRyYWxwaExpc3RlbmVyLkxvY2FsQWRkcmVzcyAtbm90aW4gQCgnMTI3LjAuMC4xJywnOjoxJykpIHsgdGhyb3cgJ0xpc3RlbmVyIGlzIG5vdCBvd25lZCBieSB0aGUgZXhwZWN0ZWQgbG9vcGJhY2sgYnJpZGdlJyB9CiAgfQogICRyYWxwaEhlYWx0aCA9IEludm9rZS1SZXN0TWV0aG9kIC1VcmkgKCdodHRwOi8vMTI3LjAuMC4xOicgKyAkcmFscGhQb3J0ICsgJy9oZWFsdGgnKSAtTWV0aG9kIEdldCAtVGltZW91dFNlYyA4CiAgJHJhbHBoQWdhaW4gPSBHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICgnUHJvY2Vzc0lkPScgKyAkcmFscGhPd25lcikKICBpZiAoLW5vdCAkcmFscGhBZ2FpbiAtb3IgJHJhbHBoQWdhaW4uQ3JlYXRpb25EYXRlIC1uZSAkcmFscGhQcm9jZXNzLkNyZWF0aW9uRGF0ZSAtb3IgJHJhbHBoQWdhaW4uRXhlY3V0YWJsZVBhdGggLWluZSAkcmFscGhQcm9jZXNzLkV4ZWN1dGFibGVQYXRoKSB7IHRocm93ICdOYXRpdmUgcHJvY2VzcyBjaGFuZ2VkIGR1cmluZyBoZWFsdGggb2JzZXJ2YXRpb24nIH0KICAkcmFscGhMaXN0ZW5lcnNBZnRlciA9IEAoR2V0LU5ldFRDUENvbm5lY3Rpb24gLVN0YXRlIExpc3RlbiAtTG9jYWxQb3J0ICRyYWxwaFBvcnQpCiAgaWYgKCRyYWxwaExpc3RlbmVyc0FmdGVyLkNvdW50IC1lcSAwKSB7IHRocm93ICdMaXN0ZW5lciBkaXNhcHBlYXJlZCBkdXJpbmcgaGVhbHRoIG9ic2VydmF0aW9uJyB9CiAgZm9yZWFjaCAoJHJhbHBoTGlzdGVuZXIgaW4gJHJhbHBoTGlzdGVuZXJzQWZ0ZXIpIHsKICAgIGlmICgkcmFscGhMaXN0ZW5lci5Pd25pbmdQcm9jZXNzIC1uZSAkcmFscGhPd25lciAtb3IgJHJhbHBoTGlzdGVuZXIuTG9jYWxBZGRyZXNzIC1ub3RpbiBAKCcxMjcuMC4wLjEnLCc6OjEnKSkgeyB0aHJvdyAnTGlzdGVuZXIgY2hhbmdlZCBkdXJpbmcgaGVhbHRoIG9ic2VydmF0aW9uJyB9CiAgfQogIEB7IGhvc3Q9W0Vudmlyb25tZW50XTo6TWFjaGluZU5hbWU7IHBpZD0kcmFscGhPd25lcjsgcG9ydD0kcmFscGhQb3J0OyBleGVjdXRhYmxlUGF0aD0kcmFscGhQcm9jZXNzLkV4ZWN1dGFibGVQYXRoOwogICAgIGltYWdlPSRyYWxwaFByb2Nlc3MuTmFtZTsgcHJvY2Vzc0NyZWF0ZWRVdGM9JHJhbHBoUHJvY2Vzcy5DcmVhdGlvbkRhdGUuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKTsKICAgICBsaXN0ZW5lckFkZHJlc3Nlcz1AKCRyYWxwaExpc3RlbmVyc0FmdGVyIHwgRm9yRWFjaC1PYmplY3QgeyAkXy5Mb2NhbEFkZHJlc3MgfSk7CiAgICAgc3RhYmxlPSR0cnVlOyBoZWFsdGg9JHJhbHBoSGVhbHRoIH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMTIgLUNvbXByZXNzCiAgZXhpdCAwCn0gY2F0Y2ggewogIFtDb25zb2xlXTo6RXJyb3IuV3JpdGVMaW5lKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKQogIGV4aXQgMQp9Cg==", + "timeoutSeconds": 30, + "reason": "Read the discovered Fusion bridge process and its loopback health version without changing runtime state" + }, + "requestJson": "{\"interpreter\": \"powershell\", \"scriptB64\": \"CiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCcKdHJ5IHsKICAkcmFscGhFeHBlY3RlZCA9IFtUZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJpbmcoW0NvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKCdleUpvYjNOMElqb2dJa0ZFVDAxZlJGSkZWeklpTENBaWNHbGtJam9nTkRJM09EQXNJQ0p3YjNKMElqb2dOVEEyTVRnc0lDSmxlR1ZqZFhSaFlteGxVR0YwYUNJNklDSkRPbHhjVlhObGNuTmNYR1J5WlhkY1hFRndjRVJoZEdGY1hFeHZZMkZzWEZ4QlpHOXRJRUp5YVdSblpWeGNZbkpwWkdkbGN5MWpZV05vWlZ4Y1puVnphVzl1TXpZd1hGeGhaRzl0TFdaMWMybHZiaTFpY21sa1oyVXVaWGhsSWl3Z0ltbHRZV2RsSWpvZ0ltRmtiMjB0Wm5WemFXOXVMV0p5YVdSblpTNWxlR1VpZlE9PScpKSB8IENvbnZlcnRGcm9tLUpzb24KICAkcmFscGhQb3J0ID0gW2ludF0kcmFscGhFeHBlY3RlZC5wb3J0CiAgJHJhbHBoT3duZXIgPSBbaW50XSRyYWxwaEV4cGVjdGVkLnBpZAogIGlmIChbRW52aXJvbm1lbnRdOjpNYWNoaW5lTmFtZSAtaW5lIFtzdHJpbmddJHJhbHBoRXhwZWN0ZWQuaG9zdCkgeyB0aHJvdyAnTmF0aXZlIGhvc3QgaWRlbnRpdHkgZGlmZmVycycgfQogICRyYWxwaFByb2Nlc3MgPSBHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICgnUHJvY2Vzc0lkPScgKyAkcmFscGhPd25lcikKICBpZiAoLW5vdCAkcmFscGhQcm9jZXNzIC1vciAkcmFscGhQcm9jZXNzLk5hbWUgLWluZSBbc3RyaW5nXSRyYWxwaEV4cGVjdGVkLmltYWdlKSB7IHRocm93ICdJbnZlbnRvcnkgUElEL2ltYWdlIGlzIG5vdCB0aGUgbmF0aXZlIGJyaWRnZScgfQogIGlmIChbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRyYWxwaFByb2Nlc3MuRXhlY3V0YWJsZVBhdGgpIC1pbmUgW0lPLlBhdGhdOjpHZXRGdWxsUGF0aChbc3RyaW5nXSRyYWxwaEV4cGVjdGVkLmV4ZWN1dGFibGVQYXRoKSkgeyB0aHJvdyAnTmF0aXZlIGV4ZWN1dGFibGUgcGF0aCBkaWZmZXJzIGZyb20gaW52ZW50b3J5JyB9CiAgJHJhbHBoTGlzdGVuZXJzID0gQChHZXQtTmV0VENQQ29ubmVjdGlvbiAtU3RhdGUgTGlzdGVuIC1Mb2NhbFBvcnQgJHJhbHBoUG9ydCkKICBpZiAoJHJhbHBoTGlzdGVuZXJzLkNvdW50IC1lcSAwKSB7IHRocm93ICdEaXNjb3ZlcmVkIHBvcnQgaGFzIG5vIGxpc3RlbmVyJyB9CiAgZm9yZWFjaCAoJHJhbHBoTGlzdGVuZXIgaW4gJHJhbHBoTGlzdGVuZXJzKSB7CiAgICBpZiAoJHJhbHBoTGlzdGVuZXIuT3duaW5nUHJvY2VzcyAtbmUgJHJhbHBoT3duZXIgLW9yICRyYWxwaExpc3RlbmVyLkxvY2FsQWRkcmVzcyAtbm90aW4gQCgnMTI3LjAuMC4xJywnOjoxJykpIHsgdGhyb3cgJ0xpc3RlbmVyIGlzIG5vdCBvd25lZCBieSB0aGUgZXhwZWN0ZWQgbG9vcGJhY2sgYnJpZGdlJyB9CiAgfQogICRyYWxwaEhlYWx0aCA9IEludm9rZS1SZXN0TWV0aG9kIC1VcmkgKCdodHRwOi8vMTI3LjAuMC4xOicgKyAkcmFscGhQb3J0ICsgJy9oZWFsdGgnKSAtTWV0aG9kIEdldCAtVGltZW91dFNlYyA4CiAgJHJhbHBoQWdhaW4gPSBHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUHJvY2VzcyAtRmlsdGVyICgnUHJvY2Vzc0lkPScgKyAkcmFscGhPd25lcikKICBpZiAoLW5vdCAkcmFscGhBZ2FpbiAtb3IgJHJhbHBoQWdhaW4uQ3JlYXRpb25EYXRlIC1uZSAkcmFscGhQcm9jZXNzLkNyZWF0aW9uRGF0ZSAtb3IgJHJhbHBoQWdhaW4uRXhlY3V0YWJsZVBhdGggLWluZSAkcmFscGhQcm9jZXNzLkV4ZWN1dGFibGVQYXRoKSB7IHRocm93ICdOYXRpdmUgcHJvY2VzcyBjaGFuZ2VkIGR1cmluZyBoZWFsdGggb2JzZXJ2YXRpb24nIH0KICAkcmFscGhMaXN0ZW5lcnNBZnRlciA9IEAoR2V0LU5ldFRDUENvbm5lY3Rpb24gLVN0YXRlIExpc3RlbiAtTG9jYWxQb3J0ICRyYWxwaFBvcnQpCiAgaWYgKCRyYWxwaExpc3RlbmVyc0FmdGVyLkNvdW50IC1lcSAwKSB7IHRocm93ICdMaXN0ZW5lciBkaXNhcHBlYXJlZCBkdXJpbmcgaGVhbHRoIG9ic2VydmF0aW9uJyB9CiAgZm9yZWFjaCAoJHJhbHBoTGlzdGVuZXIgaW4gJHJhbHBoTGlzdGVuZXJzQWZ0ZXIpIHsKICAgIGlmICgkcmFscGhMaXN0ZW5lci5Pd25pbmdQcm9jZXNzIC1uZSAkcmFscGhPd25lciAtb3IgJHJhbHBoTGlzdGVuZXIuTG9jYWxBZGRyZXNzIC1ub3RpbiBAKCcxMjcuMC4wLjEnLCc6OjEnKSkgeyB0aHJvdyAnTGlzdGVuZXIgY2hhbmdlZCBkdXJpbmcgaGVhbHRoIG9ic2VydmF0aW9uJyB9CiAgfQogIEB7IGhvc3Q9W0Vudmlyb25tZW50XTo6TWFjaGluZU5hbWU7IHBpZD0kcmFscGhPd25lcjsgcG9ydD0kcmFscGhQb3J0OyBleGVjdXRhYmxlUGF0aD0kcmFscGhQcm9jZXNzLkV4ZWN1dGFibGVQYXRoOwogICAgIGltYWdlPSRyYWxwaFByb2Nlc3MuTmFtZTsgcHJvY2Vzc0NyZWF0ZWRVdGM9JHJhbHBoUHJvY2Vzcy5DcmVhdGlvbkRhdGUuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKTsKICAgICBsaXN0ZW5lckFkZHJlc3Nlcz1AKCRyYWxwaExpc3RlbmVyc0FmdGVyIHwgRm9yRWFjaC1PYmplY3QgeyAkXy5Mb2NhbEFkZHJlc3MgfSk7CiAgICAgc3RhYmxlPSR0cnVlOyBoZWFsdGg9JHJhbHBoSGVhbHRoIH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMTIgLUNvbXByZXNzCiAgZXhpdCAwCn0gY2F0Y2ggewogIFtDb25zb2xlXTo6RXJyb3IuV3JpdGVMaW5lKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKQogIGV4aXQgMQp9Cg==\", \"timeoutSeconds\": 30, \"reason\": \"Read the discovered Fusion bridge process and its loopback health version without changing runtime state\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235851.0664039, + "mutating": false, + "stdout": "{\n \"durationMs\": 5212,\n \"exitCode\": 0,\n \"ok\": true,\n \"schemaVersion\": 1,\n \"status\": \"ok\",\n \"stderr\": \"\",\n \"stdout\": \"{\\\"image\\\":\\\"adom-fusion-bridge.exe\\\",\\\"listenerAddresses\\\":[\\\"127.0.0.1\\\"],\\\"executablePath\\\":\\\"C:\\\\\\\\Users\\\\\\\\drew\\\\\\\\AppData\\\\\\\\Local\\\\\\\\Adom Bridge\\\\\\\\bridges-cache\\\\\\\\fusion360\\\\\\\\adom-fusion-bridge.exe\\\",\\\"stable\\\":true,\\\"processCreatedUtc\\\":\\\"2026-10-05T21:01:31.6721740Z\\\",\\\"host\\\":\\\"ADOM_DREW2\\\",\\\"health\\\":{\\\"status\\\":\\\"ok\\\",\\\"busy\\\":false,\\\"longOp\\\":null,\\\"led\\\":\\\"green\\\",\\\"summary\\\":\\\"Fusion ready\\\",\\\"tooltip\\\":\\\"Fusion 360 running, AdomBridge add-in connected. All fusion_* verbs available.\\\",\\\"bridgeVersion\\\":\\\"1.12.0-dev.8\\\",\\\"fusion\\\":{\\\"installed\\\":true,\\\"exe_path\\\":\\\"C:\\\\\\\\Users\\\\\\\\drew\\\\\\\\AppData\\\\\\\\Local\\\\\\\\Autodesk\\\\\\\\webdeploy\\\\\\\\production\\\\\\\\6a0c9611291d45bb9226980209917c3d\\\\\\\\FusionLauncher.exe\\\",\\\"addins_dir\\\":\\\"C:\\\\\\\\Users\\\\\\\\drew\\\\\\\\AppData\\\\\\\\Roaming\\\\\\\\Autodesk\\\\\\\\FusionAddins\\\",\\\"addin_installed\\\":true,\\\"running\\\":true},\\\"addin\\\":{\\\"busy\\\":false,\\\"version\\\":\\\"1.12.0-dev.8\\\",\\\"pyThreads\\\":4},\\\"shell\\\":\\\"rust\\\",\\\"needsSignin\\\":false,\\\"licensingDialog\\\":false,\\\"windowTitle\\\":\\\"Untitled - Autodesk Fusion \\\",\\\"windowFactsDegraded\\\":false,\\\"windowFactsError\\\":null,\\\"exePort\\\":50618},\\\"pid\\\":42780,\\\"port\\\":50618}\\r\\n\",\n \"success\": true,\n \"timedOut\": false,\n \"timeoutSeconds\": 45\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235856.304021, + "raw": { + "durationMs": 5212, + "exitCode": 0, + "ok": true, + "schemaVersion": 1, + "status": "ok", + "stderr": "", + "stdout": "{\"image\":\"adom-fusion-bridge.exe\",\"listenerAddresses\":[\"127.0.0.1\"],\"executablePath\":\"C:\\\\Users\\\\drew\\\\AppData\\\\Local\\\\Adom Bridge\\\\bridges-cache\\\\fusion360\\\\adom-fusion-bridge.exe\",\"stable\":true,\"processCreatedUtc\":\"2026-10-05T21:01:31.6721740Z\",\"host\":\"ADOM_DREW2\",\"health\":{\"status\":\"ok\",\"busy\":false,\"longOp\":null,\"led\":\"green\",\"summary\":\"Fusion ready\",\"tooltip\":\"Fusion 360 running, AdomBridge add-in connected. All fusion_* verbs available.\",\"bridgeVersion\":\"1.12.0-dev.8\",\"fusion\":{\"installed\":true,\"exe_path\":\"C:\\\\Users\\\\drew\\\\AppData\\\\Local\\\\Autodesk\\\\webdeploy\\\\production\\\\6a0c9611291d45bb9226980209917c3d\\\\FusionLauncher.exe\",\"addins_dir\":\"C:\\\\Users\\\\drew\\\\AppData\\\\Roaming\\\\Autodesk\\\\FusionAddins\",\"addin_installed\":true,\"running\":true},\"addin\":{\"busy\":false,\"version\":\"1.12.0-dev.8\",\"pyThreads\":4},\"shell\":\"rust\",\"needsSignin\":false,\"licensingDialog\":false,\"windowTitle\":\"Untitled - Autodesk Fusion \",\"windowFactsDegraded\":false,\"windowFactsError\":null,\"exePort\":50618},\"pid\":42780,\"port\":50618}\r\n", + "success": true, + "timedOut": false, + "timeoutSeconds": 45 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0005-fusion_document_info.json b/docs/mechanical-verification/cp9-readonly/calls/0005-fusion_document_info.json new file mode 100644 index 0000000..78a64a9 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0005-fusion_document_info.json @@ -0,0 +1,62 @@ +{ + "target": "adom_drew2", + "verb": "fusion_document_info", + "args": {}, + "requestJson": "{}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235856.305099, + "mutating": false, + "stdout": "{\n \"_hint\": \"Use fusion_get_app_state to check workspace type. For exports: fusion_export_gerbers, fusion_export_bom, fusion_export_cpl, fusion_export_source (.fsch/.fbrd), fusion_export_eagle_source (.sch/.brd). Use fusion_activate_document to switch tabs.\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"activeDocument\": \"Untitled\",\n \"activeWorkspace\": \"Design\",\n \"documentName\": \"Untitled\",\n \"isCloudDocument\": false,\n \"isSaved\": false,\n \"openDocumentCount\": 1,\n \"openDocuments\": [\n {\n \"documentType\": \"unknown\",\n \"documentTypeRaw\": \"None\",\n \"isActive\": true,\n \"isCloudDocument\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\"\n }\n ],\n \"productType\": \"DesignProductType\"\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 0,\n \"openDocumentCount\": 1,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 220,\n \"error\": \"\",\n \"output\": \"1 document(s) open, active: Untitled, workspace: Design\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235856.5347385, + "raw": { + "_hint": "Use fusion_get_app_state to check workspace type. For exports: fusion_export_gerbers, fusion_export_bom, fusion_export_cpl, fusion_export_source (.fsch/.fbrd), fusion_export_eagle_source (.sch/.brd). Use fusion_activate_document to switch tabs.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "activeDocument": "Untitled", + "activeWorkspace": "Design", + "documentName": "Untitled", + "isCloudDocument": false, + "isSaved": false, + "openDocumentCount": 1, + "openDocuments": [ + { + "documentType": "unknown", + "documentTypeRaw": "None", + "isActive": true, + "isCloudDocument": false, + "isSaved": false, + "name": "Untitled" + } + ], + "productType": "DesignProductType" + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 0, + "openDocumentCount": 1, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 220, + "error": "", + "output": "1 document(s) open, active: Untitled, workspace: Design", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0006-fusion_run_modeling_script.json b/docs/mechanical-verification/cp9-readonly/calls/0006-fusion_run_modeling_script.json new file mode 100644 index 0000000..337ec2f --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0006-fusion_run_modeling_script.json @@ -0,0 +1,67 @@ +{ + "target": "adom_drew2", + "verb": "fusion_run_modeling_script", + "args": { + "script": "\nimport platform, tempfile\nresult = {'host': platform.node(), 'platform': platform.system(), 'fusionVersion': app.version,\n 'temporaryDirectory': tempfile.gettempdir(),\n 'activeCreationId': app.activeDocument.creationId if app.activeDocument else None,\n 'activeProductType': app.activeProduct.productType if app.activeProduct else None,\n 'activeCommand': ui.activeCommand,\n 'documents': [{'creationId': d.creationId, 'name': d.name,\n 'modified': d.isModified, 'saved': d.isSaved} for d in app.documents]}\n" + }, + "requestJson": "{\"script\": \"\\nimport platform, tempfile\\nresult = {'host': platform.node(), 'platform': platform.system(), 'fusionVersion': app.version,\\n 'temporaryDirectory': tempfile.gettempdir(),\\n 'activeCreationId': app.activeDocument.creationId if app.activeDocument else None,\\n 'activeProductType': app.activeProduct.productType if app.activeProduct else None,\\n 'activeCommand': ui.activeCommand,\\n 'documents': [{'creationId': d.creationId, 'name': d.name,\\n 'modified': d.isModified, 'saved': d.isSaved} for d in app.documents]}\\n\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235856.5355155, + "mutating": false, + "stdout": "{\n \"_hint\": \"Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\\\"foreground\\\": true, \\\"foregroundReason\\\": \\\"\\\"}.\",\n \"_timeoutHint\": \"ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"createdDocument\": null,\n \"documentName\": \"Untitled\",\n \"result\": {\n \"activeCommand\": \"SelectCommand\",\n \"activeCreationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\n \"activeProductType\": \"DesignProductType\",\n \"documents\": [\n {\n \"creationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\n \"modified\": false,\n \"name\": \"Untitled\",\n \"saved\": false\n }\n ],\n \"fusionVersion\": \"2705.1.30\",\n \"host\": \"adom_drew2\",\n \"platform\": \"Windows\",\n \"temporaryDirectory\": \"C:/Users/drew/AppData/Local/Temp\"\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 0,\n \"openDocumentCount\": 1,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 1785,\n \"error\": \"\",\n \"output\": \"Modeling script ran successfully.\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 180,\n \"windowEtiquette\": \"background\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235858.3290274, + "raw": { + "_hint": "Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\"foreground\": true, \"foregroundReason\": \"\"}.", + "_timeoutHint": "ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "createdDocument": null, + "documentName": "Untitled", + "result": { + "activeCommand": "SelectCommand", + "activeCreationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "activeProductType": "DesignProductType", + "documents": [ + { + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "modified": false, + "name": "Untitled", + "saved": false + } + ], + "fusionVersion": "2705.1.30", + "host": "adom_drew2", + "platform": "Windows", + "temporaryDirectory": "C:/Users/drew/AppData/Local/Temp" + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 0, + "openDocumentCount": 1, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 1785, + "error": "", + "output": "Modeling script ran successfully.", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 180, + "windowEtiquette": "background" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0007-fusion_get_preferences.json b/docs/mechanical-verification/cp9-readonly/calls/0007-fusion_get_preferences.json new file mode 100644 index 0000000..33c63ea --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0007-fusion_get_preferences.json @@ -0,0 +1,38 @@ +{ + "target": "adom_drew2", + "verb": "fusion_get_preferences", + "args": {}, + "requestJson": "{}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235858.33, + "mutating": false, + "stdout": "{\n \"_hint\": \"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\",\n \"_timeoutHint\": \"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"applied\": {},\n \"current\": {\n \"activeTheme\": \"darkblue\",\n \"cameraPivot\": true,\n \"gestureNav\": true,\n \"invertScrollZoom\": true,\n \"lengthUnit\": \"mm\",\n \"modelingOrientation\": \"zup\",\n \"orbitScheme\": \"fusion360\",\n \"theme\": \"device\"\n },\n \"durationMs\": 80,\n \"error\": \"\",\n \"output\": \"{\\\"_hint\\\":\\\"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"applied\\\":{},\\\"current\\\":{\\\"activeTheme\\\":\\\"darkblue\\\",\\\"cameraPivot\\\":true,\\\"gestureNav\\\":true,\\\"invertScrollZoom\\\":true,\\\"lengthUnit\\\":\\\"mm\\\",\\\"modelingOrientation\\\":\\\"zup\\\",\\\"orbitScheme\\\":\\\"fusion360\\\",\\\"theme\\\":\\\"device\\\"},\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":25}\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 25\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235858.4189386, + "raw": { + "_hint": "Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).", + "_timeoutHint": "ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "applied": {}, + "current": { + "activeTheme": "darkblue", + "cameraPivot": true, + "gestureNav": true, + "invertScrollZoom": true, + "lengthUnit": "mm", + "modelingOrientation": "zup", + "orbitScheme": "fusion360", + "theme": "device" + }, + "durationMs": 80, + "error": "", + "output": "{\"_hint\":\"Current Fusion preferences. Change any with fusion_set_preference, keys: theme (light/darkblue/darkgray/classic/device/dark), invertScrollZoom (bool), orbitScheme (fusion360/alias/inventor/solidworks/tinkercad/powermill), modelingOrientation (yup/zup), gestureNav (bool), cameraPivot (bool), lengthUnit (mm/cm/m/in/ft - applies to the active design).\",\"_timeoutHint\":\"ab waits up to 25s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"applied\":{},\"current\":{\"activeTheme\":\"darkblue\",\"cameraPivot\":true,\"gestureNav\":true,\"invertScrollZoom\":true,\"lengthUnit\":\"mm\",\"modelingOrientation\":\"zup\",\"orbitScheme\":\"fusion360\",\"theme\":\"device\"},\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":25}", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 25 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0008-fusion_mech_capabilities.json b/docs/mechanical-verification/cp9-readonly/calls/0008-fusion_mech_capabilities.json new file mode 100644 index 0000000..6e4f5ff --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0008-fusion_mech_capabilities.json @@ -0,0 +1,6432 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mech_capabilities", + "args": {}, + "requestJson": "{}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235858.4205296, + "mutating": false, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"durationMs\": 185,\n \"error\": \"\",\n \"idempotency\": {\n \"admission\": \"FULL SQLite commit before native dispatch\",\n \"capacity\": 10000,\n \"databaseByteLimit\": 67108864,\n \"recordByteLimit\": 4194304,\n \"restartBehavior\": \"old-session history is readable; native execution never replays across sessions\",\n \"scope\": \"durable history keyed by add-in session and operation ID\",\n \"storageVersion\": 1\n },\n \"operations\": {\n \"assembly_properties\": {\n \"description\": \"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"bom\": {\n \"description\": \"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\",\n \"properties\": {\n \"explodePurchased\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"bom_export\": {\n \"description\": \"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\",\n \"properties\": {\n \"explodePurchased\": {\n \"type\": \"boolean\"\n },\n \"filename\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"flat\",\n \"structured\"\n ]\n },\n \"overwrite\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"filename\"\n ],\n \"type\": \"object\"\n },\n \"cad_import\": {\n \"description\": \"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"filename\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"provenance\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"supplier\",\n \"supplierPartNumber\",\n \"sourceUrl\"\n ],\n \"type\": \"object\"\n },\n \"sha256\": {\n \"type\": \"string\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"filename\",\n \"provenance\"\n ],\n \"type\": \"object\"\n },\n \"component_create\": {\n \"description\": \"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"metadata\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"excludeFromBom\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"partNumber\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"component_metadata\": {\n \"description\": \"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\",\n \"properties\": {\n \"changes\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"asPurchased\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"excludeFromBom\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"partNumber\": {\n \"type\": \"string\"\n },\n \"sourceUrl\": {\n \"type\": \"string\"\n },\n \"supplier\": {\n \"type\": \"string\"\n },\n \"supplierPartNumber\": {\n \"type\": \"string\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"configuration_inspect\": {\n \"description\": \"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"construction_axis\": {\n \"description\": \"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"creationOccurrence\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entities\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 2,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"edge\",\n \"circular_face\",\n \"two_planes\",\n \"two_points\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"type\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"entity_delete\": {\n \"description\": \"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"export\": {\n \"description\": \"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\",\n \"properties\": {\n \"format\": {\n \"default\": \"step\",\n \"enum\": [\n \"step\",\n \"stl\",\n \"3mf\",\n \"f3d\",\n \"iges\",\n \"sat\",\n \"smt\",\n \"usdz\",\n \"fbx\",\n \"skp\"\n ]\n },\n \"outputPath\": {\n \"type\": \"string\"\n },\n \"overwrite\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"refinement\": {\n \"default\": \"medium\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"outputPath\"\n ],\n \"type\": \"object\"\n },\n \"feature_create\": {\n \"description\": \"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"direction\": {\n \"enum\": [\n \"positive\",\n \"negative\",\n \"symmetric\"\n ]\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"taper\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"extrude\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"revolve\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"axis\",\n \"angle\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"edges\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"radius\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"fillet\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"edges\",\n \"radius\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"edges\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"chamfer\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"edges\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"thickness\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"type\": {\n \"enum\": [\n \"shell\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"thickness\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"depth\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"diameter\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"points\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"hole\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"points\",\n \"diameter\",\n \"depth\",\n \"bodies\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"loft\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"new_body\",\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"profiles\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"sweep\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"profiles\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"body\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keepTools\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"enum\": [\n \"join\",\n \"cut\",\n \"intersect\"\n ]\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"tools\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"combine\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"body\",\n \"tools\",\n \"operation\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"extend\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"split\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"plane\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"origin\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"translation\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"move\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"mirror\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"plane\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"axis2\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {\n \"maximum\": 1000,\n \"minimum\": 2,\n \"type\": \"integer\"\n },\n \"count2\": {\n \"maximum\": 1000,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"spacing\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"spacing2\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"rectangular_pattern\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"axis\",\n \"count\",\n \"spacing\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"bodies\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {\n \"maximum\": 1000,\n \"minimum\": 2,\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"circular_pattern\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"bodies\",\n \"axis\",\n \"count\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"tangentChain\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"draft\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"plane\",\n \"angle\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"designation\": {\n \"type\": \"string\"\n },\n \"faces\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"internal\": {\n \"type\": \"boolean\"\n },\n \"modeled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"documentId\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"threadClass\": {\n \"type\": \"string\"\n },\n \"threadType\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"thread\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"faces\",\n \"internal\",\n \"threadType\",\n \"designation\",\n \"threadClass\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"angle\": {},\n \"axis\": {},\n \"axis2\": {},\n \"bodies\": {},\n \"body\": {},\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"count\": {},\n \"count2\": {},\n \"depth\": {},\n \"designation\": {},\n \"diameter\": {},\n \"direction\": {},\n \"distance\": {},\n \"edges\": {},\n \"extend\": {},\n \"faces\": {},\n \"internal\": {},\n \"keepTools\": {},\n \"modeled\": {},\n \"name\": {\n \"type\": \"string\"\n },\n \"operation\": {},\n \"origin\": {},\n \"path\": {},\n \"plane\": {},\n \"points\": {},\n \"profiles\": {},\n \"radius\": {},\n \"spacing\": {},\n \"spacing2\": {},\n \"tangentChain\": {},\n \"taper\": {},\n \"thickness\": {},\n \"threadClass\": {},\n \"threadType\": {},\n \"tools\": {},\n \"translation\": {},\n \"type\": {\n \"enum\": [\n \"extrude\",\n \"revolve\",\n \"fillet\",\n \"chamfer\",\n \"shell\",\n \"hole\",\n \"loft\",\n \"sweep\",\n \"combine\",\n \"split\",\n \"move\",\n \"mirror\",\n \"rectangular_pattern\",\n \"circular_pattern\",\n \"draft\",\n \"thread\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"feature_edit\": {\n \"description\": \"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\",\n \"properties\": {\n \"feature\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"parameters\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"feature\"\n ],\n \"type\": \"object\"\n },\n \"geometry_query\": {\n \"description\": \"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\",\n \"properties\": {\n \"body\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"filters\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"area\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"direction\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"orientation\": {\n \"enum\": [\n \"same\",\n \"parallel\"\n ]\n },\n \"tolerance\": {\n \"maximum\": 90,\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"vector\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"vector\"\n ],\n \"type\": \"object\"\n },\n \"length\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"near\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"point\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"tolerance\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"point\",\n \"tolerance\"\n ],\n \"type\": \"object\"\n },\n \"radius\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"max\": {\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"min\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"Plane\",\n \"Cylinder\",\n \"Cone\",\n \"Sphere\",\n \"Torus\",\n \"NurbsSurface\",\n \"Line3D\",\n \"Arc3D\",\n \"Circle3D\",\n \"Ellipse3D\",\n \"EllipticalArc3D\",\n \"NurbsCurve3D\",\n \"Point3D\",\n \"degenerate\"\n ]\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"kind\": {\n \"enum\": [\n \"faces\",\n \"edges\",\n \"vertices\"\n ]\n },\n \"maxResults\": {\n \"maximum\": 1024,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"selection\": {\n \"enum\": [\n \"one\",\n \"many\"\n ]\n },\n \"space\": {\n \"enum\": [\n \"root\",\n \"component\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"body\",\n \"kind\",\n \"space\"\n ],\n \"type\": \"object\"\n },\n \"health\": {\n \"description\": \"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\",\n \"properties\": {\n \"recompute\": {\n \"default\": false,\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"inspect\": {\n \"description\": \"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\",\n \"properties\": {},\n \"required\": [\n \"op\"\n ],\n \"type\": \"object\"\n },\n \"inspect_entity\": {\n \"properties\": {\n \"entity\": {\n \"description\": \"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"interference\": {\n \"description\": \"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"includeTouching\": {\n \"type\": \"boolean\"\n },\n \"volumeTolerance\": {\n \"minimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"joint_create\": {\n \"description\": \"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\"\n ]\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"revolute\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"slider\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"cylindrical\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"pin_slot\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"planar\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"type\",\n \"geometry\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrenceOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"occurrenceTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\",\n \"occurrenceOne\",\n \"occurrenceTwo\"\n ],\n \"type\": \"object\"\n },\n \"joint_delete\": {\n \"description\": \"Delete one selected Joint or AsBuiltJoint with recovery verification.\",\n \"properties\": {\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"joint_edit\": {\n \"description\": \"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\",\n \"properties\": {\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_create\": {\n \"description\": \"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetZ\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"xAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"zAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"geometry\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_delete\": {\n \"description\": \"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\",\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"origin\"\n ],\n \"type\": \"object\"\n },\n \"joint_origin_edit\": {\n \"description\": \"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometry\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetZ\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"xAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"zAxisEntity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"origin\"\n ],\n \"type\": \"object\"\n },\n \"material_assign\": {\n \"description\": \"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\",\n \"properties\": {\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"libraryId\": {\n \"type\": \"string\"\n },\n \"materialId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"entity\",\n \"materialId\"\n ],\n \"type\": \"object\"\n },\n \"material_list\": {\n \"description\": \"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\",\n \"properties\": {\n \"libraryId\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"maximum\": 1000,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"query\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"mcmaster_discover\": {\n \"description\": \"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\",\n \"properties\": {},\n \"required\": [\n \"op\"\n ],\n \"type\": \"object\"\n },\n \"mcmaster_open\": {\n \"description\": \"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"measure\": {\n \"description\": \"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"space\": {\n \"enum\": [\n \"root\"\n ]\n },\n \"type\": {\n \"enum\": [\n \"distance\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"type\",\n \"space\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_create\": {\n \"description\": \"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\",\n \"properties\": {\n \"jointOne\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"jointTwo\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"motionOne\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"motionTwo\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"reversed\": {\n \"type\": \"boolean\"\n },\n \"valueOne\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"valueTwo\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"jointOne\",\n \"motionOne\",\n \"motionTwo\",\n \"valueOne\",\n \"valueTwo\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_delete\": {\n \"description\": \"Delete a root-owned motion link under the same transaction/recovery contract.\",\n \"properties\": {\n \"link\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"link\"\n ],\n \"type\": \"object\"\n },\n \"motion_link_edit\": {\n \"description\": \"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\",\n \"properties\": {\n \"link\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"motionOne\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"motionTwo\": {\n \"enum\": [\n \"rotation\",\n \"slide\",\n \"primarySlide\",\n \"secondarySlide\",\n \"pitch\",\n \"roll\",\n \"yaw\"\n ]\n },\n \"name\": {\n \"maxLength\": 120,\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"reversed\": {\n \"type\": \"boolean\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n },\n \"valueOne\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"valueTwo\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"link\"\n ],\n \"type\": \"object\"\n },\n \"new_design\": {\n \"description\": \"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\",\n \"properties\": {\n \"box\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"depth\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"height\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"width\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"width\",\n \"height\",\n \"depth\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_delete\": {\n \"description\": \"Delete one selected occurrence through the shared transaction executor.\",\n \"properties\": {\n \"occurrence\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"occurrence\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_insert\": {\n \"description\": \"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"independentCopy\": {\n \"type\": \"boolean\"\n },\n \"parent\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"component\"\n ],\n \"type\": \"object\"\n },\n \"occurrence_update\": {\n \"description\": \"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\",\n \"properties\": {\n \"grounded\": {\n \"type\": \"boolean\"\n },\n \"groundedToParent\": {\n \"type\": \"boolean\"\n },\n \"occurrence\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"transform\": {\n \"additionalProperties\": false,\n \"description\": \"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"axis\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 3,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"occurrence\"\n ],\n \"type\": \"object\"\n },\n \"parameter_batch\": {\n \"description\": \"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\",\n \"properties\": {\n \"changes\": {\n \"items\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"create\"\n ]\n },\n \"comment\": {\n \"type\": \"string\"\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"unit\": {\n \"enum\": [\n \"mm\",\n \"deg\",\n \"kg\",\n \"\"\n ]\n }\n },\n \"required\": [\n \"action\",\n \"name\",\n \"expression\",\n \"unit\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"set\"\n ]\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"action\",\n \"name\",\n \"expression\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"delete\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"action\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"maxItems\": 128,\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"parameter_create\": {\n \"properties\": {\n \"comment\": {\n \"type\": \"string\"\n },\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"unit\": {\n \"enum\": [\n \"mm\",\n \"deg\",\n \"kg\",\n \"\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\",\n \"expression\",\n \"unit\"\n ],\n \"type\": \"object\"\n },\n \"parameter_set\": {\n \"description\": \"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\",\n \"properties\": {\n \"expression\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"name\",\n \"expression\"\n ],\n \"type\": \"object\"\n },\n \"plane_create\": {\n \"description\": \"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\",\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"offset\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"offset\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"op\": {\n \"type\": \"string\"\n },\n \"operationId\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"required\": [\n \"documentId\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"axis\",\n \"angle\"\n ],\n \"type\": \"object\"\n }\n ],\n \"properties\": {\n \"angle\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"type\": {\n \"enum\": [\n \"offset\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"regular_joint_create\": {\n \"description\": \"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometryOne\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"geometryTwo\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"locked\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"offset\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"pitchLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"pitchValue\": {\n \"type\": \"number\"\n },\n \"primarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"primarySlideValue\": {\n \"type\": \"number\"\n },\n \"rollLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rollValue\": {\n \"type\": \"number\"\n },\n \"rotationLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"rotationValue\": {\n \"type\": \"number\"\n },\n \"secondarySlideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"secondarySlideValue\": {\n \"type\": \"number\"\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"slideLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"slideValue\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n },\n \"yawLimits\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"maximum\": {\n \"type\": \"number\"\n },\n \"maximumEnabled\": {\n \"type\": \"boolean\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"minimumEnabled\": {\n \"type\": \"boolean\"\n },\n \"rest\": {\n \"type\": \"number\"\n },\n \"restEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"yawValue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"type\",\n \"geometryOne\",\n \"geometryTwo\"\n ],\n \"type\": \"object\"\n },\n \"regular_joint_edit\": {\n \"description\": \"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\",\n \"properties\": {\n \"angle\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"axis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"flipped\": {\n \"type\": \"boolean\"\n },\n \"geometryOne\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"geometryTwo\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"edge\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"keyPoint\": {\n \"enum\": [\n \"center\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n }\n },\n \"required\": [\n \"entity\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"origin\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"origin\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"joint\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"locked\": {\n \"type\": \"boolean\"\n },\n \"offset\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetX\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"maxLength\": 512,\n \"minLength\": 1,\n \"type\": \"string\"\n }\n ]\n },\n \"slideAxis\": {\n \"enum\": [\n \"x\",\n \"y\",\n \"z\"\n ]\n },\n \"type\": {\n \"enum\": [\n \"rigid\",\n \"revolute\",\n \"slider\",\n \"cylindrical\",\n \"pin_slot\",\n \"planar\",\n \"ball\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"joint\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_create\": {\n \"description\": \"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\",\n \"properties\": {\n \"includeChildren\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"occurrences\": {\n \"items\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 2,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"occurrences\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_delete\": {\n \"description\": \"Delete an exact rigid group with transaction recovery.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"group\"\n ],\n \"type\": \"object\"\n },\n \"rigid_group_edit\": {\n \"description\": \"Rename or suppress an exact rigid group with transaction recovery.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"suppressed\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"group\"\n ],\n \"type\": \"object\"\n },\n \"sketch_constraint\": {\n \"description\": \"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"horizontal\",\n \"vertical\",\n \"coincident\",\n \"parallel\",\n \"perpendicular\",\n \"tangent\",\n \"equal\",\n \"concentric\",\n \"collinear\",\n \"midpoint\",\n \"symmetry\",\n \"fix\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"type\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"sketch_create\": {\n \"description\": \"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\",\n \"properties\": {\n \"component\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"plane\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"xy\",\n \"xz\",\n \"yz\"\n ]\n },\n {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n },\n \"sketch_curve_edit\": {\n \"description\": \"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\",\n \"properties\": {\n \"action\": {\n \"enum\": [\n \"trim\",\n \"extend\",\n \"split\",\n \"break\"\n ]\n },\n \"allowDelete\": {\n \"type\": \"boolean\"\n },\n \"createConstraints\": {\n \"type\": \"boolean\"\n },\n \"curve\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"pick\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"sketch\",\n \"curve\",\n \"action\",\n \"pick\"\n ],\n \"type\": \"object\"\n },\n \"sketch_diagnostics\": {\n \"description\": \"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\",\n \"properties\": {\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sketch\"\n ],\n \"type\": \"object\"\n },\n \"sketch_dimension\": {\n \"description\": \"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"expression\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"parameterName\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"enum\": [\n \"distance\",\n \"horizontal\",\n \"vertical\",\n \"radius\",\n \"diameter\",\n \"angle\"\n ]\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"type\",\n \"entities\",\n \"expression\",\n \"position\"\n ],\n \"type\": \"object\"\n },\n \"sketch_edit\": {\n \"description\": \"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\",\n \"properties\": {\n \"changes\": {\n \"additionalProperties\": false,\n \"minProperties\": 1,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"fixed\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"radius\": {\n \"type\": \"number\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n }\n },\n \"required\": [],\n \"type\": \"object\"\n },\n \"entity\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"entity\",\n \"changes\"\n ],\n \"type\": \"object\"\n },\n \"sketch_geometry\": {\n \"description\": \"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\",\n \"properties\": {\n \"items\": {\n \"items\": {\n \"oneOf\": [\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"position\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"point\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"position\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"line\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"rectangle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"radius\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"circle\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"radius\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"sweep\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"enum\": [\n \"arc\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"start\",\n \"sweep\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"angle\": {\n \"type\": \"number\"\n },\n \"center\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"radius\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n },\n \"sides\": {\n \"maximum\": 128,\n \"minimum\": 3,\n \"type\": \"integer\"\n },\n \"type\": {\n \"enum\": [\n \"polygon\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"center\",\n \"radius\",\n \"sides\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"end\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"start\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"slot\"\n ]\n },\n \"width\": {\n \"exclusiveMinimum\": 0,\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"type\",\n \"start\",\n \"end\",\n \"width\"\n ],\n \"type\": \"object\"\n },\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"closed\": {\n \"type\": \"boolean\"\n },\n \"construction\": {\n \"type\": \"boolean\"\n },\n \"points\": {\n \"items\": {\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 3,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"maxItems\": 128,\n \"minItems\": 2,\n \"type\": \"array\"\n },\n \"type\": {\n \"enum\": [\n \"spline\"\n ]\n }\n },\n \"required\": [\n \"type\",\n \"points\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"maxItems\": 128,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"items\"\n ],\n \"type\": \"object\"\n },\n \"sketch_offset\": {\n \"description\": \"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\",\n \"properties\": {\n \"curves\": {\n \"items\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"distance\": {\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"sketch\": {\n \"description\": \"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"topologyMatched\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"op\",\n \"target\",\n \"sessionId\",\n \"operationId\",\n \"sketch\",\n \"curves\",\n \"distance\"\n ],\n \"type\": \"object\"\n },\n \"sketch_project\": {\n \"description\": \"Project selected topology into a sketch with Fusion associative projection.\",\n \"properties\": {\n \"entities\": {\n \"items\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n },\n \"maxItems\": 256,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sketch\": {\n \"description\": \"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\n \"required\": [\n \"documentId\",\n \"revision\",\n \"objectType\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\",\n \"sketch\",\n \"entities\"\n ],\n \"type\": \"object\"\n },\n \"transaction_probe\": {\n \"description\": \"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\",\n \"properties\": {},\n \"required\": [\n \"op\",\n \"sessionId\",\n \"operationId\",\n \"target\"\n ],\n \"type\": \"object\"\n }\n },\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"idempotency\\\":{\\\"admission\\\":\\\"FULL SQLite commit before native dispatch\\\",\\\"capacity\\\":10000,\\\"databaseByteLimit\\\":67108864,\\\"recordByteLimit\\\":4194304,\\\"restartBehavior\\\":\\\"old-session history is readable; native execution never replays across sessions\\\",\\\"scope\\\":\\\"durable history keyed by add-in session and operation ID\\\",\\\"storageVersion\\\":1},\\\"operations\\\":{\\\"assembly_properties\\\":{\\\"description\\\":\\\"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"bom\\\":{\\\"description\\\":\\\"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\\\",\\\"properties\\\":{\\\"explodePurchased\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"bom_export\\\":{\\\"description\\\":\\\"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\\\",\\\"properties\\\":{\\\"explodePurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"filename\\\":{\\\"type\\\":\\\"string\\\"},\\\"mode\\\":{\\\"enum\\\":[\\\"flat\\\",\\\"structured\\\"]},\\\"overwrite\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"filename\\\"],\\\"type\\\":\\\"object\\\"},\\\"cad_import\\\":{\\\"description\\\":\\\"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"filename\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"provenance\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"supplier\\\",\\\"supplierPartNumber\\\",\\\"sourceUrl\\\"],\\\"type\\\":\\\"object\\\"},\\\"sha256\\\":{\\\"type\\\":\\\"string\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"filename\\\",\\\"provenance\\\"],\\\"type\\\":\\\"object\\\"},\\\"component_create\\\":{\\\"description\\\":\\\"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"metadata\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"excludeFromBom\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"partNumber\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\"],\\\"type\\\":\\\"object\\\"},\\\"component_metadata\\\":{\\\"description\\\":\\\"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"asPurchased\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"excludeFromBom\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"partNumber\\\":{\\\"type\\\":\\\"string\\\"},\\\"sourceUrl\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplier\\\":{\\\"type\\\":\\\"string\\\"},\\\"supplierPartNumber\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"configuration_inspect\\\":{\\\"description\\\":\\\"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"construction_axis\\\":{\\\"description\\\":\\\"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"creationOccurrence\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":2,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"edge\\\",\\\"circular_face\\\",\\\"two_planes\\\",\\\"two_points\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"type\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity_delete\\\":{\\\"description\\\":\\\"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"export\\\":{\\\"description\\\":\\\"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\\\",\\\"properties\\\":{\\\"format\\\":{\\\"default\\\":\\\"step\\\",\\\"enum\\\":[\\\"step\\\",\\\"stl\\\",\\\"3mf\\\",\\\"f3d\\\",\\\"iges\\\",\\\"sat\\\",\\\"smt\\\",\\\"usdz\\\",\\\"fbx\\\",\\\"skp\\\"]},\\\"outputPath\\\":{\\\"type\\\":\\\"string\\\"},\\\"overwrite\\\":{\\\"default\\\":false,\\\"type\\\":\\\"boolean\\\"},\\\"refinement\\\":{\\\"default\\\":\\\"medium\\\",\\\"enum\\\":[\\\"low\\\",\\\"medium\\\",\\\"high\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"outputPath\\\"],\\\"type\\\":\\\"object\\\"},\\\"feature_create\\\":{\\\"description\\\":\\\"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"direction\\\":{\\\"enum\\\":[\\\"positive\\\",\\\"negative\\\",\\\"symmetric\\\"]},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"taper\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"extrude\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"revolve\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"axis\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"edges\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"radius\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"fillet\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"edges\\\",\\\"radius\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"edges\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"chamfer\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"edges\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"thickness\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"type\\\":{\\\"enum\\\":[\\\"shell\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"thickness\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"depth\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"diameter\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"points\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"hole\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"points\\\",\\\"diameter\\\",\\\"depth\\\",\\\"bodies\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"loft\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"new_body\\\",\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"path\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"profiles\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"sweep\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"profiles\\\",\\\"path\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"body\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keepTools\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{\\\"enum\\\":[\\\"join\\\",\\\"cut\\\",\\\"intersect\\\"]},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"tools\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"combine\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"body\\\",\\\"tools\\\",\\\"operation\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"extend\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"split\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"plane\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"origin\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"translation\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"move\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"mirror\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"plane\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"axis2\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":2,\\\"type\\\":\\\"integer\\\"},\\\"count2\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"spacing\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"spacing2\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rectangular_pattern\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"axis\\\",\\\"count\\\",\\\"spacing\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"bodies\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":2,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"circular_pattern\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"bodies\\\",\\\"axis\\\",\\\"count\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"tangentChain\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"draft\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"plane\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"designation\\\":{\\\"type\\\":\\\"string\\\"},\\\"faces\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"internal\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"modeled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"documentId\\\":{\\\"type\\\":\\\"string\\\"},\\\"revision\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"threadClass\\\":{\\\"type\\\":\\\"string\\\"},\\\"threadType\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"thread\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"faces\\\",\\\"internal\\\",\\\"threadType\\\",\\\"designation\\\",\\\"threadClass\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"angle\\\":{},\\\"axis\\\":{},\\\"axis2\\\":{},\\\"bodies\\\":{},\\\"body\\\":{},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"count\\\":{},\\\"count2\\\":{},\\\"depth\\\":{},\\\"designation\\\":{},\\\"diameter\\\":{},\\\"direction\\\":{},\\\"distance\\\":{},\\\"edges\\\":{},\\\"extend\\\":{},\\\"faces\\\":{},\\\"internal\\\":{},\\\"keepTools\\\":{},\\\"modeled\\\":{},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"operation\\\":{},\\\"origin\\\":{},\\\"path\\\":{},\\\"plane\\\":{},\\\"points\\\":{},\\\"profiles\\\":{},\\\"radius\\\":{},\\\"spacing\\\":{},\\\"spacing2\\\":{},\\\"tangentChain\\\":{},\\\"taper\\\":{},\\\"thickness\\\":{},\\\"threadClass\\\":{},\\\"threadType\\\":{},\\\"tools\\\":{},\\\"translation\\\":{},\\\"type\\\":{\\\"enum\\\":[\\\"extrude\\\",\\\"revolve\\\",\\\"fillet\\\",\\\"chamfer\\\",\\\"shell\\\",\\\"hole\\\",\\\"loft\\\",\\\"sweep\\\",\\\"combine\\\",\\\"split\\\",\\\"move\\\",\\\"mirror\\\",\\\"rectangular_pattern\\\",\\\"circular_pattern\\\",\\\"draft\\\",\\\"thread\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\"],\\\"type\\\":\\\"object\\\"},\\\"feature_edit\\\":{\\\"description\\\":\\\"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\\\",\\\"properties\\\":{\\\"feature\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"parameters\\\":{\\\"additionalProperties\\\":{\\\"type\\\":\\\"string\\\"},\\\"type\\\":\\\"object\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"feature\\\"],\\\"type\\\":\\\"object\\\"},\\\"geometry_query\\\":{\\\"description\\\":\\\"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\\\",\\\"properties\\\":{\\\"body\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"filters\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"area\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"direction\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"orientation\\\":{\\\"enum\\\":[\\\"same\\\",\\\"parallel\\\"]},\\\"tolerance\\\":{\\\"maximum\\\":90,\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"vector\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"vector\\\"],\\\"type\\\":\\\"object\\\"},\\\"length\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"near\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"point\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"tolerance\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"point\\\",\\\"tolerance\\\"],\\\"type\\\":\\\"object\\\"},\\\"radius\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"max\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"min\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"Plane\\\",\\\"Cylinder\\\",\\\"Cone\\\",\\\"Sphere\\\",\\\"Torus\\\",\\\"NurbsSurface\\\",\\\"Line3D\\\",\\\"Arc3D\\\",\\\"Circle3D\\\",\\\"Ellipse3D\\\",\\\"EllipticalArc3D\\\",\\\"NurbsCurve3D\\\",\\\"Point3D\\\",\\\"degenerate\\\"]}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"kind\\\":{\\\"enum\\\":[\\\"faces\\\",\\\"edges\\\",\\\"vertices\\\"]},\\\"maxResults\\\":{\\\"maximum\\\":1024,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"selection\\\":{\\\"enum\\\":[\\\"one\\\",\\\"many\\\"]},\\\"space\\\":{\\\"enum\\\":[\\\"root\\\",\\\"component\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"body\\\",\\\"kind\\\",\\\"space\\\"],\\\"type\\\":\\\"object\\\"},\\\"health\\\":{\\\"description\\\":\\\"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\\\",\\\"properties\\\":{\\\"recompute\\\":{\\\"default\\\":false,\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"inspect\\\":{\\\"description\\\":\\\"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\"],\\\"type\\\":\\\"object\\\"},\\\"inspect_entity\\\":{\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\\\",\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"interference\\\":{\\\"description\\\":\\\"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"includeTouching\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"volumeTolerance\\\":{\\\"minimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_create\\\":{\\\"description\\\":\\\"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\"]}},\\\"required\\\":[\\\"type\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"revolute\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"slider\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"cylindrical\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"pin_slot\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"planar\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"target\\\":{\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"type\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrenceOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrenceTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\",\\\"occurrenceOne\\\",\\\"occurrenceTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_delete\\\":{\\\"description\\\":\\\"Delete one selected Joint or AsBuiltJoint with recovery verification.\\\",\\\"properties\\\":{\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_edit\\\":{\\\"description\\\":\\\"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\\\",\\\"properties\\\":{\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_create\\\":{\\\"description\\\":\\\"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetZ\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"xAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"zAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"geometry\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_delete\\\":{\\\"description\\\":\\\"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\\\",\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"origin\\\"],\\\"type\\\":\\\"object\\\"},\\\"joint_origin_edit\\\":{\\\"description\\\":\\\"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometry\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetZ\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"xAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"zAxisEntity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"origin\\\"],\\\"type\\\":\\\"object\\\"},\\\"material_assign\\\":{\\\"description\\\":\\\"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\\\",\\\"properties\\\":{\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"libraryId\\\":{\\\"type\\\":\\\"string\\\"},\\\"materialId\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"entity\\\",\\\"materialId\\\"],\\\"type\\\":\\\"object\\\"},\\\"material_list\\\":{\\\"description\\\":\\\"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\\\",\\\"properties\\\":{\\\"libraryId\\\":{\\\"type\\\":\\\"string\\\"},\\\"limit\\\":{\\\"maximum\\\":1000,\\\"minimum\\\":1,\\\"type\\\":\\\"integer\\\"},\\\"query\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"mcmaster_discover\\\":{\\\"description\\\":\\\"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\"],\\\"type\\\":\\\"object\\\"},\\\"mcmaster_open\\\":{\\\"description\\\":\\\"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"measure\\\":{\\\"description\\\":\\\"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"space\\\":{\\\"enum\\\":[\\\"root\\\"]},\\\"type\\\":{\\\"enum\\\":[\\\"distance\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"type\\\",\\\"space\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_create\\\":{\\\"description\\\":\\\"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\\\",\\\"properties\\\":{\\\"jointOne\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"jointTwo\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"motionOne\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"motionTwo\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"reversed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"valueOne\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"valueTwo\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"jointOne\\\",\\\"motionOne\\\",\\\"motionTwo\\\",\\\"valueOne\\\",\\\"valueTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_delete\\\":{\\\"description\\\":\\\"Delete a root-owned motion link under the same transaction/recovery contract.\\\",\\\"properties\\\":{\\\"link\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"link\\\"],\\\"type\\\":\\\"object\\\"},\\\"motion_link_edit\\\":{\\\"description\\\":\\\"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\\\",\\\"properties\\\":{\\\"link\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"motionOne\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"motionTwo\\\":{\\\"enum\\\":[\\\"rotation\\\",\\\"slide\\\",\\\"primarySlide\\\",\\\"secondarySlide\\\",\\\"pitch\\\",\\\"roll\\\",\\\"yaw\\\"]},\\\"name\\\":{\\\"maxLength\\\":120,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"},\\\"reversed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"valueOne\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"valueTwo\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"link\\\"],\\\"type\\\":\\\"object\\\"},\\\"new_design\\\":{\\\"description\\\":\\\"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\\\",\\\"properties\\\":{\\\"box\\\":{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"depth\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"height\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"width\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"width\\\",\\\"height\\\",\\\"depth\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_delete\\\":{\\\"description\\\":\\\"Delete one selected occurrence through the shared transaction executor.\\\",\\\"properties\\\":{\\\"occurrence\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"occurrence\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_insert\\\":{\\\"description\\\":\\\"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"independentCopy\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"parent\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"component\\\"],\\\"type\\\":\\\"object\\\"},\\\"occurrence_update\\\":{\\\"description\\\":\\\"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\\\",\\\"properties\\\":{\\\"grounded\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"groundedToParent\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"occurrence\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"transform\\\":{\\\"additionalProperties\\\":false,\\\"description\\\":\\\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"axis\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":3,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"occurrence\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_batch\\\":{\\\"description\\\":\\\"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"items\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"create\\\"]},\\\"comment\\\":{\\\"type\\\":\\\"string\\\"},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"unit\\\":{\\\"enum\\\":[\\\"mm\\\",\\\"deg\\\",\\\"kg\\\",\\\"\\\"]}},\\\"required\\\":[\\\"action\\\",\\\"name\\\",\\\"expression\\\",\\\"unit\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"set\\\"]},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"action\\\",\\\"name\\\",\\\"expression\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"delete\\\"]},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"action\\\",\\\"name\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"maxItems\\\":128,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_create\\\":{\\\"properties\\\":{\\\"comment\\\":{\\\"type\\\":\\\"string\\\"},\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"unit\\\":{\\\"enum\\\":[\\\"mm\\\",\\\"deg\\\",\\\"kg\\\",\\\"\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\",\\\"expression\\\",\\\"unit\\\"],\\\"type\\\":\\\"object\\\"},\\\"parameter_set\\\":{\\\"description\\\":\\\"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\\\",\\\"properties\\\":{\\\"expression\\\":{\\\"type\\\":\\\"string\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"name\\\",\\\"expression\\\"],\\\"type\\\":\\\"object\\\"},\\\"plane_create\\\":{\\\"description\\\":\\\"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\\\",\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"offset\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"offset\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"op\\\":{\\\"type\\\":\\\"string\\\"},\\\"operationId\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"sessionId\\\":{\\\"type\\\":\\\"string\\\"},\\\"target\\\":{\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"angle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"axis\\\",\\\"angle\\\"],\\\"type\\\":\\\"object\\\"}],\\\"properties\\\":{\\\"angle\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"type\\\":{\\\"enum\\\":[\\\"offset\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\"],\\\"type\\\":\\\"object\\\"},\\\"regular_joint_create\\\":{\\\"description\\\":\\\"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometryOne\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"geometryTwo\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"locked\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"offset\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"pitchLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"pitchValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"primarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"primarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rollLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rollValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"rotationLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"rotationValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"secondarySlideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"secondarySlideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"slideLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"slideValue\\\":{\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]},\\\"yawLimits\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maximumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimumEnabled\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"rest\\\":{\\\"type\\\":\\\"number\\\"},\\\"restEnabled\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"yawValue\\\":{\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"type\\\",\\\"geometryOne\\\",\\\"geometryTwo\\\"],\\\"type\\\":\\\"object\\\"},\\\"regular_joint_edit\\\":{\\\"description\\\":\\\"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\\\",\\\"properties\\\":{\\\"angle\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"axis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"flipped\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"geometryOne\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"geometryTwo\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"edge\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"keyPoint\\\":{\\\"enum\\\":[\\\"center\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"]}},\\\"required\\\":[\\\"entity\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"origin\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"origin\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"joint\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"locked\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"offset\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetX\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"offsetY\\\":{\\\"description\\\":\\\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\\\",\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"maxLength\\\":512,\\\"minLength\\\":1,\\\"type\\\":\\\"string\\\"}]},\\\"slideAxis\\\":{\\\"enum\\\":[\\\"x\\\",\\\"y\\\",\\\"z\\\"]},\\\"type\\\":{\\\"enum\\\":[\\\"rigid\\\",\\\"revolute\\\",\\\"slider\\\",\\\"cylindrical\\\",\\\"pin_slot\\\",\\\"planar\\\",\\\"ball\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"joint\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_create\\\":{\\\"description\\\":\\\"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\\\",\\\"properties\\\":{\\\"includeChildren\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"occurrences\\\":{\\\"items\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"occurrences\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_delete\\\":{\\\"description\\\":\\\"Delete an exact rigid group with transaction recovery.\\\",\\\"properties\\\":{\\\"group\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"group\\\"],\\\"type\\\":\\\"object\\\"},\\\"rigid_group_edit\\\":{\\\"description\\\":\\\"Rename or suppress an exact rigid group with transaction recovery.\\\",\\\"properties\\\":{\\\"group\\\":{\\\"description\\\":\\\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"suppressed\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"group\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_constraint\\\":{\\\"description\\\":\\\"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"horizontal\\\",\\\"vertical\\\",\\\"coincident\\\",\\\"parallel\\\",\\\"perpendicular\\\",\\\"tangent\\\",\\\"equal\\\",\\\"concentric\\\",\\\"collinear\\\",\\\"midpoint\\\",\\\"symmetry\\\",\\\"fix\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"type\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_create\\\":{\\\"description\\\":\\\"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\\\",\\\"properties\\\":{\\\"component\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"name\\\":{\\\"type\\\":\\\"string\\\"},\\\"plane\\\":{\\\"oneOf\\\":[{\\\"enum\\\":[\\\"xy\\\",\\\"xz\\\",\\\"yz\\\"]},{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_curve_edit\\\":{\\\"description\\\":\\\"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\\\",\\\"properties\\\":{\\\"action\\\":{\\\"enum\\\":[\\\"trim\\\",\\\"extend\\\",\\\"split\\\",\\\"break\\\"]},\\\"allowDelete\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"createConstraints\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"curve\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"pick\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"sketch\\\",\\\"curve\\\",\\\"action\\\",\\\"pick\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_diagnostics\\\":{\\\"description\\\":\\\"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\\\",\\\"properties\\\":{\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sketch\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_dimension\\\":{\\\"description\\\":\\\"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"expression\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"parameterName\\\":{\\\"type\\\":\\\"string\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"distance\\\",\\\"horizontal\\\",\\\"vertical\\\",\\\"radius\\\",\\\"diameter\\\",\\\"angle\\\"]}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"type\\\",\\\"entities\\\",\\\"expression\\\",\\\"position\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_edit\\\":{\\\"description\\\":\\\"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\\\",\\\"properties\\\":{\\\"changes\\\":{\\\"additionalProperties\\\":false,\\\"minProperties\\\":1,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"fixed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"radius\\\":{\\\"type\\\":\\\"number\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"}},\\\"required\\\":[],\\\"type\\\":\\\"object\\\"},\\\"entity\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"entity\\\",\\\"changes\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_geometry\\\":{\\\"description\\\":\\\"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\\\",\\\"properties\\\":{\\\"items\\\":{\\\"items\\\":{\\\"oneOf\\\":[{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"position\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"point\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"position\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"line\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"rectangle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"radius\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"circle\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"radius\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"sweep\\\":{\\\"type\\\":\\\"number\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"arc\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"start\\\",\\\"sweep\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"angle\\\":{\\\"type\\\":\\\"number\\\"},\\\"center\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"radius\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"},\\\"sides\\\":{\\\"maximum\\\":128,\\\"minimum\\\":3,\\\"type\\\":\\\"integer\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"polygon\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"center\\\",\\\"radius\\\",\\\"sides\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"end\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"start\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"slot\\\"]},\\\"width\\\":{\\\"exclusiveMinimum\\\":0,\\\"type\\\":\\\"number\\\"}},\\\"required\\\":[\\\"type\\\",\\\"start\\\",\\\"end\\\",\\\"width\\\"],\\\"type\\\":\\\"object\\\"},{\\\"additionalProperties\\\":false,\\\"properties\\\":{\\\"closed\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"construction\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"points\\\":{\\\"items\\\":{\\\"items\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxItems\\\":3,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"maxItems\\\":128,\\\"minItems\\\":2,\\\"type\\\":\\\"array\\\"},\\\"type\\\":{\\\"enum\\\":[\\\"spline\\\"]}},\\\"required\\\":[\\\"type\\\",\\\"points\\\"],\\\"type\\\":\\\"object\\\"}]},\\\"maxItems\\\":128,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"items\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_offset\\\":{\\\"description\\\":\\\"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\\\",\\\"properties\\\":{\\\"curves\\\":{\\\"items\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"distance\\\":{\\\"oneOf\\\":[{\\\"type\\\":\\\"number\\\"},{\\\"type\\\":\\\"string\\\"}]},\\\"sketch\\\":{\\\"description\\\":\\\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"topologyMatched\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"required\\\":[\\\"op\\\",\\\"target\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"sketch\\\",\\\"curves\\\",\\\"distance\\\"],\\\"type\\\":\\\"object\\\"},\\\"sketch_project\\\":{\\\"description\\\":\\\"Project selected topology into a sketch with Fusion associative projection.\\\",\\\"properties\\\":{\\\"entities\\\":{\\\"items\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"},\\\"maxItems\\\":256,\\\"minItems\\\":1,\\\"type\\\":\\\"array\\\"},\\\"sketch\\\":{\\\"description\\\":\\\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\\\",\\\"required\\\":[\\\"documentId\\\",\\\"revision\\\",\\\"objectType\\\"],\\\"type\\\":\\\"object\\\"}},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\",\\\"sketch\\\",\\\"entities\\\"],\\\"type\\\":\\\"object\\\"},\\\"transaction_probe\\\":{\\\"description\\\":\\\"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\\\",\\\"properties\\\":{},\\\"required\\\":[\\\"op\\\",\\\"sessionId\\\",\\\"operationId\\\",\\\"target\\\"],\\\"type\\\":\\\"object\\\"}},\\\"schemaVersion\\\":1,\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60,\\\"transactions\\\":{\\\"externalEffects\\\":\\\"exports publish atomically; model recovery does not undo files\\\",\\\"genericAtomicBatch\\\":false,\\\"newDesignRecovery\\\":\\\"discard only the new unsaved document\\\",\\\"parameterRecovery\\\":\\\"compensating expression restore with semantic readback\\\",\\\"typedModelOperations\\\":{\\\"backend\\\":\\\"PTransaction\\\",\\\"evidence\\\":null,\\\"scope\\\":\\\"one active Fusion Design; no document lifecycle, files or cloud effects\\\",\\\"verified\\\":false}},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60,\n \"transactions\": {\n \"externalEffects\": \"exports publish atomically; model recovery does not undo files\",\n \"genericAtomicBatch\": false,\n \"newDesignRecovery\": \"discard only the new unsaved document\",\n \"parameterRecovery\": \"compensating expression restore with semantic readback\",\n \"typedModelOperations\": {\n \"backend\": \"PTransaction\",\n \"evidence\": null,\n \"scope\": \"one active Fusion Design; no document lifecycle, files or cloud effects\",\n \"verified\": false\n }\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235858.6182706, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "durationMs": 185, + "error": "", + "idempotency": { + "admission": "FULL SQLite commit before native dispatch", + "capacity": 10000, + "databaseByteLimit": 67108864, + "recordByteLimit": 4194304, + "restartBehavior": "old-session history is readable; native execution never replays across sessions", + "scope": "durable history keyed by add-in session and operation ID", + "storageVersion": 1 + }, + "operations": { + "assembly_properties": { + "description": "High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.", + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "bom": { + "description": "Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.", + "properties": { + "explodePurchased": { + "type": "boolean" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "bom_export": { + "description": "Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.", + "properties": { + "explodePurchased": { + "type": "boolean" + }, + "filename": { + "type": "string" + }, + "mode": { + "enum": [ + "flat", + "structured" + ] + }, + "overwrite": { + "type": "boolean" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "filename" + ], + "type": "object" + }, + "cad_import": { + "description": "Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "asPurchased": { + "type": "boolean" + }, + "filename": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [ + "supplier", + "supplierPartNumber", + "sourceUrl" + ], + "type": "object" + }, + "sha256": { + "type": "string" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "filename", + "provenance" + ], + "type": "object" + }, + "component_create": { + "description": "Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "metadata": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "asPurchased": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "excludeFromBom": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "partNumber": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "name": { + "type": "string" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name" + ], + "type": "object" + }, + "component_metadata": { + "description": "Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.", + "properties": { + "changes": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "asPurchased": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "excludeFromBom": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "partNumber": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "supplier": { + "type": "string" + }, + "supplierPartNumber": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "changes" + ], + "type": "object" + }, + "configuration_inspect": { + "description": "Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.", + "properties": {}, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "construction_axis": { + "description": "Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.", + "properties": { + "component": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "creationOccurrence": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entities": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "edge", + "circular_face", + "two_planes", + "two_points" + ] + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "type", + "entities" + ], + "type": "object" + }, + "entity_delete": { + "description": "Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.", + "properties": { + "entity": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "entity" + ], + "type": "object" + }, + "export": { + "description": "Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.", + "properties": { + "format": { + "default": "step", + "enum": [ + "step", + "stl", + "3mf", + "f3d", + "iges", + "sat", + "smt", + "usdz", + "fbx", + "skp" + ] + }, + "outputPath": { + "type": "string" + }, + "overwrite": { + "default": false, + "type": "boolean" + }, + "refinement": { + "default": "medium", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "outputPath" + ], + "type": "object" + }, + "feature_create": { + "description": "Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "direction": { + "enum": [ + "positive", + "negative", + "symmetric" + ] + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "taper": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "extrude" + ] + } + }, + "required": [ + "type", + "profiles", + "distance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "revolve" + ] + } + }, + "required": [ + "type", + "profiles", + "axis", + "angle" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "edges": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "radius": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "fillet" + ] + } + }, + "required": [ + "type", + "edges", + "radius" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "edges": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "chamfer" + ] + } + }, + "required": [ + "type", + "edges", + "distance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "thickness": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "type": { + "enum": [ + "shell" + ] + } + }, + "required": [ + "type", + "faces", + "thickness" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "depth": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "diameter": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "points": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "hole" + ] + } + }, + "required": [ + "type", + "points", + "diameter", + "depth", + "bodies" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "loft" + ] + } + }, + "required": [ + "type", + "profiles" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "new_body", + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "path": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "profiles": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "sweep" + ] + } + }, + "required": [ + "type", + "profiles", + "path" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "body": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keepTools": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operation": { + "enum": [ + "join", + "cut", + "intersect" + ] + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "tools": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "type": { + "enum": [ + "combine" + ] + } + }, + "required": [ + "type", + "body", + "tools", + "operation" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "extend": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "split" + ] + } + }, + "required": [ + "type", + "bodies", + "plane" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "origin": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "translation": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "move" + ] + } + }, + "required": [ + "type", + "bodies" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "mirror" + ] + } + }, + "required": [ + "type", + "bodies", + "plane" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "axis2": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": { + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "count2": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "spacing": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "spacing2": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "rectangular_pattern" + ] + } + }, + "required": [ + "type", + "bodies", + "axis", + "count", + "spacing" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "bodies": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": { + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "circular_pattern" + ] + } + }, + "required": [ + "type", + "bodies", + "axis", + "count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "tangentChain": { + "type": "boolean" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "draft" + ] + } + }, + "required": [ + "type", + "faces", + "plane", + "angle" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "designation": { + "type": "string" + }, + "faces": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "internal": { + "type": "boolean" + }, + "modeled": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "target": { + "additionalProperties": false, + "properties": { + "documentId": { + "type": "string" + }, + "revision": { + "type": "string" + } + }, + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "threadClass": { + "type": "string" + }, + "threadType": { + "type": "string" + }, + "type": { + "enum": [ + "thread" + ] + } + }, + "required": [ + "type", + "faces", + "internal", + "threadType", + "designation", + "threadClass" + ], + "type": "object" + } + ], + "properties": { + "angle": {}, + "axis": {}, + "axis2": {}, + "bodies": {}, + "body": {}, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "count": {}, + "count2": {}, + "depth": {}, + "designation": {}, + "diameter": {}, + "direction": {}, + "distance": {}, + "edges": {}, + "extend": {}, + "faces": {}, + "internal": {}, + "keepTools": {}, + "modeled": {}, + "name": { + "type": "string" + }, + "operation": {}, + "origin": {}, + "path": {}, + "plane": {}, + "points": {}, + "profiles": {}, + "radius": {}, + "spacing": {}, + "spacing2": {}, + "tangentChain": {}, + "taper": {}, + "thickness": {}, + "threadClass": {}, + "threadType": {}, + "tools": {}, + "translation": {}, + "type": { + "enum": [ + "extrude", + "revolve", + "fillet", + "chamfer", + "shell", + "hole", + "loft", + "sweep", + "combine", + "split", + "move", + "mirror", + "rectangular_pattern", + "circular_pattern", + "draft", + "thread" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type" + ], + "type": "object" + }, + "feature_edit": { + "description": "Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.", + "properties": { + "feature": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "suppressed": { + "type": "boolean" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "feature" + ], + "type": "object" + }, + "geometry_query": { + "description": "Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.", + "properties": { + "body": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "filters": { + "additionalProperties": false, + "properties": { + "area": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "direction": { + "additionalProperties": false, + "properties": { + "orientation": { + "enum": [ + "same", + "parallel" + ] + }, + "tolerance": { + "maximum": 90, + "minimum": 0, + "type": "number" + }, + "vector": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [ + "vector" + ], + "type": "object" + }, + "length": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "near": { + "additionalProperties": false, + "properties": { + "point": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "tolerance": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "point", + "tolerance" + ], + "type": "object" + }, + "radius": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "max": { + "minimum": 0, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + } + }, + "required": [], + "type": "object" + }, + "type": { + "enum": [ + "Plane", + "Cylinder", + "Cone", + "Sphere", + "Torus", + "NurbsSurface", + "Line3D", + "Arc3D", + "Circle3D", + "Ellipse3D", + "EllipticalArc3D", + "NurbsCurve3D", + "Point3D", + "degenerate" + ] + } + }, + "required": [], + "type": "object" + }, + "kind": { + "enum": [ + "faces", + "edges", + "vertices" + ] + }, + "maxResults": { + "maximum": 1024, + "minimum": 1, + "type": "integer" + }, + "selection": { + "enum": [ + "one", + "many" + ] + }, + "space": { + "enum": [ + "root", + "component" + ] + } + }, + "required": [ + "op", + "target", + "body", + "kind", + "space" + ], + "type": "object" + }, + "health": { + "description": "Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.", + "properties": { + "recompute": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "inspect": { + "description": "Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.", + "properties": {}, + "required": [ + "op" + ], + "type": "object" + }, + "inspect_entity": { + "properties": { + "entity": { + "description": "Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.", + "type": "object" + } + }, + "required": [ + "op", + "target", + "entity" + ], + "type": "object" + }, + "interference": { + "description": "Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.", + "properties": { + "entities": { + "items": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 2, + "type": "array" + }, + "includeTouching": { + "type": "boolean" + }, + "volumeTolerance": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "op", + "target", + "entities" + ], + "type": "object" + }, + "joint_create": { + "description": "Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "rigid" + ] + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "revolute" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "slider" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "cylindrical" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "pin_slot" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "planar" + ] + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "sessionId": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + }, + "target": { + "type": "object" + }, + "type": { + "enum": [ + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "type", + "geometry" + ], + "type": "object" + } + ], + "properties": { + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "geometry": { + "additionalProperties": false, + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "occurrenceOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "occurrenceTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type", + "occurrenceOne", + "occurrenceTwo" + ], + "type": "object" + }, + "joint_delete": { + "description": "Delete one selected Joint or AsBuiltJoint with recovery verification.", + "properties": { + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "joint_edit": { + "description": "Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.", + "properties": { + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "suppressed": { + "type": "boolean" + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "joint_origin_create": { + "description": "Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "flipped": { + "type": "boolean" + }, + "geometry": { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetZ": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "xAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "zAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "geometry" + ], + "type": "object" + }, + "joint_origin_delete": { + "description": "Delete a native joint origin; unhealthy downstream joints cause transaction rollback.", + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "origin" + ], + "type": "object" + }, + "joint_origin_edit": { + "description": "Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "flipped": { + "type": "boolean" + }, + "geometry": { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetZ": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "xAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "zAxisEntity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "origin" + ], + "type": "object" + }, + "material_assign": { + "description": "Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.", + "properties": { + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "libraryId": { + "type": "string" + }, + "materialId": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "entity", + "materialId" + ], + "type": "object" + }, + "material_list": { + "description": "List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.", + "properties": { + "libraryId": { + "type": "string" + }, + "limit": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "query": { + "type": "string" + } + }, + "required": [ + "op", + "target" + ], + "type": "object" + }, + "mcmaster_discover": { + "description": "Discover Fusion native Insert McMaster-Carr command and requirements in the active design.", + "properties": {}, + "required": [ + "op" + ], + "type": "object" + }, + "mcmaster_open": { + "description": "Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.", + "properties": {}, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + }, + "measure": { + "description": "Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.", + "properties": { + "entities": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "space": { + "enum": [ + "root" + ] + }, + "type": { + "enum": [ + "distance", + "angle" + ] + } + }, + "required": [ + "op", + "target", + "type", + "space", + "entities" + ], + "type": "object" + }, + "motion_link_create": { + "description": "Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.", + "properties": { + "jointOne": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "jointTwo": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "motionOne": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "motionTwo": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "reversed": { + "type": "boolean" + }, + "valueOne": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "valueTwo": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "jointOne", + "motionOne", + "motionTwo", + "valueOne", + "valueTwo" + ], + "type": "object" + }, + "motion_link_delete": { + "description": "Delete a root-owned motion link under the same transaction/recovery contract.", + "properties": { + "link": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "link" + ], + "type": "object" + }, + "motion_link_edit": { + "description": "Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.", + "properties": { + "link": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "motionOne": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "motionTwo": { + "enum": [ + "rotation", + "slide", + "primarySlide", + "secondarySlide", + "pitch", + "roll", + "yaw" + ] + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "reversed": { + "type": "boolean" + }, + "suppressed": { + "type": "boolean" + }, + "valueOne": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "valueTwo": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "link" + ], + "type": "object" + }, + "new_design": { + "description": "Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.", + "properties": { + "box": { + "additionalProperties": false, + "properties": { + "depth": { + "exclusiveMinimum": 0, + "type": "number" + }, + "height": { + "exclusiveMinimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "width", + "height", + "depth" + ], + "type": "object" + }, + "name": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId" + ], + "type": "object" + }, + "occurrence_delete": { + "description": "Delete one selected occurrence through the shared transaction executor.", + "properties": { + "occurrence": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "occurrence" + ], + "type": "object" + }, + "occurrence_insert": { + "description": "Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.", + "properties": { + "component": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "independentCopy": { + "type": "boolean" + }, + "parent": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "component" + ], + "type": "object" + }, + "occurrence_update": { + "description": "Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.", + "properties": { + "grounded": { + "type": "boolean" + }, + "groundedToParent": { + "type": "boolean" + }, + "occurrence": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "transform": { + "additionalProperties": false, + "description": "Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.", + "properties": { + "angle": { + "type": "number" + }, + "axis": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" + } + }, + "required": [], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "occurrence" + ], + "type": "object" + }, + "parameter_batch": { + "description": "Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.", + "properties": { + "changes": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "create" + ] + }, + "comment": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + }, + "unit": { + "enum": [ + "mm", + "deg", + "kg", + "" + ] + } + }, + "required": [ + "action", + "name", + "expression", + "unit" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "set" + ] + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "action", + "name", + "expression" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "delete" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + } + ] + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "changes" + ], + "type": "object" + }, + "parameter_create": { + "properties": { + "comment": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "name": { + "type": "string" + }, + "unit": { + "enum": [ + "mm", + "deg", + "kg", + "" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name", + "expression", + "unit" + ], + "type": "object" + }, + "parameter_set": { + "description": "Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.", + "properties": { + "expression": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "name", + "expression" + ], + "type": "object" + }, + "plane_create": { + "description": "Create offset plane (offset in mm) or angled plane around axis (angle in deg).", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "offset": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "offset" + ] + } + }, + "required": [ + "type", + "offset" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "op": { + "type": "string" + }, + "operationId": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "sessionId": { + "type": "string" + }, + "target": { + "required": [ + "documentId", + "revision" + ], + "type": "object" + }, + "type": { + "enum": [ + "angle" + ] + } + }, + "required": [ + "type", + "axis", + "angle" + ], + "type": "object" + } + ], + "properties": { + "angle": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "axis": { + "oneOf": [ + { + "enum": [ + "x", + "y", + "z" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "offset": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + }, + "type": { + "enum": [ + "offset", + "angle" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type" + ], + "type": "object" + }, + "regular_joint_create": { + "description": "Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "flipped": { + "type": "boolean" + }, + "geometryOne": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "geometryTwo": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "locked": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "offset": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "pitchLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "pitchValue": { + "type": "number" + }, + "primarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "primarySlideValue": { + "type": "number" + }, + "rollLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rollValue": { + "type": "number" + }, + "rotationLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "rotationValue": { + "type": "number" + }, + "secondarySlideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "secondarySlideValue": { + "type": "number" + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "slideLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "slideValue": { + "type": "number" + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + }, + "yawLimits": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "maximum": { + "type": "number" + }, + "maximumEnabled": { + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "minimumEnabled": { + "type": "boolean" + }, + "rest": { + "type": "number" + }, + "restEnabled": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "yawValue": { + "type": "number" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "type", + "geometryOne", + "geometryTwo" + ], + "type": "object" + }, + "regular_joint_edit": { + "description": "Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.", + "properties": { + "angle": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "axis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "flipped": { + "type": "boolean" + }, + "geometryOne": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "geometryTwo": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "edge": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "entity": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "keyPoint": { + "enum": [ + "center", + "start", + "middle", + "end" + ] + } + }, + "required": [ + "entity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "origin": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "origin" + ], + "type": "object" + } + ] + }, + "joint": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "locked": { + "type": "boolean" + }, + "offset": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetX": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "offsetY": { + "description": "Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.", + "oneOf": [ + { + "type": "number" + }, + { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + ] + }, + "slideAxis": { + "enum": [ + "x", + "y", + "z" + ] + }, + "type": { + "enum": [ + "rigid", + "revolute", + "slider", + "cylindrical", + "pin_slot", + "planar", + "ball" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "joint" + ], + "type": "object" + }, + "rigid_group_create": { + "description": "Create a native rigid group from exact occurrence instances; includeChildren defaults true.", + "properties": { + "includeChildren": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "occurrences": { + "items": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "occurrences" + ], + "type": "object" + }, + "rigid_group_delete": { + "description": "Delete an exact rigid group with transaction recovery.", + "properties": { + "group": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "group" + ], + "type": "object" + }, + "rigid_group_edit": { + "description": "Rename or suppress an exact rigid group with transaction recovery.", + "properties": { + "group": { + "description": "Guarded reference from inspect in this document/revision; occurrence references retain instance context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "suppressed": { + "type": "boolean" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "group" + ], + "type": "object" + }, + "sketch_constraint": { + "description": "Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "type": { + "enum": [ + "horizontal", + "vertical", + "coincident", + "parallel", + "perpendicular", + "tangent", + "equal", + "concentric", + "collinear", + "midpoint", + "symmetry", + "fix" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "type", + "entities" + ], + "type": "object" + }, + "sketch_create": { + "description": "Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.", + "properties": { + "component": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "plane": { + "oneOf": [ + { + "enum": [ + "xy", + "xz", + "yz" + ] + }, + { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + }, + "sketch_curve_edit": { + "description": "Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.", + "properties": { + "action": { + "enum": [ + "trim", + "extend", + "split", + "break" + ] + }, + "allowDelete": { + "type": "boolean" + }, + "createConstraints": { + "type": "boolean" + }, + "curve": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "pick": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "sketch", + "curve", + "action", + "pick" + ], + "type": "object" + }, + "sketch_diagnostics": { + "description": "Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.", + "properties": { + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "target", + "sketch" + ], + "type": "object" + }, + "sketch_dimension": { + "description": "Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "expression": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "parameterName": { + "type": "string" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "type": { + "enum": [ + "distance", + "horizontal", + "vertical", + "radius", + "diameter", + "angle" + ] + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "type", + "entities", + "expression", + "position" + ], + "type": "object" + }, + "sketch_edit": { + "description": "Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.", + "properties": { + "changes": { + "additionalProperties": false, + "minProperties": 1, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "fixed": { + "type": "boolean" + }, + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "radius": { + "type": "number" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + } + }, + "required": [], + "type": "object" + }, + "entity": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "entity", + "changes" + ], + "type": "object" + }, + "sketch_geometry": { + "description": "Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.", + "properties": { + "items": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "position": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "point" + ] + } + }, + "required": [ + "type", + "position" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "line" + ] + } + }, + "required": [ + "type", + "start", + "end" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "rectangle" + ] + } + }, + "required": [ + "type", + "start", + "end" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "radius": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "enum": [ + "circle" + ] + } + }, + "required": [ + "type", + "center", + "radius" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "sweep": { + "type": "number" + }, + "type": { + "enum": [ + "arc" + ] + } + }, + "required": [ + "type", + "center", + "start", + "sweep" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "angle": { + "type": "number" + }, + "center": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "construction": { + "type": "boolean" + }, + "radius": { + "exclusiveMinimum": 0, + "type": "number" + }, + "sides": { + "maximum": 128, + "minimum": 3, + "type": "integer" + }, + "type": { + "enum": [ + "polygon" + ] + } + }, + "required": [ + "type", + "center", + "radius", + "sides" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "construction": { + "type": "boolean" + }, + "end": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "start": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "slot" + ] + }, + "width": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "type", + "start", + "end", + "width" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "closed": { + "type": "boolean" + }, + "construction": { + "type": "boolean" + }, + "points": { + "items": { + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "maxItems": 128, + "minItems": 2, + "type": "array" + }, + "type": { + "enum": [ + "spline" + ] + } + }, + "required": [ + "type", + "points" + ], + "type": "object" + } + ] + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "items" + ], + "type": "object" + }, + "sketch_offset": { + "description": "Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.", + "properties": { + "curves": { + "items": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "distance": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "sketch": { + "description": "Current guarded entity reference; root-space child geometry requires its exact occurrence context.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "topologyMatched": { + "type": "boolean" + } + }, + "required": [ + "op", + "target", + "sessionId", + "operationId", + "sketch", + "curves", + "distance" + ], + "type": "object" + }, + "sketch_project": { + "description": "Project selected topology into a sketch with Fusion associative projection.", + "properties": { + "entities": { + "items": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + }, + "maxItems": 256, + "minItems": 1, + "type": "array" + }, + "sketch": { + "description": "Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.", + "required": [ + "documentId", + "revision", + "objectType" + ], + "type": "object" + } + }, + "required": [ + "op", + "sessionId", + "operationId", + "target", + "sketch", + "entities" + ], + "type": "object" + }, + "transaction_probe": { + "description": "Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.", + "properties": {}, + "required": [ + "op", + "sessionId", + "operationId", + "target" + ], + "type": "object" + } + }, + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"idempotency\":{\"admission\":\"FULL SQLite commit before native dispatch\",\"capacity\":10000,\"databaseByteLimit\":67108864,\"recordByteLimit\":4194304,\"restartBehavior\":\"old-session history is readable; native execution never replays across sessions\",\"scope\":\"durable history keyed by add-in session and operation ID\",\"storageVersion\":1},\"operations\":{\"assembly_properties\":{\"description\":\"High-accuracy physical properties of whole root assembly (default) or an exact Component/Occurrence/BRepBody. Returns mass kg, volume mm3, area mm2, center of mass mm, mean density kg/mm3 and definition/instance coordinate scope.\",\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"bom\":{\"description\":\"Structured component-definition and instance BOM; quantities by actual identity, root bodies plus nested children; purchased metadata collapses subtrees unless exploded. Physical mass includes all unsuppressed bodies exactly once per instance. Includes exact current active configuration provenance; incomplete configuration scope refuses. Visibility does not remove quantity.\",\"properties\":{\"explodePurchased\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"bom_export\":{\"description\":\"Export flat grouped purchasing rows or structured parent/path/depth instance rows and supplier provenance to CSV with exclusive/atomic publication. This external effect is separate from model transactions. Both CSV modes include document/revision and current active configuration table/row provenance.\",\"properties\":{\"explodePurchased\":{\"type\":\"boolean\"},\"filename\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"flat\",\"structured\"]},\"overwrite\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"filename\"],\"type\":\"object\"},\"cad_import\":{\"description\":\"Import a pre-downloaded local STEP/SAT into a new wrapper component in Hybrid design. Validate optional expected SHA-256, record actual source/hash/supplier metadata, preserve camera, measure model recovery. Does not fetch URLs or create cloud documents. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"filename\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"provenance\":{\"additionalProperties\":false,\"properties\":{\"description\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[\"supplier\",\"supplierPartNumber\",\"sourceUrl\"],\"type\":\"object\"},\"sha256\":{\"type\":\"string\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"filename\",\"provenance\"],\"type\":\"object\"},\"component_create\":{\"description\":\"Create a native internal component and its first occurrence in a Hybrid design. parent is a component definition; edits to it affect every instance. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"metadata\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"},\"excludeFromBom\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"partNumber\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\"],\"type\":\"object\"},\"component_metadata\":{\"description\":\"Update component-definition name/part number/description and persistent supplier or BOM attributes. Shared occurrences all see this metadata.\",\"properties\":{\"changes\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"asPurchased\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"},\"excludeFromBom\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"partNumber\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":\"string\"},\"supplier\":{\"type\":\"string\"},\"supplierPartNumber\":{\"type\":\"string\"}},\"required\":[],\"type\":\"object\"},\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"changes\"],\"type\":\"object\"},\"configuration_inspect\":{\"description\":\"Read the loaded Design configuration graph without activation or recompute: ordinary rows, the separate native reserved test row, all supported typed cells including inactive/test cells, exact controlled-source links and current ordinary row. Unreadable fields and unknown/theme/hierarchical/inserted scopes remain explicit incomplete diagnostics. Configuration lifecycle and configured-design model mutations remain disabled pending native recovery/archive gates.\",\"properties\":{},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"construction_axis\":{\"description\":\"Create a parametric axis from native references (edge/circular face/two intersecting planes/two distinct points). Root-space external geometry requires exact occurrence context. For cross-component geometry into a non-root target component, creationOccurrence must identify a root-context instance of that target. Returns component-space native axis geometry/health. No direct-only infinite-line or preview snap APIs.\",\"properties\":{\"component\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"creationOccurrence\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entities\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":2,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"type\":{\"enum\":[\"edge\",\"circular_face\",\"two_planes\",\"two_points\"]}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"type\",\"entities\"],\"type\":\"object\"},\"entity_delete\":{\"description\":\"Delete sketch geometry or independently deletable timeline features. Model transaction and semantic recovery cover downstream failures; document and external file deletion are excluded.\",\"properties\":{\"entity\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"entity\"],\"type\":\"object\"},\"export\":{\"description\":\"Export entire design using runtime-checked API. Preflight and unique same-filesystem staging preserve the destination on failure; publish only nonempty verified output. Availability differs by Fusion build. STL numeric coordinates use mm.\",\"properties\":{\"format\":{\"default\":\"step\",\"enum\":[\"step\",\"stl\",\"3mf\",\"f3d\",\"iges\",\"sat\",\"smt\",\"usdz\",\"fbx\",\"skp\"]},\"outputPath\":{\"type\":\"string\"},\"overwrite\":{\"default\":false,\"type\":\"boolean\"},\"refinement\":{\"default\":\"medium\",\"enum\":[\"low\",\"medium\",\"high\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"outputPath\"],\"type\":\"object\"},\"feature_create\":{\"description\":\"Create a typed native solid feature. All length quantities are mm (or expressions), angles deg. Cut/intersect require explicit participant bodies. Join needs a single existing component body; combine selects multiple bodies explicitly. Feature availability is runtime-checked; missing APIs fail before commit.\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"direction\":{\"enum\":[\"positive\",\"negative\",\"symmetric\"]},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"taper\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"extrude\"]}},\"required\":[\"type\",\"profiles\",\"distance\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"revolve\"]}},\"required\":[\"type\",\"profiles\",\"axis\",\"angle\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"edges\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"radius\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"fillet\"]}},\"required\":[\"type\",\"edges\",\"radius\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"edges\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"chamfer\"]}},\"required\":[\"type\",\"edges\",\"distance\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"thickness\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"type\":{\"enum\":[\"shell\"]}},\"required\":[\"type\",\"faces\",\"thickness\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"depth\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"diameter\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"points\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"hole\"]}},\"required\":[\"type\",\"points\",\"diameter\",\"depth\",\"bodies\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"loft\"]}},\"required\":[\"type\",\"profiles\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"new_body\",\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"path\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"profiles\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"sweep\"]}},\"required\":[\"type\",\"profiles\",\"path\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"body\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keepTools\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operation\":{\"enum\":[\"join\",\"cut\",\"intersect\"]},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"tools\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"type\":{\"enum\":[\"combine\"]}},\"required\":[\"type\",\"body\",\"tools\",\"operation\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"extend\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"split\"]}},\"required\":[\"type\",\"bodies\",\"plane\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"origin\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"translation\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"move\"]}},\"required\":[\"type\",\"bodies\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"mirror\"]}},\"required\":[\"type\",\"bodies\",\"plane\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"axis2\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{\"maximum\":1000,\"minimum\":2,\"type\":\"integer\"},\"count2\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"spacing\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"spacing2\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"rectangular_pattern\"]}},\"required\":[\"type\",\"bodies\",\"axis\",\"count\",\"spacing\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"bodies\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{\"maximum\":1000,\"minimum\":2,\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"circular_pattern\"]}},\"required\":[\"type\",\"bodies\",\"axis\",\"count\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"tangentChain\":{\"type\":\"boolean\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"draft\"]}},\"required\":[\"type\",\"faces\",\"plane\",\"angle\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"designation\":{\"type\":\"string\"},\"faces\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"internal\":{\"type\":\"boolean\"},\"modeled\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"target\":{\"additionalProperties\":false,\"properties\":{\"documentId\":{\"type\":\"string\"},\"revision\":{\"type\":\"string\"}},\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"threadClass\":{\"type\":\"string\"},\"threadType\":{\"type\":\"string\"},\"type\":{\"enum\":[\"thread\"]}},\"required\":[\"type\",\"faces\",\"internal\",\"threadType\",\"designation\",\"threadClass\"],\"type\":\"object\"}],\"properties\":{\"angle\":{},\"axis\":{},\"axis2\":{},\"bodies\":{},\"body\":{},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"count\":{},\"count2\":{},\"depth\":{},\"designation\":{},\"diameter\":{},\"direction\":{},\"distance\":{},\"edges\":{},\"extend\":{},\"faces\":{},\"internal\":{},\"keepTools\":{},\"modeled\":{},\"name\":{\"type\":\"string\"},\"operation\":{},\"origin\":{},\"path\":{},\"plane\":{},\"points\":{},\"profiles\":{},\"radius\":{},\"spacing\":{},\"spacing2\":{},\"tangentChain\":{},\"taper\":{},\"thickness\":{},\"threadClass\":{},\"threadType\":{},\"tools\":{},\"translation\":{},\"type\":{\"enum\":[\"extrude\",\"revolve\",\"fillet\",\"chamfer\",\"shell\",\"hole\",\"loft\",\"sweep\",\"combine\",\"split\",\"move\",\"mirror\",\"rectangular_pattern\",\"circular_pattern\",\"draft\",\"thread\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\"],\"type\":\"object\"},\"feature_edit\":{\"description\":\"Rename/suppress a feature or change expressions of model parameters whose createdBy is that exact feature; read health and abort on downstream errors.\",\"properties\":{\"feature\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"parameters\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\"},\"suppressed\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"feature\"],\"type\":\"object\"},\"geometry_query\":{\"description\":\"Complete body-scoped topology query, no arbitrary first-match selection. selection one (default) refuses zero/multiple matches; many may return empty. Geometry types are exact native types; size ranges inclusive in mm/mm2, near is minimum distance in the explicit frame; direction is outward planar face normal or linear edge tangent. Returned refs retain instance context even for component-space filters. Exceeding maxResults fails rather than truncating.\",\"properties\":{\"body\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"filters\":{\"additionalProperties\":false,\"properties\":{\"area\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"direction\":{\"additionalProperties\":false,\"properties\":{\"orientation\":{\"enum\":[\"same\",\"parallel\"]},\"tolerance\":{\"maximum\":90,\"minimum\":0,\"type\":\"number\"},\"vector\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[\"vector\"],\"type\":\"object\"},\"length\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"near\":{\"additionalProperties\":false,\"properties\":{\"point\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"tolerance\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[\"point\",\"tolerance\"],\"type\":\"object\"},\"radius\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"max\":{\"minimum\":0,\"type\":\"number\"},\"min\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[],\"type\":\"object\"},\"type\":{\"enum\":[\"Plane\",\"Cylinder\",\"Cone\",\"Sphere\",\"Torus\",\"NurbsSurface\",\"Line3D\",\"Arc3D\",\"Circle3D\",\"Ellipse3D\",\"EllipticalArc3D\",\"NurbsCurve3D\",\"Point3D\",\"degenerate\"]}},\"required\":[],\"type\":\"object\"},\"kind\":{\"enum\":[\"faces\",\"edges\",\"vertices\"]},\"maxResults\":{\"maximum\":1024,\"minimum\":1,\"type\":\"integer\"},\"selection\":{\"enum\":[\"one\",\"many\"]},\"space\":{\"enum\":[\"root\",\"component\"]}},\"required\":[\"op\",\"target\",\"body\",\"kind\",\"space\"],\"type\":\"object\"},\"health\":{\"description\":\"Read timeline warnings/errors. recompute:true also requires current target revision, sessionId and operationId.\",\"properties\":{\"recompute\":{\"default\":false,\"type\":\"boolean\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"inspect\":{\"description\":\"Inspect the active Design without mutation. Returns target identity/revision, native component-space bodies and occurrence transforms, parameters and feature health.\",\"properties\":{},\"required\":[\"op\"],\"type\":\"object\"},\"inspect_entity\":{\"properties\":{\"entity\":{\"description\":\"Exact reference returned by inspect; resolves uniquely with document/revision/type/occurrence guards.\",\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"entity\"],\"type\":\"object\"},\"interference\":{\"description\":\"Analyze root-context occurrences/body proxies; returns overlap volume mm3 or touching. Does not create interference bodies.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":2,\"type\":\"array\"},\"includeTouching\":{\"type\":\"boolean\"},\"volumeTolerance\":{\"minimum\":0,\"type\":\"number\"}},\"required\":[\"op\",\"target\",\"entities\"],\"type\":\"object\"},\"joint_create\":{\"description\":\"Create an as-built joint without moving occurrences. Non-rigid motion requires explicit joint geometry; x/y/z are joint-coordinate directions. Limits and drive values use mm/deg. Seven native motion types; ball uses joint Z pitch/X yaw; planar uses native primary slide direction reported on readback. Use regular_joint_create for geometry-solving placement.\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"rigid\"]}},\"required\":[\"type\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"revolute\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"sessionId\":{\"type\":\"string\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"slider\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"cylindrical\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"pin_slot\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"planar\"]}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"sessionId\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"},\"target\":{\"type\":\"object\"},\"type\":{\"enum\":[\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"type\",\"geometry\"],\"type\":\"object\"}],\"properties\":{\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"occurrenceOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"occurrenceTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\",\"occurrenceOne\",\"occurrenceTwo\"],\"type\":\"object\"},\"joint_delete\":{\"description\":\"Delete one selected Joint or AsBuiltJoint with recovery verification.\",\"properties\":{\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"joint_edit\":{\"description\":\"Edit joint name/suppression, enabled limits, rest and drive values; wrong motion type or out-of-limit values fail with recovery. For driven root joints, active motion links must preserve their settings and their partner motion must follow the native ratio; a coupling mismatch aborts.\",\"properties\":{\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"suppressed\":{\"type\":\"boolean\"},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"joint_origin_create\":{\"description\":\"Create a native component-definition joint origin from guarded native geometry, with mm offsets/deg angle and optional straight axis references. Child occurrence origin references are exposed by inspect_entity(occurrence).\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"flipped\":{\"type\":\"boolean\"},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetZ\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"xAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"zAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"geometry\"],\"type\":\"object\"},\"joint_origin_delete\":{\"description\":\"Delete a native joint origin; unhealthy downstream joints cause transaction rollback.\",\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"origin\"],\"type\":\"object\"},\"joint_origin_edit\":{\"description\":\"Edit a native joint origin definition; rolls before its timeline item and restores the original marker in finally. Recomputes and verifies attachment, axes, offsets, angle, name and flip.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"flipped\":{\"type\":\"boolean\"},\"geometry\":{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetZ\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"xAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"zAxisEntity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"origin\"],\"type\":\"object\"},\"material_assign\":{\"description\":\"Assign a loaded library or document material to an exact native Component/BRepBody; verify material ID readback with model transaction recovery. Query assembly_properties for resulting mass.\",\"properties\":{\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"libraryId\":{\"type\":\"string\"},\"materialId\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"entity\",\"materialId\"],\"type\":\"object\"},\"material_list\":{\"description\":\"List loaded material libraries and matching materials by stable library/material IDs. Omit libraryId for document materials.\",\"properties\":{\"libraryId\":{\"type\":\"string\"},\"limit\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\"},\"query\":{\"type\":\"string\"}},\"required\":[\"op\",\"target\"],\"type\":\"object\"},\"mcmaster_discover\":{\"description\":\"Discover Fusion native Insert McMaster-Carr command and requirements in the active design.\",\"properties\":{},\"required\":[\"op\"],\"type\":\"object\"},\"mcmaster_open\":{\"description\":\"Invoke Fusion native McMaster UI in the targeted Hybrid design. Interactive external operation: completion/insert/cancel stays with Fusion; inspect afterward. Idempotency records launch only.\",\"properties\":{},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"},\"measure\":{\"description\":\"Native engineering minimum distance or angle in root assembly space. Non-root definition refs require an occurrence context. Distance needs2 entities; angle needs2 lines/planes or3 points (second apex). Returns mm/deg and native witness positions in root mm. witnessValidation identifies native points or native geometry directions used for valid parallel angles with degenerate native points; degenerate point angles and unavailable/inconsistent witnesses fail.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"space\":{\"enum\":[\"root\"]},\"type\":{\"enum\":[\"distance\",\"angle\"]}},\"required\":[\"op\",\"target\",\"type\",\"space\",\"entities\"],\"type\":\"object\"},\"motion_link_create\":{\"description\":\"Create a native motion link between two root-owned joints, or two different motions of jointOne when jointTwo is omitted. Positive ratio magnitudes use mm for translation and deg for rotation; reversed selects opposite direction. Requires the November 2025+ API; no script fallback.\",\"properties\":{\"jointOne\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"jointTwo\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"motionOne\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"motionTwo\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"reversed\":{\"type\":\"boolean\"},\"valueOne\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"valueTwo\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"jointOne\",\"motionOne\",\"motionTwo\",\"valueOne\",\"valueTwo\"],\"type\":\"object\"},\"motion_link_delete\":{\"description\":\"Delete a root-owned motion link under the same transaction/recovery contract.\",\"properties\":{\"link\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"link\"],\"type\":\"object\"},\"motion_link_edit\":{\"description\":\"Edit a root-owned motion link ratio, degree-of-freedom pair, direction, name or suppression. Joint membership is immutable; recreate the link to change members. Verify exact joint identities, ratio, flags and health.\",\"properties\":{\"link\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"motionOne\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"motionTwo\":{\"enum\":[\"rotation\",\"slide\",\"primarySlide\",\"secondarySlide\",\"pitch\",\"roll\",\"yaw\"]},\"name\":{\"maxLength\":120,\"minLength\":1,\"type\":\"string\"},\"reversed\":{\"type\":\"boolean\"},\"suppressed\":{\"type\":\"boolean\"},\"valueOne\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"valueTwo\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"link\"],\"type\":\"object\"},\"new_design\":{\"description\":\"Create an unnamed unsaved parametric hybrid Design; name is retained as requestedName metadata to keep failure recovery free of save dialogs. Optional box dimensions in mm create a driving-parameter fixture. Never edits an existing document.\",\"properties\":{\"box\":{\"additionalProperties\":false,\"properties\":{\"depth\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"height\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"width\":{\"exclusiveMinimum\":0,\"type\":\"number\"}},\"required\":[\"width\",\"height\",\"depth\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\"],\"type\":\"object\"},\"occurrence_delete\":{\"description\":\"Delete one selected occurrence through the shared transaction executor.\",\"properties\":{\"occurrence\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"occurrence\"],\"type\":\"object\"},\"occurrence_insert\":{\"description\":\"Insert another occurrence of an existing definition; independentCopy:true uses Paste New to create a separate definition. Nested placement is in parent component coordinates. Returns a representative root-context occurrence and all affectedOccurrences when the parent definition is reused.\",\"properties\":{\"component\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"independentCopy\":{\"type\":\"boolean\"},\"parent\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"component\"],\"type\":\"object\"},\"occurrence_update\":{\"description\":\"Set occurrence pose in its assembly context and capture position; explicit grounding/ungrounding. Grounded or constrained transforms fail with recovery.\",\"properties\":{\"grounded\":{\"type\":\"boolean\"},\"groundedToParent\":{\"type\":\"boolean\"},\"occurrence\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"transform\":{\"additionalProperties\":false,\"description\":\"Absolute rotation about the given nonzero axis through origin (deg), then translation (mm). Create/insert use parent component coordinates; updates use the selected occurrence assembly context.\",\"properties\":{\"angle\":{\"type\":\"number\"},\"axis\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":3,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"occurrence\"],\"type\":\"object\"},\"parameter_batch\":{\"description\":\"Atomic sequential create/set/delete parameter edits with one recompute+health gate; delete supports user parameters only. Any failure aborts all edits and reports semantic recovery.\",\"properties\":{\"changes\":{\"items\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"create\"]},\"comment\":{\"type\":\"string\"},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"unit\":{\"enum\":[\"mm\",\"deg\",\"kg\",\"\"]}},\"required\":[\"action\",\"name\",\"expression\",\"unit\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"set\"]},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"action\",\"name\",\"expression\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"delete\"]},\"name\":{\"type\":\"string\"}},\"required\":[\"action\",\"name\"],\"type\":\"object\"}]},\"maxItems\":128,\"minItems\":1,\"type\":\"array\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"changes\"],\"type\":\"object\"},\"parameter_create\":{\"properties\":{\"comment\":{\"type\":\"string\"},\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"unit\":{\"enum\":[\"mm\",\"deg\",\"kg\",\"\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\",\"expression\",\"unit\"],\"type\":\"object\"},\"parameter_set\":{\"description\":\"Set an expression, recompute and inspect health. Failure restores old expression and reports a semantic recovery witness; not an atomic transaction.\",\"properties\":{\"expression\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"name\",\"expression\"],\"type\":\"object\"},\"plane_create\":{\"description\":\"Create offset plane (offset in mm) or angled plane around axis (angle in deg).\",\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"offset\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"offset\"]}},\"required\":[\"type\",\"offset\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"op\":{\"type\":\"string\"},\"operationId\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"sessionId\":{\"type\":\"string\"},\"target\":{\"required\":[\"documentId\",\"revision\"],\"type\":\"object\"},\"type\":{\"enum\":[\"angle\"]}},\"required\":[\"type\",\"axis\",\"angle\"],\"type\":\"object\"}],\"properties\":{\"angle\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"axis\":{\"oneOf\":[{\"enum\":[\"x\",\"y\",\"z\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"offset\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]},\"type\":{\"enum\":[\"offset\",\"angle\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\"],\"type\":\"object\"},\"regular_joint_create\":{\"description\":\"Create a geometry-solving regular joint in the root component using two distinct instance-context attachments or joint origins. All seven native motion families; offsets mm, angle and angular limits deg. Read back freshly resolved attachment graph, native parameters and root-space occurrence placement. Root/non-root sides must be unambiguous; both grounded and ancestor/descendant pairs are refused. Inferred joints are unsupported. Existing pending positions must be captured or reverted first. Before applying drive values, checks native joint-transform anchor offset magnitude/axiality and zero-angle axis collinearity. Native joint matrices have explicit provenance; physical angle/flip sense requires independent occurrence-geometry acceptance.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"flipped\":{\"type\":\"boolean\"},\"geometryOne\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"geometryTwo\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"locked\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"offset\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"pitchLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"pitchValue\":{\"type\":\"number\"},\"primarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"primarySlideValue\":{\"type\":\"number\"},\"rollLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rollValue\":{\"type\":\"number\"},\"rotationLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"rotationValue\":{\"type\":\"number\"},\"secondarySlideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"secondarySlideValue\":{\"type\":\"number\"},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"slideLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"slideValue\":{\"type\":\"number\"},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]},\"yawLimits\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"maximum\":{\"type\":\"number\"},\"maximumEnabled\":{\"type\":\"boolean\"},\"minimum\":{\"type\":\"number\"},\"minimumEnabled\":{\"type\":\"boolean\"},\"rest\":{\"type\":\"number\"},\"restEnabled\":{\"type\":\"boolean\"}},\"required\":[],\"type\":\"object\"},\"yawValue\":{\"type\":\"number\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"type\",\"geometryOne\",\"geometryTwo\"],\"type\":\"object\"},\"regular_joint_edit\":{\"description\":\"Redefine root-owned regular joint geometry, motion family, offsets, angle, flip or lock. Restore timeline in finally and verify after recompute. Use joint_edit for name, suppression, limits and drive values; joint_delete for deletion.\",\"properties\":{\"angle\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"axis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"flipped\":{\"type\":\"boolean\"},\"geometryOne\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"geometryTwo\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"edge\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"entity\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"keyPoint\":{\"enum\":[\"center\",\"start\",\"middle\",\"end\"]}},\"required\":[\"entity\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"origin\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"origin\"],\"type\":\"object\"}]},\"joint\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"locked\":{\"type\":\"boolean\"},\"offset\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetX\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"offsetY\":{\"description\":\"Number in mm (angle in deg), or a dimensionally valid Fusion parameter expression.\",\"oneOf\":[{\"type\":\"number\"},{\"maxLength\":512,\"minLength\":1,\"type\":\"string\"}]},\"slideAxis\":{\"enum\":[\"x\",\"y\",\"z\"]},\"type\":{\"enum\":[\"rigid\",\"revolute\",\"slider\",\"cylindrical\",\"pin_slot\",\"planar\",\"ball\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"joint\"],\"type\":\"object\"},\"rigid_group_create\":{\"description\":\"Create a native rigid group from exact occurrence instances; includeChildren defaults true.\",\"properties\":{\"includeChildren\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"occurrences\":{\"items\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":2,\"type\":\"array\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"occurrences\"],\"type\":\"object\"},\"rigid_group_delete\":{\"description\":\"Delete an exact rigid group with transaction recovery.\",\"properties\":{\"group\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"group\"],\"type\":\"object\"},\"rigid_group_edit\":{\"description\":\"Rename or suppress an exact rigid group with transaction recovery.\",\"properties\":{\"group\":{\"description\":\"Guarded reference from inspect in this document/revision; occurrence references retain instance context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"suppressed\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"group\"],\"type\":\"object\"},\"sketch_constraint\":{\"description\":\"Constrain entities in one sketch. midpoint order is point,line; symmetry order entity1,entity2,symmetryLine. fix sets one entity fixed.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"type\":{\"enum\":[\"horizontal\",\"vertical\",\"coincident\",\"parallel\",\"perpendicular\",\"tangent\",\"equal\",\"concentric\",\"collinear\",\"midpoint\",\"symmetry\",\"fix\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"type\",\"entities\"],\"type\":\"object\"},\"sketch_create\":{\"description\":\"Create a native component-definition sketch on an origin/construction plane or planar face. Coordinates in subsequent geometry are sketch-space mm.\",\"properties\":{\"component\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"name\":{\"type\":\"string\"},\"plane\":{\"oneOf\":[{\"enum\":[\"xy\",\"xz\",\"yz\"]},{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"},\"sketch_curve_edit\":{\"description\":\"Edit one native sketch curve with sketch-space mm pick. trim removes the nearest segment; extend chooses nearest endpoint; split requires an interior on-curve point; break uses neighboring intersections. Fresh replacement refs are returned; original may be deleted. In-place extend returns the original with a fresh ref only after its geometry change survives recompute. No change or empty break/split fails. Full trim deletion requires allowDelete true. Linked/derived/deferred-compute geometry refused.\",\"properties\":{\"action\":{\"enum\":[\"trim\",\"extend\",\"split\",\"break\"]},\"allowDelete\":{\"type\":\"boolean\"},\"createConstraints\":{\"type\":\"boolean\"},\"curve\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"pick\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"sketch\",\"curve\",\"action\",\"pick\"],\"type\":\"object\"},\"sketch_diagnostics\":{\"description\":\"Read native sketch health/message, fully-constrained/fixed/linked/reference flags, geometric constraints and driving dimensions. Reports no solver DOF count or conflict-set explanation; no recompute/mutation.\",\"properties\":{\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"target\",\"sketch\"],\"type\":\"object\"},\"sketch_dimension\":{\"description\":\"Add driving dimensions. Distance uses two point references; radius/diameter one curve; angle two lines. Numeric expressions use mm or deg.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"expression\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"parameterName\":{\"type\":\"string\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"type\":{\"enum\":[\"distance\",\"horizontal\",\"vertical\",\"radius\",\"diameter\",\"angle\"]}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"type\",\"entities\",\"expression\",\"position\"],\"type\":\"object\"},\"sketch_edit\":{\"description\":\"Move sketch points/endpoints/centers in sketch-space mm, change radius or construction/fixed flags; solver failure aborts the operation.\",\"properties\":{\"changes\":{\"additionalProperties\":false,\"minProperties\":1,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"fixed\":{\"type\":\"boolean\"},\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"radius\":{\"type\":\"number\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"}},\"required\":[],\"type\":\"object\"},\"entity\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"entity\",\"changes\"],\"type\":\"object\"},\"sketch_geometry\":{\"description\":\"Create a transactionally grouped set of sketch primitives. Numeric geometry uses mm and arc sweeps/polygon angles use deg.\",\"properties\":{\"items\":{\"items\":{\"oneOf\":[{\"additionalProperties\":false,\"properties\":{\"position\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"point\"]}},\"required\":[\"type\",\"position\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"line\"]}},\"required\":[\"type\",\"start\",\"end\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"rectangle\"]}},\"required\":[\"type\",\"start\",\"end\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"radius\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"type\":{\"enum\":[\"circle\"]}},\"required\":[\"type\",\"center\",\"radius\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"sweep\":{\"type\":\"number\"},\"type\":{\"enum\":[\"arc\"]}},\"required\":[\"type\",\"center\",\"start\",\"sweep\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"angle\":{\"type\":\"number\"},\"center\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"construction\":{\"type\":\"boolean\"},\"radius\":{\"exclusiveMinimum\":0,\"type\":\"number\"},\"sides\":{\"maximum\":128,\"minimum\":3,\"type\":\"integer\"},\"type\":{\"enum\":[\"polygon\"]}},\"required\":[\"type\",\"center\",\"radius\",\"sides\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"construction\":{\"type\":\"boolean\"},\"end\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"start\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"slot\"]},\"width\":{\"exclusiveMinimum\":0,\"type\":\"number\"}},\"required\":[\"type\",\"start\",\"end\",\"width\"],\"type\":\"object\"},{\"additionalProperties\":false,\"properties\":{\"closed\":{\"type\":\"boolean\"},\"construction\":{\"type\":\"boolean\"},\"points\":{\"items\":{\"items\":{\"type\":\"number\"},\"maxItems\":3,\"minItems\":2,\"type\":\"array\"},\"maxItems\":128,\"minItems\":2,\"type\":\"array\"},\"type\":{\"enum\":[\"spline\"]}},\"required\":[\"type\",\"points\"],\"type\":\"object\"}]},\"maxItems\":128,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"items\"],\"type\":\"object\"},\"sketch_offset\":{\"description\":\"Modern createOffsetInput/addOffset2. Curves must be native 2D, unique, in connected flow order (never reordered). Nonzero signed mm number/expression: positive right, negative left; a single circle/ellipse positive outside. Topology matched defaults true. Read back native signed distance, parent/child refs and controlling parameter after recompute. No retired Sketch.offset fallback.\",\"properties\":{\"curves\":{\"items\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"distance\":{\"oneOf\":[{\"type\":\"number\"},{\"type\":\"string\"}]},\"sketch\":{\"description\":\"Current guarded entity reference; root-space child geometry requires its exact occurrence context.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"topologyMatched\":{\"type\":\"boolean\"}},\"required\":[\"op\",\"target\",\"sessionId\",\"operationId\",\"sketch\",\"curves\",\"distance\"],\"type\":\"object\"},\"sketch_project\":{\"description\":\"Project selected topology into a sketch with Fusion associative projection.\",\"properties\":{\"entities\":{\"items\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"},\"maxItems\":256,\"minItems\":1,\"type\":\"array\"},\"sketch\":{\"description\":\"Reference returned by inspect/inspect_entity in this document revision; native component-definition references for authoring.\",\"required\":[\"documentId\",\"revision\",\"objectType\"],\"type\":\"object\"}},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\",\"sketch\",\"entities\"],\"type\":\"object\"},\"transaction_probe\":{\"description\":\"Verify runtime PTransaction abort+commit using temporary user parameters, remove probe data and compare semantic restoration. Required once per running add-in session before feature/sketch/atomic-batch writes. Returns fresh target; inspect again for current references.\",\"properties\":{},\"required\":[\"op\",\"sessionId\",\"operationId\",\"target\"],\"type\":\"object\"}},\"schemaVersion\":1,\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60,\"transactions\":{\"externalEffects\":\"exports publish atomically; model recovery does not undo files\",\"genericAtomicBatch\":false,\"newDesignRecovery\":\"discard only the new unsaved document\",\"parameterRecovery\":\"compensating expression restore with semantic readback\",\"typedModelOperations\":{\"backend\":\"PTransaction\",\"evidence\":null,\"scope\":\"one active Fusion Design; no document lifecycle, files or cloud effects\",\"verified\":false}},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60, + "transactions": { + "externalEffects": "exports publish atomically; model recovery does not undo files", + "genericAtomicBatch": false, + "newDesignRecovery": "discard only the new unsaved document", + "parameterRecovery": "compensating expression restore with semantic readback", + "typedModelOperations": { + "backend": "PTransaction", + "evidence": null, + "scope": "one active Fusion Design; no document lifecycle, files or cloud effects", + "verified": false + } + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0009-fusion_run_modeling_script.json b/docs/mechanical-verification/cp9-readonly/calls/0009-fusion_run_modeling_script.json new file mode 100644 index 0000000..b94df48 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0009-fusion_run_modeling_script.json @@ -0,0 +1,62 @@ +{ + "target": "adom_drew2", + "verb": "fusion_run_modeling_script", + "args": { + "script": "import json\nREQUEST = json.loads('{\"baseline\": [{\"creationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\", \"modified\": false, \"name\": \"Untitled\", \"saved\": false}], \"action\": \"begin\", \"runId\": \"20261005T213050Z-422781656d64490da02934d1757322ed\", \"host\": \"ADOM_DREW2\", \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\"}')\n\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\n\ndef require(condition, message):\n if not condition:\n raise RuntimeError(message)\n\ndef same(a, b):\n if isinstance(a, bool) or isinstance(b, bool):\n return type(a) is type(b) and a == b\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\n if isinstance(a, dict) and isinstance(b, dict):\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\n if isinstance(a, list) and isinstance(b, list):\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\n return a == b\n\ndef vector(p):\n return [p.x * 10, p.y * 10, p.z * 10]\n\ndef body_measure(body):\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n box = body.boundingBox\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\n 'material': body.material.name if body.material else None}\n\ndef witness(document):\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n require(design is not None, 'Owned document is no longer a design')\n root = design.rootComponent\n components, occurrences = [], []\n all_bodies = [body_measure(b) for b in root.bRepBodies]\n for comp in design.allComponents:\n components.append({'name': '' if comp == root else comp.name,\n 'partNumber': comp.partNumber, 'description': comp.description,\n 'material': comp.material.name if comp.material else None,\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\n for occurrence in root.allOccurrences:\n matrix = list(occurrence.transform2.asArray())\n for index in (3, 7, 11): matrix[index] *= 10\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\n all_bodies.extend(bodies)\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\n 'transform': matrix, 'bodies': bodies})\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n return {'parameters': {p.name: p.expression for p in design.allParameters},\n 'timelineCount': design.timeline.count,\n 'components': sorted(components, key=lambda c: c['name']),\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\n 'centerOfMass': vector(props.centerOfMass)},\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\n 'instanceCount': len(all_bodies)}\n\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\nmodules = [m for n, m in list(sys.modules.items())\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\ncore = modules[0]\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\nif registries is None:\n registries = {}\n builtins._adom_mechanical_ralph_runs = registries\naction = REQUEST['action']\nrun = registries.get(REQUEST['runId'])\n\ndef documents():\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\n for d in app.documents]\n\ndef idle():\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\n\ndef fingerprint(document):\n return {'creationId': document.creationId, 'name': document.name,\n 'modified': document.isModified, 'saved': document.isSaved}\n\ndef owned(document_id, allow_closed=False):\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\n row = run['documents'][document_id]\n if row.get('closed'):\n require(allow_closed, 'Owned document is already closed')\n return row\n document = row['object']\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\n require(marker and marker.value == document_id, 'Runtime document marker changed')\n return row\n\ndef path_in_scratch(path):\n root = os.path.realpath(run['scratch'])\n path = os.path.abspath(path)\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\n 'Artifact is not inside the owned scratch directory')\n require(not os.path.islink(path), 'Artifact is a symlink')\n return path\n\ndef file_info(path):\n path = path_in_scratch(path)\n require(os.path.isfile(path), 'Checkpoint file is absent')\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\n with open(path, 'rb') as stream: data = stream.read()\n return {'path': path.replace('\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\n\ndef register(document, document_id, role):\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\n require(document_id not in run['documents'], 'Runtime ID is already registered')\n # Retain exact object first, including if marker creation later fails.\n row = {'object': document, 'documentId': document_id, 'role': role,\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\n run['documents'][document_id] = row\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\n return row\n\ndef public_row(row):\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\n\nif action == 'begin':\n idle()\n require(run is None, 'Native run registry already exists; use recover')\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\n baseline = documents()\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\n require(not os.path.exists(scratch), 'Run scratch already exists')\n parent = os.path.dirname(scratch)\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\n os.makedirs(scratch)\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\n 'baselineObjects': list(app.documents), 'baseline': baseline,\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\n registries[REQUEST['runId']] = run\n result = {'success': True, 'scratch': scratch.replace('\\\\', '/'), 'documents': baseline}\nelse:\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\n if action == 'inventory':\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\n 'scratch': run['scratch'].replace('\\\\', '/')}\n elif action == 'register':\n idle()\n document, design, document_id = core.active(app)\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\n row = register(document, document_id, REQUEST['role'])\n result = {'success': True, **public_row(row)}\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\n document = row['object']\n if action == 'verify':\n if not row.get('closed'):\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\n elif action == 'witness':\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\n elif action == 'activate':\n idle()\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing activation')\n if app.activeDocument != document:\n require(document.activate(), 'Owned document activation failed')\n result = {'success': True, 'documentId': row['documentId']}\n elif action == 'close':\n idle()\n if not row['closed']:\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing lifecycle changes')\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n require(document.close(False), 'Owned document close returned false')\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\n row['closed'] = True\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\n elif action == 'capture':\n require(app.activeDocument == document, 'Active document changed before capture')\n path = path_in_scratch(REQUEST['path'])\n require(not os.path.exists(path), 'Capture destination already exists')\n viewport = app.activeViewport\n viewport.fit()\n viewport.refresh()\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\n result = {'success': True, **file_info(path)}\n else:\n idle()\n require(app.activeDocument == document, 'Active document changed before roundtrip')\n path = path_in_scratch(REQUEST['path'])\n archive = file_info(path)\n before = witness(document)\n options = app.importManager.createFusionArchiveImportOptions(path)\n imported = app.importManager.importToNewDocument(options)\n # Keep the actual returned API object before any fragile getter or\n # identity lookup. A provisional object can only be retained/reported.\n provisional = {'object': imported}\n run.setdefault('provisionalImports', []).append(provisional)\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\n reopened_doc, reopened_design, reopened_id = core.active(app)\n require(reopened_doc == imported, 'Imported document identity mismatch')\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\n run['provisionalImports'].remove(provisional)\n after = witness(imported)\n require(same(before, after), 'Native archive roundtrip changed measured model state')\n # Mark both sides only after independent semantic comparison.\n for item in (row, reopened):\n item['checkpoint'] = archive\n item['witness'] = before\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\n 'reopened': public_row(reopened), 'source': public_row(row)}\n elif action == 'file':\n info = file_info(REQUEST['path'])\n with open(info['path'], 'rb') as stream: data = stream.read()\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\n if REQUEST.get('csv'):\n with open(info['path'], encoding='utf-8', newline='') as stream:\n result['rows'] = list(csv.DictReader(stream))\n elif action == 'restore':\n idle()\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\n require(len(list(app.documents)) == len(run['baselineObjects']) and\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\n 'Document set changed; refusing to change active document')\n require(documents() == run['baseline'], 'Original document flags changed')\n original = run['activeObject']\n if app.activeDocument != original:\n require(original.activate(), 'Original document activation failed')\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\n else:\n raise RuntimeError('Unknown native action')\n" + }, + "requestJson": "{\"script\": \"import json\\nREQUEST = json.loads('{\\\"baseline\\\": [{\\\"creationId\\\": \\\"cdf1e4ec-a727-4ffe-8975-d10e11191864\\\", \\\"modified\\\": false, \\\"name\\\": \\\"Untitled\\\", \\\"saved\\\": false}], \\\"action\\\": \\\"begin\\\", \\\"runId\\\": \\\"20261005T213050Z-422781656d64490da02934d1757322ed\\\", \\\"host\\\": \\\"ADOM_DREW2\\\", \\\"sessionId\\\": \\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\"}')\\n\\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\\n\\ndef require(condition, message):\\n if not condition:\\n raise RuntimeError(message)\\n\\ndef same(a, b):\\n if isinstance(a, bool) or isinstance(b, bool):\\n return type(a) is type(b) and a == b\\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\\n if isinstance(a, dict) and isinstance(b, dict):\\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\\n if isinstance(a, list) and isinstance(b, list):\\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\\n return a == b\\n\\ndef vector(p):\\n return [p.x * 10, p.y * 10, p.z * 10]\\n\\ndef body_measure(body):\\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n box = body.boundingBox\\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\\n 'material': body.material.name if body.material else None}\\n\\ndef witness(document):\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n require(design is not None, 'Owned document is no longer a design')\\n root = design.rootComponent\\n components, occurrences = [], []\\n all_bodies = [body_measure(b) for b in root.bRepBodies]\\n for comp in design.allComponents:\\n components.append({'name': '' if comp == root else comp.name,\\n 'partNumber': comp.partNumber, 'description': comp.description,\\n 'material': comp.material.name if comp.material else None,\\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\\n for occurrence in root.allOccurrences:\\n matrix = list(occurrence.transform2.asArray())\\n for index in (3, 7, 11): matrix[index] *= 10\\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\\n all_bodies.extend(bodies)\\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\\n 'transform': matrix, 'bodies': bodies})\\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n return {'parameters': {p.name: p.expression for p in design.allParameters},\\n 'timelineCount': design.timeline.count,\\n 'components': sorted(components, key=lambda c: c['name']),\\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\\n 'centerOfMass': vector(props.centerOfMass)},\\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\\n 'instanceCount': len(all_bodies)}\\n\\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\\nmodules = [m for n, m in list(sys.modules.items())\\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\\ncore = modules[0]\\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\\nif registries is None:\\n registries = {}\\n builtins._adom_mechanical_ralph_runs = registries\\naction = REQUEST['action']\\nrun = registries.get(REQUEST['runId'])\\n\\ndef documents():\\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\\n for d in app.documents]\\n\\ndef idle():\\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\\n\\ndef fingerprint(document):\\n return {'creationId': document.creationId, 'name': document.name,\\n 'modified': document.isModified, 'saved': document.isSaved}\\n\\ndef owned(document_id, allow_closed=False):\\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\\n row = run['documents'][document_id]\\n if row.get('closed'):\\n require(allow_closed, 'Owned document is already closed')\\n return row\\n document = row['object']\\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\\n require(marker and marker.value == document_id, 'Runtime document marker changed')\\n return row\\n\\ndef path_in_scratch(path):\\n root = os.path.realpath(run['scratch'])\\n path = os.path.abspath(path)\\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\\n 'Artifact is not inside the owned scratch directory')\\n require(not os.path.islink(path), 'Artifact is a symlink')\\n return path\\n\\ndef file_info(path):\\n path = path_in_scratch(path)\\n require(os.path.isfile(path), 'Checkpoint file is absent')\\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\\n with open(path, 'rb') as stream: data = stream.read()\\n return {'path': path.replace('\\\\\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\\n\\ndef register(document, document_id, role):\\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\\n require(document_id not in run['documents'], 'Runtime ID is already registered')\\n # Retain exact object first, including if marker creation later fails.\\n row = {'object': document, 'documentId': document_id, 'role': role,\\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\\n run['documents'][document_id] = row\\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\\n return row\\n\\ndef public_row(row):\\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\\n\\nif action == 'begin':\\n idle()\\n require(run is None, 'Native run registry already exists; use recover')\\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\\n baseline = documents()\\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\\n require(not os.path.exists(scratch), 'Run scratch already exists')\\n parent = os.path.dirname(scratch)\\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\\n os.makedirs(scratch)\\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\\n 'baselineObjects': list(app.documents), 'baseline': baseline,\\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\\n registries[REQUEST['runId']] = run\\n result = {'success': True, 'scratch': scratch.replace('\\\\\\\\', '/'), 'documents': baseline}\\nelse:\\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\\n if action == 'inventory':\\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\\n 'scratch': run['scratch'].replace('\\\\\\\\', '/')}\\n elif action == 'register':\\n idle()\\n document, design, document_id = core.active(app)\\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\\n row = register(document, document_id, REQUEST['role'])\\n result = {'success': True, **public_row(row)}\\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\\n document = row['object']\\n if action == 'verify':\\n if not row.get('closed'):\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\\n elif action == 'witness':\\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\\n elif action == 'activate':\\n idle()\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing activation')\\n if app.activeDocument != document:\\n require(document.activate(), 'Owned document activation failed')\\n result = {'success': True, 'documentId': row['documentId']}\\n elif action == 'close':\\n idle()\\n if not row['closed']:\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing lifecycle changes')\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n require(document.close(False), 'Owned document close returned false')\\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\\n row['closed'] = True\\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\\n elif action == 'capture':\\n require(app.activeDocument == document, 'Active document changed before capture')\\n path = path_in_scratch(REQUEST['path'])\\n require(not os.path.exists(path), 'Capture destination already exists')\\n viewport = app.activeViewport\\n viewport.fit()\\n viewport.refresh()\\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\\n result = {'success': True, **file_info(path)}\\n else:\\n idle()\\n require(app.activeDocument == document, 'Active document changed before roundtrip')\\n path = path_in_scratch(REQUEST['path'])\\n archive = file_info(path)\\n before = witness(document)\\n options = app.importManager.createFusionArchiveImportOptions(path)\\n imported = app.importManager.importToNewDocument(options)\\n # Keep the actual returned API object before any fragile getter or\\n # identity lookup. A provisional object can only be retained/reported.\\n provisional = {'object': imported}\\n run.setdefault('provisionalImports', []).append(provisional)\\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\\n reopened_doc, reopened_design, reopened_id = core.active(app)\\n require(reopened_doc == imported, 'Imported document identity mismatch')\\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\\n run['provisionalImports'].remove(provisional)\\n after = witness(imported)\\n require(same(before, after), 'Native archive roundtrip changed measured model state')\\n # Mark both sides only after independent semantic comparison.\\n for item in (row, reopened):\\n item['checkpoint'] = archive\\n item['witness'] = before\\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\\n 'reopened': public_row(reopened), 'source': public_row(row)}\\n elif action == 'file':\\n info = file_info(REQUEST['path'])\\n with open(info['path'], 'rb') as stream: data = stream.read()\\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\\n if REQUEST.get('csv'):\\n with open(info['path'], encoding='utf-8', newline='') as stream:\\n result['rows'] = list(csv.DictReader(stream))\\n elif action == 'restore':\\n idle()\\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\\n require(len(list(app.documents)) == len(run['baselineObjects']) and\\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\\n 'Document set changed; refusing to change active document')\\n require(documents() == run['baseline'], 'Original document flags changed')\\n original = run['activeObject']\\n if app.activeDocument != original:\\n require(original.activate(), 'Original document activation failed')\\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\\n else:\\n raise RuntimeError('Unknown native action')\\n\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235858.6336286, + "mutating": true, + "stdout": "{\n \"_hint\": \"Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\\\"foreground\\\": true, \\\"foregroundReason\\\": \\\"\\\"}.\",\n \"_timeoutHint\": \"ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"createdDocument\": null,\n \"documentName\": \"Untitled\",\n \"result\": {\n \"documents\": [\n {\n \"creationId\": \"cdf1e4ec-a727-4ffe-8975-d10e11191864\",\n \"modified\": false,\n \"name\": \"Untitled\",\n \"saved\": false\n }\n ],\n \"scratch\": \"C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T213050Z-422781656d64490da02934d1757322ed\",\n \"success\": true\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 0,\n \"openDocumentCount\": 1,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 1786,\n \"error\": \"\",\n \"output\": \"Modeling script ran successfully.\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 180,\n \"windowEtiquette\": \"background\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235860.4288826, + "raw": { + "_hint": "Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\"foreground\": true, \"foregroundReason\": \"\"}.", + "_timeoutHint": "ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "createdDocument": null, + "documentName": "Untitled", + "result": { + "documents": [ + { + "creationId": "cdf1e4ec-a727-4ffe-8975-d10e11191864", + "modified": false, + "name": "Untitled", + "saved": false + } + ], + "scratch": "C:/Users/drew/AppData/Local/Temp/adom-fusion-ralph/20261005T213050Z-422781656d64490da02934d1757322ed", + "success": true + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 0, + "openDocumentCount": 1, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 1786, + "error": "", + "output": "Modeling script ran successfully.", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 180, + "windowEtiquette": "background" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0010-fusion_mechanical.json b/docs/mechanical-verification/cp9-readonly/calls/0010-fusion_mechanical.json new file mode 100644 index 0000000..9df603f --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0010-fusion_mechanical.json @@ -0,0 +1,248 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "new_design", + "name": "Untitled", + "box": { + "width": 20, + "height": 30, + "depth": 10 + }, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "operationId": "20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27" + }, + "requestJson": "{\"op\": \"new_design\", \"name\": \"Untitled\", \"box\": {\"width\": 20, \"height\": 30, \"depth\": 10}, \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\", \"operationId\": \"20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235860.4314036, + "mutating": true, + "stdout": "{\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"bodies\": [\n {\n \"area\": 2200.0,\n \"bounds\": {\n \"max\": [\n 20.0,\n 30.0,\n 10.0\n ],\n \"min\": [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n \"centerOfMass\": [\n 10.0,\n 15.0,\n 5.0\n ],\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"edges\": 12,\n \"faces\": 6,\n \"isSolid\": true,\n \"mass\": 0.0162,\n \"name\": \"Block\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::BRepBody\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"\n },\n \"space\": \"component\",\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n },\n \"volume\": 6000.0\n }\n ],\n \"complete\": true,\n \"components\": [\n {\n \"attributes\": {\n \"requestedName\": \"Untitled\"\n },\n \"bodyCount\": 1,\n \"description\": \"\",\n \"id\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"material\": {\n \"id\": \"PrismMaterial-002\",\n \"name\": \"Aluminum\"\n },\n \"name\": \"(Unsaved)\",\n \"partNumber\": \"2026-10-05-14-31-00-614\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Component\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"rootComponentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"token\": \"/v4BAAEAAwAAAAAAAAAAAAAA\"\n },\n \"sketchCount\": 1\n }\n ],\n \"configuration\": {\n \"complete\": true,\n \"configurationRowId\": \"\",\n \"configurationWritesEnabled\": false,\n \"configured\": false,\n \"configuredOccurrences\": [],\n \"isConfiguration\": false,\n \"readErrors\": [],\n \"scope\": \"loaded Design ordinary and reserved test rows; no activation or recompute\",\n \"table\": null,\n \"unsupported\": []\n },\n \"constructionAxes\": [],\n \"designIntent\": \"2\",\n \"document\": {\n \"creationId\": \"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\n \"name\": \"Untitled\",\n \"requestedName\": \"Untitled\",\n \"saved\": false\n },\n \"features\": [\n {\n \"componentFeatureOrder\": 0,\n \"index\": 1,\n \"name\": \"Base extrusion\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::ExtrudeFeature\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"\n },\n \"suppressed\": false,\n \"type\": \"adsk::fusion::ExtrudeFeature\"\n }\n ],\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": null,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 2,\n \"unknown\": []\n },\n \"jointOrigins\": [],\n \"joints\": [],\n \"motionLinks\": [],\n \"occurrences\": [],\n \"parameters\": [\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"20.0 mm\",\n \"name\": \"width\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"30.0 mm\",\n \"name\": \"height\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"10.0 mm\",\n \"name\": \"depth\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"width\",\n \"name\": \"d5\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"height\",\n \"name\": \"d6\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"depth\",\n \"name\": \"d7\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"deg\",\n \"expression\": \"0.0 deg\",\n \"name\": \"d8\",\n \"unit\": \"deg\",\n \"value\": 0.0\n }\n ],\n \"rigidGroups\": [],\n \"sketches\": [\n {\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"fullyConstrained\": false,\n \"name\": \"Base rectangle\",\n \"profileCount\": 1,\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Sketch\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"\n }\n }\n ],\n \"target\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n },\n \"durability\": {\n \"phase\": \"succeeded\",\n \"recordedSessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"storageVersion\": 1,\n \"terminalRecorded\": true\n },\n \"durationMs\": 1384,\n \"error\": \"\",\n \"operation\": \"new_design\",\n \"operationId\": \"20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27\",\n \"output\": \"{\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"data\\\":{\\\"bodies\\\":[{\\\"area\\\":2200.0,\\\"bounds\\\":{\\\"max\\\":[20.0,30.0,10.0],\\\"min\\\":[0.0,0.0,0.0]},\\\"centerOfMass\\\":[10.0,15.0,5.0],\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"edges\\\":12,\\\"faces\\\":6,\\\"isSolid\\\":true,\\\"mass\\\":0.0162,\\\"name\\\":\\\"Block\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::BRepBody\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\\\"},\\\"space\\\":\\\"component\\\",\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"},\\\"volume\\\":6000.0}],\\\"complete\\\":true,\\\"components\\\":[{\\\"attributes\\\":{\\\"requestedName\\\":\\\"Untitled\\\"},\\\"bodyCount\\\":1,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"material\\\":{\\\"id\\\":\\\"PrismMaterial-002\\\",\\\"name\\\":\\\"Aluminum\\\"},\\\"name\\\":\\\"(Unsaved)\\\",\\\"partNumber\\\":\\\"2026-10-05-14-31-00-614\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Component\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"rootComponentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"token\\\":\\\"/v4BAAEAAwAAAAAAAAAAAAAA\\\"},\\\"sketchCount\\\":1}],\\\"configuration\\\":{\\\"complete\\\":true,\\\"configurationRowId\\\":\\\"\\\",\\\"configurationWritesEnabled\\\":false,\\\"configured\\\":false,\\\"configuredOccurrences\\\":[],\\\"isConfiguration\\\":false,\\\"readErrors\\\":[],\\\"scope\\\":\\\"loaded Design ordinary and reserved test rows; no activation or recompute\\\",\\\"table\\\":null,\\\"unsupported\\\":[]},\\\"constructionAxes\\\":[],\\\"designIntent\\\":\\\"2\\\",\\\"document\\\":{\\\"creationId\\\":\\\"4f1af11b-0a58-4348-b81a-87502fd79fb2\\\",\\\"name\\\":\\\"Untitled\\\",\\\"requestedName\\\":\\\"Untitled\\\",\\\"saved\\\":false},\\\"features\\\":[{\\\"componentFeatureOrder\\\":0,\\\"index\\\":1,\\\"name\\\":\\\"Base extrusion\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::ExtrudeFeature\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\\\"},\\\"suppressed\\\":false,\\\"type\\\":\\\"adsk::fusion::ExtrudeFeature\\\"}],\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":null,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":2,\\\"unknown\\\":[]},\\\"jointOrigins\\\":[],\\\"joints\\\":[],\\\"motionLinks\\\":[],\\\"occurrences\\\":[],\\\"parameters\\\":[{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"20.0 mm\\\",\\\"name\\\":\\\"width\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"30.0 mm\\\",\\\"name\\\":\\\"height\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"10.0 mm\\\",\\\"name\\\":\\\"depth\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"width\\\",\\\"name\\\":\\\"d5\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"height\\\",\\\"name\\\":\\\"d6\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"depth\\\",\\\"name\\\":\\\"d7\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"deg\\\",\\\"expression\\\":\\\"0.0 deg\\\",\\\"name\\\":\\\"d8\\\",\\\"unit\\\":\\\"deg\\\",\\\"value\\\":0.0}],\\\"rigidGroups\\\":[],\\\"sketches\\\":[{\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"fullyConstrained\\\":false,\\\"name\\\":\\\"Base rectangle\\\",\\\"profileCount\\\":1,\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Sketch\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\\\"}}],\\\"target\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\"},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}},\\\"durability\\\":{\\\"phase\\\":\\\"succeeded\\\",\\\"recordedSessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"storageVersion\\\":1,\\\"terminalRecorded\\\":true},\\\"operation\\\":\\\"new_design\\\",\\\"operationId\\\":\\\"20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235861.82292, + "raw": { + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "bodies": [ + { + "area": 2200.0, + "bounds": { + "max": [ + 20.0, + 30.0, + 10.0 + ], + "min": [ + 0.0, + 0.0, + 0.0 + ] + }, + "centerOfMass": [ + 10.0, + 15.0, + 5.0 + ], + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "edges": 12, + "faces": 6, + "isSolid": true, + "mass": 0.0162, + "name": "Block", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::BRepBody", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA" + }, + "space": "component", + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + }, + "volume": 6000.0 + } + ], + "complete": true, + "components": [ + { + "attributes": { + "requestedName": "Untitled" + }, + "bodyCount": 1, + "description": "", + "id": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "material": { + "id": "PrismMaterial-002", + "name": "Aluminum" + }, + "name": "(Unsaved)", + "partNumber": "2026-10-05-14-31-00-614", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Component", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "rootComponentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "token": "/v4BAAEAAwAAAAAAAAAAAAAA" + }, + "sketchCount": 1 + } + ], + "configuration": { + "complete": true, + "configurationRowId": "", + "configurationWritesEnabled": false, + "configured": false, + "configuredOccurrences": [], + "isConfiguration": false, + "readErrors": [], + "scope": "loaded Design ordinary and reserved test rows; no activation or recompute", + "table": null, + "unsupported": [] + }, + "constructionAxes": [], + "designIntent": "2", + "document": { + "creationId": "4f1af11b-0a58-4348-b81a-87502fd79fb2", + "name": "Untitled", + "requestedName": "Untitled", + "saved": false + }, + "features": [ + { + "componentFeatureOrder": 0, + "index": 1, + "name": "Base extrusion", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::ExtrudeFeature", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA" + }, + "suppressed": false, + "type": "adsk::fusion::ExtrudeFeature" + } + ], + "health": { + "complete": true, + "computeSucceeded": null, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 2, + "unknown": [] + }, + "jointOrigins": [], + "joints": [], + "motionLinks": [], + "occurrences": [], + "parameters": [ + { + "displayUnit": "mm", + "expression": "20.0 mm", + "name": "width", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "30.0 mm", + "name": "height", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "10.0 mm", + "name": "depth", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "mm", + "expression": "width", + "name": "d5", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "height", + "name": "d6", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "depth", + "name": "d7", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "deg", + "expression": "0.0 deg", + "name": "d8", + "unit": "deg", + "value": 0.0 + } + ], + "rigidGroups": [], + "sketches": [ + { + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "fullyConstrained": false, + "name": "Base rectangle", + "profileCount": 1, + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Sketch", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA" + } + } + ], + "target": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed" + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + }, + "durability": { + "phase": "succeeded", + "recordedSessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "storageVersion": 1, + "terminalRecorded": true + }, + "durationMs": 1384, + "error": "", + "operation": "new_design", + "operationId": "20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27", + "output": "{\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"data\":{\"bodies\":[{\"area\":2200.0,\"bounds\":{\"max\":[20.0,30.0,10.0],\"min\":[0.0,0.0,0.0]},\"centerOfMass\":[10.0,15.0,5.0],\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"edges\":12,\"faces\":6,\"isSolid\":true,\"mass\":0.0162,\"name\":\"Block\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::BRepBody\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"},\"space\":\"component\",\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"},\"volume\":6000.0}],\"complete\":true,\"components\":[{\"attributes\":{\"requestedName\":\"Untitled\"},\"bodyCount\":1,\"description\":\"\",\"id\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"material\":{\"id\":\"PrismMaterial-002\",\"name\":\"Aluminum\"},\"name\":\"(Unsaved)\",\"partNumber\":\"2026-10-05-14-31-00-614\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Component\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"rootComponentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"token\":\"/v4BAAEAAwAAAAAAAAAAAAAA\"},\"sketchCount\":1}],\"configuration\":{\"complete\":true,\"configurationRowId\":\"\",\"configurationWritesEnabled\":false,\"configured\":false,\"configuredOccurrences\":[],\"isConfiguration\":false,\"readErrors\":[],\"scope\":\"loaded Design ordinary and reserved test rows; no activation or recompute\",\"table\":null,\"unsupported\":[]},\"constructionAxes\":[],\"designIntent\":\"2\",\"document\":{\"creationId\":\"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\"name\":\"Untitled\",\"requestedName\":\"Untitled\",\"saved\":false},\"features\":[{\"componentFeatureOrder\":0,\"index\":1,\"name\":\"Base extrusion\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::ExtrudeFeature\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"},\"suppressed\":false,\"type\":\"adsk::fusion::ExtrudeFeature\"}],\"health\":{\"complete\":true,\"computeSucceeded\":null,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":2,\"unknown\":[]},\"jointOrigins\":[],\"joints\":[],\"motionLinks\":[],\"occurrences\":[],\"parameters\":[{\"displayUnit\":\"mm\",\"expression\":\"20.0 mm\",\"name\":\"width\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"30.0 mm\",\"name\":\"height\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"10.0 mm\",\"name\":\"depth\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"mm\",\"expression\":\"width\",\"name\":\"d5\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"height\",\"name\":\"d6\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"depth\",\"name\":\"d7\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"deg\",\"expression\":\"0.0 deg\",\"name\":\"d8\",\"unit\":\"deg\",\"value\":0.0}],\"rigidGroups\":[],\"sketches\":[{\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"fullyConstrained\":false,\"name\":\"Base rectangle\",\"profileCount\":1,\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Sketch\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"}}],\"target\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}},\"durability\":{\"phase\":\"succeeded\",\"recordedSessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"storageVersion\":1,\"terminalRecorded\":true},\"operation\":\"new_design\",\"operationId\":\"20261005T213050Z-422781656d64490da02934d1757322ed-1fba8e920a27\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0011-fusion_run_modeling_script.json b/docs/mechanical-verification/cp9-readonly/calls/0011-fusion_run_modeling_script.json new file mode 100644 index 0000000..664e6de --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0011-fusion_run_modeling_script.json @@ -0,0 +1,67 @@ +{ + "target": "adom_drew2", + "verb": "fusion_run_modeling_script", + "args": { + "script": "import json\nREQUEST = json.loads('{\"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\", \"role\": \"01-scene_diagnostic\", \"action\": \"register\", \"runId\": \"20261005T213050Z-422781656d64490da02934d1757322ed\", \"host\": \"ADOM_DREW2\", \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\"}')\n\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\n\ndef require(condition, message):\n if not condition:\n raise RuntimeError(message)\n\ndef same(a, b):\n if isinstance(a, bool) or isinstance(b, bool):\n return type(a) is type(b) and a == b\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\n if isinstance(a, dict) and isinstance(b, dict):\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\n if isinstance(a, list) and isinstance(b, list):\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\n return a == b\n\ndef vector(p):\n return [p.x * 10, p.y * 10, p.z * 10]\n\ndef body_measure(body):\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n box = body.boundingBox\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\n 'material': body.material.name if body.material else None}\n\ndef witness(document):\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n require(design is not None, 'Owned document is no longer a design')\n root = design.rootComponent\n components, occurrences = [], []\n all_bodies = [body_measure(b) for b in root.bRepBodies]\n for comp in design.allComponents:\n components.append({'name': '' if comp == root else comp.name,\n 'partNumber': comp.partNumber, 'description': comp.description,\n 'material': comp.material.name if comp.material else None,\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\n for occurrence in root.allOccurrences:\n matrix = list(occurrence.transform2.asArray())\n for index in (3, 7, 11): matrix[index] *= 10\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\n all_bodies.extend(bodies)\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\n 'transform': matrix, 'bodies': bodies})\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n return {'parameters': {p.name: p.expression for p in design.allParameters},\n 'timelineCount': design.timeline.count,\n 'components': sorted(components, key=lambda c: c['name']),\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\n 'centerOfMass': vector(props.centerOfMass)},\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\n 'instanceCount': len(all_bodies)}\n\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\nmodules = [m for n, m in list(sys.modules.items())\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\ncore = modules[0]\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\nif registries is None:\n registries = {}\n builtins._adom_mechanical_ralph_runs = registries\naction = REQUEST['action']\nrun = registries.get(REQUEST['runId'])\n\ndef documents():\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\n for d in app.documents]\n\ndef idle():\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\n\ndef fingerprint(document):\n return {'creationId': document.creationId, 'name': document.name,\n 'modified': document.isModified, 'saved': document.isSaved}\n\ndef owned(document_id, allow_closed=False):\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\n row = run['documents'][document_id]\n if row.get('closed'):\n require(allow_closed, 'Owned document is already closed')\n return row\n document = row['object']\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\n require(marker and marker.value == document_id, 'Runtime document marker changed')\n return row\n\ndef path_in_scratch(path):\n root = os.path.realpath(run['scratch'])\n path = os.path.abspath(path)\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\n 'Artifact is not inside the owned scratch directory')\n require(not os.path.islink(path), 'Artifact is a symlink')\n return path\n\ndef file_info(path):\n path = path_in_scratch(path)\n require(os.path.isfile(path), 'Checkpoint file is absent')\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\n with open(path, 'rb') as stream: data = stream.read()\n return {'path': path.replace('\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\n\ndef register(document, document_id, role):\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\n require(document_id not in run['documents'], 'Runtime ID is already registered')\n # Retain exact object first, including if marker creation later fails.\n row = {'object': document, 'documentId': document_id, 'role': role,\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\n run['documents'][document_id] = row\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\n return row\n\ndef public_row(row):\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\n\nif action == 'begin':\n idle()\n require(run is None, 'Native run registry already exists; use recover')\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\n baseline = documents()\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\n require(not os.path.exists(scratch), 'Run scratch already exists')\n parent = os.path.dirname(scratch)\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\n os.makedirs(scratch)\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\n 'baselineObjects': list(app.documents), 'baseline': baseline,\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\n registries[REQUEST['runId']] = run\n result = {'success': True, 'scratch': scratch.replace('\\\\', '/'), 'documents': baseline}\nelse:\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\n if action == 'inventory':\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\n 'scratch': run['scratch'].replace('\\\\', '/')}\n elif action == 'register':\n idle()\n document, design, document_id = core.active(app)\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\n row = register(document, document_id, REQUEST['role'])\n result = {'success': True, **public_row(row)}\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\n document = row['object']\n if action == 'verify':\n if not row.get('closed'):\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\n elif action == 'witness':\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\n elif action == 'activate':\n idle()\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing activation')\n if app.activeDocument != document:\n require(document.activate(), 'Owned document activation failed')\n result = {'success': True, 'documentId': row['documentId']}\n elif action == 'close':\n idle()\n if not row['closed']:\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing lifecycle changes')\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n require(document.close(False), 'Owned document close returned false')\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\n row['closed'] = True\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\n elif action == 'capture':\n require(app.activeDocument == document, 'Active document changed before capture')\n path = path_in_scratch(REQUEST['path'])\n require(not os.path.exists(path), 'Capture destination already exists')\n viewport = app.activeViewport\n viewport.fit()\n viewport.refresh()\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\n result = {'success': True, **file_info(path)}\n else:\n idle()\n require(app.activeDocument == document, 'Active document changed before roundtrip')\n path = path_in_scratch(REQUEST['path'])\n archive = file_info(path)\n before = witness(document)\n options = app.importManager.createFusionArchiveImportOptions(path)\n imported = app.importManager.importToNewDocument(options)\n # Keep the actual returned API object before any fragile getter or\n # identity lookup. A provisional object can only be retained/reported.\n provisional = {'object': imported}\n run.setdefault('provisionalImports', []).append(provisional)\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\n reopened_doc, reopened_design, reopened_id = core.active(app)\n require(reopened_doc == imported, 'Imported document identity mismatch')\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\n run['provisionalImports'].remove(provisional)\n after = witness(imported)\n require(same(before, after), 'Native archive roundtrip changed measured model state')\n # Mark both sides only after independent semantic comparison.\n for item in (row, reopened):\n item['checkpoint'] = archive\n item['witness'] = before\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\n 'reopened': public_row(reopened), 'source': public_row(row)}\n elif action == 'file':\n info = file_info(REQUEST['path'])\n with open(info['path'], 'rb') as stream: data = stream.read()\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\n if REQUEST.get('csv'):\n with open(info['path'], encoding='utf-8', newline='') as stream:\n result['rows'] = list(csv.DictReader(stream))\n elif action == 'restore':\n idle()\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\n require(len(list(app.documents)) == len(run['baselineObjects']) and\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\n 'Document set changed; refusing to change active document')\n require(documents() == run['baseline'], 'Original document flags changed')\n original = run['activeObject']\n if app.activeDocument != original:\n require(original.activate(), 'Original document activation failed')\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\n else:\n raise RuntimeError('Unknown native action')\n" + }, + "requestJson": "{\"script\": \"import json\\nREQUEST = json.loads('{\\\"documentId\\\": \\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\", \\\"role\\\": \\\"01-scene_diagnostic\\\", \\\"action\\\": \\\"register\\\", \\\"runId\\\": \\\"20261005T213050Z-422781656d64490da02934d1757322ed\\\", \\\"host\\\": \\\"ADOM_DREW2\\\", \\\"sessionId\\\": \\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\"}')\\n\\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\\n\\ndef require(condition, message):\\n if not condition:\\n raise RuntimeError(message)\\n\\ndef same(a, b):\\n if isinstance(a, bool) or isinstance(b, bool):\\n return type(a) is type(b) and a == b\\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\\n if isinstance(a, dict) and isinstance(b, dict):\\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\\n if isinstance(a, list) and isinstance(b, list):\\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\\n return a == b\\n\\ndef vector(p):\\n return [p.x * 10, p.y * 10, p.z * 10]\\n\\ndef body_measure(body):\\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n box = body.boundingBox\\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\\n 'material': body.material.name if body.material else None}\\n\\ndef witness(document):\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n require(design is not None, 'Owned document is no longer a design')\\n root = design.rootComponent\\n components, occurrences = [], []\\n all_bodies = [body_measure(b) for b in root.bRepBodies]\\n for comp in design.allComponents:\\n components.append({'name': '' if comp == root else comp.name,\\n 'partNumber': comp.partNumber, 'description': comp.description,\\n 'material': comp.material.name if comp.material else None,\\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\\n for occurrence in root.allOccurrences:\\n matrix = list(occurrence.transform2.asArray())\\n for index in (3, 7, 11): matrix[index] *= 10\\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\\n all_bodies.extend(bodies)\\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\\n 'transform': matrix, 'bodies': bodies})\\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n return {'parameters': {p.name: p.expression for p in design.allParameters},\\n 'timelineCount': design.timeline.count,\\n 'components': sorted(components, key=lambda c: c['name']),\\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\\n 'centerOfMass': vector(props.centerOfMass)},\\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\\n 'instanceCount': len(all_bodies)}\\n\\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\\nmodules = [m for n, m in list(sys.modules.items())\\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\\ncore = modules[0]\\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\\nif registries is None:\\n registries = {}\\n builtins._adom_mechanical_ralph_runs = registries\\naction = REQUEST['action']\\nrun = registries.get(REQUEST['runId'])\\n\\ndef documents():\\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\\n for d in app.documents]\\n\\ndef idle():\\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\\n\\ndef fingerprint(document):\\n return {'creationId': document.creationId, 'name': document.name,\\n 'modified': document.isModified, 'saved': document.isSaved}\\n\\ndef owned(document_id, allow_closed=False):\\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\\n row = run['documents'][document_id]\\n if row.get('closed'):\\n require(allow_closed, 'Owned document is already closed')\\n return row\\n document = row['object']\\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\\n require(marker and marker.value == document_id, 'Runtime document marker changed')\\n return row\\n\\ndef path_in_scratch(path):\\n root = os.path.realpath(run['scratch'])\\n path = os.path.abspath(path)\\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\\n 'Artifact is not inside the owned scratch directory')\\n require(not os.path.islink(path), 'Artifact is a symlink')\\n return path\\n\\ndef file_info(path):\\n path = path_in_scratch(path)\\n require(os.path.isfile(path), 'Checkpoint file is absent')\\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\\n with open(path, 'rb') as stream: data = stream.read()\\n return {'path': path.replace('\\\\\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\\n\\ndef register(document, document_id, role):\\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\\n require(document_id not in run['documents'], 'Runtime ID is already registered')\\n # Retain exact object first, including if marker creation later fails.\\n row = {'object': document, 'documentId': document_id, 'role': role,\\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\\n run['documents'][document_id] = row\\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\\n return row\\n\\ndef public_row(row):\\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\\n\\nif action == 'begin':\\n idle()\\n require(run is None, 'Native run registry already exists; use recover')\\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\\n baseline = documents()\\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\\n require(not os.path.exists(scratch), 'Run scratch already exists')\\n parent = os.path.dirname(scratch)\\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\\n os.makedirs(scratch)\\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\\n 'baselineObjects': list(app.documents), 'baseline': baseline,\\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\\n registries[REQUEST['runId']] = run\\n result = {'success': True, 'scratch': scratch.replace('\\\\\\\\', '/'), 'documents': baseline}\\nelse:\\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\\n if action == 'inventory':\\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\\n 'scratch': run['scratch'].replace('\\\\\\\\', '/')}\\n elif action == 'register':\\n idle()\\n document, design, document_id = core.active(app)\\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\\n row = register(document, document_id, REQUEST['role'])\\n result = {'success': True, **public_row(row)}\\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\\n document = row['object']\\n if action == 'verify':\\n if not row.get('closed'):\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\\n elif action == 'witness':\\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\\n elif action == 'activate':\\n idle()\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing activation')\\n if app.activeDocument != document:\\n require(document.activate(), 'Owned document activation failed')\\n result = {'success': True, 'documentId': row['documentId']}\\n elif action == 'close':\\n idle()\\n if not row['closed']:\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing lifecycle changes')\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n require(document.close(False), 'Owned document close returned false')\\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\\n row['closed'] = True\\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\\n elif action == 'capture':\\n require(app.activeDocument == document, 'Active document changed before capture')\\n path = path_in_scratch(REQUEST['path'])\\n require(not os.path.exists(path), 'Capture destination already exists')\\n viewport = app.activeViewport\\n viewport.fit()\\n viewport.refresh()\\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\\n result = {'success': True, **file_info(path)}\\n else:\\n idle()\\n require(app.activeDocument == document, 'Active document changed before roundtrip')\\n path = path_in_scratch(REQUEST['path'])\\n archive = file_info(path)\\n before = witness(document)\\n options = app.importManager.createFusionArchiveImportOptions(path)\\n imported = app.importManager.importToNewDocument(options)\\n # Keep the actual returned API object before any fragile getter or\\n # identity lookup. A provisional object can only be retained/reported.\\n provisional = {'object': imported}\\n run.setdefault('provisionalImports', []).append(provisional)\\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\\n reopened_doc, reopened_design, reopened_id = core.active(app)\\n require(reopened_doc == imported, 'Imported document identity mismatch')\\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\\n run['provisionalImports'].remove(provisional)\\n after = witness(imported)\\n require(same(before, after), 'Native archive roundtrip changed measured model state')\\n # Mark both sides only after independent semantic comparison.\\n for item in (row, reopened):\\n item['checkpoint'] = archive\\n item['witness'] = before\\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\\n 'reopened': public_row(reopened), 'source': public_row(row)}\\n elif action == 'file':\\n info = file_info(REQUEST['path'])\\n with open(info['path'], 'rb') as stream: data = stream.read()\\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\\n if REQUEST.get('csv'):\\n with open(info['path'], encoding='utf-8', newline='') as stream:\\n result['rows'] = list(csv.DictReader(stream))\\n elif action == 'restore':\\n idle()\\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\\n require(len(list(app.documents)) == len(run['baselineObjects']) and\\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\\n 'Document set changed; refusing to change active document')\\n require(documents() == run['baseline'], 'Original document flags changed')\\n original = run['activeObject']\\n if app.activeDocument != original:\\n require(original.activate(), 'Original document activation failed')\\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\\n else:\\n raise RuntimeError('Unknown native action')\\n\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235861.8249307, + "mutating": true, + "stdout": "{\n \"_hint\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud. Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\\\"foreground\\\": true, \\\"foregroundReason\\\": \\\"\\\"}.\",\n \"_hintDocumentHygiene\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_timeoutHint\": \"ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"createdDocument\": null,\n \"documentName\": \"Untitled\",\n \"result\": {\n \"checkpoint\": null,\n \"closed\": false,\n \"creationId\": \"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"name\": \"Untitled\",\n \"role\": \"01-scene_diagnostic\",\n \"success\": true\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n },\n {\n \"isModified\": true,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": true,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 1,\n \"openDocumentCount\": 2,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 1786,\n \"error\": \"\",\n \"output\": \"Modeling script ran successfully.\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 180,\n \"windowEtiquette\": \"background\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235863.618735, + "raw": { + "_hint": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud. Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\"foreground\": true, \"foregroundReason\": \"\"}.", + "_hintDocumentHygiene": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_timeoutHint": "ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "createdDocument": null, + "documentName": "Untitled", + "result": { + "checkpoint": null, + "closed": false, + "creationId": "4f1af11b-0a58-4348-b81a-87502fd79fb2", + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "name": "Untitled", + "role": "01-scene_diagnostic", + "success": true + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + }, + { + "isModified": true, + "isSaved": false, + "name": "Untitled", + "needsSave": true, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 1, + "openDocumentCount": 2, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 1786, + "error": "", + "output": "Modeling script ran successfully.", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 180, + "windowEtiquette": "background" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0012-fusion_mechanical.json b/docs/mechanical-verification/cp9-readonly/calls/0012-fusion_mechanical.json new file mode 100644 index 0000000..84b5c3c --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0012-fusion_mechanical.json @@ -0,0 +1,257 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "inspect" + }, + "requestJson": "{\"op\": \"inspect\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235863.62205, + "mutating": false, + "stdout": "{\n \"_hint\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_hintDocumentHygiene\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"bodies\": [\n {\n \"area\": 2200.0,\n \"bounds\": {\n \"max\": [\n 20.0,\n 30.0,\n 10.0\n ],\n \"min\": [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n \"centerOfMass\": [\n 10.0,\n 15.0,\n 5.0\n ],\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"edges\": 12,\n \"faces\": 6,\n \"isSolid\": true,\n \"mass\": 0.0162,\n \"name\": \"Block\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::BRepBody\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"\n },\n \"space\": \"component\",\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n },\n \"volume\": 6000.0\n }\n ],\n \"complete\": true,\n \"components\": [\n {\n \"attributes\": {\n \"requestedName\": \"Untitled\"\n },\n \"bodyCount\": 1,\n \"description\": \"\",\n \"id\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"material\": {\n \"id\": \"PrismMaterial-002\",\n \"name\": \"Aluminum\"\n },\n \"name\": \"(Unsaved)\",\n \"partNumber\": \"2026-10-05-14-31-00-614\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Component\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"rootComponentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"token\": \"/v4BAAEAAwAAAAAAAAAAAAAA\"\n },\n \"sketchCount\": 1\n }\n ],\n \"configuration\": {\n \"complete\": true,\n \"configurationRowId\": \"\",\n \"configurationWritesEnabled\": false,\n \"configured\": false,\n \"configuredOccurrences\": [],\n \"isConfiguration\": false,\n \"readErrors\": [],\n \"scope\": \"loaded Design ordinary and reserved test rows; no activation or recompute\",\n \"table\": null,\n \"unsupported\": []\n },\n \"constructionAxes\": [],\n \"designIntent\": \"2\",\n \"document\": {\n \"creationId\": \"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\n \"name\": \"Untitled\",\n \"saved\": false\n },\n \"features\": [\n {\n \"componentFeatureOrder\": 0,\n \"index\": 1,\n \"name\": \"Base extrusion\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::ExtrudeFeature\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"\n },\n \"suppressed\": false,\n \"type\": \"adsk::fusion::ExtrudeFeature\"\n }\n ],\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": null,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 2,\n \"unknown\": []\n },\n \"jointOrigins\": [],\n \"joints\": [],\n \"motionLinks\": [],\n \"occurrences\": [],\n \"parameters\": [\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"20.0 mm\",\n \"name\": \"width\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"30.0 mm\",\n \"name\": \"height\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"10.0 mm\",\n \"name\": \"depth\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"width\",\n \"name\": \"d5\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"height\",\n \"name\": \"d6\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"depth\",\n \"name\": \"d7\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"deg\",\n \"expression\": \"0.0 deg\",\n \"name\": \"d8\",\n \"unit\": \"deg\",\n \"value\": 0.0\n }\n ],\n \"rigidGroups\": [],\n \"sketches\": [\n {\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"fullyConstrained\": false,\n \"name\": \"Base rectangle\",\n \"profileCount\": 1,\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Sketch\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"\n }\n }\n ],\n \"target\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n },\n {\n \"isModified\": true,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": true,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 1,\n \"openDocumentCount\": 2,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 795,\n \"error\": \"\",\n \"operation\": \"inspect\",\n \"output\": \"{\\\"_hint\\\":\\\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\\\",\\\"_hintDocumentHygiene\\\":\\\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"data\\\":{\\\"bodies\\\":[{\\\"area\\\":2200.0,\\\"bounds\\\":{\\\"max\\\":[20.0,30.0,10.0],\\\"min\\\":[0.0,0.0,0.0]},\\\"centerOfMass\\\":[10.0,15.0,5.0],\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"edges\\\":12,\\\"faces\\\":6,\\\"isSolid\\\":true,\\\"mass\\\":0.0162,\\\"name\\\":\\\"Block\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::BRepBody\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\\\"},\\\"space\\\":\\\"component\\\",\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"},\\\"volume\\\":6000.0}],\\\"complete\\\":true,\\\"components\\\":[{\\\"attributes\\\":{\\\"requestedName\\\":\\\"Untitled\\\"},\\\"bodyCount\\\":1,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"material\\\":{\\\"id\\\":\\\"PrismMaterial-002\\\",\\\"name\\\":\\\"Aluminum\\\"},\\\"name\\\":\\\"(Unsaved)\\\",\\\"partNumber\\\":\\\"2026-10-05-14-31-00-614\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Component\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"rootComponentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"token\\\":\\\"/v4BAAEAAwAAAAAAAAAAAAAA\\\"},\\\"sketchCount\\\":1}],\\\"configuration\\\":{\\\"complete\\\":true,\\\"configurationRowId\\\":\\\"\\\",\\\"configurationWritesEnabled\\\":false,\\\"configured\\\":false,\\\"configuredOccurrences\\\":[],\\\"isConfiguration\\\":false,\\\"readErrors\\\":[],\\\"scope\\\":\\\"loaded Design ordinary and reserved test rows; no activation or recompute\\\",\\\"table\\\":null,\\\"unsupported\\\":[]},\\\"constructionAxes\\\":[],\\\"designIntent\\\":\\\"2\\\",\\\"document\\\":{\\\"creationId\\\":\\\"4f1af11b-0a58-4348-b81a-87502fd79fb2\\\",\\\"name\\\":\\\"Untitled\\\",\\\"saved\\\":false},\\\"features\\\":[{\\\"componentFeatureOrder\\\":0,\\\"index\\\":1,\\\"name\\\":\\\"Base extrusion\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::ExtrudeFeature\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\\\"},\\\"suppressed\\\":false,\\\"type\\\":\\\"adsk::fusion::ExtrudeFeature\\\"}],\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":null,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":2,\\\"unknown\\\":[]},\\\"jointOrigins\\\":[],\\\"joints\\\":[],\\\"motionLinks\\\":[],\\\"occurrences\\\":[],\\\"parameters\\\":[{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"20.0 mm\\\",\\\"name\\\":\\\"width\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"30.0 mm\\\",\\\"name\\\":\\\"height\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"10.0 mm\\\",\\\"name\\\":\\\"depth\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"width\\\",\\\"name\\\":\\\"d5\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"height\\\",\\\"name\\\":\\\"d6\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"depth\\\",\\\"name\\\":\\\"d7\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"deg\\\",\\\"expression\\\":\\\"0.0 deg\\\",\\\"name\\\":\\\"d8\\\",\\\"unit\\\":\\\"deg\\\",\\\"value\\\":0.0}],\\\"rigidGroups\\\":[],\\\"sketches\\\":[{\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"fullyConstrained\\\":false,\\\"name\\\":\\\"Base rectangle\\\",\\\"profileCount\\\":1,\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Sketch\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\\\"}}],\\\"target\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\"},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}},\\\"documentHygiene\\\":{\\\"documents\\\":[{\\\"isModified\\\":false,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":false,\\\"saveStateKnown\\\":true},{\\\"isModified\\\":true,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":true,\\\"saveStateKnown\\\":true}],\\\"inspectionComplete\\\":true,\\\"needsSaveCount\\\":1,\\\"openDocumentCount\\\":2,\\\"ownership\\\":\\\"notInferred\\\",\\\"recoveryHealth\\\":\\\"notInspected\\\"},\\\"operation\\\":\\\"inspect\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235864.4265249, + "raw": { + "_hint": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_hintDocumentHygiene": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "bodies": [ + { + "area": 2200.0, + "bounds": { + "max": [ + 20.0, + 30.0, + 10.0 + ], + "min": [ + 0.0, + 0.0, + 0.0 + ] + }, + "centerOfMass": [ + 10.0, + 15.0, + 5.0 + ], + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "edges": 12, + "faces": 6, + "isSolid": true, + "mass": 0.0162, + "name": "Block", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::BRepBody", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA" + }, + "space": "component", + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + }, + "volume": 6000.0 + } + ], + "complete": true, + "components": [ + { + "attributes": { + "requestedName": "Untitled" + }, + "bodyCount": 1, + "description": "", + "id": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "material": { + "id": "PrismMaterial-002", + "name": "Aluminum" + }, + "name": "(Unsaved)", + "partNumber": "2026-10-05-14-31-00-614", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Component", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "rootComponentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "token": "/v4BAAEAAwAAAAAAAAAAAAAA" + }, + "sketchCount": 1 + } + ], + "configuration": { + "complete": true, + "configurationRowId": "", + "configurationWritesEnabled": false, + "configured": false, + "configuredOccurrences": [], + "isConfiguration": false, + "readErrors": [], + "scope": "loaded Design ordinary and reserved test rows; no activation or recompute", + "table": null, + "unsupported": [] + }, + "constructionAxes": [], + "designIntent": "2", + "document": { + "creationId": "4f1af11b-0a58-4348-b81a-87502fd79fb2", + "name": "Untitled", + "saved": false + }, + "features": [ + { + "componentFeatureOrder": 0, + "index": 1, + "name": "Base extrusion", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::ExtrudeFeature", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA" + }, + "suppressed": false, + "type": "adsk::fusion::ExtrudeFeature" + } + ], + "health": { + "complete": true, + "computeSucceeded": null, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 2, + "unknown": [] + }, + "jointOrigins": [], + "joints": [], + "motionLinks": [], + "occurrences": [], + "parameters": [ + { + "displayUnit": "mm", + "expression": "20.0 mm", + "name": "width", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "30.0 mm", + "name": "height", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "10.0 mm", + "name": "depth", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "mm", + "expression": "width", + "name": "d5", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "height", + "name": "d6", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "depth", + "name": "d7", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "deg", + "expression": "0.0 deg", + "name": "d8", + "unit": "deg", + "value": 0.0 + } + ], + "rigidGroups": [], + "sketches": [ + { + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "fullyConstrained": false, + "name": "Base rectangle", + "profileCount": 1, + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Sketch", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA" + } + } + ], + "target": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed" + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + }, + { + "isModified": true, + "isSaved": false, + "name": "Untitled", + "needsSave": true, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 1, + "openDocumentCount": 2, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 795, + "error": "", + "operation": "inspect", + "output": "{\"_hint\":\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\"_hintDocumentHygiene\":\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"data\":{\"bodies\":[{\"area\":2200.0,\"bounds\":{\"max\":[20.0,30.0,10.0],\"min\":[0.0,0.0,0.0]},\"centerOfMass\":[10.0,15.0,5.0],\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"edges\":12,\"faces\":6,\"isSolid\":true,\"mass\":0.0162,\"name\":\"Block\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::BRepBody\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"},\"space\":\"component\",\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"},\"volume\":6000.0}],\"complete\":true,\"components\":[{\"attributes\":{\"requestedName\":\"Untitled\"},\"bodyCount\":1,\"description\":\"\",\"id\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"material\":{\"id\":\"PrismMaterial-002\",\"name\":\"Aluminum\"},\"name\":\"(Unsaved)\",\"partNumber\":\"2026-10-05-14-31-00-614\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Component\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"rootComponentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"token\":\"/v4BAAEAAwAAAAAAAAAAAAAA\"},\"sketchCount\":1}],\"configuration\":{\"complete\":true,\"configurationRowId\":\"\",\"configurationWritesEnabled\":false,\"configured\":false,\"configuredOccurrences\":[],\"isConfiguration\":false,\"readErrors\":[],\"scope\":\"loaded Design ordinary and reserved test rows; no activation or recompute\",\"table\":null,\"unsupported\":[]},\"constructionAxes\":[],\"designIntent\":\"2\",\"document\":{\"creationId\":\"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\"name\":\"Untitled\",\"saved\":false},\"features\":[{\"componentFeatureOrder\":0,\"index\":1,\"name\":\"Base extrusion\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::ExtrudeFeature\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"},\"suppressed\":false,\"type\":\"adsk::fusion::ExtrudeFeature\"}],\"health\":{\"complete\":true,\"computeSucceeded\":null,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":2,\"unknown\":[]},\"jointOrigins\":[],\"joints\":[],\"motionLinks\":[],\"occurrences\":[],\"parameters\":[{\"displayUnit\":\"mm\",\"expression\":\"20.0 mm\",\"name\":\"width\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"30.0 mm\",\"name\":\"height\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"10.0 mm\",\"name\":\"depth\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"mm\",\"expression\":\"width\",\"name\":\"d5\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"height\",\"name\":\"d6\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"depth\",\"name\":\"d7\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"deg\",\"expression\":\"0.0 deg\",\"name\":\"d8\",\"unit\":\"deg\",\"value\":0.0}],\"rigidGroups\":[],\"sketches\":[{\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"fullyConstrained\":false,\"name\":\"Base rectangle\",\"profileCount\":1,\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Sketch\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"}}],\"target\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}},\"documentHygiene\":{\"documents\":[{\"isModified\":false,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":false,\"saveStateKnown\":true},{\"isModified\":true,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":true,\"saveStateKnown\":true}],\"inspectionComplete\":true,\"needsSaveCount\":1,\"openDocumentCount\":2,\"ownership\":\"notInferred\",\"recoveryHealth\":\"notInspected\"},\"operation\":\"inspect\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0013-fusion_run_modeling_script.json b/docs/mechanical-verification/cp9-readonly/calls/0013-fusion_run_modeling_script.json new file mode 100644 index 0000000..154c66f --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0013-fusion_run_modeling_script.json @@ -0,0 +1,131 @@ +{ + "target": "adom_drew2", + "verb": "fusion_run_modeling_script", + "args": { + "script": "import json\nREQUEST = json.loads('{\"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\", \"action\": \"witness\", \"runId\": \"20261005T213050Z-422781656d64490da02934d1757322ed\", \"host\": \"ADOM_DREW2\", \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\"}')\n\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\n\ndef require(condition, message):\n if not condition:\n raise RuntimeError(message)\n\ndef same(a, b):\n if isinstance(a, bool) or isinstance(b, bool):\n return type(a) is type(b) and a == b\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\n if isinstance(a, dict) and isinstance(b, dict):\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\n if isinstance(a, list) and isinstance(b, list):\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\n return a == b\n\ndef vector(p):\n return [p.x * 10, p.y * 10, p.z * 10]\n\ndef body_measure(body):\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n box = body.boundingBox\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\n 'material': body.material.name if body.material else None}\n\ndef witness(document):\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n require(design is not None, 'Owned document is no longer a design')\n root = design.rootComponent\n components, occurrences = [], []\n all_bodies = [body_measure(b) for b in root.bRepBodies]\n for comp in design.allComponents:\n components.append({'name': '' if comp == root else comp.name,\n 'partNumber': comp.partNumber, 'description': comp.description,\n 'material': comp.material.name if comp.material else None,\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\n for occurrence in root.allOccurrences:\n matrix = list(occurrence.transform2.asArray())\n for index in (3, 7, 11): matrix[index] *= 10\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\n all_bodies.extend(bodies)\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\n 'transform': matrix, 'bodies': bodies})\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\n return {'parameters': {p.name: p.expression for p in design.allParameters},\n 'timelineCount': design.timeline.count,\n 'components': sorted(components, key=lambda c: c['name']),\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\n 'centerOfMass': vector(props.centerOfMass)},\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\n 'instanceCount': len(all_bodies)}\n\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\nmodules = [m for n, m in list(sys.modules.items())\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\ncore = modules[0]\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\nif registries is None:\n registries = {}\n builtins._adom_mechanical_ralph_runs = registries\naction = REQUEST['action']\nrun = registries.get(REQUEST['runId'])\n\ndef documents():\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\n for d in app.documents]\n\ndef idle():\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\n\ndef fingerprint(document):\n return {'creationId': document.creationId, 'name': document.name,\n 'modified': document.isModified, 'saved': document.isSaved}\n\ndef owned(document_id, allow_closed=False):\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\n row = run['documents'][document_id]\n if row.get('closed'):\n require(allow_closed, 'Owned document is already closed')\n return row\n document = row['object']\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\n require(marker and marker.value == document_id, 'Runtime document marker changed')\n return row\n\ndef path_in_scratch(path):\n root = os.path.realpath(run['scratch'])\n path = os.path.abspath(path)\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\n 'Artifact is not inside the owned scratch directory')\n require(not os.path.islink(path), 'Artifact is a symlink')\n return path\n\ndef file_info(path):\n path = path_in_scratch(path)\n require(os.path.isfile(path), 'Checkpoint file is absent')\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\n with open(path, 'rb') as stream: data = stream.read()\n return {'path': path.replace('\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\n\ndef register(document, document_id, role):\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\n require(document_id not in run['documents'], 'Runtime ID is already registered')\n # Retain exact object first, including if marker creation later fails.\n row = {'object': document, 'documentId': document_id, 'role': role,\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\n run['documents'][document_id] = row\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\n return row\n\ndef public_row(row):\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\n\nif action == 'begin':\n idle()\n require(run is None, 'Native run registry already exists; use recover')\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\n baseline = documents()\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\n require(not os.path.exists(scratch), 'Run scratch already exists')\n parent = os.path.dirname(scratch)\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\n os.makedirs(scratch)\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\n 'baselineObjects': list(app.documents), 'baseline': baseline,\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\n registries[REQUEST['runId']] = run\n result = {'success': True, 'scratch': scratch.replace('\\\\', '/'), 'documents': baseline}\nelse:\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\n if action == 'inventory':\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\n 'scratch': run['scratch'].replace('\\\\', '/')}\n elif action == 'register':\n idle()\n document, design, document_id = core.active(app)\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\n row = register(document, document_id, REQUEST['role'])\n result = {'success': True, **public_row(row)}\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\n document = row['object']\n if action == 'verify':\n if not row.get('closed'):\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\n elif action == 'witness':\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\n elif action == 'activate':\n idle()\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing activation')\n if app.activeDocument != document:\n require(document.activate(), 'Owned document activation failed')\n result = {'success': True, 'documentId': row['documentId']}\n elif action == 'close':\n idle()\n if not row['closed']:\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\n 'User selected an external document; refusing lifecycle changes')\n checkpoint = row['checkpoint']\n require(checkpoint is not None, 'No verified native checkpoint')\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\n require(document.close(False), 'Owned document close returned false')\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\n row['closed'] = True\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\n elif action == 'capture':\n require(app.activeDocument == document, 'Active document changed before capture')\n path = path_in_scratch(REQUEST['path'])\n require(not os.path.exists(path), 'Capture destination already exists')\n viewport = app.activeViewport\n viewport.fit()\n viewport.refresh()\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\n result = {'success': True, **file_info(path)}\n else:\n idle()\n require(app.activeDocument == document, 'Active document changed before roundtrip')\n path = path_in_scratch(REQUEST['path'])\n archive = file_info(path)\n before = witness(document)\n options = app.importManager.createFusionArchiveImportOptions(path)\n imported = app.importManager.importToNewDocument(options)\n # Keep the actual returned API object before any fragile getter or\n # identity lookup. A provisional object can only be retained/reported.\n provisional = {'object': imported}\n run.setdefault('provisionalImports', []).append(provisional)\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\n reopened_doc, reopened_design, reopened_id = core.active(app)\n require(reopened_doc == imported, 'Imported document identity mismatch')\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\n run['provisionalImports'].remove(provisional)\n after = witness(imported)\n require(same(before, after), 'Native archive roundtrip changed measured model state')\n # Mark both sides only after independent semantic comparison.\n for item in (row, reopened):\n item['checkpoint'] = archive\n item['witness'] = before\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\n 'reopened': public_row(reopened), 'source': public_row(row)}\n elif action == 'file':\n info = file_info(REQUEST['path'])\n with open(info['path'], 'rb') as stream: data = stream.read()\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\n if REQUEST.get('csv'):\n with open(info['path'], encoding='utf-8', newline='') as stream:\n result['rows'] = list(csv.DictReader(stream))\n elif action == 'restore':\n idle()\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\n require(len(list(app.documents)) == len(run['baselineObjects']) and\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\n 'Document set changed; refusing to change active document')\n require(documents() == run['baseline'], 'Original document flags changed')\n original = run['activeObject']\n if app.activeDocument != original:\n require(original.activate(), 'Original document activation failed')\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\n else:\n raise RuntimeError('Unknown native action')\n" + }, + "requestJson": "{\"script\": \"import json\\nREQUEST = json.loads('{\\\"documentId\\\": \\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\", \\\"action\\\": \\\"witness\\\", \\\"runId\\\": \\\"20261005T213050Z-422781656d64490da02934d1757322ed\\\", \\\"host\\\": \\\"ADOM_DREW2\\\", \\\"sessionId\\\": \\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\"}')\\n\\nimport base64, builtins, csv, hashlib, json, math, os, platform, re, sys, tempfile\\n\\ndef require(condition, message):\\n if not condition:\\n raise RuntimeError(message)\\n\\ndef same(a, b):\\n if isinstance(a, bool) or isinstance(b, bool):\\n return type(a) is type(b) and a == b\\n if isinstance(a, (int, float)) and isinstance(b, (int, float)):\\n return math.isfinite(a) and math.isfinite(b) and math.isclose(a, b, rel_tol=1e-7, abs_tol=1e-7)\\n if isinstance(a, dict) and isinstance(b, dict):\\n return a.keys() == b.keys() and all(same(a[k], b[k]) for k in a)\\n if isinstance(a, list) and isinstance(b, list):\\n return len(a) == len(b) and all(same(x, y) for x, y in zip(a, b))\\n return a == b\\n\\ndef vector(p):\\n return [p.x * 10, p.y * 10, p.z * 10]\\n\\ndef body_measure(body):\\n properties = body.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n box = body.boundingBox\\n return {'name': body.name, 'volume': properties.volume * 1000, 'mass': properties.mass,\\n 'centerOfMass': vector(properties.centerOfMass), 'faces': body.faces.count,\\n 'bounds': [vector(box.minPoint), vector(box.maxPoint)],\\n 'material': body.material.name if body.material else None}\\n\\ndef witness(document):\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n require(design is not None, 'Owned document is no longer a design')\\n root = design.rootComponent\\n components, occurrences = [], []\\n all_bodies = [body_measure(b) for b in root.bRepBodies]\\n for comp in design.allComponents:\\n components.append({'name': '' if comp == root else comp.name,\\n 'partNumber': comp.partNumber, 'description': comp.description,\\n 'material': comp.material.name if comp.material else None,\\n 'attributes': {a.name: a.value for a in comp.attributes if a.groupName == 'AdomMechanical'},\\n 'bodies': [body_measure(b) for b in comp.bRepBodies],\\n 'sketches': [{'name': s.name, 'fullyConstrained': s.isFullyConstrained,\\n 'curves': s.sketchCurves.count, 'profiles': s.profiles.count} for s in comp.sketches]})\\n for occurrence in root.allOccurrences:\\n matrix = list(occurrence.transform2.asArray())\\n for index in (3, 7, 11): matrix[index] *= 10\\n bodies = [body_measure(b) for b in occurrence.bRepBodies]\\n all_bodies.extend(bodies)\\n occurrences.append({'path': occurrence.fullPathName, 'component': occurrence.component.name,\\n 'transform': matrix, 'bodies': bodies})\\n props = root.getPhysicalProperties(adsk.fusion.CalculationAccuracy.HighCalculationAccuracy)\\n return {'parameters': {p.name: p.expression for p in design.allParameters},\\n 'timelineCount': design.timeline.count,\\n 'components': sorted(components, key=lambda c: c['name']),\\n 'occurrences': sorted(occurrences, key=lambda o: o['path']),\\n 'physical': {'volume': props.volume * 1000, 'mass': props.mass,\\n 'centerOfMass': vector(props.centerOfMass)},\\n 'instanceVolume': sum(b['volume'] for b in all_bodies),\\n 'instanceCount': len(all_bodies)}\\n\\nrequire(platform.node().lower() == REQUEST['host'].lower(), 'Host identity differs from expected host')\\nrequire(re.fullmatch(r'[A-Za-z0-9_-]{12,100}', REQUEST['runId']) is not None, 'Invalid run ID')\\nmodules = [m for n, m in list(sys.modules.items())\\n if n.endswith('.mechanical.core') and getattr(m, 'SESSION_ID', None) == REQUEST['sessionId']]\\nrequire(len(modules) == 1, 'Exact serving mechanical session is unavailable; no ownership inference')\\ncore = modules[0]\\nregistries = getattr(builtins, '_adom_mechanical_ralph_runs', None)\\nif registries is None:\\n registries = {}\\n builtins._adom_mechanical_ralph_runs = registries\\naction = REQUEST['action']\\nrun = registries.get(REQUEST['runId'])\\n\\ndef documents():\\n return [{'creationId': d.creationId, 'name': d.name, 'modified': d.isModified, 'saved': d.isSaved}\\n for d in app.documents]\\n\\ndef idle():\\n require(ui.activeCommand in ('', 'SelectCommand', 'Select'), 'Interactive command active; refusing document lifecycle action')\\n\\ndef fingerprint(document):\\n return {'creationId': document.creationId, 'name': document.name,\\n 'modified': document.isModified, 'saved': document.isSaved}\\n\\ndef owned(document_id, allow_closed=False):\\n require(document_id in run['documents'], 'Document has no exact native ownership entry')\\n row = run['documents'][document_id]\\n if row.get('closed'):\\n require(allow_closed, 'Owned document is already closed')\\n return row\\n document = row['object']\\n require(any(d == document for d in app.documents), 'Exact owned document is no longer open')\\n require(not any(d == document for d in run['baselineObjects']), 'Refusing a baseline document')\\n require(document.name == row['name'] and not document.isSaved, 'Owned document was renamed or saved externally')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'owner')\\n require(marker and marker.value == REQUEST['runId'], 'Run ownership marker changed')\\n marker = design.rootComponent.attributes.itemByName('AdomRalph', 'documentId')\\n require(marker and marker.value == document_id, 'Runtime document marker changed')\\n return row\\n\\ndef path_in_scratch(path):\\n root = os.path.realpath(run['scratch'])\\n path = os.path.abspath(path)\\n require(os.path.commonpath([root, os.path.realpath(path)]) == root and os.path.realpath(path) != root,\\n 'Artifact is not inside the owned scratch directory')\\n require(not os.path.islink(path), 'Artifact is a symlink')\\n return path\\n\\ndef file_info(path):\\n path = path_in_scratch(path)\\n require(os.path.isfile(path), 'Checkpoint file is absent')\\n require(os.path.getsize(path) <= 32 * 1024 * 1024, 'Fixture artifact exceeds 32 MiB budget')\\n with open(path, 'rb') as stream: data = stream.read()\\n return {'path': path.replace('\\\\\\\\', '/'), 'sha256': hashlib.sha256(data).hexdigest(), 'bytes': len(data)}\\n\\ndef register(document, document_id, role):\\n require(not any(d == document for d in run['baselineObjects']), 'Creation returned a baseline document')\\n require(document_id not in run['documents'], 'Runtime ID is already registered')\\n # Retain exact object first, including if marker creation later fails.\\n row = {'object': document, 'documentId': document_id, 'role': role,\\n 'creationId': document.creationId, 'name': document.name, 'closed': False, 'checkpoint': None}\\n run['documents'][document_id] = row\\n require(not document.isSaved and document.name.startswith('Untitled'), 'Only new unnamed designs are owned')\\n design = adsk.fusion.Design.cast(document.products.itemByProductType('DesignProductType'))\\n design.rootComponent.attributes.add('AdomRalph', 'owner', REQUEST['runId'])\\n design.rootComponent.attributes.add('AdomRalph', 'documentId', document_id)\\n return row\\n\\ndef public_row(row):\\n return {k: v for k, v in row.items() if k not in ('object', 'witness')}\\n\\nif action == 'begin':\\n idle()\\n require(run is None, 'Native run registry already exists; use recover')\\n require(app.documents.count > 0, 'An existing active design is required for a read-only baseline')\\n baseline = documents()\\n require(baseline == REQUEST['baseline'], 'Documents changed after baseline; refusing to start')\\n scratch = os.path.join(tempfile.gettempdir(), 'adom-fusion-ralph', REQUEST['runId'])\\n require(not os.path.exists(scratch), 'Run scratch already exists')\\n parent = os.path.dirname(scratch)\\n require(os.path.realpath(parent) == os.path.abspath(parent), 'Scratch parent resolves through a link')\\n os.makedirs(scratch)\\n run = {'sessionId': REQUEST['sessionId'], 'documents': {}, 'scratch': scratch,\\n 'baselineObjects': list(app.documents), 'baseline': baseline,\\n 'activeObject': app.activeDocument, 'activeFingerprint': fingerprint(app.activeDocument)}\\n registries[REQUEST['runId']] = run\\n result = {'success': True, 'scratch': scratch.replace('\\\\\\\\', '/'), 'documents': baseline}\\nelse:\\n require(run is not None and run['sessionId'] == REQUEST['sessionId'], 'Native registry/session missing; no close attempted')\\n if action == 'inventory':\\n result = {'success': True, 'documents': [public_row(r) for r in run['documents'].values()],\\n 'provisionalImportCount': len(run.get('provisionalImports', [])),\\n 'scratch': run['scratch'].replace('\\\\\\\\', '/')}\\n elif action == 'register':\\n idle()\\n document, design, document_id = core.active(app)\\n require(document_id == REQUEST['documentId'], 'Active runtime document differs from typed creation result')\\n row = register(document, document_id, REQUEST['role'])\\n result = {'success': True, **public_row(row)}\\n elif action in ('witness', 'verify', 'activate', 'close', 'checkpoint', 'capture'):\\n row = owned(REQUEST['documentId'], action in ('close', 'verify'))\\n document = row['object']\\n if action == 'verify':\\n if not row.get('closed'):\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n result = {'success': True, 'documentId': row['documentId'], 'ownerRunId': REQUEST['runId'], 'closed': row['closed']}\\n elif action == 'witness':\\n require(app.activeDocument == document, 'Active document changed; no implicit activation')\\n result = {'success': True, 'documentId': row['documentId'], 'witness': witness(document)}\\n elif action == 'activate':\\n idle()\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing activation')\\n if app.activeDocument != document:\\n require(document.activate(), 'Owned document activation failed')\\n result = {'success': True, 'documentId': row['documentId']}\\n elif action == 'close':\\n idle()\\n if not row['closed']:\\n require(any(app.activeDocument == r['object'] for r in run['documents'].values() if not r['closed']),\\n 'User selected an external document; refusing lifecycle changes')\\n checkpoint = row['checkpoint']\\n require(checkpoint is not None, 'No verified native checkpoint')\\n require(file_info(checkpoint['path'])['sha256'] == checkpoint['sha256'], 'Checkpoint bytes changed')\\n require(same(witness(document), row['witness']), 'Model changed since checkpoint')\\n require(document.close(False), 'Owned document close returned false')\\n require(not any(d == document for d in app.documents), 'Owned document still appears in open documents')\\n row['closed'] = True\\n result = {'success': True, 'closedDocumentId': row['documentId'], 'closed': True}\\n elif action == 'capture':\\n require(app.activeDocument == document, 'Active document changed before capture')\\n path = path_in_scratch(REQUEST['path'])\\n require(not os.path.exists(path), 'Capture destination already exists')\\n viewport = app.activeViewport\\n viewport.fit()\\n viewport.refresh()\\n require(viewport.saveAsImageFile(path, 1280, 900), 'Viewport capture failed')\\n result = {'success': True, **file_info(path)}\\n else:\\n idle()\\n require(app.activeDocument == document, 'Active document changed before roundtrip')\\n path = path_in_scratch(REQUEST['path'])\\n archive = file_info(path)\\n before = witness(document)\\n options = app.importManager.createFusionArchiveImportOptions(path)\\n imported = app.importManager.importToNewDocument(options)\\n # Keep the actual returned API object before any fragile getter or\\n # identity lookup. A provisional object can only be retained/reported.\\n provisional = {'object': imported}\\n run.setdefault('provisionalImports', []).append(provisional)\\n require(imported is not None and app.activeDocument == imported, 'Archive import returned no active document')\\n reopened_doc, reopened_design, reopened_id = core.active(app)\\n require(reopened_doc == imported, 'Imported document identity mismatch')\\n reopened = register(imported, reopened_id, row['role'] + '-reopened')\\n run['provisionalImports'].remove(provisional)\\n after = witness(imported)\\n require(same(before, after), 'Native archive roundtrip changed measured model state')\\n # Mark both sides only after independent semantic comparison.\\n for item in (row, reopened):\\n item['checkpoint'] = archive\\n item['witness'] = before\\n result = {'success': True, 'archive': archive, 'before': before, 'after': after,\\n 'reopened': public_row(reopened), 'source': public_row(row)}\\n elif action == 'file':\\n info = file_info(REQUEST['path'])\\n with open(info['path'], 'rb') as stream: data = stream.read()\\n result = {'success': True, **info, 'base64': base64.b64encode(data).decode('ascii')}\\n if REQUEST.get('csv'):\\n with open(info['path'], encoding='utf-8', newline='') as stream:\\n result['rows'] = list(csv.DictReader(stream))\\n elif action == 'restore':\\n idle()\\n require(not run.get('provisionalImports'), 'Unresolved imported object remains; restoration refused')\\n require(all(row['closed'] for row in run['documents'].values()), 'Owned documents remain open')\\n require(len(list(app.documents)) == len(run['baselineObjects']) and\\n all(any(d == original for d in app.documents) for original in run['baselineObjects']),\\n 'Document set changed; refusing to change active document')\\n require(documents() == run['baseline'], 'Original document flags changed')\\n original = run['activeObject']\\n if app.activeDocument != original:\\n require(original.activate(), 'Original document activation failed')\\n require(fingerprint(original) == run['activeFingerprint'], 'Original active document changed')\\n result = {'success': True, 'documents': documents(), 'activeCreationId': original.creationId}\\n else:\\n raise RuntimeError('Unknown native action')\\n\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235864.4279788, + "mutating": false, + "stdout": "{\n \"_hint\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud. Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\\\"foreground\\\": true, \\\"foregroundReason\\\": \\\"\\\"}.\",\n \"_hintDocumentHygiene\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_timeoutHint\": \"ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"createdDocument\": null,\n \"documentName\": \"Untitled\",\n \"result\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"success\": true,\n \"witness\": {\n \"components\": [\n {\n \"attributes\": {\n \"requestedName\": \"Untitled\"\n },\n \"bodies\": [\n {\n \"bounds\": [\n [\n 0.0,\n 0.0,\n 0.0\n ],\n [\n 20.0,\n 30.0,\n 10.0\n ]\n ],\n \"centerOfMass\": [\n 10.0,\n 15.0,\n 5.0\n ],\n \"faces\": 6,\n \"mass\": 0.0162,\n \"material\": \"Aluminum\",\n \"name\": \"Block\",\n \"volume\": 6000.0\n }\n ],\n \"description\": \"\",\n \"material\": \"Aluminum\",\n \"name\": \"\",\n \"partNumber\": \"2026-10-05-14-31-00-614\",\n \"sketches\": [\n {\n \"curves\": 4,\n \"fullyConstrained\": false,\n \"name\": \"Base rectangle\",\n \"profiles\": 1\n }\n ]\n }\n ],\n \"instanceCount\": 1,\n \"instanceVolume\": 6000.0,\n \"occurrences\": [],\n \"parameters\": {\n \"d5\": \"width\",\n \"d6\": \"height\",\n \"d7\": \"depth\",\n \"d8\": \"0.0 deg\",\n \"depth\": \"10.0 mm\",\n \"height\": \"30.0 mm\",\n \"width\": \"20.0 mm\"\n },\n \"physical\": {\n \"centerOfMass\": [\n 10.0,\n 15.0,\n 5.0\n ],\n \"mass\": 0.0162,\n \"volume\": 6000.0\n },\n \"timelineCount\": 2\n }\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n },\n {\n \"isModified\": true,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": true,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 1,\n \"openDocumentCount\": 2,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 1790,\n \"error\": \"\",\n \"output\": \"Modeling script ran successfully.\",\n \"schemaVersion\": 1,\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 180,\n \"windowEtiquette\": \"background\"\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235866.2273426, + "raw": { + "_hint": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud. Window opened/changed in the BACKGROUND - the user's focus was NOT touched; do NOT foreground anything to compensate. Render results via fusion_state. If the USER asks to watch, re-call with {\"foreground\": true, \"foregroundReason\": \"\"}.", + "_hintDocumentHygiene": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_timeoutHint": "ab waits up to 180s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "createdDocument": null, + "documentName": "Untitled", + "result": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "success": true, + "witness": { + "components": [ + { + "attributes": { + "requestedName": "Untitled" + }, + "bodies": [ + { + "bounds": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 20.0, + 30.0, + 10.0 + ] + ], + "centerOfMass": [ + 10.0, + 15.0, + 5.0 + ], + "faces": 6, + "mass": 0.0162, + "material": "Aluminum", + "name": "Block", + "volume": 6000.0 + } + ], + "description": "", + "material": "Aluminum", + "name": "", + "partNumber": "2026-10-05-14-31-00-614", + "sketches": [ + { + "curves": 4, + "fullyConstrained": false, + "name": "Base rectangle", + "profiles": 1 + } + ] + } + ], + "instanceCount": 1, + "instanceVolume": 6000.0, + "occurrences": [], + "parameters": { + "d5": "width", + "d6": "height", + "d7": "depth", + "d8": "0.0 deg", + "depth": "10.0 mm", + "height": "30.0 mm", + "width": "20.0 mm" + }, + "physical": { + "centerOfMass": [ + 10.0, + 15.0, + 5.0 + ], + "mass": 0.0162, + "volume": 6000.0 + }, + "timelineCount": 2 + } + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + }, + { + "isModified": true, + "isSaved": false, + "name": "Untitled", + "needsSave": true, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 1, + "openDocumentCount": 2, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 1790, + "error": "", + "output": "Modeling script ran successfully.", + "schemaVersion": 1, + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 180, + "windowEtiquette": "background" + } +} \ No newline at end of file diff --git a/docs/mechanical-verification/cp9-readonly/calls/0014-fusion_mechanical.json b/docs/mechanical-verification/cp9-readonly/calls/0014-fusion_mechanical.json new file mode 100644 index 0000000..b46bda6 --- /dev/null +++ b/docs/mechanical-verification/cp9-readonly/calls/0014-fusion_mechanical.json @@ -0,0 +1,257 @@ +{ + "target": "adom_drew2", + "verb": "fusion_mechanical", + "args": { + "op": "inspect" + }, + "requestJson": "{\"op\": \"inspect\"}", + "runId": "20261005T213050Z-422781656d64490da02934d1757322ed", + "caller": "Fusion mechanical Ralph", + "startedAt": 1791235866.2290413, + "mutating": false, + "stdout": "{\n \"_hint\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_hintDocumentHygiene\": \"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\n \"_timeoutHint\": \"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\n \"data\": {\n \"bodies\": [\n {\n \"area\": 2200.0,\n \"bounds\": {\n \"max\": [\n 20.0,\n 30.0,\n 10.0\n ],\n \"min\": [\n 0.0,\n 0.0,\n 0.0\n ]\n },\n \"centerOfMass\": [\n 10.0,\n 15.0,\n 5.0\n ],\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"edges\": 12,\n \"faces\": 6,\n \"isSolid\": true,\n \"mass\": 0.0162,\n \"name\": \"Block\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::BRepBody\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"\n },\n \"space\": \"component\",\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n },\n \"volume\": 6000.0\n }\n ],\n \"complete\": true,\n \"components\": [\n {\n \"attributes\": {\n \"requestedName\": \"Untitled\"\n },\n \"bodyCount\": 1,\n \"description\": \"\",\n \"id\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"material\": {\n \"id\": \"PrismMaterial-002\",\n \"name\": \"Aluminum\"\n },\n \"name\": \"(Unsaved)\",\n \"partNumber\": \"2026-10-05-14-31-00-614\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Component\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"rootComponentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"token\": \"/v4BAAEAAwAAAAAAAAAAAAAA\"\n },\n \"sketchCount\": 1\n }\n ],\n \"configuration\": {\n \"complete\": true,\n \"configurationRowId\": \"\",\n \"configurationWritesEnabled\": false,\n \"configured\": false,\n \"configuredOccurrences\": [],\n \"isConfiguration\": false,\n \"readErrors\": [],\n \"scope\": \"loaded Design ordinary and reserved test rows; no activation or recompute\",\n \"table\": null,\n \"unsupported\": []\n },\n \"constructionAxes\": [],\n \"designIntent\": \"2\",\n \"document\": {\n \"creationId\": \"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\n \"name\": \"Untitled\",\n \"saved\": false\n },\n \"features\": [\n {\n \"componentFeatureOrder\": 0,\n \"index\": 1,\n \"name\": \"Base extrusion\",\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::ExtrudeFeature\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"\n },\n \"suppressed\": false,\n \"type\": \"adsk::fusion::ExtrudeFeature\"\n }\n ],\n \"health\": {\n \"complete\": true,\n \"computeSucceeded\": null,\n \"faults\": [],\n \"healthy\": true,\n \"suppressed\": [],\n \"timelineCount\": 2,\n \"unknown\": []\n },\n \"jointOrigins\": [],\n \"joints\": [],\n \"motionLinks\": [],\n \"occurrences\": [],\n \"parameters\": [\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"20.0 mm\",\n \"name\": \"width\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"30.0 mm\",\n \"name\": \"height\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"10.0 mm\",\n \"name\": \"depth\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"width\",\n \"name\": \"d5\",\n \"unit\": \"mm\",\n \"value\": 20.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"height\",\n \"name\": \"d6\",\n \"unit\": \"mm\",\n \"value\": 30.0\n },\n {\n \"displayUnit\": \"mm\",\n \"expression\": \"depth\",\n \"name\": \"d7\",\n \"unit\": \"mm\",\n \"value\": 10.0\n },\n {\n \"displayUnit\": \"deg\",\n \"expression\": \"0.0 deg\",\n \"name\": \"d8\",\n \"unit\": \"deg\",\n \"value\": 0.0\n }\n ],\n \"rigidGroups\": [],\n \"sketches\": [\n {\n \"componentId\": \"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\n \"fullyConstrained\": false,\n \"name\": \"Base rectangle\",\n \"profileCount\": 1,\n \"ref\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"objectType\": \"adsk::fusion::Sketch\",\n \"occurrencePath\": null,\n \"occurrenceToken\": null,\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\n \"token\": \"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"\n }\n }\n ],\n \"target\": {\n \"documentId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\n \"revision\": \"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"\n },\n \"units\": {\n \"angle\": \"deg\",\n \"area\": \"mm2\",\n \"length\": \"mm\",\n \"mass\": \"kg\",\n \"volume\": \"mm3\"\n }\n },\n \"documentHygiene\": {\n \"documents\": [\n {\n \"isModified\": false,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": false,\n \"saveStateKnown\": true\n },\n {\n \"isModified\": true,\n \"isSaved\": false,\n \"name\": \"Untitled\",\n \"needsSave\": true,\n \"saveStateKnown\": true\n }\n ],\n \"inspectionComplete\": true,\n \"needsSaveCount\": 1,\n \"openDocumentCount\": 2,\n \"ownership\": \"notInferred\",\n \"recoveryHealth\": \"notInspected\"\n },\n \"durationMs\": 797,\n \"error\": \"\",\n \"operation\": \"inspect\",\n \"output\": \"{\\\"_hint\\\":\\\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\\\",\\\"_hintDocumentHygiene\\\":\\\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\\\",\\\"_timeoutHint\\\":\\\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\\\",\\\"data\\\":{\\\"bodies\\\":[{\\\"area\\\":2200.0,\\\"bounds\\\":{\\\"max\\\":[20.0,30.0,10.0],\\\"min\\\":[0.0,0.0,0.0]},\\\"centerOfMass\\\":[10.0,15.0,5.0],\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"edges\\\":12,\\\"faces\\\":6,\\\"isSolid\\\":true,\\\"mass\\\":0.0162,\\\"name\\\":\\\"Block\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::BRepBody\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\\\"},\\\"space\\\":\\\"component\\\",\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"},\\\"volume\\\":6000.0}],\\\"complete\\\":true,\\\"components\\\":[{\\\"attributes\\\":{\\\"requestedName\\\":\\\"Untitled\\\"},\\\"bodyCount\\\":1,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"material\\\":{\\\"id\\\":\\\"PrismMaterial-002\\\",\\\"name\\\":\\\"Aluminum\\\"},\\\"name\\\":\\\"(Unsaved)\\\",\\\"partNumber\\\":\\\"2026-10-05-14-31-00-614\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Component\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"rootComponentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"token\\\":\\\"/v4BAAEAAwAAAAAAAAAAAAAA\\\"},\\\"sketchCount\\\":1}],\\\"configuration\\\":{\\\"complete\\\":true,\\\"configurationRowId\\\":\\\"\\\",\\\"configurationWritesEnabled\\\":false,\\\"configured\\\":false,\\\"configuredOccurrences\\\":[],\\\"isConfiguration\\\":false,\\\"readErrors\\\":[],\\\"scope\\\":\\\"loaded Design ordinary and reserved test rows; no activation or recompute\\\",\\\"table\\\":null,\\\"unsupported\\\":[]},\\\"constructionAxes\\\":[],\\\"designIntent\\\":\\\"2\\\",\\\"document\\\":{\\\"creationId\\\":\\\"4f1af11b-0a58-4348-b81a-87502fd79fb2\\\",\\\"name\\\":\\\"Untitled\\\",\\\"saved\\\":false},\\\"features\\\":[{\\\"componentFeatureOrder\\\":0,\\\"index\\\":1,\\\"name\\\":\\\"Base extrusion\\\",\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::ExtrudeFeature\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\\\"},\\\"suppressed\\\":false,\\\"type\\\":\\\"adsk::fusion::ExtrudeFeature\\\"}],\\\"health\\\":{\\\"complete\\\":true,\\\"computeSucceeded\\\":null,\\\"faults\\\":[],\\\"healthy\\\":true,\\\"suppressed\\\":[],\\\"timelineCount\\\":2,\\\"unknown\\\":[]},\\\"jointOrigins\\\":[],\\\"joints\\\":[],\\\"motionLinks\\\":[],\\\"occurrences\\\":[],\\\"parameters\\\":[{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"20.0 mm\\\",\\\"name\\\":\\\"width\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"30.0 mm\\\",\\\"name\\\":\\\"height\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"10.0 mm\\\",\\\"name\\\":\\\"depth\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"width\\\",\\\"name\\\":\\\"d5\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":20.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"height\\\",\\\"name\\\":\\\"d6\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":30.0},{\\\"displayUnit\\\":\\\"mm\\\",\\\"expression\\\":\\\"depth\\\",\\\"name\\\":\\\"d7\\\",\\\"unit\\\":\\\"mm\\\",\\\"value\\\":10.0},{\\\"displayUnit\\\":\\\"deg\\\",\\\"expression\\\":\\\"0.0 deg\\\",\\\"name\\\":\\\"d8\\\",\\\"unit\\\":\\\"deg\\\",\\\"value\\\":0.0}],\\\"rigidGroups\\\":[],\\\"sketches\\\":[{\\\"componentId\\\":\\\"3400b1c0-7442-4474-9ad7-c5e6343280a7\\\",\\\"fullyConstrained\\\":false,\\\"name\\\":\\\"Base rectangle\\\",\\\"profileCount\\\":1,\\\"ref\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"objectType\\\":\\\"adsk::fusion::Sketch\\\",\\\"occurrencePath\\\":null,\\\"occurrenceToken\\\":null,\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\",\\\"token\\\":\\\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\\\"}}],\\\"target\\\":{\\\"documentId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\\\",\\\"revision\\\":\\\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\\\"},\\\"units\\\":{\\\"angle\\\":\\\"deg\\\",\\\"area\\\":\\\"mm2\\\",\\\"length\\\":\\\"mm\\\",\\\"mass\\\":\\\"kg\\\",\\\"volume\\\":\\\"mm3\\\"}},\\\"documentHygiene\\\":{\\\"documents\\\":[{\\\"isModified\\\":false,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":false,\\\"saveStateKnown\\\":true},{\\\"isModified\\\":true,\\\"isSaved\\\":false,\\\"name\\\":\\\"Untitled\\\",\\\"needsSave\\\":true,\\\"saveStateKnown\\\":true}],\\\"inspectionComplete\\\":true,\\\"needsSaveCount\\\":1,\\\"openDocumentCount\\\":2,\\\"ownership\\\":\\\"notInferred\\\",\\\"recoveryHealth\\\":\\\"notInspected\\\"},\\\"operation\\\":\\\"inspect\\\",\\\"sessionId\\\":\\\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\\\",\\\"shell\\\":\\\"rust\\\",\\\"statusVerb\\\":\\\"fusion_get_app_state\\\",\\\"success\\\":true,\\\"timeoutSeconds\\\":60}\",\n \"schemaVersion\": 1,\n \"sessionId\": \"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\n \"shell\": \"rust\",\n \"status\": \"ok\",\n \"statusVerb\": \"fusion_get_app_state\",\n \"success\": true,\n \"timeoutSeconds\": 60\n}\n", + "stderr": "", + "returncode": 0, + "finishedAt": 1791235867.0371585, + "raw": { + "_hint": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_hintDocumentHygiene": "Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.", + "_timeoutHint": "ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.", + "data": { + "bodies": [ + { + "area": 2200.0, + "bounds": { + "max": [ + 20.0, + 30.0, + 10.0 + ], + "min": [ + 0.0, + 0.0, + 0.0 + ] + }, + "centerOfMass": [ + 10.0, + 15.0, + 5.0 + ], + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "edges": 12, + "faces": 6, + "isSolid": true, + "mass": 0.0162, + "name": "Block", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::BRepBody", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA" + }, + "space": "component", + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + }, + "volume": 6000.0 + } + ], + "complete": true, + "components": [ + { + "attributes": { + "requestedName": "Untitled" + }, + "bodyCount": 1, + "description": "", + "id": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "material": { + "id": "PrismMaterial-002", + "name": "Aluminum" + }, + "name": "(Unsaved)", + "partNumber": "2026-10-05-14-31-00-614", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Component", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "rootComponentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "token": "/v4BAAEAAwAAAAAAAAAAAAAA" + }, + "sketchCount": 1 + } + ], + "configuration": { + "complete": true, + "configurationRowId": "", + "configurationWritesEnabled": false, + "configured": false, + "configuredOccurrences": [], + "isConfiguration": false, + "readErrors": [], + "scope": "loaded Design ordinary and reserved test rows; no activation or recompute", + "table": null, + "unsupported": [] + }, + "constructionAxes": [], + "designIntent": "2", + "document": { + "creationId": "4f1af11b-0a58-4348-b81a-87502fd79fb2", + "name": "Untitled", + "saved": false + }, + "features": [ + { + "componentFeatureOrder": 0, + "index": 1, + "name": "Base extrusion", + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::ExtrudeFeature", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA" + }, + "suppressed": false, + "type": "adsk::fusion::ExtrudeFeature" + } + ], + "health": { + "complete": true, + "computeSucceeded": null, + "faults": [], + "healthy": true, + "suppressed": [], + "timelineCount": 2, + "unknown": [] + }, + "jointOrigins": [], + "joints": [], + "motionLinks": [], + "occurrences": [], + "parameters": [ + { + "displayUnit": "mm", + "expression": "20.0 mm", + "name": "width", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "30.0 mm", + "name": "height", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "10.0 mm", + "name": "depth", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "mm", + "expression": "width", + "name": "d5", + "unit": "mm", + "value": 20.0 + }, + { + "displayUnit": "mm", + "expression": "height", + "name": "d6", + "unit": "mm", + "value": 30.0 + }, + { + "displayUnit": "mm", + "expression": "depth", + "name": "d7", + "unit": "mm", + "value": 10.0 + }, + { + "displayUnit": "deg", + "expression": "0.0 deg", + "name": "d8", + "unit": "deg", + "value": 0.0 + } + ], + "rigidGroups": [], + "sketches": [ + { + "componentId": "3400b1c0-7442-4474-9ad7-c5e6343280a7", + "fullyConstrained": false, + "name": "Base rectangle", + "profileCount": 1, + "ref": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "objectType": "adsk::fusion::Sketch", + "occurrencePath": null, + "occurrenceToken": null, + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed", + "token": "/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA" + } + } + ], + "target": { + "documentId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a", + "revision": "3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed" + }, + "units": { + "angle": "deg", + "area": "mm2", + "length": "mm", + "mass": "kg", + "volume": "mm3" + } + }, + "documentHygiene": { + "documents": [ + { + "isModified": false, + "isSaved": false, + "name": "Untitled", + "needsSave": false, + "saveStateKnown": true + }, + { + "isModified": true, + "isSaved": false, + "name": "Untitled", + "needsSave": true, + "saveStateKnown": true + } + ], + "inspectionComplete": true, + "needsSaveCount": 1, + "openDocumentCount": 2, + "ownership": "notInferred", + "recoveryHealth": "notInspected" + }, + "durationMs": 797, + "error": "", + "operation": "inspect", + "output": "{\"_hint\":\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\"_hintDocumentHygiene\":\"Document checkpoint: 2 open, 1 need saving (Untitled). Save edited work at milestones and before ending the task. A source export or Document.CopyToDesktop is a separate checkpoint and may leave Fusion isSaved=false/isModified=true; verify the artifact and re-read save state. Close only this task's completed scratch documents by exact identity with fusion_close_document after verifying a current native checkpoint; never bulk-discard other work. If Fusion reports recovery-file failure, checkpoint immediately, then save or close that document; do not just dismiss recovery. Use a task subfolder when saving to cloud.\",\"_timeoutHint\":\"ab waits up to 60s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `fusion_get_app_state` until it reports done.\",\"data\":{\"bodies\":[{\"area\":2200.0,\"bounds\":{\"max\":[20.0,30.0,10.0],\"min\":[0.0,0.0,0.0]},\"centerOfMass\":[10.0,15.0,5.0],\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"edges\":12,\"faces\":6,\"isSolid\":true,\"mass\":0.0162,\"name\":\"Block\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::BRepBody\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6YwMDANu8VROIAAAA\"},\"space\":\"component\",\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"},\"volume\":6000.0}],\"complete\":true,\"components\":[{\"attributes\":{\"requestedName\":\"Untitled\"},\"bodyCount\":1,\"description\":\"\",\"id\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"material\":{\"id\":\"PrismMaterial-002\",\"name\":\"Aluminum\"},\"name\":\"(Unsaved)\",\"partNumber\":\"2026-10-05-14-31-00-614\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Component\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"rootComponentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"token\":\"/v4BAAEAAwAAAAAAAAAAAAAA\"},\"sketchCount\":1}],\"configuration\":{\"complete\":true,\"configurationRowId\":\"\",\"configurationWritesEnabled\":false,\"configured\":false,\"configuredOccurrences\":[],\"isConfiguration\":false,\"readErrors\":[],\"scope\":\"loaded Design ordinary and reserved test rows; no activation or recompute\",\"table\":null,\"unsupported\":[]},\"constructionAxes\":[],\"designIntent\":\"2\",\"document\":{\"creationId\":\"4f1af11b-0a58-4348-b81a-87502fd79fb2\",\"name\":\"Untitled\",\"saved\":false},\"features\":[{\"componentFeatureOrder\":0,\"index\":1,\"name\":\"Base extrusion\",\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::ExtrudeFeature\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IzMLAFj5FkqIAAAA\"},\"suppressed\":false,\"type\":\"adsk::fusion::ExtrudeFeature\"}],\"health\":{\"complete\":true,\"computeSucceeded\":null,\"faults\":[],\"healthy\":true,\"suppressed\":[],\"timelineCount\":2,\"unknown\":[]},\"jointOrigins\":[],\"joints\":[],\"motionLinks\":[],\"occurrences\":[],\"parameters\":[{\"displayUnit\":\"mm\",\"expression\":\"20.0 mm\",\"name\":\"width\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"30.0 mm\",\"name\":\"height\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"10.0 mm\",\"name\":\"depth\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"mm\",\"expression\":\"width\",\"name\":\"d5\",\"unit\":\"mm\",\"value\":20.0},{\"displayUnit\":\"mm\",\"expression\":\"height\",\"name\":\"d6\",\"unit\":\"mm\",\"value\":30.0},{\"displayUnit\":\"mm\",\"expression\":\"depth\",\"name\":\"d7\",\"unit\":\"mm\",\"value\":10.0},{\"displayUnit\":\"deg\",\"expression\":\"0.0 deg\",\"name\":\"d8\",\"unit\":\"deg\",\"value\":0.0}],\"rigidGroups\":[],\"sketches\":[{\"componentId\":\"3400b1c0-7442-4474-9ad7-c5e6343280a7\",\"fullyConstrained\":false,\"name\":\"Base rectangle\",\"profileCount\":1,\"ref\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"objectType\":\"adsk::fusion::Sketch\",\"occurrencePath\":null,\"occurrenceToken\":null,\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\",\"token\":\"/v4BAAAARlJLZXkAH4sIAAAAAAAA/zNQsFAwAEJDBSMgBrOMLIAsQwUTkIiZwoPHX9xX3/A7sGLnqYgk4Vg3oAojBWMzhcTklBTLtDRDXQNT00RdE0tzU10LC3MLXbPUFEPTREPzVKA0WC3QDAY0ALbPQAFsHch6IwNzAE9D84yIAAAA\"}}],\"target\":{\"documentId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c:cdfc43c8-2450-4f1d-b2f2-716ad0c43f9a\",\"revision\":\"3e04e18a082fd7bbd2c9add7fb46f2f95ef9ee389aef4398cabb73fa095871ed\"},\"units\":{\"angle\":\"deg\",\"area\":\"mm2\",\"length\":\"mm\",\"mass\":\"kg\",\"volume\":\"mm3\"}},\"documentHygiene\":{\"documents\":[{\"isModified\":false,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":false,\"saveStateKnown\":true},{\"isModified\":true,\"isSaved\":false,\"name\":\"Untitled\",\"needsSave\":true,\"saveStateKnown\":true}],\"inspectionComplete\":true,\"needsSaveCount\":1,\"openDocumentCount\":2,\"ownership\":\"notInferred\",\"recoveryHealth\":\"notInspected\"},\"operation\":\"inspect\",\"sessionId\":\"dd15182e-3fa9-4ea3-bc57-4175e60ef00c\",\"shell\":\"rust\",\"statusVerb\":\"fusion_get_app_state\",\"success\":true,\"timeoutSeconds\":60}", + "schemaVersion": 1, + "sessionId": "dd15182e-3fa9-4ea3-bc57-4175e60ef00c", + "shell": "rust", + "status": "ok", + "statusVerb": "fusion_get_app_state", + "success": true, + "timeoutSeconds": 60 + } +} \ No newline at end of file