@nprofile1q... May I recommend "Gettys' Rules" from the X11 manuals ?
1.Do not add new functionality unless an implementor cannot complete a real application without it.
2.It is as important to decide what a system is not as to decide what it is. Do not serve all the world's needs; rather, make the system extensible so that additional needs can be met in an upwardly compatible fashion.
1/N