docs: @SuppressWarnings({"unchecked", "unused"})
      public <K, V> ICache<K, V> getOrCreateCache(String cacheName, CacheConfig<K, V> cacheConfig) {
          ensureOpen();
          String cacheNameWithPrefix = getCacheNameWithPrefix(cacheName);
          ICacheInternal<?, ?> cache = caches.get(cacheNameWithPrefix);
          if (cache == null) {
              cache = createCacheInternal(cacheName, cacheConfig);
          }
          return ensureOpenIfAvailable((ICacheInternal<K, V>) cache);
      }