{
  "compilerOptions": {
    /* =========================
       Project Structure
    ========================== */
    "rootDir": "./src",
    "outDir": "./dist",

    /* =========================
       Module / Runtime (Node ESM)
    ========================== */
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "target": "ES2022",
    "lib": ["ES2022"],
    "types": ["node"],

    /* =========================
       ESM Interop / Imports
    ========================== */
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "verbatimModuleSyntax": true,

    /* =========================
       Output
    ========================== */
    "sourceMap": true,
    "declaration": false,
    "declarationMap": false,

    /* =========================
       Strictness
    ========================== */
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true,

    /* =========================
       Build Behavior
    ========================== */
    "isolatedModules": true,
    "moduleDetection": "force",
    "skipLibCheck": true,

    /* =========================
       Sequelize / Decorators
       (needed if using sequelize-typescript)
    ========================== */
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  },

  /* =========================
     Ensure Sequelize files compile
  ========================== */
  "include": ["src/**/*"],

  "exclude": ["node_modules", "dist"]
}
