namespace ZymonicGateway.Contracts; using System.Reflection; public interface IZymonicGatewayPlugin { string Name { get; } IEnumerable Routes { get; } IEnumerable QueueHandlers => []; IEnumerable EntityAssemblies => [GetType().Assembly]; } public interface IZymonicGatewayStartupPlugin : IZymonicGatewayPlugin { Task StartupAsync(ZymonicGatewayPluginStartupContext context, CancellationToken ct); } public sealed class ZymonicGatewayPluginStartupContext { public required IServiceProvider Services { get; init; } public required IReadOnlyDictionary> RouteConfigurations { get; init; } }