This version is a refactoring of the previous code. It segregates views/models/controllers, and uses async constructs such as Streams to trigger UI changes instead of ChangeNotifiers. The goal is to ease the adition of new communication channels, as they only need to implement the [Guest|Host]NetworkController to do the job.
Edited minor things before publication
Single player with some scaffolding