anchor.diff:  
       end;
   
  -    FConfig.Load(AProgess, APaths, ResourceLoader, FCombinedConfig);
  -
  -    MergeLegacy(legacy_data, FCombinedConfig);
  -
  -    for iter in FCombinedConfig  do
  -    begin
  -      info := FFactionInfos.Add;
  -      info.Identifier := iter.Key;
  -
  -      o := iter.Value as TJSONObject;
  -
  -      FDestreamer.JSONToObjectEx(o, info);
  -
  -      info.HasTown:=o.IndexOfName('town')>=0;
  -
  -      DebugLn([info.ID, ' ', info.Name]);
  -    end;
  -
  +    Load(AProgess, APaths, legacy_data, FactionInfos);
   
     finally
       dwelling.Free;
  
positive.code:   end;
  
  var
    FConfig: TModdedConfigs;
    FCombinedConfig: TJSONObject;
    legacy_data: TJsonObjectList;
    iter: TJSONEnum;
    o: TJSONObject;
    info: TArtifactInfo;
  begin
    FConfig := TModdedConfigs.Create;
    FCombinedConfig := CreateJSONObject([]);
  
    legacy_data := TJsonObjectList.Create(true);
    artraits := TTextResource.Create(ARTIFACT_TRAITS);
    try
  
      artraits.Load(ResourceLoader);
  
      for i in [0..TextDataConfig.Artifact-1] do
  
negative.code: 
      legacy_config.Add(legacy_config[legacy_config.Count-1].Clone as TJSONObject);
  
      Load(AProgess, APaths, legacy_config, SpellInfos);
    finally
      legacy_config.Free;
      sptrairs.Free;
    end;
  end;
  
  procedure TListsManager.LoadHeroes(AProgess: IProgressCallback;
    APaths: TModdedConfigPaths);
  var
    legacy_data: TJsonObjectList;
    hotraits, herobios: TTextResource;
    i: SizeInt;
    o: TJSONObject;
  begin
    legacy_data := TJsonObjectList.Create(true);
    hotraits := TTextResource.Create(HERO_TRAITS);
    herobios := TTextResource.Create(HERO_BIOS);
    try
      hotraits.Load(ResourceLoader);
      herobios.Load(ResourceLoader);
  
  