namespace ytLive.Helpers;
///
/// Whether this binary is a **development build**.
///
/// Why static readonly and not const: a const makes
/// if (!DevBuild.IsDevelopment) return; a compile-time branch, so whichever arm is dead
/// raises CS0162 — in Debug the guard is dead, in Release the body is. A readonly field is set
/// once at type init, so both arms compile clean and the JIT folds the branch away.
///
/// This is not the only defence. The developer panel's XAML and code-behind are
/// removed from the Release compile entirely (ytLive.csproj, Page/Compile Remove), so a
/// shipped binary contains no BAML to reveal. This flag is the second lock: it refuses the
/// value even if something else calls the setter.
///
/// Single source for the question. It gates the multi-instance profile
/// (), the scoreboard's debug seeding, and the all-resolutions
/// override (MainViewModel.DeveloperMode).
///
public static class DevBuild
{
/// True for a Debug compile; false for Release and anything else.
public static readonly bool IsDevelopment =
#if DEBUG
true;
#else
false;
#endif
}