# Read File with Encoding Detection

Fuente conceptual: OpenViking `openviking/parse/parsers/base_parser.py` (AGPL-3.0)
Reimplementar desde cero. No copiar codigo.

## Funcion a implementar

### read_file_with_encoding

- **Dominio:** infra
- **Lang:** Python
- **Purity:** impure (I/O: lee archivo)
- **Signature:** `read_file_with_encoding(path: str, encodings: list[str] | None = None) -> str`
- **Descripcion:** Lee un archivo de texto intentando multiples encodings en orden hasta encontrar uno que funcione. Util para archivos de origen desconocido (Windows, Latin-1, etc.).
- **Algoritmo:**
  1. Encodings por defecto: `["utf-8", "utf-8-sig", "latin-1", "cp1252"]`
  2. Para cada encoding: intentar abrir y leer
  3. Si UnicodeDecodeError: intentar siguiente
  4. Si ninguno funciona: raise ValueError
- **Deps:** ninguna (stdlib)
- **Error type:** ValueError ("Unable to decode file")
- **Tests:** archivo UTF-8, archivo UTF-8 con BOM, archivo Latin-1, archivo binario (falla)
