anchor.diff:        END OF ty_push .
       TYPES:
         BEGIN OF ty_request,
  -        want   TYPE STANDARD TABLE OF zags_sha1 WITH DEFAULT KEY,
  -        deepen TYPE i,
  +        want         TYPE STANDARD TABLE OF zags_sha1 WITH DEFAULT KEY,
  +        have         TYPE STANDARD TABLE OF zags_sha1 WITH DEFAULT KEY,
  +        capabilities TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
  +        deepen       TYPE i,
         END OF ty_request .
   
       DATA mi_server TYPE REF TO if_http_server .
  
positive.code:     LOOP AT lt_lines INTO lv_line.
  
        SPLIT lv_line AT space INTO lv_command lv_rest.
        IF lv_command(4) = '0000'.
          RETURN.
        ENDIF.
  
        lv_command = lv_command+4.
  
        CASE lv_command.
          WHEN 'want'.
            APPEND lv_rest TO rs_request-want.
          WHEN 'deepen'.
            rs_request-deepen = lv_rest.
          WHEN OTHERS.
  * todo, unknown command
            ASSERT 0 = 1.
  
negative.code: 
  
    METHOD decode_request.
  * todo: add unit tests
  
      DATA: lv_line         TYPE string,
            lv_command      TYPE string,
            lv_rest         TYPE string,
            lv_capabilities TYPE string,
            lt_lines        TYPE TABLE OF string.
  
  
      SPLIT iv_string AT cl_abap_char_utilities=>newline INTO TABLE lt_lines.
  