using System.Collections.Generic; namespace LanMountainDesktop.PluginSdk; public interface IPluginContext { PluginManifest Manifest { get; } string PluginDirectory { get; } string DataDirectory { get; } IServiceProvider Services { get; } IReadOnlyDictionary Properties { get; } T? GetService(); bool TryGetProperty(string key, out T? value); void RegisterService(TService service) where TService : class; void RegisterSettingsPage(PluginSettingsPageRegistration registration); void RegisterDesktopComponent(PluginDesktopComponentRegistration registration); }