private function buildValueTypes(ContainerBuilder $container, array $valueTypes): Generator
    {
        foreach ($valueTypes as $identifier => $valueType) {
            $this->validateBrowserType($container, $identifier);

            $serviceIdentifier = sprintf('netgen_block_manager.item.value_type.%s', $identifier);

            $container->register($serviceIdentifier, ValueType::class)
                ->setArguments([$identifier, $valueType])
                ->setLazy(true)
                ->setPublic(true)
                ->setFactory([ValueTypeFactory::class, 'buildValueType']);

            yield $identifier => new Reference($serviceIdentifier);
        }
    }