Yeah, you could do all this internally at runtime, sanitize input at the edges and such, but why have that ambiguity instead of making the rules clearly visible to designers?
That's also the sort of runtime cost that might invisibly add up everywhere (like when they replaced all the float triples in Minecraft with Vector classes).
(#gamedev)
(I'm talking about this because I failed to do this early on with Dirtbags, I have rag rats)