"""godot_map_asset_dir — mapea el tipo de asset a su subcarpeta res://assets/.

Funcion pura: dado el `kind` de un asset (sprite, pixelart, tileset, vfx, sfx,
music, model) devuelve el subdirectorio canonico bajo `res://assets/` donde debe
vivir en un proyecto Godot 4, segun la convencion del puente ComfyUI -> Godot
(docs/comfyui-godot-integration.md). No toca disco: solo resuelve una ruta
relativa. `kind` desconocido -> ValueError.
"""

# kind -> subruta relativa bajo assets/ (convencion del puente ComfyUI->Godot).
_KIND_TO_DIR = {
    "sprite": "sprites",
    "pixelart": "sprites",
    "tileset": "tilesets",
    "vfx": "vfx",
    "sfx": "audio/sfx",
    "music": "audio/music",
    "model": "models",
}


def godot_map_asset_dir(kind: str) -> str:
    """Resuelve la subcarpeta de assets para un tipo de asset Godot.

    Args:
        kind: tipo de asset: "sprite", "pixelart", "tileset", "vfx", "sfx",
            "music" o "model".

    Returns:
        Subruta relativa (POSIX) bajo `assets/`, p.ej. "sprites" o "audio/music".

    Raises:
        ValueError: si `kind` no es uno de los tipos soportados.
    """
    key = (kind or "").strip().lower()
    if key not in _KIND_TO_DIR:
        raise ValueError(
            f"kind desconocido: {kind!r}. Soportados: {sorted(_KIND_TO_DIR)}"
        )
    return _KIND_TO_DIR[key]


if __name__ == "__main__":
    import sys

    print(godot_map_asset_dir(sys.argv[1] if len(sys.argv) > 1 else "pixelart"))
