Skip to content

Space actions

Space actions operate on named CRDT-backed zones in the attached Space. Placement payloads use a token as card; placement IDs are generated by the space and are needed for later remove/move/flip operations.

Type Payload Result / effect
space:place { zone, card, opts? } Returns a placement, or null for a locked zone
space:remove { zone, placementId } Removes a placement
space:move { fromZone, toZone, placementId, x?, y? } Moves a placement
space:flip { zone, placementId, faceUp } Sets face state
space:createZone { name, label?, x?, y? } Creates a zone
space:deleteZone { name } Deletes a zone
space:clearZone { zone } Removes all placements from one zone
space:lockZone { zone, locked? } Sets the zone lock
space:shuffleZone { zone, seed? } Shuffles zone ranks
space:fanZone { zone, ...layout options } Applies an arc layout
space:spreadZone { zone, pattern?, angleStep?, radius? } Applies a layout
space:stackZone { zone } Places zone items at one coordinate
space:transferZone { fromZone, toZone } Moves all items and returns a count
space:clear none Clears all zones

The implementation validates ordering metadata and records placement snapshots in the Chronicle. A locked zone makes operations that honor the lock no-ops or returns null/0 as indicated by the underlying facade.