I am trying to understand how Symfony recipes know what packages to install along the way.
Reading the source code, it seems to me that when I run
composer require twig
the composer, having flex as a plugin,
- looks for an alias called twig
- sees that it is registered for the recipe symfony/twig-pack
- downloads the recipe and reads its manifest.json
- executes all the actions defined in manifest.json, like creating extra files or appending stuff to files
But nowhere do I see in the manifest.json to install the actual package symfony/twig-pack.
Is it just implicit that all recipes have to share their name with the package they are installing and that this is the way how composer knows what package to install?
I.e. a developer can not just create a recipe invented_company/nonexisting_package that just adds a few files here and appends a few lines there, but not actually corresponds to a package on packagist?