anchor.diff:      Mod:Decoder(decode_record(Term, json), TypeName);
   decode_record(Term, {custom_type, TypeName, Mod}) ->
       decode_record(Term, {custom_type, TypeName, {Mod, encode_value, decode_value}});
  -decode_record({Term}, {record, Version, Fields}) when is_list(Fields), is_list(Term) ->
  -    ModelName0 = decode_record(proplists:get_value(<<?RECORD_TYPE_MARKER>>, Term), atom),
  -    ModelName = maybe_rename_model(ModelName0, Version),
  +decode_record({Term}, {record, _Version, Fields}) when is_list(Fields), is_list(Term) ->
       list_to_tuple(lists:reverse(lists:foldl(
           fun({Name, Type}, RecordList) ->
               [decode_record(proplists:get_value(encode_record(key, Name, atom), Term), Type) | RecordList]
           end,
  -        [ModelName], Fields)));
  +        [decode_record(proplists:get_value(<<?RECORD_TYPE_MARKER>>, Term), atom)], Fields)));
   decode_record(Term, string) when is_binary(Term) ->
       Term;
   decode_record(Term, integer) when is_integer(Term) ->
       Term;
  -decode_record(Term, integer) when is_float(Term) andalso (Term =:= float(round(Term))) ->
  -    round(Term);
   decode_record(Term, integer) when is_binary(Term) ->
       binary_to_integer(Term);
  -decode_record(Term, float) when is_float(Term) ->
  -    Term;
   decode_record(Term, float) when is_integer(Term) ->
       float(Term);
  +decode_record(Term, float) when is_float(Term) ->
  +    Term;
   decode_record(Term, float) when is_binary(Term) ->
       binary_to_float(Term);
   decode_record({Term}, #{} = Struct) when is_list(Term) ->
  
positive.code: -include("modules/datastore/datastore_common.hrl").
  -include("modules/datastore/datastore_common_internal.hrl").
  -include("modules/datastore/datastore_models_def.hrl").
  
  
  %%%===================================================================
  
negative.code:     binary_to_term(base64:decode(Term));
  decode_record(Term, Type) ->
      error({invalid_json_structure, Term, Type}).
  