## Phase 4 Complete: DAT verifier TL;DR: Implementado `datVerifier` para parsear archivos DAT (XML) y verificar hashes de ROMs (CRC/MD5/SHA1/size). Se añadieron tests TDD y una fixture XML; los tests específicos pasan y se aplicó un parche menor de calidad. **Files created/changed:** - backend/src/services/datVerifier.ts - backend/tests/services/datVerifier.spec.ts - backend/tests/fixtures/sample.dat.xml - backend/package.json (se añadió `fast-xml-parser` en devDependencies) **Functions created/changed:** - `parseDat(xml: string): DatDatabase` — parsea y normaliza la estructura DAT a un modelo en memoria. - `verifyHashesAgainstDat(datDb: DatDatabase, hashes): {gameName, romName, matchedOn} | null` — verifica hashes contra el DAT y devuelve la coincidencia. **Tests created/changed:** - `backend/tests/services/datVerifier.spec.ts` — cubre parsing, match por CRC/MD5/SHA1/size y ausencia de match. - `backend/tests/fixtures/sample.dat.xml` — fixture usada por las pruebas. **Review Status:** APPROVED with minor recommendations **Git Commit Message:** feat: add datVerifier and tests - Añade `datVerifier` con `parseDat` y `verifyHashesAgainstDat` - Añade tests y fixture XML para validar matching por CRC/MD5/SHA1/size - Añade `fast-xml-parser` en `backend/package.json` (devDependency)