To avoid unnecessary CPU time (even if allocations are on the stack) of parsing or func init() hacks to define static versions for comparison, it would be nice to directly be able to set the major, minor, and patch versions on the struct. This might then allow constants to be defined at compile time (depending on the exposure implementation).
To keep maintain the private properties in the struct and to avoid a breaking change, I recommend adding a setter(s) or initializer for Version.