The COLORS interface is difficult to work with and many QoL improvements could be made.
Have the 16 colors represented by a static array of structs is code that is not self describing and requires documentation consultation to understand which color is which.
Additionally, the static array can only be indexed using a usize, which is an unnecessary constraint and helper interfaces can be implemented to improve the user experience.