E
interface IQueryHandlerProvider<Q, V> {
QueryHandler<Q, V> Handler { get; }
}
class SuperPlugin : IQueryHandlerProvider<GetVersion, Version>, IQueryHandlerProvider<GetAuthor, Author> { ... }
и потом в принимающем коде через рефлексию разбирать параметры, складировать в какой-нибудь Dictionary<Tuple<Type, Type>, object> и при доставании по типу кастовать.