namespace AcDream.Plugin.Abstractions;
/// A plugin-safe selection transition matching retail's selected-target callback.
public readonly record struct SelectionChangedEvent(
uint? PreviousObjectId,
uint? SelectedObjectId);
///
/// Shared selected-object service. Plugins read and change the same selection
/// used by the world, radar, inventory, paperdoll, and toolbar.
///
public interface ISelectionService
{
uint? SelectedObjectId { get; }
uint? PreviousObjectId { get; }
event Action Changed;
bool Select(uint objectId);
bool Clear();
}