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();
}