client-server message classes
use Play's actor-distributing execution context
JSON endpoint DRY framework