This should be optional, but not required. In the future, when you make support for colors on the controls, you'll see that a program could be better looking by coloring the background of some static controls.
Also, for control sizing, I was thinking that automatic height would be an option for static text labels. In this example, since a width is specified as w100, the height will be automatically calculated based on how much text there is and how many times it starts a new line (based on wrapping and linefeeds (`n) in the text)
I know it's a good feature, but sometimes we might want to make the buttons to occupy the entire dialog...
Maybe the above should also be done for buttons and checkboxes.
You could add an option for entering special flags for controls, like the indeterminated (grayed) state of a checkbox, multi or extended selection of items in a listbox, images for normal buttons, and more... However, do the basic GUI first, then you add features like this.
Yep, this is the job for the developer to do.
I didn't want to spend too much time initially on layout features. For example, the concept of docking a group of controls to the bottom or right sides of a window might be deferred until a later release. So might some kind of dynamic re-positioning that occurs when the user resizes the window.