# Getting started
## Install for your user account
Open your agent's plugin manager, find **Enhance**, and choose the user-level installation. Project-level installation is an explicit team choice; it is not necessary for ordinary use.
If Enhance is not in that provider's marketplace yet, open the Enhance dashboard, choose your provider under **Connect your AI agent**, and copy the setup prompt. Paste it into the agent. The prompt contains no credential.
## Sign in
The host starts Enhance's pinned local MCP runtime. When the agent checks connection status, Enhance opens browser sign-in. Complete consent in the browser and return to the agent. The credential stays in the local runtime and is never placed in a prompt or MCP configuration.
## Prove the connection
Ask:
> Open my example canvas, tell me what is on it, and render the main screen for us to inspect.
A complete result includes the canvas context and a visual render. A connection badge or a successful tool call alone does not prove the workflow.
## Try a real workflow
- “Design a compact empty state that matches this product.”
- “Publish and visually verify the build folder I selected.”
- “Apply the actionable feedback and leave uncertain comments open.”
The agent reads live capability contracts from Enhance, so an installed workflow does not become a stale command manual.
---
# Build products in the open
Enhance gives your agent a real visual canvas—not a screenshot pasted into a chat. It can inspect product context, author editable screens, publish working prototypes, act on feedback, and verify the pixels with you.
## Start with the product, not setup
1. [Connect your agent](/docs/getting-started).
2. Open the populated example canvas Enhance creates for you.
3. Ask for a small change, a new screen, or a prototype review.
4. Watch the work appear on the canvas and inspect the result together.
> The normal experience is browser sign-in and a user-scoped plugin. You do not need to install a CLI, copy a token, edit a project file, or understand MCP transports.
## Four complete workflows
| Goal | What the agent completes |
| --- | --- |
| Design on canvas | Reads the real product language, creates editable native objects, and inspects a full render. |
| Publish a prototype | Packages the build you selected, publishes it, exercises the result, and checks the pixels. |
| Respond to feedback | Acts on clear comments, leaves ambiguity open, republishes where needed, and verifies before resolving. |
| Apply a canvas design | Changes the owning product source, rebuilds, republishes, and compares it with the approved design. |
## Human and agent representations
Every page is available as polished HTML and clean Markdown. Start with [llms.txt](/docs/llms.txt) for the compact agent index or [llms-full.txt](/docs/llms-full.txt) for one complete corpus.
---
# ChatGPT remote
Enhance's public OpenAI listing is still being prepared. It is not yet available as an approved directory installation.
The remote connection uses Enhance's HTTPS MCP service at `https://api.enhance3.karunalabs.ai/mcp`. It can work with remote canvases and feedback, but it cannot read a build directory or source files on your computer. While the public listing is unavailable, accounts with custom MCP connections enabled can add this URL using OAuth.
Once the public listing is available:
1. Open ChatGPT's **Plugins Directory** and select **Enhance**.
2. Review the remote capabilities and choose **Connect**.
3. Complete the standard Enhance OAuth page in your browser, then return to ChatGPT.
4. Verify the connection with a read-only request and open your populated example canvas.
5. Try a remote-capable workflow: inspect canvas structure, render a canvas, create or edit a mock, or action clear feedback.
If you ask ChatGPT to publish a local build or reconcile a canvas into local prototype source, it should explain that the [local Codex plugin](/docs/setup/codex) is required. It must not pretend the remote service can read your machine or send you to a command-line workaround.
## Updates and recovery
The public directory is a reviewed snapshot. ChatGPT shows a new version only after provider review and publication. If OAuth is revoked or abandoned, open Enhance again from the connection surface and choose **Reconnect**; an incomplete sign-in is never reported as connected.
---
# Claude Code

1. In Enhance, select **Claude Code** and copy the setup prompt.
2. Paste it into a normal Claude Code session. Claude opens its native **Plugins** view; review the source and choose **User scope**.
3. Select **Install** for Enhance. If Claude says the plugin needs a reload, use its **Reload plugins** action.
4. Ask Claude to check Enhance authentication. Complete the sign-in page that opens in your browser.
5. Verify the connection with a read-only request, then ask Claude to open and render your populated example canvas.
Before official marketplace acceptance, the same prompt adds Enhance's public catalogue and opens the native install confirmation. You do not need to edit configuration or install a command-line tool.
## Updates
Third-party Claude marketplaces do not silently replace cached plugin code. Open **Plugins**, refresh the Enhance catalogue, and choose **Update** when the connection reports that the installed plugin or MCP runtime is out of date.
## Recovery
If the server is unavailable, reinstall or refresh Enhance from the plugin manager. Authentication state belongs to Enhance's local runtime, so reinstalling the cached plugin does not delete canvases or product data.
---
# Codex

## Desktop app
Enhance's public OpenAI listing is still being prepared. You can install the complete local plugin from the [Enhance catalogue](https://github.com/enhance-labs-builds/enhance-plugin-dev) in the meantime. Its bundled runtime requires Node.js 24 or later.
1. In Enhance, select **Codex** and copy the setup prompt into the desktop app.
2. Open the **Plugins Directory** in the ChatGPT desktop app while using Codex or Work mode.
3. Choose the Enhance catalogue, select **Enhance**, and install it for your user account.
4. Enable the plugin and let Codex start its version-pinned MCP server. Restart the app if the install surface asks you to refresh.
5. Ask Codex to check Enhance status. Complete browser sign-in when it opens.
6. Verify the connection with a read-only request, then ask Codex to inspect and render your example canvas.
The setup prompt identifies Enhance's public Git catalogue. Add that catalogue before looking for Enhance in the directory.
## Codex extension in VS Code or Cursor
The Codex IDE extension supports MCP servers but does not support plugins. Configure Enhance within the Codex extension:
1. Open Codex's gear menu and select **MCP servers**.
2. Select **Add server**, name it `enhance`, and choose **Streamable HTTP**.
3. Enter `https://api.enhance3.karunalabs.ai/mcp`, save, and select **Restart extension**.
4. Select **Authenticate** beside Enhance and complete browser sign-in.
5. Ask Codex to list your canvases and render one.
This connects remote canvas operations without installing the four local workflow skills. Local build publication and source reconciliation need the complete local plugin. The host editor's own MCP settings configure its native agent separately.
These steps follow [OpenAI's MCP setup documentation](https://learn.chatgpt.com/docs/extend/mcp?surface=cli).
## Updates
Git-backed Codex plugins are cached by version and upgraded explicitly. When Enhance reports an update, open the Enhance catalogue, choose **Upgrade marketplace**, refresh Enhance, and re-check connection status.
## Scope
User scope is the default. Use project scope only when a team intentionally wants the plugin configuration governed with that repository.
---
# Conductor
Conductor uses the plugin and MCP behavior of the agent running inside the workspace. There is no separate Conductor manifest, catalogue, or forked workflow.

1. In Conductor, create or open a workspace and choose **Claude Code** or **Codex** as its agent.
2. Follow the matching [Claude Code](/docs/setup/claude-code) or [Codex](/docs/setup/codex) guide and install Enhance at user scope.
3. Start a fresh agent session in Conductor. Do not add a second Conductor-specific plugin or MCP configuration.
4. Ask the selected agent to check Enhance status and complete browser sign-in.
5. Verify the inherited connection with a read-only request, then open and render the example canvas.
If you change the underlying agent, install Enhance for that provider too. Conductor reads the selected agent's user configuration; canvases and published prototypes remain Enhance product state and are not copied into the workspace.
---
# Cursor

Enhance's Cursor marketplace application is pending review. Until the listing is published, use the [remote MCP connection](/docs/setup/mcp-only) for canvas operations and feedback. It needs no local runtime installation.
The complete plugin is available from the [Enhance plugin repository](https://github.com/enhance-labs-builds/enhance-plugin-dev). It includes a bundled MCP runtime and four workflow skills. Follow the repository's installation instructions for your Cursor version; the local runtime requires Node.js 24 or later.
Once the public listing is available:
1. Open **Customize** in Cursor and find **Enhance**.
2. Select **Install**, choose **User** scope, and review the MCP server and four workflow skills.
3. Enable the Enhance MCP server and complete browser sign-in when requested.
4. Ask the agent to list your canvases, then inspect and render one of them.
If you use the **Codex extension inside Cursor**, follow [Codex setup](/docs/setup/codex). Cursor's native agent and the Codex extension manage their connections separately.
## Review and updates
Cursor reviews public source changes before marketplace publication. Until a reviewed update appears, the previous plugin remains supported by the Enhance API.
---
# MCP-only fallback
Connect directly to Enhance's hosted MCP server when your agent cannot install the complete plugin. This supports remote canvas operations without the four packaged workflow skills. No Node.js installation is needed.
1. Open your agent's **Add MCP server** settings.
2. Choose **HTTP** or **Streamable HTTP**, name the server `enhance`, and enter `https://api.enhance3.karunalabs.ai/mcp`.
3. Choose **User** scope when available and save the connection.
4. Select **Authenticate** or **Connect** and complete Enhance's browser sign-in.
5. Ask the agent to list your canvases, then inspect and render one.
In VS Code with GitHub Copilot, use **MCP: Add Server** from the Command Palette. In the Codex IDE extension, use the extension's own **MCP servers** settings; see [Codex setup](/docs/setup/codex).
The hosted service cannot read files on your computer. Publishing a local build or applying a design to local source needs the complete local plugin. Installing that plugin later does not delete your Enhance data.
## Recovery
If sign-in is incomplete or has been revoked, reconnect from the same agent's MCP settings. Verify the account by listing canvases before treating the connection as ready.
---
# Support and recovery
Start by asking the agent to run Enhance diagnostics. It reports runtime version, API reachability, and whether a local credential exists—never the credential or its machine path.
| Failure | Recovery |
| --- | --- |
| Not authenticated | Start Enhance browser sign-in and complete consent. |
| Plugin unavailable | Reinstall or refresh Enhance through the provider's plugin manager. |
| Update required | Upgrade the user-scoped plugin, restart the agent session, and re-check status. |
| API timeout or rate limit | Keep the current state, follow the bounded retry guidance, and read back ambiguous writes before retrying. |
| Missing build directory | Select the intended local build; the agent must not guess. |
| Upload interrupted | Retry the same immutable artifact after connectivity returns. |
For help from the Enhance team, email **support@enhancelabs.ai** with the diagnostic status and failing workflow. Do not send credentials, signed URLs, customer canvas content, or local paths.
---
# Terms
Enhance is currently a closed alpha provided to invited users for product evaluation. Use it only with content and systems you are authorised to access. You remain responsible for reviewing agent-proposed changes and external publications before sharing them.
The service may change during alpha. Do not rely on it as the only copy of important product material. Provider plugin terms and the [Enhance privacy policy](/privacy-policy) also apply.
Questions can be sent to **support@enhancelabs.ai**.
---
# Apply a canvas design
Select the approved or edited screen and identify the source project and build folder. The agent reads both the design and current prototype, finds the actual source owner, and implements the smallest complete change in the project's existing components and tokens.
It rebuilds and republishes the site, exercises every changed state, and compares full renders with the canvas. Stale or ambiguous differences are surfaced rather than overwritten.
## A useful request
> Apply the selected checkout design to the product source. Preserve the existing component system, verify the empty, loading, invalid-card, and success states, then republish and compare desktop and mobile renders.
---
# Design on canvas
Ask your agent to design a screen on the current Enhance canvas. For an existing product, point it at the relevant prototype or captured screens.
The workflow reads the real product's components, styles, tokens, content patterns, and current screen states. It creates native semantic objects so the result remains editable. It then renders the whole affected screen at representative sizes and corrects hierarchy, alignment, typography, overflow, clipping, and state gaps.
## A useful request
> On this canvas, design the billing empty state and its first-invoice state. Match the current settings product, reuse its navigation and form patterns, and inspect desktop and mobile renders before you finish.
The agent should report which states and viewports it inspected, not merely that the canvas mutation succeeded.
---
# Publish a prototype
Choose the local build folder you intend to share, then ask the agent to publish it to the target canvas. Enhance preflights the complete directory, uploads one immutable artifact, attaches it to the canvas, and serves its routes through the prototype runtime.
The agent then opens the published site, exercises specified states and interactions, checks console and network failures, and inspects rendered pixels for missing assets, overflow, and clipping. A successful upload alone is not completion.
## A useful request
> Publish the build folder I selected to this canvas. Test the landing page, pricing modal, invalid signup, and mobile menu, then inspect full-page desktop and mobile screenshots.
---
# Respond to feedback
The agent reads unresolved attention comments with their selection and prototype context. It separates clear actions from ambiguous, conflicting, stale, or already-satisfied feedback.
Clear actions are implemented at the actual owner: editable canvas content, prototype source, or both. Source changes are rebuilt and republished. Canvas changes are rendered. The agent resolves only comments whose requested outcome is present and visually verified.
## A useful request
> Work through the actionable feedback on this canvas. Make the complete underlying changes, republish where required, and leave any ambiguous or conflicting comment open with a concise explanation.
---
# MCP capability reference
Enhance advertises five stable MCP tools. Use `capability_search` for a specific action or `capability_catalogue` for the full inventory, then describe one exact ID before invoking it.
- [canvas.apply](/docs/reference/mcp/canvas-apply) — Atomically apply bounded canvas edits and report their exact affected state.
- [canvas.create](/docs/reference/mcp/canvas-create) — Create a canvas and return the id required by canvas-scoped commands.
- [canvas.createEditableFrame](/docs/reference/mcp/canvas-createeditableframe) — Insert one validated primitive subtree beside its source screen as an atomic canvas edit.
- [canvas.delete](/docs/reference/mcp/canvas-delete) — Move a canvas to its recoverable bin; retention is currently indefinite.
- [canvas.deletePermanently](/docs/reference/mcp/canvas-deletepermanently) — Permanently delete a canvas already in the recoverable bin.
- [canvas.document.get](/docs/reference/mcp/canvas-document-get) — Read a canvas document, version, and attached screen manifest.
- [canvas.document.save](/docs/reference/mcp/canvas-document-save) — Replace a canvas document. A stale base version exits 5 as CONFLICT; read, merge, and retry.
- [canvas.duplicate](/docs/reference/mcp/canvas-duplicate) — Copy a canvas and its document into the selected shelf.
- [canvas.get](/docs/reference/mcp/canvas-get) — Read one canvas by id, including access and viewer capabilities.
- [canvas.inspect](/docs/reference/mcp/canvas-inspect) — Read the canonical browser URL for a canvas, its exact document version, kind counts, bounds, and next inspection commands.
- [canvas.invites.accept](/docs/reference/mcp/canvas-invites-accept) — Accept a canvas invitation using its secret token.
- [canvas.invites.create](/docs/reference/mcp/canvas-invites-create) — Invite an email address to access a canvas and return the pending invitation.
- [canvas.invites.list](/docs/reference/mcp/canvas-invites-list) — List pending and expired invitations for a canvas.
- [canvas.invites.preview](/docs/reference/mcp/canvas-invites-preview) — Inspect what an invitation grants before accepting it.
- [canvas.invites.resend](/docs/reference/mcp/canvas-invites-resend) — Replace a pending canvas invitation token and send the invitation again.
- [canvas.invites.revoke](/docs/reference/mcp/canvas-invites-revoke) — Revoke a pending canvas invitation.
- [canvas.list](/docs/reference/mcp/canvas-list) — Find canvas ids by collection, title, access, review state, or deletion state.
- [canvas.markViewed](/docs/reference/mcp/canvas-markviewed) — Record that the authenticated person has viewed a canvas.
- [canvas.move](/docs/reference/mcp/canvas-move) — Move a canvas between the personal shelf and a team shelf.
- [canvas.node](/docs/reference/mcp/canvas-node) — Read one stable node with its exact styles, props, children, and current version.
- [canvas.participants.list](/docs/reference/mcp/canvas-participants-list) — List people with direct access to a canvas.
- [canvas.participants.revoke](/docs/reference/mcp/canvas-participants-revoke) — Remove a participant’s direct access to a canvas.
- [canvas.participants.setAccess](/docs/reference/mcp/canvas-participants-setaccess) — Change a canvas participant between view and comment access.
- [canvas.realtime.activity.begin](/docs/reference/mcp/canvas-realtime-activity-begin) — Show that this agent has started work on a canvas.
- [canvas.realtime.activity.end](/docs/reference/mcp/canvas-realtime-activity-end) — Remove an agent-work indicator after work completes.
- [canvas.realtime.activity.renew](/docs/reference/mcp/canvas-realtime-activity-renew) — Renew an active agent-work indicator before its lease expires.
- [canvas.rename](/docs/reference/mcp/canvas-rename) — Rename a canvas owned by the authenticated person.
- [canvas.render](/docs/reference/mcp/canvas-render) — Render production-faithful canvas pixels into a protected PNG artifact.
- [canvas.render.cancelImport](/docs/reference/mcp/canvas-render-cancelimport) — Cancel a queued primitive import before compilation begins.
- [canvas.render.getImport](/docs/reference/mcp/canvas-render-getimport) — Inspect the progress or committed result of a primitive import.
- [canvas.render.importSource](/docs/reference/mcp/canvas-render-importsource) — Import one source through the canonical editable-primitives compiler.
- [canvas.restore](/docs/reference/mcp/canvas-restore) — Restore a canvas from the recoverable bin.
- [canvas.selection](/docs/reference/mcp/canvas-selection) — Read the accountable person’s most recently changed live browser selection at an exact canvas version.
- [canvas.setAccess](/docs/reference/mcp/canvas-setaccess) — Change how a canvas can be reached by people with its link.
- [canvas.setReviewState](/docs/reference/mcp/canvas-setreviewstate) — Change the authenticated person’s review state on a canvas.
- [canvas.tree](/docs/reference/mcp/canvas-tree) — List stable node ids, hierarchy, kinds, and world-space boxes for one canvas.
- [canvas.version.get](/docs/reference/mcp/canvas-version-get) — Read the document and screen manifest retained for one canvas version.
- [canvas.version.list](/docs/reference/mcp/canvas-version-list) — List retained versions of a canvas, newest first.
- [canvas.version.name](/docs/reference/mcp/canvas-version-name) — Name the current or a retained canvas version so it is kept.
- [canvas.version.removeName](/docs/reference/mcp/canvas-version-removename) — Remove a canvas version’s name and return it to automatic retention.
- [canvas.version.updateMetadata](/docs/reference/mcp/canvas-version-updatemetadata) — Replace the title and description of a named canvas version.
- [canvas.writeHtml](/docs/reference/mcp/canvas-writehtml) — Compile safe HTML and CSS into editable canvas nodes, then render the result.
- [comment.attention](/docs/reference/mcp/comment-attention) — List every open canvas comment that may need attention.
- [comment.delete](/docs/reference/mcp/comment-delete) — Delete an entire comment thread, or tombstone one message when its id is set.
- [comment.edit](/docs/reference/mcp/comment-edit) — Replace the body of a comment message authored by this person.
- [comment.list](/docs/reference/mcp/comment-list) — List comment threads and replies on a canvas.
- [comment.move](/docs/reference/mcp/comment-move) — Move a comment thread anchor to a new canvas location.
- [comment.react](/docs/reference/mcp/comment-react) — Set or remove one emoji reaction on a comment message.
- [comment.reply](/docs/reference/mcp/comment-reply) — Add a reply to an existing comment thread.
- [comment.resolve](/docs/reference/mcp/comment-resolve) — Set a thread resolved or reopened with an explicit target state.
- [comment.start](/docs/reference/mcp/comment-start) — Start a comment thread anchored to a canvas location.
- [organisation.create](/docs/reference/mcp/organisation-create) — Create a team and make the authenticated person its owner.
- [organisation.delete](/docs/reference/mcp/organisation-delete) — Delete a team and rehome every canvas to its creator’s personal shelf.
- [organisation.invites.accept](/docs/reference/mcp/organisation-invites-accept) — Accept a team invitation using its secret token.
- [organisation.invites.create](/docs/reference/mcp/organisation-invites-create) — Invite an email address to join a team with the selected role.
- [organisation.invites.list](/docs/reference/mcp/organisation-invites-list) — List pending and expired invitations for a team.
- [organisation.invites.preview](/docs/reference/mcp/organisation-invites-preview) — Inspect a team invitation before accepting it.
- [organisation.invites.resend](/docs/reference/mcp/organisation-invites-resend) — Replace a team invitation token and send it again.
- [organisation.invites.revoke](/docs/reference/mcp/organisation-invites-revoke) — Revoke a pending team invitation.
- [organisation.list](/docs/reference/mcp/organisation-list) — List teams the authenticated person belongs to.
- [organisation.people.add](/docs/reference/mcp/organisation-people-add) — Add an existing account by email; use organisation invites create when no account exists.
- [organisation.people.list](/docs/reference/mcp/organisation-people-list) — List the people and roles in a team.
- [organisation.people.remove](/docs/reference/mcp/organisation-people-remove) — Remove a person from a team without deleting their account.
- [organisation.people.setRole](/docs/reference/mcp/organisation-people-setrole) — Change a team member between administrator and member.
- [organisation.people.transferOwnership](/docs/reference/mcp/organisation-people-transferownership) — Transfer team ownership to another current member.
- [organisation.update](/docs/reference/mcp/organisation-update) — Rename a team managed by the authenticated person.
- [person.me](/docs/reference/mcp/person-me) — Resolve the current person and authentication kind.
- [person.recipients.recent](/docs/reference/mcp/person-recipients-recent) — List people recently selected as sharing recipients.
- [person.recipients.search](/docs/reference/mcp/person-recipients-search) — Find people who can be invited by matching a name or email.
- [person.updateDisplayName](/docs/reference/mcp/person-updatedisplayname) — Change the name shown for the current person throughout Enhance.
- [prototype.publish](/docs/reference/mcp/prototype-publish) — Package, upload, ingest, and attach a static prototype directory.
- [recording.appendAudioChunk](/docs/reference/mcp/recording-appendaudiochunk) — Commit metadata for the uploaded audio chunk at this index, then reserve the next upload.
- [recording.appendChunk](/docs/reference/mcp/recording-appendchunk) — Commit metadata for the uploaded DOM chunk at this index, then reserve the next upload.
- [recording.complete](/docs/reference/mcp/recording-complete) — Finish a recording and report any missing event or audio chunks.
- [recording.confirmUpload](/docs/reference/mcp/recording-confirmupload) — Confirm that a repaired recording chunk reached storage.
- [recording.delete](/docs/reference/mcp/recording-delete) — Soft-delete a completed recording while preserving screens and clearing their provenance.
- [recording.discard](/docs/reference/mcp/recording-discard) — Abandon an incomplete recording attempt and its uploaded chunks.
- [recording.get](/docs/reference/mcp/recording-get) — Read one recording and its replay metadata by id.
- [recording.list](/docs/reference/mcp/recording-list) — List recordings attached to one canvas.
- [recording.refreshUpload](/docs/reference/mcp/recording-refreshupload) — Replace an expired signed upload for a recording chunk.
- [recording.snapshot](/docs/reference/mcp/recording-snapshot) — Persist one visually accepted recording moment as an editable canvas screen.
- [recording.start](/docs/reference/mcp/recording-start) — Start a recording attempt and receive its first signed chunk upload.
- [recordingAsset.confirm](/docs/reference/mcp/recordingasset-confirm) — Confirm which reserved recording assets reached storage.
- [recordingAsset.reserve](/docs/reference/mcp/recordingasset-reserve) — Reserve signed uploads for external assets used by a recording.
- [screen.complete](/docs/reference/mcp/screen-complete) — Confirm a captured page after its bytes have been uploaded.
- [screen.create](/docs/reference/mcp/screen-create) — Reserve a signed upload for a captured page and return its screen id.
- [screen.delete](/docs/reference/mcp/screen-delete) — Delete an unattached captured page owned by this person.
- [transcript.read](/docs/reference/mcp/transcript-read) — Read timestamped speech cues for visually verified recording selection.
- [transcript.retry](/docs/reference/mcp/transcript-retry) — Retry a failed transcription for one recording.
---
# CLI reference
The CLI is optional. Agent workflows use MCP and never require a person to run these commands.
| Command | Purpose |
| --- | --- |
| `enhance-dev canvas create-editable-frame` | Insert one validated primitive subtree beside its source screen as an atomic canvas edit. |
| `enhance-dev canvas create` | Create a canvas and return the id required by canvas-scoped commands. |
| `enhance-dev canvas get` | Read one canvas by id, including access and viewer capabilities. |
| `enhance-dev canvas set-access` | Change how a canvas can be reached by people with its link. |
| `enhance-dev canvas mark-viewed` | Record that the authenticated person has viewed a canvas. |
| `enhance-dev canvas list` | Find canvas ids by collection, title, access, review state, or deletion state. |
| `enhance-dev canvas rename` | Rename a canvas owned by the authenticated person. |
| `enhance-dev canvas set-review-state` | Change the authenticated person’s review state on a canvas. |
| `enhance-dev canvas delete` | Move a canvas to its recoverable bin; retention is currently indefinite. |
| `enhance-dev canvas move` | Move a canvas between the personal shelf and a team shelf. |
| `enhance-dev canvas duplicate` | Copy a canvas and its document into the selected shelf. |
| `enhance-dev canvas delete-permanently` | Permanently delete a canvas already in the recoverable bin. |
| `enhance-dev canvas restore` | Restore a canvas from the recoverable bin. |
| `enhance-dev canvas inspect` | Read the canonical browser URL for a canvas, its exact document version, kind counts, bounds, and next inspection commands. |
| `enhance-dev canvas tree` | List stable node ids, hierarchy, kinds, and world-space boxes for one canvas. |
| `enhance-dev canvas node` | Read one stable node with its exact styles, props, children, and current version. |
| `enhance-dev canvas selection` | Read the accountable person’s most recently changed live browser selection at an exact canvas version. |
| `enhance-dev canvas realtime activity begin` | Show that this agent has started work on a canvas. |
| `enhance-dev canvas realtime activity renew` | Renew an active agent-work indicator before its lease expires. |
| `enhance-dev canvas realtime activity end` | Remove an agent-work indicator after work completes. |
| `enhance-dev canvas document get` | Read a canvas document, version, and attached screen manifest. |
| `enhance-dev canvas document save` | Replace a canvas document. A stale base version exits 5 as CONFLICT; read, merge, and retry. |
| `enhance-dev canvas version list` | List retained versions of a canvas, newest first. |
| `enhance-dev canvas version get` | Read the document and screen manifest retained for one canvas version. |
| `enhance-dev canvas version name` | Name the current or a retained canvas version so it is kept. |
| `enhance-dev canvas version update-metadata` | Replace the title and description of a named canvas version. |
| `enhance-dev canvas version remove-name` | Remove a canvas version’s name and return it to automatic retention. |
| `enhance-dev canvas render import-source` | Import one source through the canonical editable-primitives compiler. |
| `enhance-dev canvas render get-import` | Inspect the progress or committed result of a primitive import. |
| `enhance-dev canvas render cancel-import` | Cancel a queued primitive import before compilation begins. |
| `enhance-dev canvas participants list` | List people with direct access to a canvas. |
| `enhance-dev canvas participants set-access` | Change a canvas participant between view and comment access. |
| `enhance-dev canvas participants revoke` | Remove a participant’s direct access to a canvas. |
| `enhance-dev canvas invites create` | Invite an email address to access a canvas and return the pending invitation. |
| `enhance-dev canvas invites accept` | Accept a canvas invitation using its secret token. |
| `enhance-dev canvas invites preview` | Inspect what an invitation grants before accepting it. |
| `enhance-dev canvas invites list` | List pending and expired invitations for a canvas. |
| `enhance-dev canvas invites revoke` | Revoke a pending canvas invitation. |
| `enhance-dev canvas invites resend` | Replace a pending canvas invitation token and send the invitation again. |
| `enhance-dev canvas apply` | Apply an atomic canvas edit batch and return its affected bounds. |
| `enhance-dev canvas guide` | Agent design workflow. |
| `enhance-dev canvas get-jsx` | Read concise subtree JSX. |
| `enhance-dev canvas get-computed-styles` | Read effective node CSS. |
| `enhance-dev canvas write-html` | Compile HTML/CSS primitives. |
| `enhance-dev canvas create-artboard` | Create a top-level frame. |
| `enhance-dev canvas set-text-content` | Set Text node values. |
| `enhance-dev canvas rename-nodes` | Rename layers. |
| `enhance-dev canvas delete-nodes` | Delete node subtrees. |
| `enhance-dev canvas update-styles` | Update visual and layout styles. |
| `enhance-dev canvas duplicate-nodes` | Deep-clone node subtrees. |
| `enhance-dev canvas move-nodes` | Reorder or reparent nodes. |
| `enhance-dev canvas work begin` | Start visible agent activity. |
| `enhance-dev canvas work update` | Move visible agent activity. |
| `enhance-dev canvas finish-working-on-nodes` | End visible agent activity. |
| `enhance-dev comment list` | List comment threads and replies on a canvas. |
| `enhance-dev comment start` | Start a comment thread anchored to a canvas location. |
| `enhance-dev comment resolve` | Set a thread resolved or reopened with an explicit target state. |
| `enhance-dev comment react` | Set or remove one emoji reaction on a comment message. |
| `enhance-dev comment reply` | Add a reply to an existing comment thread. |
| `enhance-dev comment edit` | Replace the body of a comment message authored by this person. |
| `enhance-dev comment move` | Move a comment thread anchor to a new canvas location. |
| `enhance-dev comment delete` | Delete an entire comment thread, or tombstone one message when its id is set. |
| `enhance-dev comment attention` | List every open comment needing attention; source metadata is included when a capture has it. |
| `enhance-dev organisation list` | List teams the authenticated person belongs to. |
| `enhance-dev organisation create` | Create a team and make the authenticated person its owner. |
| `enhance-dev organisation update` | Rename a team managed by the authenticated person. |
| `enhance-dev organisation delete` | Delete a team and rehome every canvas to its creator’s personal shelf. |
| `enhance-dev organisation people list` | List the people and roles in a team. |
| `enhance-dev organisation people add` | Add an existing account by email; use organisation invites create when no account exists. |
| `enhance-dev organisation people set-role` | Change a team member between administrator and member. |
| `enhance-dev organisation people remove` | Remove a person from a team without deleting their account. |
| `enhance-dev organisation people transfer-ownership` | Transfer team ownership to another current member. |
| `enhance-dev organisation invites create` | Invite an email address to join a team with the selected role. |
| `enhance-dev organisation invites list` | List pending and expired invitations for a team. |
| `enhance-dev organisation invites revoke` | Revoke a pending team invitation. |
| `enhance-dev organisation invites resend` | Replace a team invitation token and send it again. |
| `enhance-dev organisation invites preview` | Inspect a team invitation before accepting it. |
| `enhance-dev organisation invites accept` | Accept a team invitation using its secret token. |
| `enhance-dev person me` | Resolve the current person and authentication kind. |
| `enhance-dev person update-display-name` | Change the name shown for the current person throughout Enhance. |
| `enhance-dev person recipients search` | Find people who can be invited by matching a name or email. |
| `enhance-dev person recipients recent` | List people recently selected as sharing recipients. |
| `enhance-dev prototype publish` | Package and publish an unpacked static build directory. The CLI creates the upload artifact. |
| `enhance-dev recording start` | Start a recording attempt and receive its first signed chunk upload. |
| `enhance-dev recording append-chunk` | Commit metadata for the uploaded DOM chunk at this index, then reserve the next upload. |
| `enhance-dev recording append-audio-chunk` | Commit metadata for the uploaded audio chunk at this index, then reserve the next upload. |
| `enhance-dev recording complete` | Finish a recording and report any missing event or audio chunks. |
| `enhance-dev recording get` | Read one recording and its replay metadata by id. |
| `enhance-dev recording discard` | Abandon an incomplete recording attempt and its uploaded chunks. |
| `enhance-dev recording list` | List recordings attached to one canvas. |
| `enhance-dev recording delete` | Soft-delete a completed recording while preserving screens and clearing their provenance. |
| `enhance-dev recording refresh-upload` | Replace an expired signed upload for a recording chunk. |
| `enhance-dev recording confirm-upload` | Confirm that a repaired recording chunk reached storage. |
| `enhance-dev recording snapshot` | Persist one visually accepted recording moment as an ordinary screen and frame. |
| `enhance-dev recording-asset reserve` | Reserve signed uploads for external assets used by a recording. |
| `enhance-dev recording-asset confirm` | Confirm which reserved recording assets reached storage. |
| `enhance-dev screen create` | Reserve a signed upload for a captured page and return its screen id. |
| `enhance-dev screen complete` | Confirm a captured page after its bytes have been uploaded. |
| `enhance-dev screen delete` | Delete an unattached captured page owned by this person. |
| `enhance-dev transcript retry` | Retry a failed transcription for one recording. |
| `enhance-dev transcript get` | Read timestamped speech cues as candidate moments; render and inspect candidate PNGs before snapshotting. |
| `enhance-dev auth login` | Authenticate in a browser, then store a revocable agent credential. |
| `enhance-dev auth status` | Resolve the stored token to its person, label, and expiry. |
| `enhance-dev auth logout` | Delete the local credential file; this does not revoke the server token. |
| `enhance-dev doctor` | Check the installed binary, API reachability, and credential file without changes. |
| `enhance-dev fixture screen` | Upload one captured page and return its reusable screen id. |
| `enhance-dev fixture recording` | Upload NDJSON rrweb events as a walkthrough; chunk offsets start at the first event. |
| `enhance-dev fixture world` | Create a team, a canvas, and zero or more attached screen fixtures. |
| `enhance-dev commands` | Emit the command inventory as NDJSON without walking the help tree. |
---
# canvas.apply
mutation write
Use when the requested change exactly matches canvas.apply; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"baseVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"operations": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "insertConvertedSubtree"
},
"destination": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "adjacent"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "insert-children"
},
"targetNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"targetNodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "replace"
},
"targetNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"targetNodeId"
],
"additionalProperties": false
}
]
},
"sourceNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"rootNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"nodes": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 500
},
"component": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"labelOrigin": {
"type": "string",
"enum": [
"source",
"generated",
"user"
]
},
"visible": {
"type": "boolean"
},
"locked": {
"type": "boolean"
},
"constraints": {
"type": "object",
"properties": {
"x": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
},
"y": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"styles": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"layout": {
"type": "object",
"properties": {
"rotation": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"flipHorizontal": {
"type": "boolean"
},
"flipVertical": {
"type": "boolean"
},
"aspectRatioLocked": {
"type": "boolean"
},
"aspectRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"horizontal": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"vertical": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"position": {
"type": "string",
"enum": [
"flow",
"absolute"
]
},
"alignSelf": {
"type": "string",
"enum": [
"auto",
"start",
"center",
"end",
"stretch"
]
},
"flexGrow": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexShrink": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexBasis": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": 0,
"maximum": 100000
},
{
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
}
]
},
"flowOffset": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"y": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"order": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"margin": {
"type": "object",
"properties": {
"top": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"right": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"bottom": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"left": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"gridTrack": {
"type": "object",
"properties": {
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"minimum": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"basis",
"align"
],
"additionalProperties": false
},
"clipContent": {
"type": "boolean"
},
"container": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"row",
"column"
]
},
"alignItems": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"alignContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"space-between",
"space-around",
"space-evenly"
]
},
"justifyContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"space-between",
"space-around",
"space-evenly"
]
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"rowGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"columnGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"wrap": {
"type": "string",
"enum": [
"nowrap",
"wrap"
]
},
"gridColumns": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"gridAutoRepeat": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"auto-fill",
"auto-fit"
]
},
"minimum": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"minimum"
],
"additionalProperties": false
},
"materialized": {
"type": "boolean"
},
"padding": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"direction",
"alignItems",
"justifyContent",
"gap",
"padding"
],
"additionalProperties": false
}
},
"required": [
"rotation",
"horizontal",
"vertical",
"position"
],
"additionalProperties": false
},
"responsive": {
"not": {}
},
"appearance": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blendMode": {
"type": "string",
"enum": [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"plus-lighter",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity"
]
},
"fills": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"border": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
},
"alignment": {
"type": "string",
"enum": [
"inside",
"center",
"outside"
]
}
},
"required": [
"visible",
"width",
"style",
"paint",
"alignment"
],
"additionalProperties": false
},
"outline": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"visible",
"width",
"offset",
"style",
"paint"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"topLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"topRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"smoothing": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"topLeft",
"topRight",
"bottomRight",
"bottomLeft"
],
"additionalProperties": false
},
"shadows": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"outer",
"inner"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"offsetX": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"offsetY": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"spread": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"color",
"offsetX",
"offsetY",
"blur",
"spread"
],
"additionalProperties": false
}
},
"filters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
},
"backdropFilters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
}
},
"additionalProperties": false
},
"typography": {
"type": "object",
"properties": {
"family": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fallbackFamilies": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"size": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"weight": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"style": {
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
"lineHeight": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "normal"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
}
]
},
"letterSpacing": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right",
"justify"
]
},
"verticalAlign": {
"type": "string",
"enum": [
"top",
"middle",
"bottom"
]
},
"transform": {
"type": "string",
"enum": [
"none",
"uppercase",
"lowercase",
"capitalize"
]
},
"decoration": {
"type": "object",
"properties": {
"line": {
"type": "string",
"enum": [
"none",
"underline",
"line-through"
]
},
"style": {
"type": "string",
"enum": [
"solid",
"double",
"dotted",
"dashed",
"wavy"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"thickness": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"line",
"style"
],
"additionalProperties": false
},
"stroke": {
"type": "object",
"properties": {
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"width",
"paint"
],
"additionalProperties": false
},
"wrapping": {
"type": "string",
"enum": [
"wrap",
"nowrap",
"pre",
"pre-line",
"pre-wrap",
"break-spaces"
]
},
"truncation": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"none",
"ellipsis"
]
},
"maxLines": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 100000
},
{
"type": "null"
}
]
}
},
"required": [
"mode",
"maxLines"
],
"additionalProperties": false
},
"insets": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"family",
"fallbackFamilies",
"size",
"weight",
"style",
"lineHeight",
"letterSpacing",
"align",
"verticalAlign",
"transform",
"decoration",
"wrapping"
],
"additionalProperties": false
},
"additionalStyles": {
"type": "object",
"properties": {
"declarations": {
"maxItems": 128,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"property": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^(?:--[\\w-]+|-(?:webkit|moz|ms|o)-[a-z][a-z\\d-]*|[a-z][a-z\\d-]*)$"
},
"value": {
"type": "string",
"maxLength": 10000
},
"enabled": {
"type": "boolean"
}
},
"required": [
"id",
"property",
"value",
"enabled"
],
"additionalProperties": false
}
}
},
"required": [
"declarations"
],
"additionalProperties": false
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"minimum": 0
},
"height": {
"type": "number",
"minimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"label",
"component",
"styles"
],
"additionalProperties": {}
}
},
"relationships": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"additionalProperties": {
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sortKey": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"parentId",
"sortKey"
],
"additionalProperties": false
}
}
},
"required": [
"op",
"destination",
"rootNodeId",
"nodes",
"relationships"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "insertNode"
},
"node": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 500
},
"component": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"labelOrigin": {
"type": "string",
"enum": [
"source",
"generated",
"user"
]
},
"visible": {
"type": "boolean"
},
"locked": {
"type": "boolean"
},
"constraints": {
"type": "object",
"properties": {
"x": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
},
"y": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"styles": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"layout": {
"type": "object",
"properties": {
"rotation": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"flipHorizontal": {
"type": "boolean"
},
"flipVertical": {
"type": "boolean"
},
"aspectRatioLocked": {
"type": "boolean"
},
"aspectRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"horizontal": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"vertical": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"position": {
"type": "string",
"enum": [
"flow",
"absolute"
]
},
"alignSelf": {
"type": "string",
"enum": [
"auto",
"start",
"center",
"end",
"stretch"
]
},
"flexGrow": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexShrink": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexBasis": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": 0,
"maximum": 100000
},
{
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
}
]
},
"flowOffset": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"y": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"order": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"margin": {
"type": "object",
"properties": {
"top": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"right": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"bottom": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"left": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"gridTrack": {
"type": "object",
"properties": {
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"minimum": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"basis",
"align"
],
"additionalProperties": false
},
"clipContent": {
"type": "boolean"
},
"container": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"row",
"column"
]
},
"alignItems": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"alignContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"space-between",
"space-around",
"space-evenly"
]
},
"justifyContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"space-between",
"space-around",
"space-evenly"
]
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"rowGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"columnGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"wrap": {
"type": "string",
"enum": [
"nowrap",
"wrap"
]
},
"gridColumns": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"gridAutoRepeat": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"auto-fill",
"auto-fit"
]
},
"minimum": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"minimum"
],
"additionalProperties": false
},
"materialized": {
"type": "boolean"
},
"padding": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"direction",
"alignItems",
"justifyContent",
"gap",
"padding"
],
"additionalProperties": false
}
},
"required": [
"rotation",
"horizontal",
"vertical",
"position"
],
"additionalProperties": false
},
"responsive": {
"not": {}
},
"appearance": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blendMode": {
"type": "string",
"enum": [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"plus-lighter",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity"
]
},
"fills": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"border": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
},
"alignment": {
"type": "string",
"enum": [
"inside",
"center",
"outside"
]
}
},
"required": [
"visible",
"width",
"style",
"paint",
"alignment"
],
"additionalProperties": false
},
"outline": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"visible",
"width",
"offset",
"style",
"paint"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"topLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"topRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"smoothing": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"topLeft",
"topRight",
"bottomRight",
"bottomLeft"
],
"additionalProperties": false
},
"shadows": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"outer",
"inner"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"offsetX": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"offsetY": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"spread": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"color",
"offsetX",
"offsetY",
"blur",
"spread"
],
"additionalProperties": false
}
},
"filters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
},
"backdropFilters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
}
},
"additionalProperties": false
},
"typography": {
"type": "object",
"properties": {
"family": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fallbackFamilies": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"size": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"weight": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"style": {
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
"lineHeight": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "normal"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
}
]
},
"letterSpacing": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right",
"justify"
]
},
"verticalAlign": {
"type": "string",
"enum": [
"top",
"middle",
"bottom"
]
},
"transform": {
"type": "string",
"enum": [
"none",
"uppercase",
"lowercase",
"capitalize"
]
},
"decoration": {
"type": "object",
"properties": {
"line": {
"type": "string",
"enum": [
"none",
"underline",
"line-through"
]
},
"style": {
"type": "string",
"enum": [
"solid",
"double",
"dotted",
"dashed",
"wavy"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"thickness": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"line",
"style"
],
"additionalProperties": false
},
"stroke": {
"type": "object",
"properties": {
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"width",
"paint"
],
"additionalProperties": false
},
"wrapping": {
"type": "string",
"enum": [
"wrap",
"nowrap",
"pre",
"pre-line",
"pre-wrap",
"break-spaces"
]
},
"truncation": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"none",
"ellipsis"
]
},
"maxLines": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 100000
},
{
"type": "null"
}
]
}
},
"required": [
"mode",
"maxLines"
],
"additionalProperties": false
},
"insets": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"family",
"fallbackFamilies",
"size",
"weight",
"style",
"lineHeight",
"letterSpacing",
"align",
"verticalAlign",
"transform",
"decoration",
"wrapping"
],
"additionalProperties": false
},
"additionalStyles": {
"type": "object",
"properties": {
"declarations": {
"maxItems": 128,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"property": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^(?:--[\\w-]+|-(?:webkit|moz|ms|o)-[a-z][a-z\\d-]*|[a-z][a-z\\d-]*)$"
},
"value": {
"type": "string",
"maxLength": 10000
},
"enabled": {
"type": "boolean"
}
},
"required": [
"id",
"property",
"value",
"enabled"
],
"additionalProperties": false
}
}
},
"required": [
"declarations"
],
"additionalProperties": false
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"minimum": 0
},
"height": {
"type": "number",
"minimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"label",
"component",
"styles"
],
"additionalProperties": {}
},
"parentage": {
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sortKey": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"parentId",
"sortKey"
],
"additionalProperties": false
}
},
"required": [
"op",
"node",
"parentage"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"afterId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"op": {
"type": "string",
"const": "insertText"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"default": "Text",
"type": "string",
"maxLength": 500
},
"text": {
"type": "string",
"maxLength": 100000
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"styles": {
"default": {},
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"enum": [
"var(--note-ink)",
"var(--note-slate)",
"var(--note-red)",
"var(--note-orange)",
"var(--note-amber)",
"var(--note-green)",
"var(--note-teal)",
"var(--note-blue)",
"var(--note-violet)",
"var(--note-magenta)"
]
},
{
"type": "string",
"pattern": "^#[\\da-f]{6}$"
}
]
},
"font-family": {
"type": "string",
"enum": [
"var(--sans)",
"var(--mono)"
]
},
"font-size": {
"anyOf": [
{
"type": "number",
"const": 16
},
{
"type": "number",
"const": 24
},
{
"type": "number",
"const": 40
},
{
"type": "number",
"const": 64
},
{
"type": "number",
"const": 96
}
]
},
"font-weight": {
"type": "string",
"enum": [
"400",
"700"
]
},
"font-style": {
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
"letter-spacing": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"line-height": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000
},
{
"type": "string",
"pattern": "^(?:\\d+(?:\\.\\d+)?(?:px|em|rem|%)?|normal)$"
}
]
},
"text-align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"white-space": {
"type": "string",
"enum": [
"normal",
"nowrap",
"pre",
"pre-wrap",
"pre-line",
"break-spaces"
]
}
},
"additionalProperties": false
}
},
"required": [
"parentId",
"op",
"nodeId",
"label",
"text",
"box",
"styles"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"afterId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"op": {
"type": "string",
"const": "insertPrototype"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"default": "Prototype",
"type": "string",
"maxLength": 500
},
"prototypeId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"deploymentId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"canvasPageId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"parentId",
"op",
"nodeId",
"label",
"prototypeId",
"deploymentId",
"box"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setPrototypeDeployment"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"prototypeId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"deploymentId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"op",
"nodeId",
"prototypeId",
"deploymentId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setText"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"text": {
"type": "string",
"maxLength": 100000
}
},
"required": [
"op",
"nodeId",
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setBox"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"minimum": 0
},
"height": {
"type": "number",
"minimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"op",
"nodeId",
"box"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setLabel"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"labelOrigin": {
"type": "string",
"enum": [
"source",
"generated",
"user"
]
}
},
"required": [
"op",
"nodeId",
"label"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setVisibility"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
}
},
"required": [
"op",
"nodeId",
"visible"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setLocked"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"locked": {
"type": "boolean"
}
},
"required": [
"op",
"nodeId",
"locked"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setConstraints"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"constraints": {
"type": "object",
"properties": {
"x": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
},
"y": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
},
"required": [
"op",
"nodeId",
"constraints"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setStyles"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"styles": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"enum": [
"var(--note-ink)",
"var(--note-slate)",
"var(--note-red)",
"var(--note-orange)",
"var(--note-amber)",
"var(--note-green)",
"var(--note-teal)",
"var(--note-blue)",
"var(--note-violet)",
"var(--note-magenta)"
]
},
{
"type": "string",
"pattern": "^#[\\da-f]{6}$"
}
]
},
{
"type": "null"
}
]
},
"font-family": {
"anyOf": [
{
"type": "string",
"enum": [
"var(--sans)",
"var(--mono)"
]
},
{
"type": "null"
}
]
},
"font-size": {
"anyOf": [
{
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100000
},
{
"type": "string",
"pattern": "^(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$"
}
]
},
{
"type": "null"
}
]
},
"font-weight": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:[1-9]\\d{0,2}|1000)$"
},
{
"type": "null"
}
]
},
"font-style": {
"anyOf": [
{
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
{
"type": "null"
}
]
},
"font-stretch": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"enum": [
"normal",
"ultra-condensed",
"extra-condensed",
"condensed",
"semi-condensed",
"semi-expanded",
"expanded",
"extra-expanded",
"ultra-expanded"
]
},
{
"type": "string",
"pattern": "^\\d+(?:\\.\\d+)?%$"
}
]
},
{
"type": "null"
}
]
},
"letter-spacing": {
"anyOf": [
{
"anyOf": [
{
"type": "number",
"minimum": -100000,
"maximum": 100000
},
{
"type": "string",
"pattern": "^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$"
},
{
"type": "string",
"const": "normal"
}
]
},
{
"type": "null"
}
]
},
"line-height": {
"anyOf": [
{
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000
},
{
"type": "string",
"pattern": "^(?:\\d+(?:\\.\\d+)?(?:px|em|rem|%)?|normal)$"
}
]
},
{
"type": "null"
}
]
},
"text-align": {
"anyOf": [
{
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
{
"type": "null"
}
]
},
"text-indent": {
"anyOf": [
{
"anyOf": [
{
"type": "number",
"minimum": -100000,
"maximum": 100000
},
{
"type": "string",
"pattern": "^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$"
}
]
},
{
"type": "null"
}
]
},
"white-space": {
"anyOf": [
{
"type": "string",
"enum": [
"normal",
"nowrap",
"pre",
"pre-wrap",
"pre-line",
"break-spaces"
]
},
{
"type": "null"
}
]
},
"word-spacing": {
"anyOf": [
{
"anyOf": [
{
"type": "number",
"minimum": -100000,
"maximum": 100000
},
{
"type": "string",
"pattern": "^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$"
},
{
"type": "string",
"const": "normal"
}
]
},
{
"type": "null"
}
]
},
"background": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"background-color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"border-bottom-left-radius": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-bottom-right-radius": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-bottom-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"border-left-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-radius": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
{
"type": "null"
}
]
},
"border-right-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-style": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"solid",
"dashed",
"dotted"
]
},
{
"type": "null"
}
]
},
"border-top-left-radius": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-top-right-radius": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-top-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"border-width": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
{
"type": "null"
}
]
},
"box-shadow": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"column-gap": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"gap": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"margin-bottom": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"margin-left": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"margin-right": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"margin-top": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"opacity": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
{
"type": "null"
}
]
},
"outline-offset": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"outline-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"overflow": {
"anyOf": [
{
"type": "string",
"enum": [
"auto",
"clip",
"hidden",
"scroll",
"visible"
]
},
{
"type": "null"
}
]
},
"overflow-x": {
"anyOf": [
{
"type": "string",
"enum": [
"auto",
"clip",
"hidden",
"scroll",
"visible"
]
},
{
"type": "null"
}
]
},
"overflow-y": {
"anyOf": [
{
"type": "string",
"enum": [
"auto",
"clip",
"hidden",
"scroll",
"visible"
]
},
{
"type": "null"
}
]
},
"padding-bottom": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"padding-left": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"padding-right": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"padding-top": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"row-gap": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"stroke-width": {
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
}
},
"additionalProperties": false
}
},
"required": [
"op",
"nodeId",
"styles"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setAppearance"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"appearance": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blendMode": {
"type": "string",
"enum": [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"plus-lighter",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity"
]
},
"fills": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"border": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
},
"alignment": {
"type": "string",
"enum": [
"inside",
"center",
"outside"
]
}
},
"required": [
"visible",
"width",
"style",
"paint",
"alignment"
],
"additionalProperties": false
},
"outline": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"visible",
"width",
"offset",
"style",
"paint"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"topLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"topRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"smoothing": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"topLeft",
"topRight",
"bottomRight",
"bottomLeft"
],
"additionalProperties": false
},
"shadows": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"outer",
"inner"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"offsetX": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"offsetY": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"spread": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"color",
"offsetX",
"offsetY",
"blur",
"spread"
],
"additionalProperties": false
}
},
"filters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
},
"backdropFilters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
},
"clear": {
"minItems": 1,
"maxItems": 9,
"type": "array",
"items": {
"type": "string",
"enum": [
"opacity",
"blendMode",
"fills",
"border",
"outline",
"radius",
"shadows",
"filters",
"backdropFilters"
]
}
}
},
"additionalProperties": false
}
},
"required": [
"op",
"nodeId",
"appearance"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setLayout"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"layout": {
"anyOf": [
{
"type": "object",
"properties": {
"rotation": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"flipHorizontal": {
"type": "boolean"
},
"flipVertical": {
"type": "boolean"
},
"aspectRatioLocked": {
"type": "boolean"
},
"aspectRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"horizontal": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"vertical": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"position": {
"type": "string",
"enum": [
"flow",
"absolute"
]
},
"alignSelf": {
"type": "string",
"enum": [
"auto",
"start",
"center",
"end",
"stretch"
]
},
"flexGrow": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexShrink": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexBasis": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": 0,
"maximum": 100000
},
{
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
}
]
},
"flowOffset": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"y": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"order": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"margin": {
"type": "object",
"properties": {
"top": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"right": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"bottom": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"left": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"gridTrack": {
"type": "object",
"properties": {
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"minimum": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"basis",
"align"
],
"additionalProperties": false
},
"clipContent": {
"type": "boolean"
},
"container": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"row",
"column"
]
},
"alignItems": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"alignContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"space-between",
"space-around",
"space-evenly"
]
},
"justifyContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"space-between",
"space-around",
"space-evenly"
]
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"rowGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"columnGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"wrap": {
"type": "string",
"enum": [
"nowrap",
"wrap"
]
},
"gridColumns": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"gridAutoRepeat": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"auto-fill",
"auto-fit"
]
},
"minimum": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"minimum"
],
"additionalProperties": false
},
"materialized": {
"type": "boolean"
},
"padding": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"direction",
"alignItems",
"justifyContent",
"gap",
"padding"
],
"additionalProperties": false
}
},
"required": [
"rotation",
"horizontal",
"vertical",
"position"
],
"additionalProperties": false
},
{
"type": "string",
"const": "default"
}
]
}
},
"required": [
"op",
"nodeId",
"layout"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setTypography"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"typography": {
"anyOf": [
{
"type": "object",
"properties": {
"family": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fallbackFamilies": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"size": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"weight": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"style": {
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
"lineHeight": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "normal"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
}
]
},
"letterSpacing": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right",
"justify"
]
},
"verticalAlign": {
"type": "string",
"enum": [
"top",
"middle",
"bottom"
]
},
"transform": {
"type": "string",
"enum": [
"none",
"uppercase",
"lowercase",
"capitalize"
]
},
"decoration": {
"type": "object",
"properties": {
"line": {
"type": "string",
"enum": [
"none",
"underline",
"line-through"
]
},
"style": {
"type": "string",
"enum": [
"solid",
"double",
"dotted",
"dashed",
"wavy"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"thickness": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"line",
"style"
],
"additionalProperties": false
},
"stroke": {
"type": "object",
"properties": {
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"width",
"paint"
],
"additionalProperties": false
},
"wrapping": {
"type": "string",
"enum": [
"wrap",
"nowrap",
"pre",
"pre-line",
"pre-wrap",
"break-spaces"
]
},
"truncation": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"none",
"ellipsis"
]
},
"maxLines": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 100000
},
{
"type": "null"
}
]
}
},
"required": [
"mode",
"maxLines"
],
"additionalProperties": false
},
"insets": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"family",
"fallbackFamilies",
"size",
"weight",
"style",
"lineHeight",
"letterSpacing",
"align",
"verticalAlign",
"transform",
"decoration",
"wrapping"
],
"additionalProperties": false
},
{
"type": "string",
"const": "default"
}
]
}
},
"required": [
"op",
"nodeId",
"typography"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setAdditionalStyles"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"additionalStyles": {
"anyOf": [
{
"type": "object",
"properties": {
"declarations": {
"maxItems": 128,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"property": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^(?:--[\\w-]+|-(?:webkit|moz|ms|o)-[a-z][a-z\\d-]*|[a-z][a-z\\d-]*)$"
},
"value": {
"type": "string",
"maxLength": 10000
},
"enabled": {
"type": "boolean"
}
},
"required": [
"id",
"property",
"value",
"enabled"
],
"additionalProperties": false
}
}
},
"required": [
"declarations"
],
"additionalProperties": false
},
{
"type": "string",
"const": "default"
}
]
}
},
"required": [
"op",
"nodeId",
"additionalStyles"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setProps"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"op",
"nodeId",
"props"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "setParentage"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"parentage": {
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sortKey": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"parentId",
"sortKey"
],
"additionalProperties": false
}
},
"required": [
"op",
"nodeId",
"parentage"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"afterId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"op": {
"type": "string",
"const": "move"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"parentId",
"op",
"nodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "remove"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"op",
"nodeId"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"canvasId",
"baseVersion",
"operations"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"baseVersion": 1,
"operations": [
{
"op": "setText",
"nodeId": "text_title",
"text": "Ready"
}
]
}
```
## Result
Returns a typed canvas.apply result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `36763b9905dccf9727a7c2267a2bf9176c26cb86066022c4f7d2d6abd8b30e5d`.
---
# canvas.create
mutation write
Use when the requested change exactly matches canvas.create; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"organisationId": {
"default": null,
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
]
},
"sourceUrl": {
"default": null,
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
}
},
"required": [
"title",
"organisationId",
"sourceUrl"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"title": "x",
"organisationId": null,
"sourceUrl": null
}
```
## Result
Returns a typed canvas.create result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `63a7238867ecd394639c7a69b4b83f22323ce55ceba4b62fffbf5e3e3e163c44`.
---
# canvas.createEditableFrame
mutation write
Use when the requested change exactly matches canvas.createEditableFrame; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"mutationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"baseVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"screenNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"draft": {
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"rootTemporaryId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"nodes": {
"minItems": 1,
"maxItems": 30000,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 500
},
"component": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"labelOrigin": {
"type": "string",
"enum": [
"source",
"generated",
"user"
]
},
"visible": {
"type": "boolean"
},
"locked": {
"type": "boolean"
},
"constraints": {
"type": "object",
"properties": {
"x": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
},
"y": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"scale"
]
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"styles": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"layout": {
"type": "object",
"properties": {
"rotation": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"flipHorizontal": {
"type": "boolean"
},
"flipVertical": {
"type": "boolean"
},
"aspectRatioLocked": {
"type": "boolean"
},
"aspectRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"horizontal": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"vertical": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "hug"
},
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"minParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"maxParent": {
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"const": "fill"
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"mode"
],
"additionalProperties": false
}
]
},
"position": {
"type": "string",
"enum": [
"flow",
"absolute"
]
},
"alignSelf": {
"type": "string",
"enum": [
"auto",
"start",
"center",
"end",
"stretch"
]
},
"flexGrow": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexShrink": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"flexBasis": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": 0,
"maximum": 100000
},
{
"type": "object",
"properties": {
"ratio": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"ratio"
],
"additionalProperties": false
}
]
},
"flowOffset": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"y": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"order": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"margin": {
"type": "object",
"properties": {
"top": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"right": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"bottom": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
},
"left": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "number",
"minimum": -100000,
"maximum": 100000
}
]
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"gridTrack": {
"type": "object",
"properties": {
"basis": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"minimum": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"basis",
"align"
],
"additionalProperties": false
},
"clipContent": {
"type": "boolean"
},
"container": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"row",
"column"
]
},
"alignItems": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch"
]
},
"alignContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"stretch",
"space-between",
"space-around",
"space-evenly"
]
},
"justifyContent": {
"type": "string",
"enum": [
"start",
"center",
"end",
"space-between",
"space-around",
"space-evenly"
]
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"rowGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"columnGap": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"wrap": {
"type": "string",
"enum": [
"nowrap",
"wrap"
]
},
"gridColumns": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"gridAutoRepeat": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"auto-fill",
"auto-fit"
]
},
"minimum": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"minimum"
],
"additionalProperties": false
},
"materialized": {
"type": "boolean"
},
"padding": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"direction",
"alignItems",
"justifyContent",
"gap",
"padding"
],
"additionalProperties": false
}
},
"required": [
"rotation",
"horizontal",
"vertical",
"position"
],
"additionalProperties": false
},
"responsive": {
"not": {}
},
"appearance": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blendMode": {
"type": "string",
"enum": [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"plus-lighter",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity"
]
},
"fills": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"border": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
},
"alignment": {
"type": "string",
"enum": [
"inside",
"center",
"outside"
]
}
},
"required": [
"visible",
"width",
"style",
"paint",
"alignment"
],
"additionalProperties": false
},
"outline": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"offset": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"style": {
"type": "string",
"enum": [
"solid",
"dashed",
"dotted"
]
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"visible",
"width",
"offset",
"style",
"paint"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"topLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"topRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomRight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"bottomLeft": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"smoothing": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"topLeft",
"topRight",
"bottomRight",
"bottomLeft"
],
"additionalProperties": false
},
"shadows": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"outer",
"inner"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"offsetX": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"offsetY": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"spread": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"color",
"offsetX",
"offsetY",
"blur",
"spread"
],
"additionalProperties": false
}
},
"filters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
},
"backdropFilters": {
"maxItems": 32,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "blur"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "brightness"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "contrast"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "grayscale"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "hue-rotate"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "invert"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "saturate"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"kind": {
"type": "string",
"const": "sepia"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"visible",
"kind",
"value"
],
"additionalProperties": false
}
]
}
}
},
"additionalProperties": false
},
"typography": {
"type": "object",
"properties": {
"family": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fallbackFamilies": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"size": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"weight": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"style": {
"type": "string",
"enum": [
"normal",
"italic",
"oblique"
]
},
"lineHeight": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "normal"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"mode",
"value"
],
"additionalProperties": false
}
]
},
"letterSpacing": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right",
"justify"
]
},
"verticalAlign": {
"type": "string",
"enum": [
"top",
"middle",
"bottom"
]
},
"transform": {
"type": "string",
"enum": [
"none",
"uppercase",
"lowercase",
"capitalize"
]
},
"decoration": {
"type": "object",
"properties": {
"line": {
"type": "string",
"enum": [
"none",
"underline",
"line-through"
]
},
"style": {
"type": "string",
"enum": [
"solid",
"double",
"dotted",
"dashed",
"wavy"
]
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
},
"thickness": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"line",
"style"
],
"additionalProperties": false
},
"stroke": {
"type": "object",
"properties": {
"width": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"paint": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "linear-gradient"
},
"angle": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"angle",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "radial-gradient"
},
"center": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"radius": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"stops": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"color": {
"type": "object",
"properties": {
"space": {
"type": "string",
"enum": [
"srgb",
"display-p3"
]
},
"red": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"green": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blue": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"space",
"red",
"green",
"blue",
"alpha"
],
"additionalProperties": false
}
},
"required": [
"id",
"position",
"color"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"center",
"radius",
"stops"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"visible": {
"type": "boolean"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"kind": {
"type": "string",
"const": "image"
},
"assetId": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"fit": {
"type": "string",
"enum": [
"fill",
"fit",
"crop",
"tile"
]
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"id",
"visible",
"opacity",
"kind",
"assetId",
"fit"
],
"additionalProperties": false
}
]
}
},
"required": [
"width",
"paint"
],
"additionalProperties": false
},
"wrapping": {
"type": "string",
"enum": [
"wrap",
"nowrap",
"pre",
"pre-line",
"pre-wrap",
"break-spaces"
]
},
"truncation": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"none",
"ellipsis"
]
},
"maxLines": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 100000
},
{
"type": "null"
}
]
}
},
"required": [
"mode",
"maxLines"
],
"additionalProperties": false
},
"insets": {
"type": "object",
"properties": {
"top": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"right": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"bottom": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"left": {
"type": "number",
"minimum": -100000,
"maximum": 100000
}
},
"required": [
"top",
"right",
"bottom",
"left"
],
"additionalProperties": false
}
},
"required": [
"family",
"fallbackFamilies",
"size",
"weight",
"style",
"lineHeight",
"letterSpacing",
"align",
"verticalAlign",
"transform",
"decoration",
"wrapping"
],
"additionalProperties": false
},
"additionalStyles": {
"type": "object",
"properties": {
"declarations": {
"maxItems": 128,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"property": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^(?:--[\\w-]+|-(?:webkit|moz|ms|o)-[a-z][a-z\\d-]*|[a-z][a-z\\d-]*)$"
},
"value": {
"type": "string",
"maxLength": 10000
},
"enabled": {
"type": "boolean"
}
},
"required": [
"id",
"property",
"value",
"enabled"
],
"additionalProperties": false
}
}
},
"required": [
"declarations"
],
"additionalProperties": false
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"minimum": 0
},
"height": {
"type": "number",
"minimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"temporaryId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"label",
"component",
"styles",
"temporaryId"
],
"additionalProperties": {}
}
},
"relationships": {
"maxItems": 29999,
"type": "array",
"items": {
"type": "object",
"properties": {
"temporaryId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"parentTemporaryId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sortKey": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"temporaryId",
"parentTemporaryId",
"sortKey"
],
"additionalProperties": false
}
},
"report": {
"type": "object",
"properties": {
"nodeCount": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 30000
},
"sourceNodeCount": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50000
},
"collapsedNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"collapsedWrapperNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"collapsedNeutralWrapperNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"collapsedTransferredWrapperNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"layoutContainerCount": {
"type": "integer",
"minimum": 0,
"maximum": 30000
},
"removedLeafNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"retainedSemanticOwnerNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"truncatedNodeCount": {
"type": "integer",
"minimum": 0,
"maximum": 50000
},
"issues": {
"maxItems": 50000,
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"asset-unavailable",
"content-omitted",
"cross-origin-frame",
"nodes-truncated",
"responsive-behavior-not-editable",
"style-degraded",
"unsupported-surface"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"temporaryId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"nodeCount",
"issues"
],
"additionalProperties": false
}
},
"required": [
"version",
"rootTemporaryId",
"nodes",
"relationships",
"report"
],
"additionalProperties": false
}
},
"required": [
"canvasId",
"mutationId",
"baseVersion",
"screenNodeId",
"draft"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"mutationId": "00000000-0000-4000-8000-000000000010",
"baseVersion": 1,
"screenNodeId": "x",
"draft": {
"version": 1,
"rootTemporaryId": "x",
"nodes": [
{
"label": "x",
"component": "x",
"styles": {},
"temporaryId": "x"
}
],
"relationships": [],
"report": {
"nodeCount": 1,
"issues": []
}
}
}
```
## Result
Returns a typed canvas.createEditableFrame result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `538519fcffa0d26b2b8436152a57827a3184402b28d682dfb6a1f16dc6f329fe`.
---
# canvas.delete
mutation delete
Use when the requested change exactly matches canvas.delete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.delete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `3c0e62fe9c6648be3490ae8fceafe38971509c90b20c50a1f9cf1a949c0de8c8`.
---
# canvas.deletePermanently
mutation delete
Use when the requested change exactly matches canvas.deletePermanently; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"confirmation": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"canvasId",
"confirmation"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"confirmation": "x"
}
```
## Result
Returns a typed canvas.deletePermanently result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `485d6771303be821f5916040b6623aa2ef231935e9721558b304dbacb6c3a848`.
---
# canvas.document.get
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.document.get result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `50e972698d86a3fa6e878ab061ad5cb1d267977486967456edcc0210dd1ed1b4`.
---
# canvas.document.save
mutation write
Use when the requested change exactly matches canvas.document.save; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"baseVersion": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"document": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"screenIds": {
"maxItems": 2000,
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
},
"required": [
"canvasId",
"baseVersion",
"document",
"screenIds"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"baseVersion": 1,
"document": {},
"screenIds": []
}
```
## Result
Returns a typed canvas.document.save result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `085c52017941a3435c78d78a541f0e81114eef79788c53ffdb3d0ae4f3e8d0b3`.
---
# canvas.duplicate
mutation write
Use when the requested change exactly matches canvas.duplicate; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"organisationId": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "string",
"const": "personal"
}
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"canvasId",
"organisationId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"organisationId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.duplicate result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `50956c278aacf23a37376662d40252a51b29147f4a09b26a9b4627bea4c5c273`.
---
# canvas.get
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.get result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `e38af6fdeaf329c1c0ef02530585c0ea2a7aa33279048ed58bf3b6aff7bc147a`.
---
# canvas.inspect
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.inspect result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `b168803760138f0ef3d7a712b6f3e9989cff57336db652e29df57338552df036`.
---
# canvas.invites.accept
mutation write
Use when the requested change exactly matches canvas.invites.accept; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"required": [
"token"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"token": "x"
}
```
## Result
Returns a typed canvas.invites.accept result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `b7c288409eedea08a46a21c21e1dfb0c7cc4df9d6a3be2d7571ef8dc19b2d09d`.
---
# canvas.invites.create
mutation write
Use when the requested change exactly matches canvas.invites.create; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"accessLevel": {
"type": "string",
"enum": [
"can-comment",
"can-view"
]
}
},
"required": [
"canvasId",
"email",
"accessLevel"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"email": "agent@example.test",
"accessLevel": "can-comment"
}
```
## Result
Returns a typed canvas.invites.create result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `d3d2d8791b1eb67644c2db3b0feea850784878e36d6bcb2860413ef43fe0ea3b`.
---
# canvas.invites.list
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.invites.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another canvas operation.
Compatibility: `88cb3aa53496a4484c3ec146aef2641e1f1b9b73018c937eb129c664d1ed2435`.
---
# canvas.invites.preview
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"required": [
"token"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"token": "x"
}
```
## Result
Returns a typed canvas.invites.preview result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `151596b0e44a38afe95abaa97a1275a90b66675647c8a067b99b0a15b315b49b`.
---
# canvas.invites.resend
mutation write
Use when the requested change exactly matches canvas.invites.resend; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"inviteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"inviteId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"inviteId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.invites.resend result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `ca90be56b4be5d80aaa572a9be51b9f5d54c699db708ab96e1812cbd017a1e43`.
---
# canvas.invites.revoke
mutation delete
Use when the requested change exactly matches canvas.invites.revoke; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"inviteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"inviteId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"inviteId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.invites.revoke result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `ea7a846ca189dffa01c1bd66d2f6e3079b43cd30a82948319a9335e91bd80415`.
---
# canvas.list
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"collection": {
"default": "own",
"anyOf": [
{
"type": "string",
"const": "own"
},
{
"type": "string",
"const": "everything"
},
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
]
},
"title": {
"description": "Title text to match before returning canvas ids.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"deleted": {
"default": false,
"type": "boolean"
},
"accessState": {
"type": "string",
"enum": [
"invite-only",
"link-view",
"link-comment"
]
},
"scope": {
"default": "all",
"type": "string",
"enum": [
"all",
"mine",
"shared"
]
},
"hasUnresolved": {
"default": false,
"type": "boolean"
}
},
"required": [
"collection",
"deleted",
"scope",
"hasUnresolved"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"collection": "own",
"deleted": false,
"scope": "all",
"hasUnresolved": false
}
```
## Result
Returns a typed canvas.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another canvas operation.
Compatibility: `28695da0838aef5001bdb220011ff0896f2b59e8390189768565316561561813`.
---
# canvas.markViewed
mutation write
Use when the requested change exactly matches canvas.markViewed; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.markViewed result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `abaa1f88a9d58ba9c98b20844974d23300ec19382a249e8751f301a7e4b39cc0`.
---
# canvas.move
mutation write
Use when the requested change exactly matches canvas.move; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"organisationId": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "string",
"const": "personal"
}
]
}
},
"required": [
"canvasId",
"organisationId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"organisationId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.move result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `45888c3cc24093e941d59c747093e4712b6e5d797d34f543bb8f18456c9a59d1`.
---
# canvas.node
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"canvasId",
"nodeId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"nodeId": "x"
}
```
## Result
Returns a typed canvas.node result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `c1808fd5393fadcffccbc688cf7dd20669ee05fef52474549b7b2e6955f6e9ee`.
---
# canvas.participants.list
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.participants.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another canvas operation.
Compatibility: `0d061d46f23babcecc5d3a56493ce82a7b1d650366e30834602d3bf1def14023`.
---
# canvas.participants.revoke
mutation delete
Use when the requested change exactly matches canvas.participants.revoke; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"personId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"personId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"personId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.participants.revoke result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `aba1aff4cc1e041f48fd5ce04c7fcb899662145be98d2e56fb64f26449d27f51`.
---
# canvas.participants.setAccess
mutation write
Use when the requested change exactly matches canvas.participants.setAccess; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"personId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"accessLevel": {
"type": "string",
"enum": [
"can-comment",
"can-view"
]
}
},
"required": [
"canvasId",
"personId",
"accessLevel"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"personId": "00000000-0000-4000-8000-000000000010",
"accessLevel": "can-comment"
}
```
## Result
Returns a typed canvas.participants.setAccess result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `abf12366ca181044ba9d16e5e1bcabeaa40af79f0bc14cda7eb8443d036d5678`.
---
# canvas.realtime.activity.begin
mutation write
Use when the requested change exactly matches canvas.realtime.activity.begin; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"phase": {
"type": "string",
"enum": [
"reading",
"writing",
"creating",
"deleting",
"rendering"
]
},
"nodeIds": {
"default": [],
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"bounds": {
"default": null,
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"canvasId",
"phase",
"nodeIds",
"bounds"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"phase": "reading",
"nodeIds": [],
"bounds": null
}
```
## Result
Returns a typed canvas.realtime.activity.begin result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `4a31f78257c63753ee160d9d17cc90e89df36dd3eb2a82259884f772360700a3`.
---
# canvas.realtime.activity.end
mutation write
Use when the requested change exactly matches canvas.realtime.activity.end; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"activityId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"activityId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"activityId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.realtime.activity.end result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `268812bd988acf3189c0962c5b1fee81e280159aa81e73c6c401d7e7e4233e21`.
---
# canvas.realtime.activity.renew
mutation write
Use when the requested change exactly matches canvas.realtime.activity.renew; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"phase": {
"type": "string",
"enum": [
"reading",
"writing",
"creating",
"deleting",
"rendering"
]
},
"nodeIds": {
"default": [],
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"bounds": {
"default": null,
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"activityId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"phase",
"nodeIds",
"bounds",
"activityId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"phase": "reading",
"nodeIds": [],
"bounds": null,
"activityId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.realtime.activity.renew result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `e8887dff9dd46c9ea50e045ba2dbc8e91572bd8af2a6f508daa5c434f4c81469`.
---
# canvas.rename
mutation write
Use when the requested change exactly matches canvas.rename; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"canvasId",
"title"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"title": "x"
}
```
## Result
Returns a typed canvas.rename result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `ccad07cb0a348a16043e341d483d32659eddcebb737343c5e1e91f6e6836c9d7`.
---
# canvas.render
mutation read
Use when the requested change exactly matches canvas.render; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedVersion": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Exact document version to render, or null to accept the current version."
},
"target": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "content"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "node"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"nodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "bounds"
},
"bounds": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"kind",
"bounds"
],
"additionalProperties": false
}
],
"description": "Area to render: all authored content, one stable node id, or explicit world-space bounds."
},
"sourceState": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "recording"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"atMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"kind",
"recordingId",
"atMs"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Recording moment to display while rendering its recording node, or null."
},
"scale": {
"type": "number",
"minimum": 0.1,
"maximum": 4,
"description": "Output pixels per canvas unit, from 0.1 through 4."
},
"outputPath": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
],
"description": "Local PNG path, or null for a protected temporary artifact."
},
"overwrite": {
"type": "boolean",
"description": "Whether an existing outputPath may be replaced."
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Local render polling deadline in milliseconds."
}
},
"required": [
"canvasId",
"expectedVersion",
"target",
"sourceState",
"scale",
"outputPath",
"overwrite",
"timeoutMs"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"expectedVersion": 1,
"target": {
"kind": "content"
},
"sourceState": null,
"scale": 1,
"outputPath": null,
"overwrite": false,
"timeoutMs": 120000
}
```
## Result
Returns a typed canvas.render result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `5180126e6a3a2eccdfc390963fc7634a7c02ecbcc76c4fb1a2ad6a1d62a20d14`.
---
# canvas.render.cancelImport
mutation write
Use when the requested change exactly matches canvas.render.cancelImport; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"jobId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"jobId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.render.cancelImport result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `666309dc95bfe283a63eedf2047d5337e6feb09635995638e1ea5d857b3f55de`.
---
# canvas.render.getImport
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"jobId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"jobId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.render.getImport result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `05ce7c5a157689fadd535d0228f1bc202fe6d59e0c430080e3bf299b50fc7573`.
---
# canvas.render.importSource
mutation write
Use when the requested change exactly matches canvas.render.importSource; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"type": "object",
"properties": {
"source": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "screen"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"nodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "html"
},
"html": {
"type": "string",
"minLength": 1,
"maxLength": 262144
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"idPrefix": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[\\w-]+$"
}
},
"required": [
"kind",
"html",
"label"
],
"additionalProperties": false
}
]
},
"destination": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "adjacent"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "insert-children"
},
"targetNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"targetNodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "replace"
},
"targetNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"targetNodeId"
],
"additionalProperties": false
}
]
}
},
"required": [
"source",
"destination"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
]
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"source": {
"kind": "html",
"html": "",
"label": "Example"
},
"destination": {
"kind": "insert-children",
"targetNodeId": "root"
}
}
```
## Result
Returns a typed canvas.render.importSource result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `f6a3d36e21316684d385f97831bfabbbc093c0821b78f2e9241731ddca694c4d`.
---
# canvas.restore
mutation write
Use when the requested change exactly matches canvas.restore; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.restore result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `46b205d13071016cb790b359e54a2ce0f1e9d204e2d22df1551347243c167a58`.
---
# canvas.selection
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.selection result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `8a8a07c87b36f083116aadbfc76cff11c328fd1f0c94e6b4622e45d89115ad41`.
---
# canvas.setAccess
mutation write
Use when the requested change exactly matches canvas.setAccess; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"accessState": {
"type": "string",
"enum": [
"invite-only",
"link-view",
"link-comment"
]
}
},
"required": [
"canvasId",
"accessState"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"accessState": "invite-only"
}
```
## Result
Returns a typed canvas.setAccess result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `593b353fff87a46e1fcc69c0bde794b806856a41a213f69baff3503a247f9a2f`.
---
# canvas.setReviewState
mutation write
Use when the requested change exactly matches canvas.setReviewState; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"reviewState": {
"type": "string",
"enum": [
"not-started",
"in-progress",
"done"
]
}
},
"required": [
"canvasId",
"reviewState"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"reviewState": "not-started"
}
```
## Result
Returns a typed canvas.setReviewState result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `d53f24a0b0ad49635c04393c88712bca850f614fe17c24a43e0138aa2cbe29b8`.
---
# canvas.tree
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.tree result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `2a140eca4a81f3dab80c68f327f91d05249a2f0680243157089cfd7048fa031b`.
---
# canvas.version.get
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"versionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"versionId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"versionId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.version.get result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next canvas operation.
Compatibility: `98be6dfce47712c67cb371932d8db8f9c9bd7e69c2088d0fcbf25de53aaed51a`.
---
# canvas.version.list
query read
Use when current canvas state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"includeAutomatic": {
"default": false,
"type": "boolean"
},
"actor": {
"default": "all",
"type": "string",
"enum": [
"all",
"mine"
]
}
},
"required": [
"canvasId",
"limit",
"includeAutomatic",
"actor"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"limit": 50,
"includeAutomatic": false,
"actor": "all"
}
```
## Result
Returns a typed canvas.version.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another canvas operation.
Compatibility: `7d473408c1c47dffaf04bd66532cde5916e8861f764282a5deb22f0fbc6b6e7b`.
---
# canvas.version.name
mutation write
Use when the requested change exactly matches canvas.version.name; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"target": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "current"
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"kind",
"expectedVersion"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "version"
},
"versionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"kind",
"versionId"
],
"additionalProperties": false
}
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"default": null,
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
"required": [
"canvasId",
"target",
"title",
"description"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"target": {
"kind": "current",
"expectedVersion": 1
},
"title": "x",
"description": null
}
```
## Result
Returns a typed canvas.version.name result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `ba79688d6dc7a24b9a824267dee6fb8baf9fae4f98f570d662680d26f4ff3386`.
---
# canvas.version.removeName
mutation delete
Use when the requested change exactly matches canvas.version.removeName; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"versionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"versionId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"versionId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed canvas.version.removeName result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `1f87411ef3f7f747c6365933ac307db196106c799a02689b9e22719f4eb8dbb5`.
---
# canvas.version.updateMetadata
mutation write
Use when the requested change exactly matches canvas.version.updateMetadata; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"versionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"default": null,
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
"required": [
"canvasId",
"versionId",
"title",
"description"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"versionId": "00000000-0000-4000-8000-000000000010",
"title": "x",
"description": null
}
```
## Result
Returns a typed canvas.version.updateMetadata result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `e484debd66cc4520d69262711dd838885ba69818ebf34e1992b7279894c5072e`.
---
# canvas.writeHtml
mutation write
Use when the requested change exactly matches canvas.writeHtml; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"targetNodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable container id for insert-children, or subtree root id for replace."
},
"mode": {
"type": "string",
"enum": [
"insert-children",
"replace"
],
"description": "Insert the compiled group inside the target, or replace the target subtree."
},
"html": {
"type": "string",
"minLength": 1,
"maxLength": 1000000,
"description": "Exactly one safe top-level HTML/CSS visual group to compile into editable nodes."
},
"idPrefix": {
"description": "Optional stable namespace for the node ids generated by this import.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"baseVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"renderOutputPath": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
],
"description": "Local review PNG path, or null for a protected temporary artifact."
},
"overwriteRender": {
"type": "boolean",
"description": "Whether an existing renderOutputPath may be replaced."
},
"renderScale": {
"type": "number",
"minimum": 0.1,
"maximum": 4,
"description": "Review PNG pixels per canvas unit, from 0.1 through 4."
},
"renderTimeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Local import and review-render polling deadline in milliseconds."
}
},
"required": [
"canvasId",
"targetNodeId",
"mode",
"html",
"baseVersion",
"renderOutputPath",
"overwriteRender",
"renderScale",
"renderTimeoutMs"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"targetNodeId": "root",
"mode": "insert-children",
"html": "",
"idPrefix": "example",
"baseVersion": 1,
"renderOutputPath": null,
"overwriteRender": false,
"renderScale": 1,
"renderTimeoutMs": 120000
}
```
## Result
Returns a typed canvas.writeHtml result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected canvas resource to confirm the result.
Compatibility: `db9ff722fffa97aea8b06521b08acad08a91e5acc9ae467a378e86b75c387a5d`.
---
# comment.attention
query read
Use when current comment state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed comment.attention result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next comment operation.
Compatibility: `4a86b801d9ee4f1aacc2141a12f82aed4bac7b646539077fbd52b2c5e828ea64`.
---
# comment.delete
mutation delete
Use when the requested change exactly matches comment.delete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"messageId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"threadId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed comment.delete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `77f47871acf6f0e0241e394f519708670cc61aaba7dbd2a6fc5928aae932105e`.
---
# comment.edit
mutation write
Use when the requested change exactly matches comment.edit; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"messageId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"mentionedPersonIds": {
"default": [],
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
},
"required": [
"canvasId",
"threadId",
"messageId",
"body",
"mentionedPersonIds"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010",
"messageId": "00000000-0000-4000-8000-000000000010",
"body": "x",
"mentionedPersonIds": []
}
```
## Result
Returns a typed comment.edit result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `5173b3c299f4cbf838ddc76bf9cf869d687fb90bd8cd126befb52fd7c6dfb1f7`.
---
# comment.list
query read
Use when current comment state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"filter": {
"default": "open",
"type": "string",
"enum": [
"open",
"resolved",
"all"
]
},
"authorPersonId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"agentActionable": {
"default": false,
"type": "boolean"
},
"query": {
"type": "string",
"maxLength": 200
}
},
"required": [
"canvasId",
"filter",
"agentActionable"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"filter": "open",
"agentActionable": false
}
```
## Result
Returns a typed comment.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another comment operation.
Compatibility: `7c2a303cf2c624d4ac719cc23b8b7e01c50fe22a4639e5579b8c6e66bab23c46`.
---
# comment.move
mutation write
Use when the requested change exactly matches comment.move; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"anchor": {
"oneOf": [
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "canvas"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
},
"required": [
"on",
"point"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "node"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"element": {
"type": "null"
}
},
"required": [
"on",
"nodeId",
"point",
"element"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "screen"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"screenId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"element": {
"anyOf": [
{
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"target": {
"oneOf": [
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "element"
},
"locator": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"locator",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "text"
},
"root": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
"quote": {
"type": "object",
"properties": {
"exact": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"prefix": {
"type": "string",
"maxLength": 120
},
"suffix": {
"type": "string",
"maxLength": 120
}
},
"required": [
"exact",
"prefix",
"suffix"
],
"additionalProperties": false
},
"range": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"path": {
"maxItems": 64,
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"offset"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"path": {
"maxItems": 64,
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"offset"
],
"additionalProperties": false
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"root",
"quote",
"range",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "elements"
},
"members": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
}
},
"truncated": {
"type": "boolean"
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"members",
"truncated",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "area"
},
"bounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"bounds",
"attachment"
],
"additionalProperties": false
}
]
}
},
"required": [
"on",
"nodeId",
"screenId",
"point",
"element"
],
"additionalProperties": false
}
]
}
},
"required": [
"canvasId",
"threadId",
"anchor"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010",
"anchor": {
"on": "canvas",
"point": {
"x": 0,
"y": 0
}
}
}
```
## Result
Returns a typed comment.move result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `3ac823667c2495a09beb083a7eec31d87cd7466855c5863f96aea4c67b299f1d`.
---
# comment.react
mutation write
Use when the requested change exactly matches comment.react; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"messageId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"emoji": {
"type": "string",
"minLength": 1,
"maxLength": 16
},
"reacted": {
"type": "boolean"
}
},
"required": [
"canvasId",
"threadId",
"messageId",
"emoji",
"reacted"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010",
"messageId": "00000000-0000-4000-8000-000000000010",
"emoji": "x",
"reacted": false
}
```
## Result
Returns a typed comment.react result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `bc04729e19fc5324e20bc23d8a9436e93edad1a9d048a75a16cb73c3ff88b9b1`.
---
# comment.reply
mutation write
Use when the requested change exactly matches comment.reply; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"clientMessageId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"mentionedPersonIds": {
"default": [],
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
},
"required": [
"canvasId",
"threadId",
"clientMessageId",
"body",
"mentionedPersonIds"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010",
"clientMessageId": "00000000-0000-4000-8000-000000000010",
"body": "x",
"mentionedPersonIds": []
}
```
## Result
Returns a typed comment.reply result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `0f6c9095a9a1c576f8ee8a4b544d9d13525b960554d043e3775353e1a73185fd`.
---
# comment.resolve
mutation write
Use when the requested change exactly matches comment.resolve; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"threadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resolved": {
"type": "boolean"
}
},
"required": [
"canvasId",
"threadId",
"resolved"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"threadId": "00000000-0000-4000-8000-000000000010",
"resolved": false
}
```
## Result
Returns a typed comment.resolve result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `e1f9c2b320acbf1066f775113f3c4e9df3a5b7b4eed5a089b6b33df66fc1b049`.
---
# comment.start
mutation write
Use when the requested change exactly matches comment.start; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"clientThreadId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"anchor": {
"oneOf": [
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "canvas"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
},
"required": [
"on",
"point"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "node"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"element": {
"type": "null"
}
},
"required": [
"on",
"nodeId",
"point",
"element"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"on": {
"type": "string",
"const": "screen"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"screenId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"element": {
"anyOf": [
{
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"target": {
"oneOf": [
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "element"
},
"locator": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"locator",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "text"
},
"root": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
},
"quote": {
"type": "object",
"properties": {
"exact": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"prefix": {
"type": "string",
"maxLength": 120
},
"suffix": {
"type": "string",
"maxLength": 120
}
},
"required": [
"exact",
"prefix",
"suffix"
],
"additionalProperties": false
},
"range": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"path": {
"maxItems": 64,
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"offset"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"path": {
"maxItems": 64,
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"offset"
],
"additionalProperties": false
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"root",
"quote",
"range",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "elements"
},
"members": {
"minItems": 2,
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"tagName": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"file": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"file",
"line"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"selector",
"tagName",
"label",
"source"
],
"additionalProperties": false
}
},
"truncated": {
"type": "boolean"
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"fallbackBounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"members",
"truncated",
"attachment",
"fallbackBounds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "area"
},
"bounds": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"attachment": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
},
"required": [
"version",
"kind",
"bounds",
"attachment"
],
"additionalProperties": false
}
]
}
},
"required": [
"on",
"nodeId",
"screenId",
"point",
"element"
],
"additionalProperties": false
}
]
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"mentionedPersonIds": {
"default": [],
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
},
"required": [
"canvasId",
"clientThreadId",
"anchor",
"body",
"mentionedPersonIds"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"clientThreadId": "00000000-0000-4000-8000-000000000010",
"anchor": {
"on": "canvas",
"point": {
"x": 0,
"y": 0
}
},
"body": "x",
"mentionedPersonIds": []
}
```
## Result
Returns a typed comment.start result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected comment resource to confirm the result.
Compatibility: `7097b0e2e710e1282d5cae604ce695e1b22d17d7934c189ada942aff9b586e50`.
---
# organisation.create
mutation write
Use when the requested change exactly matches organisation.create; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"name"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"name": "x"
}
```
## Result
Returns a typed organisation.create result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `7141856a14dc9a988c9c2ec7a5d5700aae4c8447bc8a005b61fc2a59d69d4413`.
---
# organisation.delete
mutation delete
Use when the requested change exactly matches organisation.delete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.delete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `d774b12e10900c0a399fae586a2f1d9ba1bc2f6f5cb955074e1c6726774e6b21`.
---
# organisation.invites.accept
mutation write
Use when the requested change exactly matches organisation.invites.accept; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"required": [
"token"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"token": "x"
}
```
## Result
Returns a typed organisation.invites.accept result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `91882d9637e521d1913226474155f38d2885344f54ad2aff3220db5aa3dc1e0c`.
---
# organisation.invites.create
mutation write
Use when the requested change exactly matches organisation.invites.create; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"role": {
"default": "member",
"type": "string",
"enum": [
"admin",
"member"
]
}
},
"required": [
"organisationId",
"email",
"role"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"email": "agent@example.test",
"role": "member"
}
```
## Result
Returns a typed organisation.invites.create result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `71ec902c89d6cb775497802498e5be5dcd6caa421b7a8c846689168a4dee0442`.
---
# organisation.invites.list
query read
Use when current organisation state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.invites.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another organisation operation.
Compatibility: `adde12288bf25b1a0a3c54d8d327b1b228fa85cbe57ba054fcd337cad068e3ce`.
---
# organisation.invites.preview
query read
Use when current organisation state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"required": [
"token"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"token": "x"
}
```
## Result
Returns a typed organisation.invites.preview result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next organisation operation.
Compatibility: `d2f85c002dcc73089c967d26b9d211e3555dfbce892ad7721c5c5a85c30078c0`.
---
# organisation.invites.resend
mutation write
Use when the requested change exactly matches organisation.invites.resend; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"inviteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId",
"inviteId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"inviteId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.invites.resend result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `eb2e0764a78154ddb7e7b00438ccf64ae0e3c4ce176ce55138d818cf209db364`.
---
# organisation.invites.revoke
mutation delete
Use when the requested change exactly matches organisation.invites.revoke; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"inviteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId",
"inviteId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"inviteId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.invites.revoke result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `575d39252dff2e6306a760f56edea4dc41b54167ca822cda733b5fdb1c788082`.
---
# organisation.list
query read
Use when current organisation state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
```
### Example
Show example input
```json
{}
```
## Result
Returns a typed organisation.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another organisation operation.
Compatibility: `334bae721cec66633398e81b50b66080823c6df265a443889178ce313f8540eb`.
---
# organisation.people.add
mutation write
Use when the requested change exactly matches organisation.people.add; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"role": {
"default": "member",
"type": "string",
"enum": [
"admin",
"member"
]
}
},
"required": [
"organisationId",
"email",
"role"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"email": "agent@example.test",
"role": "member"
}
```
## Result
Returns a typed organisation.people.add result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `6cbadfa8df6adcda399770c0a772e889aaf051e42c3b6b8b2737082e4835a141`.
---
# organisation.people.list
query read
Use when current organisation state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.people.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another organisation operation.
Compatibility: `88023b43f065ee43ef0cbb00f89a86c3cfb18f8acf3884e25b614f80f7f5a924`.
---
# organisation.people.remove
mutation delete
Use when the requested change exactly matches organisation.people.remove; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"personId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId",
"personId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"personId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.people.remove result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `445e89565d37fd9e8472edd5356a629287ea6c7df6cc027ce541c56d41222817`.
---
# organisation.people.setRole
mutation write
Use when the requested change exactly matches organisation.people.setRole; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"personId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"role": {
"type": "string",
"enum": [
"admin",
"member"
]
}
},
"required": [
"organisationId",
"personId",
"role"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"personId": "00000000-0000-4000-8000-000000000010",
"role": "admin"
}
```
## Result
Returns a typed organisation.people.setRole result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `16575e62314092587cb4a3ff5b0ce3223ec2db543b854be18dc39ccacac55ed9`.
---
# organisation.people.transferOwnership
mutation write
Use when the requested change exactly matches organisation.people.transferOwnership; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"personId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"organisationId",
"personId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"personId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed organisation.people.transferOwnership result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `fa2ca1a6eec8ae282aba64a463d5424d3c7bc1ed19402f952e38be905f66de00`.
---
# organisation.update
mutation write
Use when the requested change exactly matches organisation.update; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"organisationId",
"name"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"organisationId": "00000000-0000-4000-8000-000000000010",
"name": "x"
}
```
## Result
Returns a typed organisation.update result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected organisation resource to confirm the result.
Compatibility: `0288722a58464c675d0f0c65cf49bd4fde093fa886bff1bd79fa04d35ea9c9dd`.
---
# person.me
query read
Use when current person state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
```
### Example
Show example input
```json
{}
```
## Result
Returns a typed person.me result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next person operation.
Compatibility: `3eef37cacc98672f97ae13ff54d456371c83f8f6a794fa6bb81c47da43494c3b`.
---
# person.recipients.recent
query read
Use when current person state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
```
### Example
Show example input
```json
{}
```
## Result
Returns a typed person.recipients.recent result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next person operation.
Compatibility: `25350100a4eb6afa92d8a28a560a4edf8166cf211eb418263c263cc6adde27f2`.
---
# person.recipients.search
query read
Use when current person state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"query"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"query": "x"
}
```
## Result
Returns a typed person.recipients.search result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next person operation.
Compatibility: `0d2a83a6bcd28dffdc20e18d93a994a46be5bdeeb193ab4941c2926fa569a317`.
---
# person.updateDisplayName
mutation write
Use when the requested change exactly matches person.updateDisplayName; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"displayName"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"displayName": "x"
}
```
## Result
Returns a typed person.updateDisplayName result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected person resource to confirm the result.
Compatibility: `a124060401f6f01824c7bd4395853a44fc71ae62b33ae7bff419021008006644`.
---
# prototype.publish
mutation external
Use when the requested change exactly matches prototype.publish; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"prototypeId": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
],
"description": "Existing prototype id to redeploy, or null to create one."
},
"nodeId": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"directory": {
"type": "string",
"minLength": 1,
"description": "Absolute local directory containing the built prototype."
},
"entryPath": {
"type": "string",
"minLength": 1,
"description": "HTML entry file path relative to directory, normally index.html."
},
"baseVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"box": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false,
"description": "World-space position and size for the prototype node on the canvas."
}
},
"required": [
"canvasId",
"prototypeId",
"nodeId",
"title",
"directory",
"entryPath",
"baseVersion",
"box"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"prototypeId": null,
"nodeId": "prototype_ready",
"title": "Ready prototype",
"directory": "/absolute/build",
"entryPath": "index.html",
"baseVersion": 1,
"box": {
"x": 48,
"y": 48,
"width": 1440,
"height": 900
}
}
```
## Result
Returns a typed prototype.publish result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected prototype resource to confirm the result.
Compatibility: `2905eab68f218e4fdb4babedf3e70ca93d433e300566d731d332f3d11e5b177b`.
---
# recording.appendAudioChunk
mutation write
Use when the requested change exactly matches recording.appendAudioChunk; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"firstMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"lastMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"bytes": {
"type": "integer",
"minimum": 1,
"maximum": 16777216
},
"epoch": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"startsEpoch": {
"default": false,
"type": "boolean"
},
"etag": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"recordingId",
"index",
"firstMs",
"lastMs",
"bytes",
"epoch",
"startsEpoch"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"index": 0,
"firstMs": 0,
"lastMs": 0,
"bytes": 1,
"epoch": 0,
"startsEpoch": false
}
```
## Result
Returns a typed recording.appendAudioChunk result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `0d535e6f36d2b117c1c232f4edca1e08c2c81d1923a905fcee1ccef05b51c78f`.
---
# recording.appendChunk
mutation write
Use when the requested change exactly matches recording.appendChunk; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"firstEventMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"lastEventMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"eventCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"continues": {
"default": false,
"type": "boolean"
},
"bytes": {
"type": "integer",
"minimum": 1,
"maximum": 16777216
},
"etag": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"recordingId",
"index",
"firstEventMs",
"lastEventMs",
"eventCount",
"continues",
"bytes"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"index": 0,
"firstEventMs": 0,
"lastEventMs": 0,
"eventCount": 0,
"continues": false,
"bytes": 1
}
```
## Result
Returns a typed recording.appendChunk result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `35eb936e2997fbbf329fe92047bc86704376213b6b77233a8e8769c6eb6b8368`.
---
# recording.complete
mutation write
Use when the requested change exactly matches recording.complete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"durationMs": {
"type": "integer",
"minimum": 0,
"maximum": 14400000
},
"viewport": {
"type": "object",
"properties": {
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"width",
"height"
],
"additionalProperties": false
},
"sourceUrl": {
"type": "string",
"maxLength": 2048
},
"interrupted": {
"default": false,
"type": "boolean"
},
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"organisationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"audioChunkCount": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"hasRecoverableBytes": {
"default": false,
"type": "boolean"
}
},
"required": [
"recordingId",
"durationMs",
"viewport",
"sourceUrl",
"interrupted",
"audioChunkCount",
"hasRecoverableBytes"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"durationMs": 0,
"viewport": {
"width": 1,
"height": 1
},
"sourceUrl": "x",
"interrupted": false,
"audioChunkCount": 0,
"hasRecoverableBytes": false
}
```
## Result
Returns a typed recording.complete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `ab49024900b83e935bff371a119d9d522ea8b2e5d340b22e26cee11076ba0770`.
---
# recording.confirmUpload
mutation write
Use when the requested change exactly matches recording.confirmUpload; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"track": {
"type": "string",
"enum": [
"dom",
"audio"
]
},
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"etag": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"recordingId",
"track",
"index",
"etag"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"track": "dom",
"index": 0,
"etag": "x"
}
```
## Result
Returns a typed recording.confirmUpload result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `1bfb564d5a99057b2fa5fccc10ec40761fbbc816d9aa7ffdc1627377f8868e93`.
---
# recording.delete
mutation delete
Use when the requested change exactly matches recording.delete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"recordingId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"recordingId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed recording.delete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `e0652068c572d2743ceae53c0bbe1a14b39b0a7a4225f0f63184fff8556649b5`.
---
# recording.discard
mutation delete
Use when the requested change exactly matches recording.discard; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"recordingId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed recording.discard result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `40870d20ea98c9db6c76705531ae5e8d80769fe597ae5fd55112b87a31d1ff36`.
---
# recording.get
query read
Use when current recording state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"recordingId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"recordingId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed recording.get result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next recording operation.
Compatibility: `f7a494c4208415a3dfb74786ab20283b8e4f64366faca5a5d5cf4e10931f89c7`.
---
# recording.list
query read
Use when current recording state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed recording.list result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Choose an id from the result before another recording operation.
Compatibility: `7608080bbd92493d0fbd0f5684a096bef4197accac33838244d34894bc050b00`.
---
# recording.refreshUpload
mutation write
Use when the requested change exactly matches recording.refreshUpload; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"track": {
"type": "string",
"enum": [
"dom",
"audio"
]
},
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"recordingId",
"track",
"index"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"track": "dom",
"index": 0
}
```
## Result
Returns a typed recording.refreshUpload result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `fe6bcafd269ce1da6f4a45a9bfe78dc17793b724d442f61014bc912637b21585`.
---
# recording.snapshot
mutation write
Use when the requested change exactly matches recording.snapshot; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"atMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Visually reviewed recording timestamp to persist, in milliseconds."
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Local snapshot polling deadline in milliseconds."
}
},
"required": [
"canvasId",
"recordingId",
"atMs",
"timeoutMs"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"recordingId": "00000000-0000-4000-8000-000000000010",
"atMs": 1000,
"timeoutMs": 120000
}
```
## Result
Returns a typed recording.snapshot result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `1784317a952df45f31505039fba55ef2dbf0886956168216c514c87d155ee9b7`.
---
# recording.start
mutation write
Use when the requested change exactly matches recording.start; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"sourceUrl": {
"type": "string",
"maxLength": 2048
},
"viewport": {
"type": "object",
"properties": {
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"width",
"height"
],
"additionalProperties": false
},
"pageTitle": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"audio": {
"default": null,
"anyOf": [
{
"type": "object",
"properties": {
"mimeType": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"sampleRate": {
"type": "integer",
"minimum": 8000,
"maximum": 192000
}
},
"required": [
"mimeType",
"sampleRate"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"sourceUrl",
"viewport",
"pageTitle",
"audio"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"sourceUrl": "x",
"viewport": {
"width": 1,
"height": 1
},
"pageTitle": "x",
"audio": null
}
```
## Result
Returns a typed recording.start result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recording resource to confirm the result.
Compatibility: `7a9d9a432998d0a0db3f2dae4d4e338bf9819901f7ba1532945eee07bd0de171`.
---
# recordingAsset.confirm
mutation write
Use when the requested change exactly matches recordingAsset.confirm; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"arrived": {
"maxItems": 400,
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"etag": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"byteSize": {
"type": "integer",
"minimum": 1,
"maximum": 8388608
}
},
"required": [
"url",
"etag",
"byteSize"
],
"additionalProperties": false
}
}
},
"required": [
"recordingId",
"arrived"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"arrived": []
}
```
## Result
Returns a typed recordingAsset.confirm result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recordingAsset resource to confirm the result.
Compatibility: `467a1e89ea1fec379d62ae53e2d07addfad68d9416bc42b53f0d68a817ffda76`.
---
# recordingAsset.reserve
mutation write
Use when the requested change exactly matches recordingAsset.reserve; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"assets": {
"maxItems": 400,
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"contentType": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"byteSize": {
"type": "integer",
"minimum": 1,
"maximum": 8388608
}
},
"required": [
"url",
"contentType",
"byteSize"
],
"additionalProperties": false
}
}
},
"required": [
"recordingId",
"assets"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"recordingId": "00000000-0000-4000-8000-000000000010",
"assets": []
}
```
## Result
Returns a typed recordingAsset.reserve result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected recordingAsset resource to confirm the result.
Compatibility: `897fe3b8176f699015ccc519a825b578cd8c79cb8b582a358b4c11378641b64f`.
---
# screen.complete
mutation write
Use when the requested change exactly matches screen.complete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"screenId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"etag": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"screenId",
"etag"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"screenId": "00000000-0000-4000-8000-000000000010",
"etag": "x"
}
```
## Result
Returns a typed screen.complete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected screen resource to confirm the result.
Compatibility: `4622bf51324e0419165be758c74d8446787d33c3b7353a632ed8e2c2880255ab`.
---
# screen.create
mutation write
Use when the requested change exactly matches screen.create; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"clientToken": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"provenance": {
"anyOf": [
{
"type": "object",
"properties": {
"sourceRecordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"atMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"sourceRecordingId",
"atMs"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"route": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"pageTitle": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"viewport": {
"type": "object",
"properties": {
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"width",
"height"
],
"additionalProperties": false
},
"bytes": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"clientToken",
"provenance",
"route",
"pageTitle",
"viewport",
"bytes"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"clientToken": "00000000-0000-4000-8000-000000000010",
"provenance": {
"sourceRecordingId": "00000000-0000-4000-8000-000000000010",
"atMs": 0
},
"route": "x",
"pageTitle": "x",
"viewport": {
"width": 1,
"height": 1
},
"bytes": 1
}
```
## Result
Returns a typed screen.create result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected screen resource to confirm the result.
Compatibility: `db90d727a512ff09dc75412f864b960f4f655627c0e1a6d9b95a0b83171cb7da`.
---
# screen.delete
mutation delete
Use when the requested change exactly matches screen.delete; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"screenId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"screenId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"screenId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed screen.delete result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected screen resource to confirm the result.
Compatibility: `4a7789eac097dafdaebbb53c7d7fa387885bd12990000b80a20018f540cdac01`.
---
# transcript.read
query read
Use when current transcript state is needed before deciding or changing anything.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"recordingId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"recordingId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed transcript.read result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Use the returned identifiers and version in the next transcript operation.
Compatibility: `b026ce1001957a3a5f39e68b843eee602bb674e6610a3a77643efe9cd8f72a11`.
---
# transcript.retry
mutation write
Use when the requested change exactly matches transcript.retry; read the current state first when a version or identifier may have changed.
## Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
## Input
Show complete JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvasId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"recordingId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"canvasId",
"recordingId"
],
"additionalProperties": false
}
```
### Example
Show example input
```json
{
"canvasId": "00000000-0000-4000-8000-000000000010",
"recordingId": "00000000-0000-4000-8000-000000000010"
}
```
## Result
Returns a typed transcript.retry result from the Enhance API without transport-specific prose.
## Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: list accessible resources and choose an allowed identifier.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
## Continue with
- Read the affected transcript resource to confirm the result.
Compatibility: `c7ed718bb46abef29abbd72dd360ee81d21a4c87dabba3208ef32e7281b43275`.