Schema Reference
Every field in mview.json, with valid and invalid examples.
Schema Reference
Every mview.json manifest must validate against:
https://schemas.carmenlabs.com/mview/v1/schema.jsonField table
| Field | Type | Required | Description |
|---|---|---|---|
$schema | string (const) | yes | Must be exactly https://schemas.carmenlabs.com/mview/v1/schema.json. |
id | string | yes | Unique identifier. Pattern: ^[a-z0-9][a-z0-9._-]*$. |
name | string | yes | Human-readable display name. |
description | string | no | Human-readable summary of what the view shows. |
version | string | yes | Semantic version of the MView itself: MAJOR.MINOR.PATCH. |
prompt | string | yes | Prompt used to generate this mutation. |
runtime | object | yes | Rendering runtime required by the MView. |
runtime.environment | string | yes | Execution environment. V1 allows "web", "desktop", "terminal", or "other". |
runtime.renderer | string | yes | Required renderer/adapter. This is an open implementation-defined identifier, for example "react", "solid", "html", or "pdf". |
runtime.version | string | no | Compatible semver range for the renderer, for example "^19.0.0". |
author | string | no | Author name or identifier. |
license | string | no | SPDX license identifier. |
icon | string | no | Relative path to an icon asset. |
accepts | string[] | no | Capabilities this MView needs from the runtime. See Capabilities. |
source | object | no | The source file this MView is derived from. |
source.path | string | yes, if source present | Relative path to the source file. |
source.contentHash | string | no | Hash of the source file at creation/last validation time. |
entry | object | yes | Executable entry points. |
entry.parser | string | yes | Relative path to the parser module. |
entry.component | string | yes | Relative path to the view component. |
resources | object | no | Location of static assets. |
resources.path | string | no | Relative path to the resources directory. Default ./resources. |
settings | object | no | Default settings exposed to parser and component. |
metadata | object | no | Free-form implementation metadata. Must not drive runtime behavior. |
additionalProperties: false applies at every level — manifests with unknown fields are invalid.
id
Lowercase letters, digits, dots, underscores, and hyphens only.
Valid: sales-dashboard, invoice.tax-view, logs_timeline
Invalid: Sales Dashboard, dashboard final, ventas/2026
prompt
The manifest must preserve the original prompt used to generate the mutation. This lets the user see how the view was created and provides an editable starting point if the source file changes and the mutation is no longer compatible.
"prompt": "Create an executive view for monthly sales, top clients, and totals."The prompt is re-executable provenance, not runtime configuration: it must not replace settings for values that directly affect rendering.
runtime
V1 defines multiple execution environments ("web", "desktop", "terminal", "other") with an explicit renderer. runtime.renderer is not a closed list of renderers supported by the specification: it is the identifier for the rendering path the manifest requires. React and Solid are common examples for web, but an implementation can publish other values such as "html", "pdf", or a custom renderer for different environments.
"runtime": {
"environment": "web",
"renderer": "react",
"version": "^19.0.0"
}For Solid, the manifest declares another renderer identifier:
"runtime": {
"environment": "web",
"renderer": "solid",
"version": "^1.9.0"
}runtime.version is optional and is interpreted as a compatible semver range for the renderer,
not as an exact version. The specification does not require any runtime to implement a specific
renderer; each implementation must document which runtime.renderer values it accepts and how to
execute or produce that kind of view. Implementations must reject manifests whose environment,
renderer, or version range they don't support, rather than guessing.
accepts
Declares what kind of normalized input the parser expects — a capability, not a file extension. Full list and normalizer shapes: Capabilities.
source
Optional pointer to the file this MView was derived from.
"source": {
"path": "../sales.csv",
"contentHash": "sha256:8d969eef6ecad3c29a3a629280e686cff8ca58e3f3f2d4d0c7d7f9f2e2f0f4ab"
}path is always relative. contentHash lets a runtime detect drift between the file and the
last time the MView was created or validated, and prompt for regeneration.
entry
"entry": {
"parser": "./parser.ts",
"component": "./Dashboard.tsx"
}Both paths are relative to the MView's own directory, never absolute. The parser and component contracts are specified separately: Parser Contract, Component Contract.
settings
Initial, editable configuration surfaced to the parser and/or component.
"settings": {
"currency": "USD",
"showTopClients": true,
"maxRows": 10
}Unlike metadata, settings is allowed to affect rendering.
metadata
Free-form provenance information — who/what generated the MView, when, with which model.
"metadata": {
"createdBy": "llm",
"model": "gpt-5.5",
"createdAt": "2026-07-11T05:00:00Z"
}metadata must never gate or change runtime behavior. If a value needs to affect rendering, it
belongs in settings.
Full example
{
"$schema": "https://schemas.carmenlabs.com/mview/v1/schema.json",
"id": "sales-dashboard",
"name": "Sales Dashboard",
"description": "Executive dashboard generated from sales.csv.",
"version": "1.0.0",
"prompt": "Create an executive dashboard from sales.csv showing monthly sales, top clients, and total sales.",
"runtime": {
"environment": "web",
"renderer": "react",
"version": "^19.0.0"
},
"author": "Victor Avila",
"license": "MIT",
"icon": "./resources/icon.svg",
"accepts": ["table"],
"source": {
"path": "../sales.csv",
"contentHash": "sha256:8d969eef6ecad3c29a3a629280e686cff8ca58e3f3f2d4d0c7d7f9f2e2f0f4ab"
},
"entry": {
"parser": "./parser.ts",
"component": "./Dashboard.tsx"
},
"resources": {
"path": "./resources"
},
"settings": {
"currency": "USD",
"topClientsLimit": 10
},
"metadata": {
"createdBy": "llm",
"model": "gpt-5.5",
"createdAt": "2026-07-11T05:00:00Z"
}
}Raw schema
The canonical machine-readable schema is served at
schemas.carmenlabs.com/mview/v1/schema.json.
Validate manifests against that URL directly — do not hardcode a copy where it can drift.