0.12.0 added rect, aabox,
sphere, capsule, ray, and
plane as proper value types, joining the vectors, matrices,
and quaternions that were already in the language.
The interesting part is how they read. Operations sit on the value
itself: s.volume(), r.contains(p),
ray.hits(sphere). There is no math library to import and
wire up, and no free-function soup to memorize. If you have a shape, the
things you can ask it are right there on the receiver, and your editor's
completion shows them.
This release also standardized that style across the older math
types, so matrix and quaternion constructors now read under their type:
mat4.translate(v), mat4.rotate(q). One idiom
everywhere, which matters more than it sounds like it should. Game code
is mostly geometry glue, and glue you can read at a glance is glue you
stop getting wrong.