@Contract(value = "_, _ -> new", pure = true)
  static <C> @NotNull VirtualComponent virtual(final @NotNull Class<C> contextType, final @NotNull VirtualComponentRenderer<C> renderer) {
    requireNonNull(contextType, "context type");
    requireNonNull(renderer, "renderer");
    return VirtualComponentImpl.createVirtual(contextType, renderer);
  }
Creates a virtual component.

@param <C> the context type
@param contextType the context type
@param renderer the renderer
@return a virtual component
@since 4.18.0
api/src/main/java/net/kyori/adventure/text/Component.java