anchor.diff:    fromJsonMap(Map<String, Object> jsonMap) {
       super.fromJsonMap(jsonMap);
       distanceHeight = jsonMap['distanceHeight'];
  -    index = jsonMap['index'];
  -    shape = pieceShape(index);
  +    shape = PieceShape.values[jsonMap['index']];
       toReappear = jsonMap['toReappear'];
       dy = jsonMap['dy'];
     }
  
positive.code:   
    Piece(this.id);
    
    PieceShape pieceShape(int index) {
      switch(index) {
        case 0: return PieceShape.CIRCLE;
        case 1: return PieceShape.LINE;
        case 2: return PieceShape.RECTANGLE;
        case 3: return PieceShape.SQUARE;
        case 4: return PieceShape.TAG;
      }
      return null;
    }
    
    fromJsonMap(Map<String, Object> jsonMap) {
      id  = jsonMap['id'];
      index = jsonMap['index'];
      shape = pieceShape(index);
      x = jsonMap['x'];
      y = jsonMap['y'];
      width = jsonMap['width'];
  
negative.code:   static const String defaultCode = '#000000';
   
    int id;
    PieceShape shape = defaultShape;
    num x = 0;
    num y = 0;
  