/-  *permission-store
|%
++  permission-to-json
  |=  pem=permission-map
  =,  enjs:format
  ^-  json
  %+  frond  %permission-initial
  %-  pairs
  %+  turn  ~(tap by pem)
  |=  [pax=^path =permission]
  ^-  [cord json]
  :-  (spat pax)
  %-  pairs
  :~  [%kind s+kind.permission]
      [%who [%a (turn ~(tap in who.permission) ship)]]
  ==
::
++  ki
  =,  dejs:format
  ^-  $-(json kind)
  (su (perk %black %white ~))
::
++  json-to-set-path-kind
  =,  dejs:format
  %-  as
  %-  ot
  :~  [%path pa]
      [%kind ki]
  ==
::
++  json-to-perm-group-hook-action
  |=  jon=json
  =,  dejs:format
  =<  (parse-action jon)
  |%
  ++  parse-action
    %-  of
    :~  [%associate associate]
        [%dissociate dissociate]
    ==
  ::
  ++  associate
    %-  ot
    :~  [%group pa]
        [%permissions json-to-set-path-kind]
    ==
  ::
  ++  dissociate
    %-  ot
    :~  [%group pa]
        [%permissions (as pa)]
    ==
  ::
  --
--