namespace LanMountainDesktop.PluginIsolation.Contracts;
///
/// Wire request for the IPC appearance snapshot payload. This request targets the
/// isolation-contract DTOs, not the runtime SDK snapshot with the same type name.
///
public sealed record PluginAppearanceSnapshotRequest(string SessionId);
public sealed record PluginMaterialSurfaceSnapshot(
string BackgroundColor,
string BorderColor,
double BlurRadius,
double Opacity);
///
/// Wire-format appearance snapshot exchanged over IPC.
/// Do not treat this as the same type as LanMountainDesktop.PluginSdk.PluginAppearanceSnapshot.
///
public sealed record PluginAppearanceSnapshot(
string ThemeVariant,
string? AccentColor = null,
double CornerRadiusScale = 1.0,
IReadOnlyDictionary? CornerRadiusTokens = null,
IReadOnlyDictionary? ResourceAliases = null,
string? SeedColor = null,
string? ColorSource = null,
string? SystemMaterialMode = null,
IReadOnlyDictionary? ColorRoles = null,
IReadOnlyDictionary? MaterialSurfaces = null,
IReadOnlyList? WallpaperSeedCandidates = null);
///
/// Wire notification carrying the IPC appearance snapshot.
///
public sealed record PluginAppearanceChangedNotification(PluginAppearanceSnapshot Snapshot);