import interface ReadingVocabulary; import interface ReadingOwner; import interface ReadingFeature; external interface ReadingDocument revision "interface:reading:document@1"; external atom ReadingReaderObject id "atom:reading:reader"; interface ReadingReader id "interface:reading:reader" revision "interface:reading:reader@1" { queryable relation vocabulary id "reading:reader:vocabulary" : optional-one interface ReadingVocabulary {resolve id "reading:reader:vocabulary:resolve" execution snapshot;connect id "reading:reader:vocabulary:connect" execution transaction;} operation remove id "reading:reader:remove" : unit -> unit {call id "reading:reader:remove:call" execution transaction;} queryable value palette id "reading:reader:palette" : record {text:string;accent:string;} {get id "reading:reader:palette:get" execution snapshot;set id "reading:reader:palette:set" execution transaction;} queryable value data id "reading:reader:data" : record {name:string;size:uint32;width:uint32;font:string;background:string;configRevision:uint32;} {get id "reading:reader:data:get" execution snapshot;} queryable relation library id "reading:reader:library" : exactly-one interface ReadingOwner {resolve id "reading:reader:library:resolve" execution snapshot;} queryable relation features id "reading:reader:features" : many-unique interface ReadingFeature {resolve id "reading:reader:features:resolve" execution snapshot;} queryable relation documents id "reading:reader:documents" : many-unique interface ReadingDocument {resolve id "reading:reader:documents:resolve" execution snapshot;} operation configure id "reading:reader:configure" : record {expectedRevision:uint32;name:string;size:uint32;width:uint32;font:string;background:string;} -> unit {call id "reading:reader:configure:call" execution transaction;} }