+ * It is our goal to put all $_SERVER access and other constructs that are
+ * difficult to test in this script to reduce the burden on the unit tests.
+ * This script will only be tested via the functional tests.
+ *
+ * The Drush bootstrap goes through the following steps:
+ * - (ArgsPreprocessor) Preprocess the commandline arguments, considering only:
+ * - The named alias `@sitealias` (removed from arguments if present)
+ * - The --root option (read and retained)
+ * - The --config option (read and retained)
+ * - The --alias-path option (read and retained)
+ * - Load the Drush configuration and alias files from the standard
+ * global locations (including --config and --alias-path)
+ * - Determine the local Drupal site targeted, if any
+ * - Include the Composer autoload for Drupal (if different)
+ * - Extend configuration and alias files to include files in target Drupal site.
+ * - Create the Robo DI container and Symfony Application et. al.
+ * - Run the Symfony Application
+ * - Predispatch: call a remote Drush command if applicable
+ * - Bootstrap Drupal via @bootstrap command hook
+ * - Run commands and command hooks via annotated commands library
+ * - Catch 'command not found' exception, bootstrap Drupal and run again
+ * - Return status code