anchor.diff:  %%--------------------------------------------------------------------
   -spec create(datastore:document()) ->
       {ok, datastore:key()} | datastore:create_error().
  -create(Document = #document{key = {Uuid, Name} = Key}) ->
  +create(Document) ->
       case datastore:create(?STORE_LEVEL, Document) of
           {ok, Key}->
  -            ok = datastore:add_links(?LINK_STORE_LEVEL, Uuid, ?MODEL_NAME, {Name, {Key, ?MODEL_NAME}}),
  +            {Uuid, Name} = decode_key(Key),
  +            ok = datastore:add_links(?LINK_STORE_LEVEL, Uuid, ?MODEL_NAME, {?XATTR_LINK_NAME(Name), {Key, ?MODEL_NAME}}),
               {ok, Key};
           Error ->
               Error
  
positive.code: -spec list(file_meta:uuid()) -> {ok, [xattr:name()]} | datastore:generic_error().
  list(FileUuid) ->
      datastore:foreach_link(?LINK_STORE_LEVEL, FileUuid, ?MODEL_NAME,
          fun(Name, _, Acc) ->
              [Name | Acc]
          end, []).
  
  %%%===================================================================
  
negative.code:     ok | datastore:generic_error().
  before(_ModelName, _Method, _Level, _Context) ->
      ok.
  
  %%%===================================================================
  %%% Internal functions
  %%%===================================================================
  
  %%--------------------------------------------------------------------
  %% @doc Decodes xattr key to file uuid and xattr name
  %%--------------------------------------------------------------------
  -spec decode_key(binary()) -> {file_meta:uuid(), xattr:name()}.
  decode_key(Key) ->
      binary_to_term(Key).
  
  %%--------------------------------------------------------------------
  %% @doc Creates xattr key from file uuid and xattr name
  %%--------------------------------------------------------------------
  -spec encode_key(file_meta:uuid(), xattr:name()) -> binary().
  encode_key(FileUuid, XattrName) ->
      term_to_binary({FileUuid, XattrName}).