anchor.diff:  			if (!slot.isEmpty) {
   				item = new Item.clone(slot.itemType);
   				item.metadata = slot.metadata;
  -				if (item.isContainer) {
  -					if (item.metadata['slots'] != null) {
  -						List<Slot> bagSlots = jsonx.decode(item.metadata['slots'], type: listOfSlots);
  -						List<Map> bagSlotMaps = [];
  -						bagSlots.forEach((Slot bagSlot) {
  -							Item bagItem = null;
  -							if (!bagSlot.isEmpty) {
  -								bagItem = new Item.clone(bagSlot.itemType);
  -								bagItem.metadata = bagSlot.metadata;
  -							}
  -							Map bagSlotMap = {
  -								'itemType':bagSlot.itemType,
  -								'item':encode(bagItem),
  -								'count':bagSlot.count
  -							};
  -							bagSlotMaps.add(bagSlotMap);
  -						});
  -						item.metadata['slots'] = bagSlotMaps;
  -					} else {
  -						List<Map> bagSlotMaps = [];
  -						for (int i = 0; i < item.subSlots; i++) {
  -							bagSlotMaps.add(encode(new Slot()));
  +				if (item.isContainer && item.metadata['slots'] != null) {
  +					List<Slot> bagSlots = jsonx.decode(item.metadata['slots'], type: listOfSlots);
  +					List<Map> bagSlotMaps = [];
  +					bagSlots.forEach((Slot bagSlot) {
  +						Item bagItem = null;
  +						if (!bagSlot.isEmpty) {
  +							bagItem = new Item.clone(bagSlot.itemType);
  +							bagItem.metadata = bagSlot.metadata;
   						}
  -						item.metadata['slots'] = bagSlotMaps;
  -					}
  +						Map bagSlotMap = {
  +							'itemType':bagSlot.itemType,
  +							'item':encode(bagItem),
  +							'count':bagSlot.count
  +						};
  +						bagSlotMaps.add(bagSlotMap);
  +					});
  +					item.metadata['slots'] = bagSlotMaps;
   				}
   			}
   			Map slotMap = {
  
positive.code: 		}
  	}
  
  /// moveItem is in street_update_handler.dart
  }
  
  @app.Route("/getInventory/:email")
  
negative.code: 		try {
  			// Make sure the bag accepts this item
  			assert(items[slots[bagIndex].itemType].filterAllows(itemType: newContents.itemType));
  		} catch(e) {
  			return null;
  		}
  
  