VersionDetail
A version together with what it published. It keeps its empty fields rather than omitting them, for the reason the draft does: it carries a stored diagram, and dropping what has no value would drop it from inside the diagram too.
- botType: stringFormat: uuid
_id required - diagramType: DiagramrequiredProperties: 3
Your diagram, kept as you sent it: keys we do not model — notes, embedded bricks — come back untouched. The one thing we add is
isTarget: true, on any node that does not already say whether a connection may end at it.We read
nodesandconnectionsto check it. A diagram missing either is stored anyway and reported as breaking rules. - publishedType: Timestamp
_at requiredA moment, in UTC, written as
YYYY-MM-DDTHH:MM:SS. It carries no offset and no fraction of a second, so a client that reads it as local time is wrong by whatever its own offset is. - versionType: stringFormat: uuid
_id required - channelType: object | null
_version Properties: 1The channel the bot was served on, as it stood when the version was published. It is carried verbatim from the context that owns channels and nothing here models it: a version is shown as it ran, and the diagram alone does not say what the bot looked like.
nullfor a bot whose family has no channel of its own. - nameType: string | null
A label, absent unless someone has set one. Versions are created unnamed; naming one is a separate action.
- publishedType: Author
_by Properties: 2Who published it. Absent once that person has left the brand — there is nothing left to name them by.