#pragma once

#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <string>

namespace fesa {

// Identifies the physical input location that produced a model item or diagnostic.
struct SourceLocation {
    std::filesystem::path file;
    std::size_t line;
};

// Preserves both semantic and raw-text forms of an input entity identity.
struct SourceEntityId {
    std::string instanceName;
    std::int64_t sourceLabel;
    std::string sourceLabelText;
};

} // namespace fesa
