#pragma once
#include <string>
#include <vector>
#include <unordered_map>

namespace UsdLayerManager {

struct OcioConfig {
    std::vector<std::string>                                   displays;
    std::unordered_map<std::string, std::vector<std::string>> views;      // display → views
    std::vector<std::string>                                   colorSpaces;
    std::vector<std::string>                                   looks;
    std::string                                                defaultDisplay;
    std::string                                                defaultView;   // default view for defaultDisplay
    bool                                                       valid = false; // false if $OCIO unavailable
};

/// Returns the OCIO config loaded from the $OCIO env var via the OCIO C++ API.
/// Result is cached — parsed once per process lifetime.
const OcioConfig& GetCurrentOcioConfig();

} // namespace UsdLayerManager
