anchor.diff:  -type message_subtype() :: handshake | rpc | graph | unsub | nosub | error.
   
   % Clients authorization, used during handshake or auth override.
  --type client_auth() :: undefined | {macaroon, Macaroon :: binary(), DischMacaroons :: [binary()]}.
  +% Special 'nobody' auth can be used to indicate that the client is requesting
  +% public access (typically works the same as not providing any auth, but might
  +% be subject to server's implementation).
  +-type client_auth() :: undefined | nobody | {macaroon, Macaroon :: binary(), DischMacaroons :: [binary()]}.
   
   % Used to override the client authorization established on connection level, per
   % request. Can be used for example by providers to authorize a certain request
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  -spec supported_versions() -> [protocol_version()].
  supported_versions() -> [1, 2].
  
  
  %%--------------------------------------------------------------------
  
negative.code:                 data = DataJSON
              }
      end;
  % Covers all versions since 2
  decode_response_graph(_, null) ->
      #gs_resp_graph{};
  decode_response_graph(_, Map) when map_size(Map) == 0 ->
      #gs_resp_graph{};
  decode_response_graph(_, DataJSON) ->
      FormatStr = maps:get(<<"format">>, DataJSON),
      #gs_resp_graph{
          data_format = str_to_data_format(FormatStr),
  