code: public function provideServiceDefinitionFor(ServiceDefinitionProvider\Frame $frame) : ServiceDefinition
      {
          // get the provider that handles the definition
          $provider = $this->capabilities->getServiceDefinitionProvider($frame);
  
          if ($provider !== null) {
              // provide the service
              return $provider->provide($this, $frame);
          }
  
          $annotationClassName = get_class($frame->getServiceAnnotation());
  
          // TODO: the exception is misleading for factory defined services. Add the exception to the Frame.
          throw new BuilderException(
              "Dont know how to provide the service definition for {$annotationClassName} found on class {$frame->getClass()->getName()}"
          );
      }
docs: @param ServiceDefinitionProvider\Frame $frame
  
  @return ServiceDefinition
  @throws BuilderException