docs: @SuppressWarnings("unchecked")
      // The warning 'unchecked cast' being suppressed here comes from the build() formally returning
      // a MessageLite-derived class that cannot be statically guaranteed to be the MessageType.
      private void deserializeMessage(ByteBuffer buff) throws Exception {
          MessageType msg = (MessageType) prototype.newBuilderForType().mergeFrom(ByteString.copyFrom(buff)).build();
          resetTimeout();
          handler.messageReceived(this, msg);
      }