25 lines
3.2 KiB
Plaintext
25 lines
3.2 KiB
Plaintext
import interface ReadingOwner;
|
|
import interface ReadingReader;
|
|
external interface ReadingJob revision "interface:reading:job@1";
|
|
external atom ReadingDocumentObject id "atom:reading:document";
|
|
external atom ReadingJobObject id "atom:reading:job";
|
|
external atom ReadingFeatureObject id "atom:reading:feature";
|
|
type DocumentData = record {title:string;text:string;sourceRevision:string;source:string;url:string;attribution:string;};
|
|
interface ReadingDocument id "interface:reading:document" revision "interface:reading:document@1" {
|
|
queryable relation reader id "reading:document:reader" : optional-one interface ReadingReader {resolve id "reading:document:reader:resolve" execution snapshot;connect id "reading:document:reader:connect" execution transaction;}
|
|
queryable relation canonical id "reading:document:canonical" : optional-one interface ReadingDocument {resolve id "reading:document:canonical:resolve" execution snapshot;}
|
|
queryable value adaptation id "reading:document:adaptation" : string {get id "reading:document:adaptation:get" execution snapshot;}
|
|
operation prepareVariant id "reading:document:prepare-adaptation" : record {createdAt:string;retry:bool;} -> optional<atom-ref<ReadingJobObject>> {call id "reading:document:prepare-adaptation:call" execution transaction;}
|
|
operation applyVariant id "reading:document:apply-adaptation" : record {sourceRevision:string;start:uint32;end:uint32;text:string;} -> unit {call id "reading:document:apply-adaptation:call" execution transaction;}
|
|
queryable value archived id "reading:document:archived" : bool {get id "reading:document:archived:get" execution snapshot;set id "reading:document:archived:set" execution transaction;}
|
|
queryable value data id "reading:document:data" : DocumentData {get id "reading:document:data:get" execution snapshot;}
|
|
queryable relation library id "reading:document:library" : exactly-one interface ReadingOwner {resolve id "reading:document:library:resolve" execution snapshot;}
|
|
queryable relation jobs id "reading:document:jobs" : many-unique interface ReadingJob {resolve id "reading:document:jobs:resolve" execution snapshot;}
|
|
queryable relation results id "reading:document:results" : many interface ReadingJob keyed "string" {resolve id "reading:document:results:resolve" execution snapshot;}
|
|
operation recordResult id "reading:document:record-result" : interface-ref<ReadingJob> -> unit {call id "reading:document:record-result:call" execution transaction;}
|
|
operation plan id "reading:document:plan" : record {feature:atom-ref<ReadingFeatureObject>;start:uint32;end:uint32;visibleStart:uint32;visibleEnd:uint32;kind:string;} -> list<record {start:uint32;end:uint32;}> {call id "reading:document:plan:call" execution snapshot;}
|
|
operation generate id "reading:document:generate" : record {feature:atom-ref<ReadingFeatureObject>;start:uint32;end:uint32;createdAt:string;retry:bool;} -> atom-ref<ReadingJobObject> {call id "reading:document:generate:call" execution transaction;}
|
|
operation rewrite id "reading:document:rewrite" : record {difficulty:string;createdAt:string;} -> atom-ref<ReadingDocumentObject> {call id "reading:document:rewrite:call" execution transaction;}
|
|
operation remove id "reading:document:remove" : unit -> unit {call id "reading:document:remove:call" execution transaction;}
|
|
}
|