Update an adventure page
imagine_update_adventure_pagePUT updates to one adventure page by id. Only supplied fields are sent; every field on the AdventurePage shape (name, content, summary, image, documentType, tags, parentId, link, menuOrder, aliases, details, worldPageRefs, vaultRefs, treasureRefs, scene-shape goal/duration, location-shape locationKey/map/mapPin) can be updated through this tool. Read-aloud / moving-on / tactics are NOT fields — author them inline in content as [[read-aloud]] / [[moving-on]] / [[tactics]] callout blocks. Caller must have 'edit'. WARNING about content: imagine REPLACES the body with whatever you send. To fix wording inside an existing body without losing formatting whitespace, prefer imagine_replace_in_adventure_page (surgical). To append, fetch the page first with imagine_get_adventure_page (raw=true), concatenate, and send the combined body back. REQUIRES baseUpdatedAt: copy updatedAt from a fresh imagine_get_adventure_page read of this page; a stale or fabricated value is rejected with OUT_OF_SYNC and nothing is written — writing from memory of an earlier read is not possible.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Adventure page id. | |
| map | No | Location shape: Mongo `_id` of the Map this location belongs to. Pass null to clear. | |
| goal | No | ||
| link | No | URL-safe slug. Lowercase letters, numbers, hyphens, slashes. | |
| name | No | Page name. | |
| tags | No | Tag list. Imagine stores as a comma-separated `keywords` string. | |
| image | No | ||
| active | No | ||
| mapPin | No | ||
| aliases | No | ||
| content | No | Page body in markdown. Imagine renders this verbatim. WARNING: REPLACED wholesale on update; prefer imagine_replace_in_adventure_page for surgical edits. | |
| details | No | Label/value list of arbitrary metadata pairs. | |
| summary | No | Short page summary. Max 150 characters (matches the AdventurePage Mongoose schema's maxlength). Sibling Adventure and WorldPage summaries share the same cap; legacy World summaries cap at 255 (cross-app convention). | |
| duration | No | ||
| parentId | No | Mongo `_id` of the parent page (for tree structure). | |
| template | No | Template id when authored from a template. | |
| menuOrder | No | ||
| vaultRefs | No | Participants on the page. Each entry `{ vaultId?, type?, count?, name? }`. | |
| locationKey | No | ||
| documentType | No | Structural type. Drives shape-specific fields. | |
| treasureRefs | No | Treasure entries. Same shape as `vaultRefs`. | |
| baseUpdatedAt | Yes | REQUIRED proof that you are working from the latest version: copy the `updatedAt` value verbatim from a FRESH read of this exact record (use the matching get tool first). Values from memory, from an earlier conversation, or guessed timestamps are rejected with OUT_OF_SYNC and nothing is written. After a successful update, the response carries the new `updatedAt` — use that for any follow-up write. | |
| outboundLinks | No | AdventurePage ids this page links to. Imagine recomputes this on save when missing; explicit values override. | |
| relationships | No | Sibling AdventurePage ids the page relates to. | |
| worldPageRefs | No | Mongo `_id` list of referenced world pages. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||