namespace IBKRTrader.UI;
///
/// Verwaltet die eigenständigen Modul-Fenster des Launchers.
/// Pro Modul-Key wird höchstens ein Fenster gehalten: erneutes Öffnen
/// fokussiert das bestehende Fenster statt ein zweites zu erzeugen.
///
/// Die tatsächlichen UI-Aktionen (Show/Focus) sind in überschreibbare
/// Methoden gekapselt, damit die Tracking-Logik ohne Message-Loop testbar ist.
///
public class WindowManager
{
private readonly Dictionary _open = new(StringComparer.OrdinalIgnoreCase);
/// Öffnet das Fenster zum Key oder fokussiert ein bereits offenes.
public Form OpenOrFocus(string key, Func