constructor({key, version = 3.1} = {}) {
    // Ensure the version is a string
    version = version.toString();
    this.version = version;

    if (key) {
      if (key.length !== 16) {
        throw new TypeError('Incorrect key format');
      }

      // Create a Cipher if we have a valid key
      this.cipher = new Cipher({key, version});

      this.key = key;
    }
  }
Low-level class for parsing packets.
@class
@param {Object} options Options
@param {String} options.key localKey of cipher
@param {Number} [options.version=3.1] protocol version
@example
const parser = new MessageParser({key: 'xxxxxxxxxxxxxxxx', version: 3.1})