- Setting was defined but never used in camera logic
- Flash Mode and Flash Sync settings handle all flash functionality
- Keep property in SyncedSettings for backwards compatibility with saved data
- Remove from SettingsView, SettingsViewModel, and RingLightConfigurable protocol
- MijickCamera's grid defaults to ON (true)
- Add setGridVisibility() call in onAppear to sync initial state
- Add onChange handler to update grid visibility when setting changes
- setCameraPosition is public on MCameraScreen protocol, internal on CameraManager
- Call self.setCameraPosition() instead of cameraManager.setCameraPosition()
- Add onChange handler in CustomCameraScreen to watch cameraPositionRaw
- Call cameraManager.setCameraPosition() at runtime when setting changes
- Camera now switches without needing to recreate the entire MCamera view
- Keep onDismiss fallback in ContentView as safety net
- Use raw string comparison instead of CameraPosition enum
- Add debug logs to trace setting changes and sheet dismiss
- Add cameraPositionRaw accessor to SettingsViewModel
- Track lastCameraPosition to detect changes
- Use sheet onDismiss callback to check if position changed
- Force camera recreation only when position actually changes
- Works around @Observable tracking issues with nested cloudSync data
- Pass camera position from settings to CameraContainerView
- Add onChange handler to regenerate camera session when position changes
- Remove hardcoded .front camera position
- Camera now switches immediately when changed in settings
- Replace inline premium checks with PremiumGate.get/canSet
- Define premium values as static sets for timer options, colors, quality
- Cleaner, more consistent premium gating pattern
- Values preserved when user unsubscribes (restored on re-subscribe)