cards/packages/cards-domain/src
Till JS 2b36990e43 feat(cards): multiple-choice Card-Type mit dynamischen Distractors
- CardTypeSchema: 'multiple-choice' (Felder: front + answer, distractor_pool optional)
- subIndexCount: 'multiple-choice' → 1
- GET /api/v1/decks/:deckId/distractors: N zufällige Feldwerte anderer Karten
  im Deck; field-Allowlist (front/back/answer/question); RANDOM() ORDER; Fallback
  auf distractor_pool wenn Deck < 4 Karten
- fetchDistractors(): Frontend-Client-Funktion
- MultipleChoiceView.svelte: lädt Distractors on mount, shuffelt 4 Optionen,
  zeigt Sofort-Feedback (correct/wrong/neutral), Keyboard 1–4 + Space;
  auto-grade correct→good, wrong→again
- Study-Page: isMultipleChoice + multipleChoiceData derived, Action-Bar
  ausgeblendet, onKey delegiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 15:28:37 +02:00
..
protocol Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt 2026-05-08 18:00:56 +02:00
schemas feat(cards): multiple-choice Card-Type mit dynamischen Distractors 2026-05-10 15:28:37 +02:00
cloze.ts Phase 9i: Cloze-Hint-Anzeige 2026-05-08 18:26:00 +02:00
content-hash.ts Phase 9j: Anki-Re-Import-Dedupe via content_hash 2026-05-08 18:29:56 +02:00
fsrs.ts feat(cards): multiple-choice Card-Type mit dynamischen Distractors 2026-05-10 15:28:37 +02:00
image-occlusion.ts Phase 9l: Image-Occlusion als 4. MVP-CardType 2026-05-08 18:50:45 +02:00
index.ts feat(cards): typing Card-Type mit Fuzzy-Match 2026-05-10 15:23:58 +02:00
typing.ts feat(cards): typing Card-Type mit Fuzzy-Match 2026-05-10 15:23:58 +02:00