public <T> void register(@Nonnull ConfigContainer registeringContainer, @Nonnull String valueId, boolean standAlone,
	                         @Nonnull BiFunction<ConfigContainer, ConfigValue<T>, Node> factory) {
		String id = registeringContainer.getGroupAndId() + ConfigGroups.PACKAGE_SPLIT + valueId;
		keyToConfigurator.put(id, new KeyedConfigComponentFactory<T>(standAlone, id) {
			@Nonnull
			@Override
			public Node create(@Nonnull ConfigContainer container, @Nonnull ConfigValue<T> value) {
				return factory.apply(container, value);
			}
		});
	}
@param registeringContainer
		The container holding the config value.
@param valueId
		The {@link ConfigValue#getId() config value id} to register for.
@param standAlone
		See {@link ConfigComponentFactory#isStandAlone()}.
@param factory
		Function for the implementation of {@link KeyedConfigComponentFactory}.
@param <T>
		Config value type.
recaf-ui/src/main/java/software/coley/recaf/services/config/ConfigComponentManager.java