@API(status = API.Status.STABLE)
    public <T> @NonNull Optional<T> getInjectable(
            final @NonNull Class<T> clazz,
            final @NonNull CommandContext<C> context,
            final @NonNull AnnotationAccessor annotationAccessor
    ) {
        return this.getInjectable(TypeToken.get(clazz), context, annotationAccessor);
    }
Attempts to get an injectable value for the given context.

<p>This will consider all registered {@link InjectionService injection services}, and not just the
{@link ParameterInjector injectors} registered using {@link #registerInjector(Class, ParameterInjector)}.</p>

@param <T>                type to inject
@param clazz              class to inject
@param context            the command context that requests the injection
@param annotationAccessor annotation accessor for the injection. If the object is requested without access to annotations,
                          use {@link AnnotationAccessor#empty()}
@return the injected value, if an injector was able to provide a value
cloud-core/src/main/java/org/incendo/cloud/injection/ParameterInjectorRegistry.java