2. USB GUI -- user interface for serial users (also low-level setup for the controller)
I don't quite understand what you mean by these. You mean you want to plug a USB keyboard in to your controller? Or plug it into a PC USB port and configure/control it from a UI on the PC?
3. Serial command interface -- users can control the unit over serial commands rather than software
What do you mean by that?
Perhaps it would be best to produce a system block diagram showing the interfaces your controller needs to provide, and what you intend to use those interfaces. This would also be a good starting point for defining your use cases if you're serious about collaboration.