save_world_experience
Save a versioned draft world, settings and optional custom interface together. Read get_world_experience before editing and pass its versionId as expectedVersionId. Omit liveWorldId only for a new world. Provide project as the portable genesis.json manifest, with interfaceSource and controllerSource. Keep Worldstreams listing, avatar connections and chat access/moderation in settings. The existing definition argument is supported for older clients. New worlds use a unified Genesis package: local HTML/CSS/classic JS interface using window.Genesis, optional pure onEvent controllerSource, typed actions, input windows and authorized tool effects. Read get_genesis_sdk before authoring. Generated UI images use asset://ID references declared in interfaceAssets:[{id,mediaId}]. The server verifies completed workspace images and pins them with this version. Covers use project.coverImageUrl from completed generate_image media. Preview stage artwork uses the separate previewImageUrl field. Omit it to preserve or set an empty string to remove. Build responsive interfaces for touch/mobile and web. No direct external URLs, networking, parent access or eval. Reuse game packages by pinning gameId and versionId in gameBindings; game edits use the existing game proposal workflow. This does not publish or start generation. Return the saved world and preview link.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| settings | No | ||
| definition | No | ||
| liveWorldId | No | ||
| workspaceId | Yes | ||
| interfaceFiles | No | ||
| interfaceAssets | No | ||
| interfaceSource | No | ||
| previewImageUrl | No | ||
| controllerSource | No | ||
| expectedVersionId | No | ||
| interfaceEntryPoint | No |