07e035771c
Resume-prompt Option F, part 2 of 2 — pairs with the engine wiring inc5787c6. Adds two toggle rows to the Settings panel under Cosmetic so players can flip the new accessibility flags without hand-editing settings.json. Mirrors the Color-blind Mode row pattern almost exactly: - Two new marker components (`HighContrastText`, `ReduceMotionText`) tagging the Text nodes that show ON/OFF. - Two new `SettingsButton` enum variants (`ToggleHighContrast`, `ToggleReduceMotion`) with `focus_order` 61/62 — sit right after `ToggleColorBlind` (60) so tab-walk visits all three accessibility flags in one vertical run before continuing to picker rows. - Two new click-handler branches in `handle_settings_buttons` flipping the bool, persisting, broadcasting `SettingsChangedEvent`, and updating the row label. - Two new live-label updaters (`update_high_contrast_text`, `update_reduce_motion_text`) so the row reflects external changes (e.g. someone editing settings.json mid-session, or a future a11y-import feature). - Generic `on_off_label(enabled: bool) -> String` helper shared by both new toggles. Could fold `color_blind_label` and `winnable_deals_only_label` into it too — punted for scope; both already work and a name-only refactor would just churn the diff. Query-disambiguator chains updated: every existing settings-text query in `handle_settings_buttons` gains `Without<HighContrastText>, Without<ReduceMotionText>` at the end so the new components don't ambiguate the existing mutations. The two new queries carry mirrored `Without<...>` chains for the same reason. Verbose but matches the existing pattern; future Bevy archetype-set query API would simplify this, not in 0.18. Workspace clippy + cargo test --workspace clean. 1191 passing (unchanged fromc5787c6— UI plumbing has no test coverage in this commit; the toggle behaviour is exercised through the engine tests inc5787c6). Closes Resume-prompt Option F. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>