world.open
Open a world in the editor. With an engine to open it in — one this conversation is already driving, or one you name with session from session.list — this MOVES that engine to the world and answers {switched, session_id, world, branch}; engine tools then act on it with nothing else to call. Otherwise it records that you want the world open and answers where it opens: the browser URL and the zero:// URL an installed desktop engine answers to. Nothing opens from the server — the opening happens on the user's machine, and next says who does it (a harness with a shell runs zeromind open <guid>; anyone else shows the user the link). The engine that comes up binds to this conversation on its own, so engine tools work with no connect call; world.connect waits for it explicitly. An engine you did not name is never taken: when you have engines running, the answer lists them under engines so you can ask the user which to reuse, and any engine another conversation is driving (claimed_by_another) is refused — the one you are driving included, if somebody else has taken it since. Requires edit access (use world.create for a new world). A world you have deleted is refused here — world.trash lists it and world.restore brings it back. The editor binds the world's live working copy: naming a branch checks the name against the world's branches but does not yet choose what the editor loads — branch selection is coming. The result lists the world's branches.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| guid | No | The same argument as `world`, under another name: give one of the two. A call giving them two different worlds is refused. | |
| world | Yes | World guid to open in the editor (world.list names each of your worlds beside its guid). A name is not a guid and is refused. | |
| branch | No | Which branch you mean (world.list names each world's branches). The name is checked — one the world does not have is refused, listing the ones it has — and reflected back as `open.branch`. It does not yet choose what the editor loads: the editor binds the world's live working copy either way. | |
| session | No | Open the world in THIS engine, by its session id from session.list. It must be one of yours and not one another conversation is driving. With no `session`, the engine this conversation already drives is the one moved, and a conversation driving none is answered with the addresses instead. |