Plugin lifecycle
Keep Core startup and shutdown independent of an Editor.
AlphaCore constructs and manages the plugin under its lifecycle and runtime leases. Opening or closing an Editor must not create or stop a second plugin runtime.
Use initialization for bounded setup. Start external connections/subscriptions in the supported asynchronous start path. Honor cancellation, stop emissions during shutdown, and release subscriptions and child processes before disposal.
Do not require WPF, a desktop window or a UI dispatcher in the Core path. Request supported user interactions through the public host interaction contracts rather than opening a window from runtime code.
Use PluginDependencyUnavailableException for a temporarily unavailable account, endpoint or companion. Unexpected runtime faults are different from an offline external dependency.
Test startup, cancellation and shutdown with no Editor attached. See Interactions and settings.