workspace Compound id "workspace:compound" revision "workspace:compound@1" commit "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" { import interface NoteData; import package EditRuntime; type Content = record { text: string; tags: list; }; atom Note id "compound:note"; conform Note as NoteData id "compound:note:data" { private state Content id "compound:content-slot" on Note : Content policy crdt(Content); private state Resolved id "compound:resolved-slot" on Note : bool policy register default false; private state Title id "compound:title-slot" on Note : string policy register default "note"; private state Allowed id "compound:allowed-slot" on Note : bool policy register default true; initialize { content to state Content; }; bind content.get to state Content.read; bind content.edit to state Content.edit; bind resolved.get to state Resolved.read; bind title.get to state Title.read; bind title.set to state Title.write; bind update.call to package EditRuntime.update with { content to state Content; resolved to state Resolved; } accept with { allowed to state Allowed; }; } }