code: private ItemDetail getItemDetail(Gson gson, JsonElement itemType, JsonElement detail) {
  		if (itemType == null || detail == null) return null;
  
  		Item.Type type = gson.fromJson(itemType, Item.Type.class);
  		Class<? extends ItemDetail> detailType;
  
  		switch (type) {
  			case Armor:
  				detailType = Armor.class;
  				break;
  			case Back:
  				detailType = Back.class;
  				break;
  			case Bag:
  				detailType = Bag.class;
  				break;
  			case Consumable:
  				detailType = Consumable.class;
  				break;
  			case MiniPet:
  				detailType = Mini.class;
  				break;
  			case Trinket:
  				detailType = Trinket.class;
  				break;
  			case UpgradeComponent:
  				detailType = UpgradeComponent.class;
  				break;
  			case Weapon:
  				detailType = Weapon.class;
  				break;
  			default:
  				detailType = Utility.class;
  		}
  
  		return gson.fromJson(detail, detailType);
  	}
docs: get the correct type of item detail, will give null if itemType/detail is empty