external interface WebStudioCanvasPlacement revision "interface:org.quixos.web-studio.canvas-placement@1"; external interface WebStudioPlaceable revision "interface:org.quixos.web-studio.placeable@1"; external atom WebStudioCanvas id "atom:org.quixos.web-studio:canvas"; external atom WebStudioCanvasPlacement id "atom:org.quixos.web-studio:canvas-placement"; type Layout = record { x:double; y:double; width:double; height:double; z:int32; }; interface WebStudioCanvas id "interface:org.quixos.web-studio.canvas" revision "interface:org.quixos.web-studio.canvas@1" { static operation create id "canvas:create" : string -> atom-ref {call id "canvas:create:call" execution transaction;} static operation root id "canvas:root" : unit -> atom-ref {call id "canvas:root:call" execution transaction;} queryable value name id "canvas:name" : string {get id "canvas:name:get" execution snapshot;set id "canvas:name:set" execution transaction;} queryable relation placements id "canvas:placements" : many-unique interface WebStudioCanvasPlacement {resolve id "canvas:placements:resolve" execution snapshot;} operation createAndPlace id "canvas:create-and-place" : record {name:string;presentation:string;layout:Layout;} -> atom-ref {call id "canvas:create-and-place:call" execution transaction;} operation place id "canvas:place" : record {subject:interface-ref; presentation:string; layout:Layout;} -> atom-ref {call id "canvas:place:call" execution transaction;} }