# Merge Entity Attributes

Diseño original para fuzzygraph.

## Funcion a implementar

### merge_entity_attributes

- **Dominio:** core
- **Lang:** Python
- **Purity:** pure
- **Signature:** `merge_entity_attributes(attr_list: list[dict]) -> dict`
- **Descripcion:** Combina atributos de multiples candidatos de la misma entidad. Cuando el mismo campo tiene valores diferentes, aplica heuristicas de resolucion.
- **Algoritmo:**
  1. Para cada campo presente en cualquier candidato:
     - Recopilar todos los valores non-null
     - Si 0 valores: null
     - Si 1 valor: usar ese
     - Si todos iguales: usar ese
     - Si diferentes:
       - **Numerico** (risk_score, balance, cvss): usar max
       - **Fecha** (first_seen, created_date): usar min (mas antigua)
       - **Fecha** (last_seen, expires_date): usar max (mas reciente)
       - **Lista** (name_servers): union
       - **String** (description, alias): usar el mas largo, o concatenar si ambos aportan info
       - **Boolean** (verified, exploited): usar True si alguno es True (OR)
  2. Retornar dict merged
- **Deps:** ninguna
- **Tests:**
  - Atributos complementarios (A tiene full_name, B tiene nationality) → ambos
  - Atributos conflictivos en risk_score → max
  - Atributos first_seen conflictivos → min
  - Todos null → null
  - Listas → union sin duplicados
