anchor.diff:      #gs_req_graph{
           gri = gri:deserialize(maps:get(<<"gri">>, PayloadJSON)),
           operation = string_to_operation(maps:get(<<"operation">>, PayloadJSON)),
  -        data = null_to_undefined(maps:get(<<"data">>, PayloadJSON, #{})),
  +        data = utils:null_to_undefined(maps:get(<<"data">>, PayloadJSON, #{})),
           subscribe = maps:get(<<"subscribe">>, PayloadJSON, false),
           auth_hint = json_to_auth_hint(maps:get(<<"authHint">>, PayloadJSON, null))
       }.
  
positive.code:         <<"payload">> => #{
              <<"success">> => Success,
              <<"error">> => errors:to_json(Error),
              <<"data">> => undefined_to_null(Data)
          }
      }.
  
  
negative.code:             null -> undefined;
              Interface -> cv_interface:deserialize_interface(Interface)
          end,
          audience_token = utils:null_to_undefined(maps:get(<<"audienceToken">>, Data, null)),
          data_access_caveats_policy = case maps:get(<<"dataAccessCaveatsPolicy">>, Data, null) of
              null -> disallow_data_access_caveats;
              Bin -> str_to_data_access_caveats_policy(Bin)
  