CachedLayerOpener

typealias CachedLayerOpener = suspend (contentManager: ContentManager, entry: CacheEntry, cachePolicy: CachePolicy) -> Any?

One reconstruction recipe — given a ContentManager and a CacheEntry, produce a layer/coverage/null. Implementations open the appropriate store on contentManager, wrap a fresh network source in the matching cache decorator, and return the assembled layer/coverage. To open in strict cache-only mode, call setOfflineOnly on the returned object.