After doing some work recently, I was wondering how someone else might design a client. Given any design goal, simplicity, academic, practical, extensibility, etc. - what would your architectural model look like? I'm more refering to code structure, but given free reign how, if at all, would you improve/redesign a subspace client (e.g. change the Hud layout)? I've attached the model (note that it is not exhaustive by any means) I've been using and welcome any comments/feedback. I'm really curious, though, as to how someone else would have done it.