code: protected function createNestedOptions($className, $options)
      {
          $class = new $className();
  
          foreach ($options as $key => $spec) {
              if (is_array($spec) && array_key_exists('__class__', $spec)) {
                  $nestedClassName = $spec['__class__'];
                  unset($spec['__class__']);
                  $spec = $this->createNestedOptions($nestedClassName, $spec);
              }
  
              $class->{$key} = $spec;
          }
  
          return $class;
      }
docs: Creates a nested options instance.
  
  @param string $className
  @param array  $options
  
  @return AbstractOptions