This is kinda a reply to /u/HeroesGrave's reply. Over the past year+, I've put a lot of thought into creating a solid GUI library. I know I'm kinda late to the party (until now, I hadn't written this down, other than what been coded), nonetheless here are my thoughts.
Some areas I've left kinda vague, hoping that readers would be able to extrapolate. Feel free to fork/PR, comment, critique etc.