Roastify Stash Design
roastify_stash_designStore a Roastify design JSON in your library (a commit in your GitHub repo).
The browser courier reads a saved product's design and calls this to shuttle it up. On the way in, the design's fonts[] is REPAIRED — Roastify's own schema migration leaves a lossy fonts[] (a dropped family, a bad weight), so a stashed design would otherwise carry that damage; the repair rebuilds fonts[] from the families the text actually uses so it renders in its intended fonts. Only the load list changes; the text and its fonts are untouched. Inline images are de-duplicated. This does NOT touch Roastify.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| label | No | Your name for this design, e.g. "Ethiopian — light". | |
| design | Yes | The full Roastify design JSON object (elements/faceBackgrounds…). | |
| design_id | No | Optional explicit folder id. Omit and the id is the slug of the label, so re-stashing the same design commits a new version in place instead of creating a duplicate. | |
| dpop_token | No | ||
| product_id | No | The Roastify product id it came from, for your reference. | |
| description | No | The product's store-page description at stash time, versioned with the design so Fetch can re-apply it to a target product. | |
| version_tag | No | The NEXT semver version (MAJOR.MINOR.PATCH like 1.2.3, no 'v'); check roastify_list_design_versions and increment. Required; reusing one is refused. | |
| source_title | No | The product's title at stash time, for your reference. | |
| commit_message | No | A specific description of WHAT changed and WHY — write a real commit message, not a placeholder like 'save this' or 'update'. Required. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||