// src/AcDream.Plugin.Abstractions/IPluginHost.cs
namespace AcDream.Plugin.Abstractions;
///
/// Entry point for a plugin into the acdream runtime. The surface will grow
/// across phases as more systems come online.
///
public interface IPluginHost
{
///
/// when registrations can be
/// projected by this host. No-window hosts return
/// and expose so a plugin may keep
/// one code path while deliberately omitting presentation work.
///
bool HasUi { get; }
IPluginLogger Log { get; }
IGameState State { get; }
IEvents Events { get; }
ISelectionService Selection { get; }
IUiRegistry Ui { get; }
///
/// Character reads, spell data and casting. Hosts with no live session
/// expose , so a plugin may
/// hold one code path and check
/// rather than branching on
/// host kind.
///
IAutomationSurface Automation { get; }
}