What is the behavior if I specify 2,147,483,647 as the color?
I would suggest adding a check to make sure this value is within a valid range, instead of the current "has a color? no? no color, otherwise trust the value given" check.