// 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; } }