By annotating the z property with @expose the compiler does not try to optimize that property in any way. See https://developers.google.com/closure/compiler/docs/js-for-compiler. The doc says that @expose should never be used in library code, but that's the only way I found for our case.
We continue to inherit from goog.math.Vec2 instead of goog.math.Vec3
because goog.math.Vec2 better represents a position in space, with
appropriate functionality, whereas goog.math.Vec3 represents a direction
and magnitude.