namespace Kompas.Mcp.Core.Query;

/// <summary>Переменная модели (имя, выражение, значение, признаки).</summary>
public sealed record VariableInfo
{
    public required string Name { get; init; }

    /// <summary>Выражение переменной (может быть числом или формулой со ссылками на другие переменные).</summary>
    public required string Expression { get; init; }

    /// <summary>Вычисленное числовое значение.</summary>
    public required double Value { get; init; }

    /// <summary>Внешняя переменная (доступна из вышестоящих документов/исполнений).</summary>
    public required bool External { get; init; }

    /// <summary>Информационная переменная (вычисляется, не задаёт геометрию).</summary>
    public required bool Information { get; init; }

    /// <summary>Комментарий к переменной (описание назначения).</summary>
    public string Note { get; init; } = "";
}
