external atom Note id "compound:note"; type Content = record { text: string; tags: list; }; type Edit = record { change: change; resolved: bool; }; package EditRuntime id "compound:runtime" revision "compound:runtime@1" { operation update id "compound:runtime:update" : Edit -> unit mode call execution transaction targets [browser, server] receiver atom Note requires { state content id "compound:edit:content" : Content [edit]; state resolved id "compound:edit:resolved" : bool [write]; } accept using check; operation check id "compound:runtime:check" : Edit -> unit mode call execution snapshot targets [server] receiver atom Note requires { state allowed id "compound:check:allowed" : bool [read]; }; }