40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
// Shared record definitions, repeated explicitly in independently locked resources.
|
|
external atom Document id "atom:reader:document";
|
|
external atom Highlight id "atom:reader:highlight";
|
|
external atom Comment id "atom:reader:comment";
|
|
|
|
type SourceRange = record {
|
|
sourceRevision: string;
|
|
start: int32;
|
|
end: int32;
|
|
};
|
|
|
|
type CommentContent = record {
|
|
text: string;
|
|
tags: list<string>;
|
|
};
|
|
|
|
type DocumentSeed = record { sourceRevision: string; content: string; };
|
|
|
|
interface HighlightData id "interface:reader:highlight-data"
|
|
revision "interface:reader:highlight-data@1" {
|
|
queryable value range id "highlight:range" : SourceRange {
|
|
get id "highlight:range:get"
|
|
execution snapshot;
|
|
}
|
|
queryable value color id "highlight:color" : string {
|
|
get id "highlight:color:get"
|
|
execution snapshot;
|
|
set id "highlight:color:set"
|
|
execution transaction;
|
|
}
|
|
queryable portable value excerpt id "highlight:excerpt" : string {
|
|
get id "highlight:excerpt:get"
|
|
execution snapshot;
|
|
}
|
|
queryable relation comments id "highlight:comments" : many-unique atom Comment {
|
|
resolve id "highlight:comments:resolve"
|
|
execution snapshot;
|
|
}
|
|
}
|