# `design.publish` Publish the current draft as the next live version (validates strictly; flips the live pointer). - **scope**: `design:write` - **storefront-visible** (bumps the catalog generation): no - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `expectedHash` | string (/^[a-f0-9]{16}$/) | yes | | | `label` | string (≤120 chars) | no | | | `workspace` | string (/^(main\|ws_[0-9A-HJKMNP-TV-Z]{26})$/, default "main") | no | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "expectedHash": { "type": "string", "pattern": "^[a-f0-9]{16}$" }, "label": { "type": "string", "maxLength": 120 }, "workspace": { "default": "main", "type": "string", "pattern": "^(main|ws_[0-9A-HJKMNP-TV-Z]{26})$" } }, "required": [ "expectedHash" ], "additionalProperties": false } ```