Using the default value as the minimum is somewhat unclear. I'd prefer to make this an explicit piece of metadata, e.g. `protocol_version = Version(min='5.0')`, even if that takes a little more code.