symbol JavaScript id "target:org.quixos.execution.javascript@1"; external atom GutenbergCatalogObject id "atom:gutenberg:catalog"; import interface GutenbergCatalog; type GutenbergBook = record {ebook:uint32;title:string;author:string;language:string;}; type GutenbergExcerpt = record {book:GutenbergBook;url:string;text:string;words:uint32;}; package GutenbergRuntime id "package:gutenberg:runtime" revision "package:gutenberg:runtime@1" { function create id "gutenberg:create" : unit -> atom-ref execution transaction targets [JavaScript,server] requires {creation catalog id "catalog" : GutenbergCatalogObject input record {name:string;};}; operation search id "gutenberg:search" : string -> list mode call execution remote receiver any; operation readBook id "gutenberg:read" : record {ebook:uint32;} -> GutenbergExcerpt mode call execution remote receiver any; }