CameraOverrideStore

One camera item's look/quality overrides (§SS-3.2).

Inherits config::IStore

In the namespace construct::settings. Declared in src/libs/libconstruct/construct/settings/CameraOverrideStore.hpp.

Detailed description

Overrides live in the camera `SceneItem`'s `typeData["settingsOverrides"]`, a flat map keyed by canonical id. Two reasons for a dedicated sub-map rather than top-level typeData fields:

- it cannot collide with the camera's own intrinsics, which are `params` entries (fov, nearPlane, …) and never cascade (§SS-3.1); - `params` is expression-bindable and feeds `Instance::parameterNames()`, so putting `environment` there would offer the user an `fx` toggle on a combo-box choice.

typeData serializes with the item already, so the overrides persist with the document for free.

Writes go through `Construct::updateItem`, which classifies a typeData edit that touches no structural field as parameter-only and therefore does NOT fan out `sceneChanged`. That is why camera-level writes need no rate limiter while scene-level ones do (§SS-12).

⚠ The free-orbit EDITOR camera is not a `SceneItem` and has no store: in editor mode there is simply no camera level, rows resolve at Scene, and the UI offers no override affordance (§SS-10.1).

In this section