anchor.diff:    new_game() {
       var start = mkmsg("start_game", {"table_id": id});
       tsocket.send(json.stringify(start));
  +  }
  +
  +  recv_deal(new_dealer, new_cards) {
  +    cards.addAll(new_cards);
  +    dealer = new_dealer;
  +    print("Received new dealer $dealer and cards $new_cards");
  +  }
  +}
  +
  +class Card {
  +  int value;
  +  int suit;
  +
  +  Card(this.value, this.suit);
  +
  +  factory Card.from_json(json) {
  +    var value = json['value'];
  +    var suit = json['suit'];
  +    return new Card(value, suit);
  +  }
  +
  +  String toString() {
  +    return "Card v: $value s: $suit";
     }
   }
   
  
positive.code:       table.recv_part(message['seat'], message['name']);
      } else if (message['type'] == "you_part") {
        table.recv_you_part();
      } else if (message['type'] != null) {
        var type = message['type'];
        print("Received message with type $type");
  
negative.code:   var url = window.location.toString();
    window.open(url, "_blank");
  }
  
  const int CLUBS = 1;
  const int DIAMONDS = 2;
  const int SPADES = 3;
  const int HEARTS = 4;
  
  typedef void MessageCallback(dynamic data);
  
  