anchor.diff:      begin
         nTile := nTiles.AddObject;
   
  -//      nTile.FromSimpleObject(fTiles[I], False, True);
  +//      nTile.FromSimpleObject(fTiles[I], False, True); // Do not use serialization for now, RTTI is heavy and slow
   
         nTile.I['ID'] := I;
         nTile.B['Walkable'] := fTiles[I].Walkable;
  
positive.code:       AddTileBAttr('IronMinable', fTiles[I].IronMinable);
        AddTileBAttr('GoldMinable', fTiles[I].GoldMinable);
  
        AddTileBAttr('Water',      fTiles[I].Water);
        AddTileBAttr('HasWater',   fTiles[I].HasWater);
        AddTileBAttr('Ice',        fTiles[I].Ice);
        AddTileBAttr('Snow',       fTiles[I].Snow);
        AddTileBAttr('Sand',       fTiles[I].Sand);
        AddTileBAttr('Soil',       fTiles[I].Soil);
        AddTileBAttr('Corn',       fTiles[I].Corn);
        AddTileBAttr('Wine',       fTiles[I].Wine);
  
        nTerKinds := nTile.A['CornersTerKinds'];
        nTerKinds.Add(GetEnumName(TypeInfo(TKMTerrainKind), Integer(fTiles[I].TerKinds[0])));
  
negative.code:       end;
      end;
  
      // Save to stream if specified (used for CRC calculations)
      if aSaveStream = nil then
        nRoot.SaveToFile(GetTilesJsonPath, aCompact, TEncoding.UTF8)
      else
  