anchor.diff:                     last_modified = ddfs_util:format_timestamp()}.
   
   -spec update_tagcontent(tagname(), attrib(), _, _, token()) ->
  -                        {'error', 'too_many_attributes' | 'invalid_url_object'} |
  -                        {'ok', tagcontent()}.
  +                               {error, too_many_attributes | invalid_url_object} |
  +                               {ok, tagcontent()}.
   update_tagcontent(TagName, Field, Value, {ok, Tag}, _Token) ->
       Updated = update_tagcontent(TagName, Tag),
       update_tagcontent(Field, Value, Updated);
  
positive.code:     update_tagcontent(TagName, Field, Value, {ok, New}, Token).
  
  -spec update_tagcontent(attrib(), _, tagcontent()) ->
                         {'error', 'too_many_attributes' | 'invalid_url_object'} |
                         {'ok', tagcontent()}.
  update_tagcontent(read_token, Token, Tag) ->
      {ok, Tag#tagcontent{read_token = Token}};
  
  
negative.code:                 write_token = lookup(<<"write-token">>, null, L),
                  user = UserData}.
  
  -spec decode_tagcontent(binary()) -> {error, corrupted_json | invalid_object} |
                                       {ok, tagcontent()}.
  decode_tagcontent(TagData) ->
      try case mochijson2:decode(TagData) of
              {struct, Body} -> {ok, lookup_tagcontent(Body)};
              _E -> {error, invalid_object}
          end
      catch _ ->   {error, corrupted_json};
            _:_ -> {error, corrupted_json}
      end.
  
  -spec update_tagcontent(tagname(), tagcontent()) -> tagcontent().
  