anchor.diff:                              | kpro_DescribeGroupsRequest()
                               | kpro_ListGroupsRequest().
   encode_request(ClientId, CorrId, Request) ->
  -  R = #kpro_Request{ apiVersion     = ?KPRO_API_VERSION
  -                   , correlationId  = CorrId
  +  R = #kpro_Request{ correlationId  = CorrId
                      , clientId       = ClientId
                      , requestMessage = Request
                      },
  
positive.code:   [encode({int32, Size}), IoData].
  
  %%%_* Internal functions =======================================================
  
  %% @private Decode responses received from kafka broker.
  %% {incomplete, TheOriginalBinary} is returned if this is not a complete packet.
  
negative.code:   true = (CorrId0 =< ?MAX_CORR_ID), %% assert
    ApiKey = req_to_api_key(RequestMessage),
    CorrId = (ApiKey bsl ?CORR_ID_BITS) bor CorrId0,
    ApiVersion = case ApiVersion0 =:= undefined of
                    true  -> get_api_version(RequestMessage);
                    false -> ApiVersion0
                 end,
    IoData =
      [ encode({int16, ApiKey})
  