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