namespace TeamsISO.Engine.NdiInterop;

/// <summary>
/// Constants describing the NDI SDK version this build was compiled against.
/// The runtime version reported by <see cref="NdiNative.Version"/> is compared against
/// <see cref="ExpectedRuntimeVersionPrefix"/> by the engine's runtime probe to detect
/// installations that pre-date or post-date the SDK headers (per spec §6).
/// </summary>
public static class NdiVersion
{
    /// <summary>The SDK family this build targets (NDI 6).</summary>
    public const string SdkFamily = "NDI 6";

    /// <summary>
    /// Prefix of the runtime version banner we expect. The shipping NDI 6 runtime
    /// reports its version as a build banner of the form
    ///   "NDI SDK WIN64 13:07:00 Jun  2 2025 6.2.0.3"
    /// where the architecture token ("WIN64" / "WIN32") is stable across patch
    /// releases and confirms we loaded the binary the engine P/Invokes against
    /// (Processing.NDI.Lib.x64.dll). The trailing four-part token is the SDK's
    /// numeric version. The probe checks this prefix; a stricter probe could
    /// additionally enforce the leading "6." in the trailing version token.
    /// </summary>
    public const string ExpectedRuntimeVersionPrefix = "NDI SDK WIN64";
}
