- Add AppState for window close-requested dispatch
- Extend UserEvent with ShowWindow/HideWindow/RequestClose/SetWindowTitle/RequestWindowInnerSize/FocusWindow
- Add WindowOptions with #[napi(object)] directly (remove KhWindowOptions shim)
- Convert setOnCloseRequested to onCloseRequested setter
- Remove unused CallbackList/encode_callback_key/decode_callback_key
- Narrow AppHandler::new to pub(crate)
- Wire up solid createWindow with close/focus/resize/visibility
Replace hand-written bind group layouts, uniform structs, and shader loading
with codegen from wgsl-bindgen. All 12 WGSL shaders now generate compile-time
verified Rust bindings via build.rs.
- Add wgsl_bindgen as build-dependency
- Consolidate all shaders into shaders/ directory
- Generate typed bind group constructors, uniform structs, pipeline helpers
- Migrate compositor, image_blit, and all 6 effect modules to use generated code
- Compile-time layout asserts guarantee WGSL↔Rust struct consistency