{
    // Mapped from https://www.typescriptlang.org/tsconfig
    "compilerOptions": {
        // Type Checking
        "allowUnreachableCode": false,
        "allowUnusedLabels": false,
        // if true: conflicts with discord-api-types
        "exactOptionalPropertyTypes": false,
        "noFallthroughCasesInSwitch": true,
        "noImplicitOverride": true,
        "noImplicitReturns": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "strict": true,
        "useUnknownInCatchVariables": true,
        // Modules
        "module": "CommonJS",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        // Emit
        "declaration": false,
        "importHelpers": true,
        "inlineSources": false,
        "newLine": "lf",
        "noEmitHelpers": true,
        "outDir": "dist",
        "preserveConstEnums": true,
        "removeComments": false,
        "sourceMap": false,
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        // Language and Environment
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "lib": [
            "ESNext",
            "ES2021",
            "DOM"
        ],
        "target": "ES2020",
        "useDefineForClassFields": true,
        // Output Formatting
        "pretty": false,
        // Completeness
        "skipLibCheck": false,
        "skipDefaultLibCheck": true,
    }
}
