code: public ResultMessage execute(ClientState state) throws RequestValidationException, RequestExecutionException
      {
          List<PermissionDetails> details = new ArrayList<PermissionDetails>();
  
          if (resource != null && recursive)
          {
              for (IResource r : Resources.chain(resource))
                  details.addAll(list(state, r));
          }
          else
          {
              details.addAll(list(state, resource));
          }
  
          Collections.sort(details);
          return resultMessage(details);
      }
docs: TODO: Create a new ResultMessage type (?). Rows will do for now.