type Content = record { text: string; tags: list; }; type Edit = record { change: change; resolved: bool; }; interface NoteData id "compound:data" revision "compound:data@1" { operation batch id "compound:batch" : record { edits: list; } -> unit { call id "compound:batch:call" execution transaction; } operation update id "compound:update" : Edit -> unit { call id "compound:update:call" execution transaction; } queryable value content id "compound:content" : Content { get id "compound:content:get" execution snapshot; edit id "compound:content:edit" execution transaction; } queryable value resolved id "compound:resolved" : bool { get id "compound:resolved:get" execution snapshot; } queryable value title id "compound:title" : string { get id "compound:title:get" execution snapshot; set id "compound:title:set" execution transaction; } }