- MultipleChoiceCardForm: optionales `explanation`-Feld (Erklärung wird
nach Auswahl angezeigt); `field-optional`-Style ergänzt
- MultipleChoiceView: `explanation`-Prop; zeigt Erklärungsbox nach
Auswahl (grün bei richtig, neutral bei falsch); `{#key card_id}`-Block
erzwingt Remount bei Kartenwechsel — behebt State-Leak zwischen Karten
- edit/+page.svelte: MC-Edit-Bug behoben — Karten wurden fälschlich mit
`{front, back}` gespeichert und haben `answer`/`distractor_pool`
überschrieben; `MultipleChoiceCardForm` importiert und verdrahtet;
`canSave` und `onSubmit` handhaben MC korrekt; lädt `answer` +
`distractor_pool` beim Öffnen zurück in `mcOptions`-Array
- new/+page.svelte: `mcExplanation`-State an Form gebunden und beim
Speichern als `fields.explanation` gesetzt
- study/+page.svelte: `explanation` aus Card-Fields extrahiert und
an MultipleChoiceView durchgereicht
- scripts/migrate-factfulness-to-mc.ts: einmalige Migration — 13
Factfulness-Quiz-Karten von `basic` (A/B/C in Freitext) auf
`multiple-choice` mit strukturierten Feldern konvertiert; Deck auf
`visibility=public` gesetzt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Lokales Test-Daten-Tool: 7 Decks gemischt (verschiedene Farben +
Karten-Counts inkl. Empty-Stack für Empty-State-Test) anlegbar
via Browser-Console-Paste.
Auth liest TOKEN/STUB-User-ID aus localStorage, hits cards-api
auf localhost:3081 (lokal) oder cardecky-api.mana.how (live).
Wiederholtes Ausführen erstellt zusätzliche Decks — keine
Unique-Constraint auf Deck-Name. Sauberer Reset über die UI oder
docker exec ... TRUNCATE.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>