external atom WebStudioCanvas id "atom:org.quixos.web-studio:canvas"; external atom WebStudioCanvasPlacement id "atom:org.quixos.web-studio:canvas-placement"; external interface WebStudioCanvasInterface revision "interface:org.quixos.web-studio.canvas@1"; external interface WebStudioPlaceable revision "interface:org.quixos.web-studio.placeable@1"; package WebStudioCanvasRuntime id "package:org.quixos.web-studio:canvas-runtime" revision "package:org.quixos.web-studio:canvas-runtime@1" { constructor createCanvas id "export:org.quixos.web-studio.canvas-runtime:create-canvas" constructs WebStudioCanvas : unit; constructor createPlacement id "export:org.quixos.web-studio.canvas-runtime:create-placement" constructs WebStudioCanvasPlacement : message "org.quixos.web-studio.CreateCanvasPlacement" requires { state position id "port:web-studio-placement-constructor:position" : message "org.quixos.web-studio.CanvasPosition" [write]; state size id "port:web-studio-placement-constructor:size" : message "org.quixos.web-studio.CanvasSize" [write]; state z id "port:web-studio-placement-constructor:z" : int32 [write]; edge canvas id "port:web-studio-placement-constructor:canvas" : exactly-one interface WebStudioCanvasInterface [connect]; edge subject id "port:web-studio-placement-constructor:subject" : exactly-one interface WebStudioPlaceable [connect]; }; }