.changelog/3562.md
allowedPlatforms — New optional allowedPlatforms field on FeatureFlag gates features to specific OS platforms (ios, tvos, macos, visionos); nil means all platforms (backwards-compatible default).PVThinLibretroCore thin wrapper is now the default core factory on tvOS; iOS retains the old off-by-default behavior.PVPlatform enum — ios, tvos, macos, visionos with a current compile-time property; lives in PVFeatureFlags alongside PVAppType.PVFeatureFlags.init() now eagerly loads features.json so platform-gated defaults (e.g. dynamicLibretroScanner on tvOS) are active from the first flag read, before any remote config is fetched.airPlayMenu missing from features.json — Added the missing entry; previously getAllFeatureFlags() returned "Feature not defined in configuration" as the description.PVCoreFactory platform gate — Replaced manual UserDefaults + override-dict check with PVFeatureFlags.shared.isEnabled(.dynamicLibretroScanner) so the platform gate is applied automatically.