Files

14 lines
1.4 KiB
Plaintext

import interface PresentationMount;
import interface WebStudioPresentable;
type Assignment = record {subject:interface-ref<WebStudioPresentable>;presentation:string;presentationMount:optional<interface-ref<PresentationMount>>;};
type Observed = record {generation:uint32;sequence:uint32;status:string;error:string;};
type DisplayState = record {label:string;generation:uint32;presentation:optional<string>;observed:optional<Observed>;};
interface WebStudioDisplayTarget id "interface:org.quixos.web-studio.display-target" revision "interface:org.quixos.web-studio.display-target@1" {
queryable value nonce id "display:nonce" : string {get id "display:nonce:get" execution snapshot;}
queryable value status id "display:state" : DisplayState {get id "display:state:get" execution snapshot;}
queryable relation subject id "display:subject" : optional-one interface WebStudioPresentable {resolve id "display:subject:resolve" execution snapshot;}
queryable relation presentationMount id "display:presentation-mount" : optional-one interface PresentationMount {resolve id "display:presentation-mount:resolve" execution snapshot;}
operation assign id "display:assign" : optional<Assignment> -> uint32 {call id "display:assign:call" execution transaction;}
operation acknowledge id "display:acknowledge" : Observed -> bool {call id "display:acknowledge:call" execution transaction;}
}