code: protected function validatePackage(PackageInterface $package)
      {
          $autoload = $package->getAutoload();
          if (!empty($autoload['psr-4']) && null !== $package->getTargetDir()) {
              $name = $package->getName();
              $package->getTargetDir();
              throw new \InvalidArgumentException("PSR-4 autoloading is incompatible with the target-dir property, remove the target-dir in package '$name'.");
          }
          if (!empty($autoload['psr-4'])) {
              foreach ($autoload['psr-4'] as $namespace => $dirs) {
                  if ($namespace !== '' && '\\' !== substr($namespace, -1)) {
                      throw new \InvalidArgumentException("psr-4 namespaces must end with a namespace separator, '$namespace' does not, use '$namespace\\'.");
                  }
              }
          }
      }
docs: @param PackageInterface $package
  
  @throws \InvalidArgumentException Throws an exception, if the package has illegal settings.