public void load(T state, CompoundTag compound) {
   String checkId = ((StringTag) compound.getValue().get("id")).getValue();
   if (!id.equalsIgnoreCase(checkId)) {
     throw new IllegalArgumentException(
         "Invalid ID loading tile entity, expected " + id + " got " + checkId);
   }
   int checkX = ((IntTag) compound.getValue().get("x")).getValue(), x = state.getX();
   int checkY = ((IntTag) compound.getValue().get("y")).getValue(), y = state.getY();
   int checkZ = ((IntTag) compound.getValue().get("z")).getValue(), z = state.getZ();
   if (x != checkX || y != checkY || z != checkZ) {
     throw new IllegalArgumentException(
         "Invalid coords loading tile entity, expected ("
             + x
             + ","
             + y
             + ","
             + z
             + ") got ("
             + checkX
             + ","
             + checkY
             + ","
             + checkZ
             + ")");
   }
 }
 public Map<String, Tag> save(T state) {
   Map<String, Tag> result = new HashMap<String, Tag>();
   result.put("id", new StringTag("id", id));
   result.put("x", new IntTag("x", state.getX()));
   result.put("y", new IntTag("y", state.getY()));
   result.put("z", new IntTag("z", state.getZ()));
   return result;
 }