Consider ICCCM/EWMH, start implementing it, decide it sucks, scrap all code related, write a new and completely incompatible spec, start trying to implement it, realize you didn't quite think this through, scrap the spec, reconsider ICCCM/EWMH, and then make this thing compliant.
Consider ICCCM/EWMH, start implementing it, decide it sucks, scrap all code related, write a new and completely incompatible spec, start trying to implement it, realize you didn't quite think this through, scrap the spec, reconsider ICCCM/EWMH, and then make this thing compliant.