anchor.diff:  -spec translate_resource(gri:gri(), Data :: term()) ->
       gs_protocol:data() | fun((aai:auth()) -> gs_protocol:data()).
   translate_resource(#gri{id = Guid, aspect = instance, scope = public}, #file_attr{
  -    name = Name,
  +    name = FileName,
       type = TypeAttr,
       mode = Mode,
       size = SizeAttr,
  
positive.code:         _ ->
              {<<"file">>, SizeAttr}
      end,
  
      fun(#auth{session_id = SessId}) ->
          FileUuid = file_id:guid_to_uuid(Guid),
          {ok, ActivePermsType} = file_meta:get_active_perms_type(FileUuid),
  
          Parent = case fslogic_uuid:is_space_dir_guid(Guid) of
              true ->
                  null;
              false ->
                  {ok, ParentGuid} = ?check(lfm:get_parent(SessId, {guid, Guid})),
                  gri:serialize(#gri{
                      type = op_file,
                      id = ParentGuid,
                      aspect = instance,
                      scope = private
                  })
          end,
  
          SharesGRI = case Shares of
  
negative.code:         _ ->
              {<<"file">>, SizeAttr}
      end,
      {_, SpaceId, ShareId} = file_id:unpack_share_guid(Guid),
      IsSpaceDir = fslogic_uuid:is_space_dir_guid(Guid),
  
      fun(#auth{session_id = SessId}) ->
          DisplayedName = case IsSpaceDir of
              true ->
                  case space_logic:get_name(SessId, SpaceId) of
                      {ok, SpaceName} -> SpaceName;
                      {error, _} = Error -> throw(Error)
                  end;
              false ->
                  FileName
          end,
          IsRootDir = case ShareId of
              undefined ->
                  fslogic_uuid:is_space_dir_guid(Guid);
  