migrate key signature quiz to scored exercise
Created by: jedmund
Summary
- Wraps the Key Signature Quiz in
ExerciseState+ScoringOverlay, following the Scale Builder template from #32. Lesson pages gain akeySignatureQuizLayouthelper onPageContainerthat records progress on completion. - Fixes the long-broken
identify_accidentalsmode: options are now derived from the prompts' accidental sets (e.g."F♯ C♯"), and comparison/feedback/per-question review all route through the joined accidental string instead of the key name. - Migrates the playground to invoke
KeySignatureQuizExercisedirectly and removes the now-unusedKeySignatureQuizView+ itsToolViewFactorycase. - Fleshes out the KSQ playground configurator to match Interval and Scale Builder: drops the "Quiz" section header and adds a keys multi-select (all 13 major keys), progressive difficulty, and total questions. Prompts are generated from the selected keys with auto-built explanations.
- Adds an "Under Construction" group on the Home screen and moves Scale Explorer, Mode Rotator, Virtual Synth, and Mod Matrix there so Exercises reflects what's actually polished and scored.
Test plan
-
Build succeeds for iPad Pro 13" (M5) simulator -
Standalone playground: answer selection → feedback → completion card → retry -
Per-question review shows the right correct answer in both modes -
Home screen shows Tools / Exercises / Under Construction with correct membership -
Lesson-context flow in Music Theory 2-ex2 (manual) -
KSQ configurator: keys deselect, progressive mode, totalQuestions truncation (manual)