.changelog/2793.md
PVJITRequirement key in its own Core.plist (required, optional, or notRequired). CoreLoader automatically populates a thread-safe PVJITRequirementRegistry (using PVCoreBridge.PVJITPlistRequirement) at startup — no hardcoded identifier list to maintain.PVEmulatorCore.jitRequirement property — open var jitRequirement: PVPrimitives.PVJITRequirement on PVEmulatorCore (default: .notSupported) lets the app layer query any core's JIT requirement directly without a string lookup. Dolphin → .automaticWithFallback; melonDS, DeSmuME 2015, PCSX Rearmed, Mupen64Plus, PPSSPP, Flycast, Play! → see DEVELOPER.md table; Azahar (Citra) and emuThree → .requiredOrCrash.PVPrimitives.PVJITRequirement enum — richer four-case enum with .notSupported, .optional(fallback:), .requiredOrCrash, and .automaticWithFallback. Includes isSafeWithoutJIT and hasJIT helpers for the app layer.PVCoreBridge.PVJITPlistRequirement enum — simple three-case plist-level classification (notRequired, optional, required) used by PVJITRequirementRegistry. Distinct name from PVPrimitives.PVJITRequirement to prevent compiler ambiguity in modules that import both.PVJITDisabledWithoutJIT plist key — new Core.plist key that marks cores disabled solely because they need JIT. CoreLoader.jitDisabledCoreIdentifiers() returns these identifiers so the app can auto-enable them once a JIT entitlement is acquired (smart JIT acquisition flow, #2794).PVJITRequirementRegistry.reset() — added public reset() method; CoreLoader.registerJITRequirements was calling it but only _resetForTesting() existed, which would have caused a compile error.jitRequirement override — PVFlycastEmuCore now correctly declares .optional(fallback: "Interpreter"), matching its Core.plist and documentation.jitRequirement override — PVPlayCore now correctly declares .requiredOrCrash, matching its Core.plist required entry.CorePlistEntry == and EmulatorCoreInfoPlist == helpers now include PVJITRequirement and PVJITDisabledWithoutJIT fields so JIT data isn't silently dropped in equality checks.