 grant delete on table sg_public.follow to sg_user, sg_admin;
 create policy delete_follow on sg_public.follow
   for select to sg_user, sg_admin
-  using (user_id = current_setting('jwt.claims.user_id')::uuid); -- TODO comment
+  using (user_id = current_setting('jwt.claims.user_id')::uuid);
+comment on policy delete_follow on sg_public.follow
+  is 'A user or admin can delete their own follows.';
 
 -- Select notice: user or admin self.
 grant select on table sg_public.notice to sg_user, sg_admin;
 create policy select_notice on sg_public.notice
   for select to sg_user, sg_admin
-  using (user_id = current_setting('jwt.claims.user_id')::uuid); -- TODO comment
+  using (user_id = current_setting('jwt.claims.user_id')::uuid);
+comment on policy select_notice on sg_public.notice
+  is 'A user or admin can select their own notices.';
 
 -- Insert notice: none.
 


-- TODO Validation: No require cycles for cards

-- TODO  Validation: No cycles in subject members

-- TODO TODO Who can update entity statuses? How?

------ Cards, Units, Subjects > Triggers ---------------------------------------


  name text not null,
  entity_id uuid not null, -- TODO issue cant ref across tables
  -- todo verify id x kind
  entity_kind sg_public.entity_kind not null 
);
comment on table sg_public.topic
  is 'The topics on an entity\'s talk page.';
comment on column sg_public.id
  is 'The public ID of the topic.';
comment on column sg_public.created
  is 'When the user created the topic.';
comment on column sg_public.modified
  is 'When the user last modified the topic.';
comment on column sg_public.user_id
  is 'The user who created the topic.';
comment on column sg_public.entity_id
  is 'The entity the topic belongs to.';
comment on column sg_public.entity_kind
  is 'The kind of entity the topic belongs to.';

create table sg_public.post (
  id uuid primary key default uuid_generate_v4(),
