Comment by bietroi
It's cool to see that others have explored some of these concepts more generally, thanks for the links!
The glowstick shape is also a type-level list of integers, and I could definitely see how other shapes might be useful in different situations.
Doing this sort of thing in Rust is a bit of a stretch for sure, but it makes the outcome easy to apply which is nice.