anchor.diff:        CardDirection.values[(orientation.index + 1) % 4];
     static CardDirection ccw(CardDirection orientation) =>
         CardDirection.values[(orientation.index + 3) % 4];
  -  static Set<CardDirection> exits(CardType type, CardDirection dir) {
  +  static Set<CardDirection> exits(Card card, CardDirection dir) {
       Set<CardDirection> exits = new Set<CardDirection>();
   
  -    switch (type) {
  -      case CardType.REC:
  -      case CardType.DOC:
  -      case CardType.COM:
  +    switch (card) {
  +      case Card.rec:
  +      case Card.doc:
  +      case Card.com:
           exits = new Set<CardDirection>.from([dir]);
           break;
  -      case CardType.LAB:
  +      case Card.lab:
           exits = new Set<CardDirection>.from([dir, cw(dir)]);
           break;
  -      case CardType.FAC:
  +      case Card.fac:
           exits = new Set<CardDirection>.from([dir, opposite(dir)]);
           break;
  -      case CardType.HAB:
  +      case Card.hab:
           exits = new Set<CardDirection>.from(CardUtil.allDirections);
           exits.removeWhere((exitdir) => exitdir == dir);
           break;
  -      case CardType.POW:
  +      case Card.pow:
           exits = new Set<CardDirection>.from(CardUtil.allDirections);
           break;
  -      case CardType.SAB:
  -        throw new ArgumentError.value(CardType.SAB);
  +      case Card.sab:
  +        throw new ArgumentError.value(Card.sab);
           break;
       }
   
  
positive.code:   final int cost;
    final bool isCap;
  
    const Card._(this.type, this.name, this.priority, this.cost, this.isCap);
  
    static const Card rec = const Card._(CardType.REC, "Recreation", 0, -1, true);
    static const Card doc = const Card._(CardType.DOC, "Docking Bay", 1, -1, true);
    static const Card com = const Card._(CardType.COM, "Communication", 2, -1, true);
    static const Card lab = const Card._(CardType.LAB, "Laboratory", 3, 1, false);
    static const Card fac = const Card._(CardType.FAC, "Factory", 4, 1, false);
    static const Card hab = const Card._(CardType.HAB, "Habitat", 5, 2, false);
    static const Card pow = const Card._(CardType.POW, "Power Station", 6, 3, false);
    static const Card sab = const Card._(CardType.SAB, "Sabotage", 7, 1, false);
  
    String toString() => "Type: ${type.toString()} Name: $name Priority: $priority Cost: $cost isCap: $isCap";
  
    int get hashCode {
      int result = 17;
  
negative.code: part of dartbase_server;
  
  enum CardDirection { up, right, down, left }
  
  class Card {
    static const int deckSize = 20;
  