docs: def deserialize(serial_data: dict) -> 'Response':
          """ Converts a serialized dictionary response to a Response object """
  
          r = Response(serial_data.get('id'))
          r.data.update(serial_data.get('data', {}))
          r.ended = serial_data.get('ended', False)
          r.failed = not serial_data.get('success', True)
  
          def load_messages(message_type: str):
              messages = [
                  ResponseMessage(**data)
                  for data in serial_data.get(message_type, [])
              ]
              setattr(r, message_type, getattr(r, message_type) + messages)
  
          load_messages('errors')
          load_messages('warnings')
          load_messages('messages')
  
          return r