namespace LanMountainDesktop.PluginIsolation.Contracts; public sealed record PluginSessionHandshakeRequest( string PluginId, string SessionId, string RuntimeMode, string ProtocolVersion, IReadOnlyList? RequestedCapabilities = null, IReadOnlyDictionary? Metadata = null); public sealed record PluginSessionHandshakeResponse( bool Accepted, string ProtocolVersion, IReadOnlyList? GrantedCapabilities = null, string? ErrorCode = null, string? ErrorMessage = null); public sealed record PluginReadyNotification( string PluginId, string SessionId, IReadOnlyList? UiSurfaces = null);