The architecture of Modality is still in a very early alpha stage. My current strategy is to start with working code, and slowly adapt the system to new use cases, thinking ahead as much as possible and refactoring when necessary. As parts of the system stabilize, I hope to move to a more test-driven strategy, but right now things are just changing too fast for that to be practical.
In order to stay ahead of the curve, I've been jotting down my thoughts about how I imagine bits of the system working: