**Prioridad:** P2 · **Tipo:** unit · **Iteración:** 3 · **Archivos:** `src/lib/env.ts`, `src/lib/validation.ts`, `submissions safeEqual` ### Checklist - [ ] `envInt`: válido / ausente→fallback / no numérico→fallback / ≤0→fallback - [ ] `isValidPoints`: enteros ≥0, rechaza negativos/NaN/decimales - [ ] `isValidChallengeLink`: acepta http(s), rechaza `javascript:`/`data:`, acepta vacío - [ ] `safeEqual`: iguales→true, distintos→false, distinta longitud→false sin leak
Prioridad: P2 · Tipo: unit · Iteración: 3 · Archivos:
src/lib/env.ts,src/lib/validation.ts,submissions safeEqualChecklist
envInt: válido / ausente→fallback / no numérico→fallback / ≤0→fallbackisValidPoints: enteros ≥0, rechaza negativos/NaN/decimalesisValidChallengeLink: acepta http(s), rechazajavascript:/data:, acepta vacíosafeEqual: iguales→true, distintos→false, distinta longitud→false sin leak