{
    "typeName": "GratsConfig",
    "properties": {
        "graphqlSchema": {
            "description": "Where Grats should write your schema file. Path is relative to the `tsconfig.json` file.",
            "type": { "kind": "string" },
            "nullable": false,
            "default": "./schema.graphql"
        },
        "tsSchema": {
            "description": "Where Grats should write your executable TypeScript schema file. Path is relative to the `tsconfig.json` file.",
            "type": { "kind": "string" },
            "nullable": false,
            "default": "./schema.ts"
        },
        "tsClientEnums": {
            "description": "Where Grats should write your TypeScript enums file. Path is relative to the `tsconfig.json` file.\nIf enabled, Grats will require that all GraphQL enums be defined using exported TypeScript enums. Set to `null` to disable emitting this file.",
            "type": { "kind": "string" },
            "nullable": true,
            "default": null
        },
        "nullableByDefault": {
            "description": "Should all fields be typed as nullable in accordance with GraphQL best practices?\nhttps://graphql.org/learn/best-practices/#nullability\n\nIndividual fields can declare themselves as non-nullable by adding the docblock tag `@killsParentOnException`.",
            "type": { "kind": "boolean" },
            "nullable": false,
            "default": true
        },
        "strictSemanticNullability": {
            "description": "Experimental feature to add `@semanticNonNull` to all fields which have non-null TypeScript return types, but which are made nullable by the `nullableByDefault` option.\n\nThis feature allows clients which handle errors out of band, for example by discarding responses with errors, to know which fields are expected to be non-null in the absence of errors.\n\nSee https://grats.capt.dev/docs/guides/strict-semantic-nullability\n\nIt is an error to enable `strictSemanticNullability` if `nullableByDefault` is false.",
            "type": { "kind": "boolean" },
            "nullable": false,
            "default": false
        },
        "reportTypeScriptTypeErrors": {
            "description": "Should Grats error if it encounters a TypeScript type error?\nNote that Grats will always error if it encounters a TypeScript syntax error.",
            "type": { "kind": "boolean" },
            "nullable": false,
            "default": false
        },
        "schemaHeader": {
            "description": "A string to prepend to the generated schema text. Useful for copyright headers or instructions for how to regenerate the file. Set to `null` to omit the default header.",
            "type": { "kind": "longString" },
            "nullable": true,
            "default": "# Schema generated by Grats (https://grats.capt.dev)\n# Do not manually edit. Regenerate by running `npx grats`."
        },
        "tsSchemaHeader": {
            "description": "A string to prepend to the generated TypeScript schema file. Useful for copyright headers or instructions for how to regenerate the file. Set to `null` to omit the default header.",
            "type": { "kind": "longString" },
            "nullable": true,
            "default": "/**\n * Executable schema generated by Grats (https://grats.capt.dev)\n * Do not manually edit. Regenerate by running `npx grats`.\n */"
        },
        "tsClientEnumsHeader": {
            "description": "A string to prepend to the TypeScript enums file generated when the `tsClientEnums` configuration options is set. Useful for copyright headers or instructions for how to regenerate the file. Set to `null` to omit the default header.",
            "type": { "kind": "longString" },
            "nullable": true,
            "default": "/**\n * TypeScript enum definitions generated by Grats (https://grats.capt.dev)\n * Do not manually edit. Regenerate by running `npx grats`.\n */"
        },
        "importModuleSpecifierEnding": {
            "description": "This option allows you configure an extension that will be appended to the end of all import paths in the generated TypeScript schema file.\nWhen building a package that uses ES modules, import paths must not omit the file extension. In TypeScript code this generally means import paths must end with `.js`. If set to null, no ending will be appended.",
            "type": { "kind": "string" },
            "nullable": false,
            "default": ""
        },
        "EXPERIMENTAL__emitMetadata": {
            "description": "EXPERIMENTAL: THIS OPTION WILL BE RENAMED OR REMOVED IN A FUTURE RELEASE\nEmit a JSON file alongside the generated schema file which contains the metadata containing information about the resolvers.",
            "type": { "kind": "boolean" },
            "nullable": false,
            "default": false,
            "experimental": true
        },
        "EXPERIMENTAL__emitResolverMap": {
            "description": "EXPERIMENTAL: THIS OPTION WILL BE RENAMED OR REMOVED IN A FUTURE RELEASE\nInstead of emitting a TypeScript file which creates a GraphQLSchema, emit a TypeScript file which creates a GraphQL Tools style Resolver Map.\nhttps://the-guild.dev/graphql/tools/docs/resolvers#resolver-map",
            "type": { "kind": "boolean" },
            "nullable": false,
            "default": false,
            "experimental": true
        }
    }
}
