| ok | No | Whether the read succeeded. | |
| url | No | Fetch mode: revision-pinned /p/<slug>?version= link. | |
| code | No | Fetch mode: the full .kcad source. | |
| slug | No | Fetch mode: the project slug. | |
| title | No | Fetch mode: the project title. | |
| assets | No | Complementary files keyed by source-relative path. | |
| meshUrl | No | Fetch mode: revision-matched mesh artifact URL when available — FunnelViewer loads it instead of re-executing CAD. When meshStatus is building, this is the expected CDN URL (retry until ready). | |
| privacy | No | Fetch mode: the project privacy. | |
| version | No | Fetch mode: the project version. | |
| embedUrl | No | Fetch mode: revision-pinned chrome-free /embed/<slug>?revision= viewer URL (includes meshUrl when available). | |
| meshHint | No | Fetch mode: when meshStatus=building — transient; poll again or re-open_in_studio; never imply permanent 404. | |
| projects | No | List mode (no slug): the user's saved projects. | |
| meshError | No | Fetch mode: sanitized repair/persist error when meshStatus is failed. | |
| meshReady | No | Fetch mode: true only when meshStatus===ready. | |
| paintHint | No | | |
| meshStatus | No | Fetch mode: ready | building | failed | missing — explicit CDN artifact state (never silently omit meshUrl under CDN mode). | |
| parameters | No | Fetch mode: the model's editable parameters. | |
| updated_at | No | Fetch mode: last-updated timestamp. | |
| serverBuild | No | Deploy identity (package+git SHA@boot time) so connector lag is observable. | |
| projectSaved | No | Fetch mode: true when the project was loaded. | |
| viewerPainted | No | Always false on tools/call; widget sets true after correlated model_displayed. | |