\Joomla\Registry\Registry $config An optional argument to provide dependency injection for the application's config object. If the
argument is a Registry object that object will become the application's config object,
otherwise a default config object is created.
\Joomla\Event\DispatcherInterface $dispatcher An optional argument to provide dependency injection for the application's event dispatcher. If the
argument is a DispatcherInterface object that object will become the application's event dispatcher,
if it is null then the default event dispatcher will be created based on the application's
loadDispatcher() method.
\Joomla\CMS\Language\Language $language The language object provisioned for the application.
\Symfony\Component\Console\Input\InputInterface|null $input An optional argument to provide dependency injection for the application's input object. If the
argument is an InputInterface object that object will become the application's input object,
otherwise a default input object is created.
\Symfony\Component\Console\Output\OutputInterface|null $output An optional argument to provide dependency injection for the application's output object. If the
argument is an OutputInterface object that object will become the application's output object,
otherwise a default output object is created.