def METHOD_NAME(cls, kwargs):
    """Override VirtualSiteHandler._add_default_init_kwargs without rmin_half/epsilon logic."""
    type_ = kwargs.get("type", None)
    if type_ is None:
        raise SMIRNOFFSpecError("the `type` keyword is missing")
    if type_ not in get_args(_VirtualSiteType):
        raise SMIRNOFFSpecError(
            f"'{type_}' is not a supported virtual site type",
        )
    if "charge_increment" in kwargs:
        expected_num_charge_increments = cls._expected_num_charge_increments(
            type_,
        )
        num_charge_increments = len(kwargs["charge_increment"])
        if num_charge_increments != expected_num_charge_increments:
            raise SMIRNOFFSpecError(
                f"'{type_}' virtual sites expect exactly {expected_num_charge_increments} "
                f"charge increments, but got {kwargs['charge_increment']} "
                f"(length {num_charge_increments}) instead.",
            )
    supports_in_plane_angle = cls._supports_in_plane_angle(type_)
    supports_out_of_plane_angle = cls._supports_out_of_plane_angle(type_)
    if not supports_out_of_plane_angle:
        kwargs["outOfPlaneAngle"] = kwargs.get("outOfPlaneAngle", None)
    if not supports_in_plane_angle:
        kwargs["inPlaneAngle"] = kwargs.get("inPlaneAngle", None)
    match = kwargs.get("match", None)
    if match is None:
        raise SMIRNOFFSpecError("the `match` keyword is missing")
    out_of_plane_angle = kwargs.get("outOfPlaneAngle", 0.0 * unit.degree)
    is_in_plane = (
        None
        if not supports_out_of_plane_angle
        else numpy.isclose(out_of_plane_angle.m_as(unit.degree), 0.0)
    )
    if not cls._supports_match(type_, match, is_in_plane):
        raise SMIRNOFFSpecError(
            f"match='{match}' not supported with type='{type_}'" + ""
            if is_in_plane is None
            else f" and is_in_plane={is_in_plane}",
        )