What the user sees != what the meaning is. The colors are useful representations in a GUI but less so for an API. They could just as well be "matte", "glossy", and "sparkly", but that doesn't tell an API user what those words mean. If the API client chooses to display colors according to the representation chosen for the PyBitmessage GUI, that would be an appropriate place to again assign red, yellow, and green.