{
	"$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
	"assist": {
		"actions": {
			"source": {
				"organizeImports": {
					"level": "on",
					"options": {
						"identifierOrder": "lexicographic"
					}
				}
			}
		},
		"enabled": true
	},
	"css": {
		"linter": {
			"enabled": true
		},
		"parser": {
			"cssModules": true
		}
	},
	"files": {
		"includes": [
			"**",
			"!**/node_modules",
			"!**/dist",
			"!**/.repos",
			"!**/.turbo",
			"!**/.git",
			"!**/.rslib",
			"!**/.vitest",
			"!**/.coverage",
			"!coverage",
			"!.claude/worktrees",
			"!**/__test__/**/fixtures",
			"!**/__test__/snapshots",
			"!**/__test__/**/fixtures",
			"!**/__test__/**/snapshots",
			"!**/__fixtures__",
			"!**/__snapshots__"
		]
	},
	"formatter": {
		"enabled": true,
		"formatWithErrors": true,
		"indentStyle": "tab",
		"indentWidth": 2,
		"lineWidth": 120
	},
	"javascript": {
		"resolver": {
			// Catalog-aware module resolution: lets noUndeclaredDependencies and
			// friends understand `catalog:` / `catalog:<name>` specs in package.json.
			// Requires Biome >= 2.5. Consumers are carried onto it by silk-update-action
			// and `savvy init`, which rewrite the $schema URL CI installs from.
			"experimentalPnpmCatalogs": true
		}
	},
	"json": {
		"assist": {
			"enabled": true
		},
		"formatter": {
			"enabled": true,
			"expand": "auto"
		},
		"linter": {
			"enabled": true
		}
	},
	"linter": {
		"domains": {
			"project": "all"
		},
		"enabled": true,
		"rules": {
			"complexity": {
				"noStaticOnlyClass": {
					"level": "off"
				}
			},
			"correctness": {
				"noUnresolvedImports": "off",
				"noUnusedVariables": {
					"level": "error",
					"options": {
						"ignoreRestSiblings": true
					}
				},
				"useImportExtensions": {
					"level": "error",
					"options": {
						// forceJsExtensions rewrote EVERY import to `.js`, including correct
						// `.json` asset imports (breaking resolution — see systems#359 and
						// upstream biomejs/biome#7734). extensionMappings only rewrites the
						// listed source extensions; unmapped extensions (json, css, ...) keep
						// the imported file's real extension.
						"extensionMappings": {
							"cts": "cjs",
							"mts": "mjs",
							"ts": "js",
							"tsx": "js"
						}
					}
				}
			},
			"nursery": {
				"useExplicitType": "off"
			},
			"preset": "recommended",
			"style": {
				"useConsistentTypeDefinitions": "error",
				"useImportType": {
					"level": "error",
					"options": {
						"style": "separatedType"
					}
				},
				"useNodejsImportProtocol": "error"
			},
			"suspicious": {
				"noBiomeFirstException": "error",
				"noDuplicateDependencies": "error",
				"noDuplicateObjectKeys": "error",
				"noImportCycles": "error",
				"noQuickfixBiome": "error",
				"useBiomeIgnoreFolder": "error"
			}
		}
	},
	"overrides": [
		{
			"includes": ["package.json"],
			"json": {
				"formatter": {
					"expand": "auto"
				}
			}
		},
		{
			"assist": {
				"actions": {
					"source": {
						"useSortedKeys": "on"
					}
				}
			},
			"includes": [
				"**/turbo.json",
				"**/tsconfig.json",
				"**/tsconfig.*.json",
				"**/public/tsconfig/**/*.json",
				"**/.claude/settings.json",
				"**/.claude/settings.local.json",
				"**/.claude/design/design.config.json",
				"**/.changeset/config.json",
				"**/.markdownlint.json",
				"**/devcontainer.json",
				"**/.vscode/*.json",
				"**/biome.json",
				"**/biome.jsonc",
				"**/silk.jsonc",
				"**/.markdownlint-cli2.jsonc",
				"**/.claude-plugin/plugin.json",
				"**/.claude-plugin/marketplace.json"
			]
		},
		{
			"includes": [
				"**/__test__/**",
				"**/*.test.{ts,mts,cts,tsx}",
				"**/*.spec.{ts,mts,cts,tsx}",
				"**/vitest.config.*",
				"**/vitest.setup.*",
				"**/vitest.env.*",
				"**/vitest.globals.*",
				"**/vite.config.*"
			],
			"linter": {
				"rules": {
					"correctness": {
						"noUndeclaredDependencies": "off"
					}
				}
			}
		}
	],
	"root": true,
	"vcs": {
		"clientKind": "git",
		"defaultBranch": "main",
		"enabled": true,
		"useIgnoreFile": true
	}
}
