Files
FreeCADWasmDev/docs/p6/draft-module-batch-7e46d9b399fdf171c0baa8e4-runtime.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

664 lines
26 KiB
JSON

{
"schema": "freecad-web-draft-module-batch-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"batchId": "7e46d9b399fdf171c0baa8e4",
"module": "Draft",
"tier": "tier-3-stateful",
"family": "serialization",
"status": "pass_with_boundaries",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"route": {
"command": "draft.pythonFamilyBatch",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/DraftRuntimeProbe.cpp:fc_web_dispatch_json",
"facade": "web/src/draft-python-family-facade.ts",
"worker": "web/src/draft.worker.ts"
},
"gateTiming": {
"compileCacheHit": true,
"compileSeconds": 0.000042698999999998935,
"workerReadySeconds": 0.736955914,
"dispatchSeconds": 0.633137199
},
"input": {
"cmd": "draft.pythonFamilyBatch",
"args": {
"tier": "tier-3-stateful",
"records": [
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.writeState",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"family": "serialization",
"kind": "method",
"sourcePath": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.dumps",
"name": "ViewProviderWorkingPlaneProxy.dumps",
"family": "serialization",
"kind": "method",
"sourcePath": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.loads",
"name": "ViewProviderWorkingPlaneProxy.loads",
"family": "serialization",
"kind": "method",
"sourcePath": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:function:writeShape",
"name": "writeShape",
"family": "serialization",
"kind": "function",
"sourcePath": "src/Mod/Draft/importDXF.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:function:writeMesh",
"name": "writeMesh",
"family": "serialization",
"kind": "function",
"sourcePath": "src/Mod/Draft/importDXF.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:function:writePanelCut",
"name": "writePanelCut",
"family": "serialization",
"kind": "function",
"sourcePath": "src/Mod/Draft/importDXF.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:function:readPreferences",
"name": "readPreferences",
"family": "serialization",
"kind": "function",
"sourcePath": "src/Mod/Draft/importDXF.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Draft:function:writepoint",
"name": "writepoint",
"family": "serialization",
"kind": "function",
"sourcePath": "src/Mod/Draft/importOCA.py",
"disposition": "not_implemented"
}
]
}
},
"inputSha256": "af00cdd778c820d405a7c9c1600bbeba0e0c5f732cf8fed2729ea1bb40ddccc2",
"result": {
"cmd": "draft.pythonFamilyBatch",
"count": 8,
"module": "Draft",
"ok": true,
"records": [
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.writeState",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.dumps",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.dumps",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.loads",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.loads",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeShape",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeShape",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeMesh",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeMesh",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writePanelCut",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writePanelCut",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:readPreferences",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "readPreferences",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writepoint",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writepoint",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importOCA.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-draft/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-3-stateful"
},
"resultSha256": "e0a63c4dff17a450c3ef6215b0105f2a8a507069edaa41d93d1285b5b63de329",
"replay": {
"equal": true,
"resultSha256": "e0a63c4dff17a450c3ef6215b0105f2a8a507069edaa41d93d1285b5b63de329"
},
"facadeWorker": {
"ready": {
"kind": "ready",
"action": "draft.pythonFamilyBatch"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "draft-object-batch-success",
"result": {
"cmd": "draft.pythonFamilyBatch",
"count": 8,
"module": "Draft",
"ok": true,
"records": [
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.writeState",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.dumps",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.dumps",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.loads",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.loads",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeShape",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeShape",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeMesh",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeMesh",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writePanelCut",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writePanelCut",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:readPreferences",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "readPreferences",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writepoint",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writepoint",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importOCA.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-draft/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-3-stateful"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "draft-object-batch-repeat",
"result": {
"cmd": "draft.pythonFamilyBatch",
"count": 8,
"module": "Draft",
"ok": true,
"records": [
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.writeState",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.dumps",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.dumps",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.loads",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.loads",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeShape",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeShape",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writeMesh",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writeMesh",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writePanelCut",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writePanelCut",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:readPreferences",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "readPreferences",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Draft:function:writepoint",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "writepoint",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/importOCA.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-draft/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-3-stateful"
}
},
"crossModule": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "draft-object-batch-cross",
"result": {
"cmd": "draft.pythonFamilyBatch",
"count": 1,
"module": "Draft",
"ok": true,
"records": [
{
"apiId": "py:BIM:class:Binding",
"code": "method_evidence_pending",
"family": "serialization",
"message": "Draft Python API has no method-level readonly native evidence",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-draft/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-3-stateful"
}
},
"malformed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "invalid",
"error": {
"code": "invalid_request",
"message": "Draft Python family envelope is invalid"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "draft-family-cancel-1",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"reset": {
"kind": "reset",
"requestId": "draft-object-batch-reset"
},
"traceSha256": "1f8911e997b497da4d5fd6a84d6d7221e583ce31202b74ac8a15f1a7019e91d1"
},
"dispositionCounts": {
"exposed": 0,
"restricted": 0,
"nonportable": 0,
"not_implemented": 8
},
"records": [
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.writeState",
"name": "ViewProviderWorkingPlaneProxy.writeState",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "d9d51e0d130a1e9efd4d56ceefec0f2742cf9002265201bfe80733d451282075"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.dumps",
"name": "ViewProviderWorkingPlaneProxy.dumps",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "1c24a20348a92e52b2b222ba29f021fd380def2e48d986eb9f3741ca45755344"
},
{
"apiId": "py:Draft:method:ViewProviderWorkingPlaneProxy.loads",
"name": "ViewProviderWorkingPlaneProxy.loads",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/draftviewproviders/view_wpproxy.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "41f33211487783ca90c0a5ce483714444494751fe01416cc28b48710ce260957"
},
{
"apiId": "py:Draft:function:writeShape",
"name": "writeShape",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "43d3a54e49a3201f6f90289f2b294e7db14d825530170e4e861cb353e0e2bee2"
},
{
"apiId": "py:Draft:function:writeMesh",
"name": "writeMesh",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "10cd865e8a24b8f0e4a07790bacf814d56507b65b1ad69de681648ec653bd95f"
},
{
"apiId": "py:Draft:function:writePanelCut",
"name": "writePanelCut",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "2936baa923dfd80d03d90bdf88c1be2a8eb784e12e22800428c2351ae399e2b3"
},
{
"apiId": "py:Draft:function:readPreferences",
"name": "readPreferences",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/importDXF.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "bd0d95a9160fd13abb6d358e3546afe2d2a2001957f230ac89f74faefb1517c0"
},
{
"apiId": "py:Draft:function:writepoint",
"name": "writepoint",
"family": "serialization",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "Draft Python API has no method-level readonly native evidence",
"sourceEntry": "src/Mod/Draft/importOCA.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "8e53e9682fa0e039dc1e2374ff0928af89210ff9ecca837968816f521194301a"
}
],
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"module": "Draft",
"worker": "draft.worker.ts",
"revision": "06f9a64f3810d6f2",
"runtimeUrl": "/kernel/FreeCADWebDraftRuntimeProbe.js",
"wasmUrl": "/kernel/FreeCADWebDraftRuntimeProbe.wasm",
"dataUrl": null,
"assetBaseUrl": "/kernel/",
"buildProfile": "fast-dev",
"runtimeSha256": "302b269764a05db99f2644892359469caae616f6af3d9c20be112930bf292db0",
"wasmSha256": "06f9a64f3810d6f2dd334d3b72289b7b004a2cac5c2feed45177e0eefbb507e4"
},
"boundaries": [
"Draft functions are executed from embedded official FreeCAD Python source by the native dispatcher.",
"All statuses, values and hashes come from compiled FreeCAD through fc_web_dispatch_json; JavaScript only transports and validates the batch envelope."
]
}