"""Serializa lista de dicts a formato JSON Lines (JSONL)."""

import json


def to_jsonl(rows: list[dict]) -> str:
    """Serializa a JSON Lines (newline-delimited JSON).

    Cada dict se serializa como una linea JSON independiente separada por \\n.
    Util para streaming, logging estructurado y formatos de intercambio de datos.

    Args:
        rows: Lista de dicts a serializar. Cada dict puede contener valores
              anidados, Unicode, None, numeros, etc.

    Returns:
        String con un JSON por linea. String vacio si rows es vacio.
        No incluye newline al final.
    """
    if not rows:
        return ""

    return "\n".join(json.dumps(row, ensure_ascii=False) for row in rows)
