Now that we're at it, you could also add the possibility to add texts to buttons that can change their color or position when the mouse is above or clicking the button. That would be very useful if you have many buttons with the same background bitmap but different texts, so you don't have to create own bitmaps for each button.
A big thumb-up for that! Almost every button in my game has some text associated with it (that I place with a digits element). It makes sense for buttons to have their own text property with colour and offset values.
I'd say the button definition itself shouldn't change (for backwards-compatibility's sake), but add functions that activate this extra functionality (like text, font, colour depending on button state [hover, active, inactive]), and we can call these functions in a startup-function.
Jibb