namespace Kompas.Mcp.Core.Validation;

/// <summary>Диагностика операции дерева построения, находящейся в ошибке/требующей перестроения.</summary>
public sealed record OperationError
{
    /// <summary>Имя операции в дереве.</summary>
    public required string Name { get; init; }

    /// <summary>Код ошибки построения (ErrorType3d); 0 — ошибки нет.</summary>
    public required int ErrorCode { get; init; }

    /// <summary>Человекочитаемое описание кода.</summary>
    public required string Description { get; init; }

    /// <summary>false — операция вырождена (не дала корректной геометрии).</summary>
    public required bool Valid { get; init; }

    /// <summary>true — операция помечена «требует перестроения» (флаг ksFSRebuild).</summary>
    public required bool NeedsRebuild { get; init; }
}
