code: private function throwRequired(array $configuration)
      {
          $missing = [];
  
          foreach ($this->definitions as $key => $def) {
              if (empty($def['required'])
                  || isset($def['default'])
                  || array_key_exists($key, $configuration)
              ) {
                  continue;
              }
              $missing[] = $key;
          }
  
          $msg = "Missing required configuration options: \n\n";
          $msg .= implode("\n\n", $missing);
          throw new \InvalidArgumentException($msg);
      }
docs: @param array $configuration Associative array of configuration options.
  
  @throws \InvalidArgumentException.