def METHOD_NAME(self, service: BaseService) -> None:
    """Add a new service.
    If the service already exists, it will be merged.
    """
    existing = self._services.get(service.protocol)
    if existing is not None:
        existing.merge(service)
    else:
        self._services[service.protocol] = service