anchor.diff:  
   -type msg_id()          :: undefined | 0..65535.
   
  +-type mqtt5_properties() :: map().
  +
   -record(mqtt5_lwt, {
  -          will_properties=#{} :: map(),
  +          will_properties=#{} :: mqtt5_properties(),
             will_retain       :: flag(),
             will_qos          :: qos(),
             will_topic        :: topic(),
  
positive.code: -record(mqtt5_connack, {
            session_present   :: flag(),
            reason_code       :: reason_code(),
            properties=#{}    :: map()
           }).
  -type mqtt5_connack()       :: #mqtt5_connack{}.
  
  
negative.code:          reason_code        :: ?M5_SUCCESS |
                                 ?M5_CONTINUE_AUTHENTICATION |
                                 ?M5_REAUTHENTICATE,
           properties=#{}      :: mqtt5_properties()
           }).
  -type mqtt5_auth()          :: #mqtt5_auth{}.
  
  