# Issue #224 — Trunk-sekvens for #175 (A/B/C) Formål: gøre #175 scheduler-klar som tre små, uafhængige og mergeklare bidder. ## Sekvens ### A) Backend i18n baseline - Tracking issue: #225 - Scope: - Backend resolver til locale (da/en) - Fallback til `en` ved unsupported locale - Stabil fejlkontrakt i payload (`error_code`, `error`, `locale`) - Mergebarhed: Kan merges uden frontend-ændringer. - Acceptance: - Backend tests dækker `da` + fallback `en` - Kontraktfelter er stabile i response ### B) Shared key-map + locale-kontrakt - Tracking issue: #226 - Scope: - Én shared key-map for lobby/kerneflow - Locale-kontrakt (tilladte locales, default locale, fallback-regler) - Dokumentation af naming + ownership - Mergebarhed: Kan merges uden host/player UI-migrering. - Acceptance: - Shared kontrakt findes ét sted - Begge sider kan importere den - Docs opdateret med da/en eksempler ### C) Angular host/player integration + hardcoded-text cleanup - Tracking issue: #227 - Scope: - Angular host/player kerneflow bruger shared keys - Hardcoded tekster fjernes i aftalte kernekomponenter - Sprogskift verificeres i kritiske states - Mergebarhed: Kan merges selvstændigt når frontend-tests er grønne. - Acceptance: - Korrekt i18n-copy i da/en i kerneflow - Ingen hardcoded kerneflow-tekster tilbage - Frontend tests/smoke grønne ## PR-grænser (per bid) - 1 PR pr. bid (A/B/C) mod `main` - Mål: ~200–300 net LOC per PR (ekskl. generated artefakter) - Undgå cross-layer scope creep - Review-tid <30 min ## Overordnet acceptance for #224 - A/B/C-sekvens er tydelig med links - Hver bid er mergebar isoleret - Scheduler kan assign’e direkte uden ekstra afklaring ## Verification (docs-only) - Verificeret at dokumentet kun beskriver trunk-sekvensen for issue #224 og linker til #225/#226/#227. - Ingen runtime-kode ændret; der er derfor ikke kørt kode/tests i denne PR.