Problem
Skyline.Apple gives macOS real native chrome (transparent/unified title bar) and is where native IME/a11y/cursor live. Windows and Linux only have the portable GLFW path. Eventually they want native backends for OS-native chrome and the native services GLFW can't reach.
Current state
src/Skyline/WindowBackendFactory.cs already picks a backend and reflectively loads Skyline.Apple on macOS, falling back to GLFW — the seam is extensible.
src/Skyline/IWindowBackend.cs is the contract; src/Skyline/AppKitChromeMap.cs shows the chrome-mapping pattern.
What's needed
- A short design doc for
Skyline.Windows (Win32) and Skyline.Linux (X11/Wayland) backends: window creation, event pump/threading contract, chrome mapping, surface factory, and the native services (cursor, IME, a11y, clipboard) they'd own.
- Extend the factory to try-load these by name before GLFW, falling back cleanly.
- Optional stub projects to lock the seam.
Acceptance criteria
- Design doc agreed; factory extension (or documented plan) in place. GLFW remains the supported fallback — this is not required to ship cross-platform on GLFW.
Problem
Skyline.Applegives macOS real native chrome (transparent/unified title bar) and is where native IME/a11y/cursor live. Windows and Linux only have the portable GLFW path. Eventually they want native backends for OS-native chrome and the native services GLFW can't reach.Current state
src/Skyline/WindowBackendFactory.csalready picks a backend and reflectively loadsSkyline.Appleon macOS, falling back to GLFW — the seam is extensible.src/Skyline/IWindowBackend.csis the contract;src/Skyline/AppKitChromeMap.csshows the chrome-mapping pattern.What's needed
Skyline.Windows(Win32) andSkyline.Linux(X11/Wayland) backends: window creation, event pump/threading contract, chrome mapping, surface factory, and the native services (cursor, IME, a11y, clipboard) they'd own.Acceptance criteria