anchor.diff:  
     Item _loadItem(Map data) {
       var type = content.items[data['type']];
  +    if (type == null) {
  +      print("Couldn't find item type '${data['type']}, discarding item.");
  +      return null;
  +    }
   
       var prefix;
       if (data.containsKey('prefix')) {
  
positive.code:   }
  
    HeroClass _loadWarrior(Map data) {
  
      return new Warrior.load(
          fighting: data['fighting'],
          combat: data['combat'],
  
negative.code:       var name = hero['name'];
  
        var inventory = new Inventory(Option.INVENTORY_CAPACITY);
        for (var itemData in hero['inventory']) {
          var item = _loadItem(itemData);
          if (item != null) inventory.tryAdd(item);
        }
  
        var equipment = new Equipment();
        for (var itemData in hero['equipment']) {
          var item = _loadItem(itemData);
          // TODO(bob): If there are multiple slots of the same type, this may
          // shuffle items around.
          if (item != null) equipment.equip(item);
        }
  
        var home = new Inventory(Option.HOME_CAPACITY);
        for (var itemData in hero['home']) {
          var item = _loadItem(itemData);
          if (item != null) home.tryAdd(item);
        }
  
        var crucible = new Inventory(Option.CRUCIBLE_CAPACITY);
        for (var itemData in hero['crucible']) {
          var item = _loadItem(itemData);
          if (item != null) crucible.tryAdd(item);
        }
  
        var experience = hero['experience'];
  