using Avalonia.Controls; namespace LANCommander.Launcher.Plugins.Extensions; /// /// Adds a top-level navigable destination reachable from the launcher shell. The view model /// is registered with the so the shell's content control can render the /// associated view when navigated to. /// public interface INavigationPageExtension { /// Label shown for the navigation entry. string Label { get; } /// Relative position among extension destinations; lower values appear first. int Order { get; } /// The view model type used both as the navigation target and the registry key. Type ViewModelType { get; } /// Creates the view model instance shown when the destination is activated. PluginViewModelBase CreateViewModel(); /// Builds the control that renders . Control BuildView(); }