code: public static function getIntrospectionQuery($options = [])
      {
          if (is_bool($options)) {
              trigger_error(
                  'Calling Introspection::getIntrospectionQuery(boolean) is deprecated. ' .
                  'Please use Introspection::getIntrospectionQuery(["descriptions" => boolean]).',
                  E_USER_DEPRECATED
              );
              $descriptions = $options;
          } else {
              $descriptions = ! array_key_exists('descriptions', $options) || $options['descriptions'] === true;
          }
          $descriptionField = $descriptions ? 'description' : '';
  
          return <<<EOD
    query IntrospectionQuery {
      __schema {
        queryType { name }
        mutationType { name }
        subscriptionType { name }
        types {
          ...FullType
        }
        directives {
          name
          {$descriptionField}
          locations
          args {
            ...InputValue
          }
        }
      }
    }
  
    fragment FullType on __Type {
      kind
      name
      {$descriptionField}
      fields(includeDeprecated: true) {
        name
        {$descriptionField}
        args {
          ...InputValue
        }
        type {
          ...TypeRef
        }
        isDeprecated
        deprecationReason
      }
      inputFields {
        ...InputValue
      }
      interfaces {
        ...TypeRef
      }
      enumValues(includeDeprecated: true) {
        name
        {$descriptionField}
        isDeprecated
        deprecationReason
      }
      possibleTypes {
        ...TypeRef
      }
    }
  
    fragment InputValue on __InputValue {
      name
      {$descriptionField}
      type { ...TypeRef }
      defaultValue
    }
  
    fragment TypeRef on __Type {
      kind
      name
      ofType {
        kind
        name
        ofType {
          kind
          name
          ofType {
            kind
            name
            ofType {
              kind
              name
              ofType {
                kind
                name
                ofType {
                  kind
                  name
                  ofType {
                    kind
                    name
                  }
                }
              }
            }
          }
        }
      }
    }
  EOD;
      }
docs: Options:
  - descriptions
  Whether to include descriptions in the introspection result.
  Default: true
  
  @param bool[]|bool $options
  
  @return string