def minimum_katcp_version(major, minor=0):
    """Decorator; exclude handler if server's protocol version is too low

    Useful for including default handler implementations for KATCP features that
    are only present in certain KATCP protocol versions

    Examples
    --------
    >>> class MyDevice(DeviceServer):
    ...     '''This device server will expose ?myreq'''
    ...     PROTOCOL_INFO = katcp.core.ProtocolFlags(5, 1)
    ...
    ...     @minimum_katcp_version(5, 1)
    ...     def request_myreq(self, req, msg):
    ...         '''A request that should only be present for KATCP >v5.1'''
    ...         # Request handler implementation here.
    ...
    >>> class MyOldDevice(MyDevice):
    ...     '''This device server will not expose ?myreq'''
    ...
    ...     PROTOCOL_INFO = katcp.core.ProtocolFlags(5, 0)
    ...
    """
    version_tuple = (major, minor)
    def decorator(handler):
        handler._minimum_katcp_version = version_tuple
        return handler

    return decorator