{
  "$schema": "https://biomejs.dev/schemas/2.1.3/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "files": {
    "ignoreUnknown": false,
    "experimentalScannerIgnores": [
      "node_modules/**",
      "dist/**",
      "build/**",
      ".next/**",
      "out/**",
      "coverage/**",
      "*.min.js",
      "*.min.css",
      "public/**",
      "src-tauri/**",
      ".claude/**",
      "version.json"
    ]
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineEnding": "lf",
    "lineWidth": 120,
    "attributePosition": "auto"
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "a11y": {
        "recommended": true,
        "noAccessKey": "error",
        "noAriaUnsupportedElements": "error",
        "noAutofocus": "off",
        "noDistractingElements": "error",
        "noHeaderScope": "error",
        "noInteractiveElementToNoninteractiveRole": "error",
        "noLabelWithoutControl": "off",
        "noNoninteractiveElementToInteractiveRole": "error",
        "noNoninteractiveTabindex": "error",
        "noPositiveTabindex": "error",
        "noRedundantAlt": "error",
        "noRedundantRoles": "error",
        "noStaticElementInteractions": "off",
        "noSvgWithoutTitle": "off",
        "useAltText": "error",
        "useAnchorContent": "error",
        "useAriaActivedescendantWithTabindex": "error",
        "useAriaPropsForRole": "error",
        "useButtonType": "off",
        "useFocusableInteractive": "error",
        "useHeadingContent": "error",
        "useHtmlLang": "error",
        "useIframeTitle": "error",
        "useKeyWithClickEvents": "off",
        "useKeyWithMouseEvents": "warn",
        "useMediaCaption": "off",
        "useSemanticElements": "warn",
        "useValidAnchor": "error",
        "useValidAriaProps": "error",
        "useValidAriaRole": "error",
        "useValidAriaValues": "error"
      },
      "complexity": {
        "noBannedTypes": "error",
        "noExtraBooleanCast": "error",
        "noCommaOperator": "off",
        "noForEach": "off",
        "noStaticOnlyClass": "off",
        "noUselessCatch": "error",
        "noUselessConstructor": "error",
        "noUselessLoneBlockStatements": "error",
        "noUselessRename": "error",
        "noUselessSwitchCase": "error",
        "noUselessTernary": "error",
        "useLiteralKeys": "error",
        "useOptionalChain": "off"
      },
      "correctness": {
        "noChildrenProp": "off",
        "noEmptyCharacterClassInRegex": "error",
        "noEmptyPattern": "error",
        "noGlobalObjectCalls": "error",
        "noInvalidConstructorSuper": "error",
        "noInvalidBuiltinInstantiation": "error",
        "noInvalidUseBeforeDeclaration": "off",
        "noNonoctalDecimalEscape": "error",
        "noPrecisionLoss": "error",
        "noSelfAssign": "error",
        "noSetterReturn": "error",
        "noSwitchDeclarations": "off",
        "noUndeclaredVariables": "error",
        "noUnreachable": "error",
        "noUnreachableSuper": "error",
        "noUnsafeFinally": "error",
        "noUnsafeOptionalChaining": "error",
        "noUnusedLabels": "error",
        "noUnusedVariables": "off",
        "noUnusedImports": "warn",
        "useExhaustiveDependencies": "off",
        "useHookAtTopLevel": "off",
        "useIsNan": "error",
        "useJsxKeyInIterable": "off",
        "useValidForDirection": "error",
        "useValidTypeof": "error",
        "useYield": "error"
      },
      "security": {
        "noDangerouslySetInnerHtml": "off",
        "noDangerouslySetInnerHtmlWithChildren": "error",
        "noGlobalEval": "off"
      },
      "style": {
        "useArrayLiterals": "off",
        "noDefaultExport": "off",
        "noImplicitBoolean": "off",
        "noInferrableTypes": "off",
        "noNamespace": "error",
        "noNegationElse": "off",
        "noNonNullAssertion": "off",
        "noParameterAssign": "off",
        "noRestrictedGlobals": "error",
        "noShoutyConstants": "off",
        "noUnusedTemplateLiteral": "error",
        "noUselessElse": "error",
        "useAsConstAssertion": "error",
        "useBlockStatements": "off",
        "useCollapsedElseIf": "off",
        "useConst": "error",
        "useDefaultParameterLast": "error",
        "useEnumInitializers": "error",
        "useExponentiationOperator": "error",
        "useFragmentSyntax": "off",
        "useImportType": "off",
        "useLiteralEnumMembers": "error",
        "useNamingConvention": "off",
        "useNodejsImportProtocol": "off",
        "useNumberNamespace": "error",
        "useSelfClosingElements": "error",
        "useShorthandAssign": "error",
        "useSingleVarDeclarator": "error",
        "useTemplate": "error"
      },
      "suspicious": {
        "noApproximativeNumericConstant": "error",
        "noArrayIndexKey": "off",
        "noAssignInExpressions": "off",
        "noImplicitAnyLet": "off",
        "noAsyncPromiseExecutor": "error",
        "noCatchAssign": "error",
        "noClassAssign": "error",
        "noCommentText": "error",
        "noCompareNegZero": "error",
        "noConfusingLabels": "error",
        "noConfusingVoidType": "off",
        "noConsole": "off",
        "noControlCharactersInRegex": "error",
        "noDebugger": "error",
        "noDoubleEquals": "error",
        "noDuplicateCase": "error",
        "noDuplicateClassMembers": "error",
        "noDuplicateJsxProps": "error",
        "noDuplicateObjectKeys": "error",
        "noDuplicateParameters": "error",
        "noEmptyBlockStatements": "off",
        "noExplicitAny": "off",
        "noExtraNonNullAssertion": "error",
        "noFallthroughSwitchClause": "error",
        "noFunctionAssign": "error",
        "noGlobalAssign": "error",
        "noImportAssign": "error",
        "noLabelVar": "error",
        "noMisleadingCharacterClass": "error",
        "noMisleadingInstantiator": "error",
        "noPrototypeBuiltins": "off",
        "noRedeclare": "error",
        "noRedundantUseStrict": "error",
        "noSelfCompare": "error",
        "noShadowRestrictedNames": "error",
        "noUnsafeDeclarationMerging": "error",
        "noUnsafeNegation": "error",
        "noVar": "error",
        "useAwait": "off",
        "useDefaultSwitchClauseLast": "error",
        "useGetterReturn": "error"
      },
      "performance": {
        "noImgElement": "off"
      }
    }
  },
  "javascript": {
    "formatter": {
      "jsxQuoteStyle": "double",
      "quoteProperties": "asNeeded",
      "trailingCommas": "all",
      "semicolons": "asNeeded",
      "arrowParentheses": "always",
      "bracketSpacing": true,
      "bracketSameLine": false,
      "quoteStyle": "double",
      "attributePosition": "auto"
    },
    "globals": ["AudioWorkletProcessor", "registerProcessor", "sampleRate", "currentTime", "currentFrame"]
  },
  "json": {
    "formatter": {
      "trailingCommas": "none"
    }
  },
  "overrides": [
    {
      "includes": ["e2e/**/*.ts", "e2e/**/*.tsx"],
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": "off",
            "noUnusedFunctionParameters": "off"
          }
        }
      }
    },
    {
      "includes": ["promo/**/*.ts", "promo/**/*.tsx"],
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": "off"
          }
        }
      }
    },
    {
      "includes": ["promo/src/types/three.d.ts"],
      "linter": {
        "rules": {
          "style": {
            "noNamespace": "off"
          }
        }
      }
    },
    {
      "includes": ["scripts/**/*.js", "scripts/**/*.cjs", "scripts/**/*.mjs"],
      "linter": {
        "enabled": false
      }
    }
  ]
}
