{
    "$schema": "https://json.schemastore.org/tsconfig",
    "display": "@robonen base (type-check, no DOM)",
    "compilerOptions": {
        /* Modules */
        "module": "Preserve",
        "moduleResolution": "Bundler",
        "moduleDetection": "force",
        "resolveJsonModule": true,
        "allowImportingTsExtensions": true,
        "verbatimModuleSyntax": true,
        "isolatedModules": true,
        "esModuleInterop": true,
        "allowSyntheticDefaultImports": true,

        /* Language and environment */
        "target": "ESNext",
        "lib": ["ESNext"],
        "useDefineForClassFields": true,

        /* Type checking (strict) */
        "strict": true,
        "noUncheckedIndexedAccess": true,
        "noImplicitOverride": true,
        "noImplicitReturns": true,
        "noFallthroughCasesInSwitch": true,
        "noUncheckedSideEffectImports": true,
        "forceConsistentCasingInFileNames": true,

        /* Emit is delegated to the bundler (tsdown); tsc is type-check only */
        "noEmit": true,
        "skipLibCheck": true
    },
    "exclude": ["node_modules", "dist", ".output", "coverage"]
}
