public AnimationFlags Load(string path, string name)
        {
            var cacheKey = $"{path}/{name}";

            if (_cache.ContainsKey(cacheKey))
            {
                return(_cache[cacheKey]);
            }

            foreach (var config in _settings)
            {
                var flags = config.Load(path, name);
                if (flags != null)
                {
                    _cache[cacheKey] = flags;
                    return(flags);
                }
            }

            lock (locker)
            {
                var flags = new AnimationFlags();
                _cache[cacheKey] = flags;
                _dumpSetting.Save(path, name, flags);
                return(flags);
            }
        }
 public void Save(string path, string name, AnimationFlags flags)
 {
     lock (locker)
     {
         foreach (var config in _settings)
         {
             var existing = config.Load(path, name);
             if (existing != null)
             {
                 config.Save(path, name, flags);
                 return;
             }
         }
         _cache.Clear();
         _defaultSetting.Save(path, name, flags);
         _dumpSetting.Delete(path, name);
     }
 }