croupier: Modify commands and add syncbase log schema

Commands now identify a phase and a the level of simultaneity.

Depending on whether or not something is simultaneous, the LogWriter (or mock)
will act differently.

The mock doesn't need to do much extra work since it "knows" it's on a single
device. However, it's implementation closely mirrors that of the Syncbase
Schema. The mock has been well-tested, as has the Syncbase schema.

The procedure was basically to play a complete round in each case and to try
out "bad moves" and check that there were no crashes or deadlocks.

Next steps:
- Create a Multiplayer Hearts Game that forks off the current one.
  This one may require using 4 Android or 4 Desktop instances.
  Both are problematic, so this will require some thought.
- While blocked on the former, I can also work on cleaning up the code
  on the implementation and UI sides.

Change-Id: I23cd49e0552287e03ad2eb787f15cb5d92e88dc8
18 files changed
tree: 6be13e856e2c66d2e9fc6ce09c60eb6177f30cb5
  1. go/
  2. images/
  3. lib/
  4. test/
  5. .gitignore
  6. AUTHORS
  7. CONTRIBUTING
  8. CONTRIBUTORS
  9. LICENSE
  10. Makefile
  11. manifest.yaml
  12. PATENTS
  13. pubspec.yaml
  14. README.md
  15. VERSION
README.md

This is the basic Getting Started with Sky + some Widgets.

To run this, just do ./packages/sky/sky_tool start

when your phone is connected. Add --install to the end if this is the first run.

You may also want to debug any problems. Use dartanalyzer. dartanalyzer lib/main.dart