The maximum end of the range.
If includeMax is
true, this will be the maximum allowed version.
Otherwise, it will be the lowest version above the range that is not
This may be
null in which case the range has no maximum end and allows
any version greater than the minimum.
Version get max => this;