using Avalonia;

namespace ClawdDotNet.Desktop;

internal static class Program
{
    /// <summary>
    /// Einstiegspunkt der Oberfläche.
    ///
    /// Bewusst schlank: Hier wird nur Avalonia hochgefahren. Alles Fachliche —
    /// Einstellungen, Instanzauswahl, Engine, Scanner, Watchdog — baut
    /// <see cref="App"/> über die Anwendungsschicht auf, damit derselbe Aufbau später
    /// auch ohne Fenster laufen kann.
    ///
    /// Kein <c>[STAThread]</c> mehr: Das war eine COM-Anforderung von WinForms. Avalonia
    /// braucht es nicht, und unter Linux hätte es ohnehin keine Bedeutung.
    /// </summary>
    public static int Main(string[] args) => BuildAvaloniaApp()
        .StartWithClassicDesktopLifetime(args);

    /// <summary>
    /// Auch vom Vorschau-Werkzeug des Editors aufgerufen — deshalb öffentlich und
    /// getrennt von <see cref="Main"/>.
    /// </summary>
    public static AppBuilder BuildAvaloniaApp()
        => AppBuilder.Configure<App>()
            .UsePlatformDetect()
            // Kein WithInterFont mehr: Die Oberfläche bringt seit dem Umbau auf den
            // Entwurf Barlow und Barlow Condensed als eigene Ressourcen mit
            // (Assets/Fonts, referenziert in Styles/Theme.axaml). Der Grund von damals
            // gilt unverändert — ein schlankes Linux-Abbild hat oft gar keine
            // Systemschrift —, nur liegt die mitgelieferte Schrift jetzt woanders.
            .LogToTrace();
}
