#pragma once

// Sankey diagram para flujos source -> target con magnitudes.
//
// Asume DAG (sin ciclos). Si hay ciclos, los nodos sin nivel quedan en la
// columna 0 — visualmente raro pero no rompe.

#include "imgui.h"
#include <string>
#include <vector>

struct SankeyNode {
    std::string label;
};

struct SankeyLink {
    int   src;
    int   dst;
    float value;
};

void sankey(const char* id,
            const std::vector<SankeyNode>& nodes,
            const std::vector<SankeyLink>& links,
            ImVec2                          size = ImVec2(-1.0f, 400.0f));
