docs: def _read(self):
      """Actually read the response and parse it, returning a Response."""
      with sw("read_response"):
        with catch_websocket_connection_errors():
          response_str = self._sock.recv()
      if not response_str:
        raise ProtocolError("Got an empty response from SC2.")
      response = sc_pb.Response()
      with sw("parse_response"):
        response.ParseFromString(response_str)
      return response