using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace PolyTrader.Core.Modularity
{
///
/// Eine vom Core oder einem Modul beigesteuerte Fenster-Ansicht. Die eigentliche UI ist
/// ein designbares , das über erzeugt wird
/// (mit DI-Abhängigkeiten). Die Shell zeigt je View höchstens eine Instanz und holt ein
/// bereits offenes Fenster wieder in den Vordergrund.
///
public sealed class ModuleView
{
/// Stabile ID für Einzelinstanz-Handling (nur ein Fenster je View).
public string Id { get; init; } = Guid.NewGuid().ToString();
/// Titel (Fallback-Fenstertitel, falls das Form keinen eigenen setzt).
public string Title { get; init; } = "Fenster";
/// Optionale Gruppierung (z.B. "Core", "CopyTrading").
public string? Group { get; init; }
/// Optionale Sortierreihenfolge.
public int Order { get; init; } = 0;
///
/// Optionales Icon für Menü/Buttons. Wird von der Shell/den Menüs genutzt. Settable, damit die
/// App den von Modulen registrierten Views zentral ein Icon aus ihren Ressourcen zuweisen kann
/// (Module referenzieren die App-Ressourcen nicht).
///
public System.Drawing.Image? Icon { get; set; }
/// Erzeugt das anzuzeigende Fenster (frische Instanz je Öffnung).
public Func