{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$ref": "#/$defs/DbxConfigSections",
    "$defs": {
        "DbxConfigSections": {
            "type": "object",
            "properties": {
                "toolchain": {
                    "description": "The `@deltabox/toolchain` settings (every section is opt-in by presence).",
                    "$ref": "#/$defs/ToolchainConfigSections"
                }
            },
            "additionalProperties": false
        },
        "ProjectType": {
            "type": "string",
            "enum": [
                "monorepo-root",
                "monorepo-workspace",
                "project"
            ],
            "description": "The project kind (detected when omitted)."
        },
        "ToolchainProjectConfig": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "#/$defs/ProjectType"
                },
                "name": {
                    "type": "string",
                    "description": "The unscoped project name (written as `<scope>/<name>`)."
                },
                "scope": {
                    "type": "string",
                    "description": "The npm scope, eg. `@acme`."
                },
                "author": {
                    "type": "string",
                    "description": "Package author (`package.json` `author`)."
                },
                "license": {
                    "type": "string",
                    "description": "SPDX license id (`package.json` `license`)."
                },
                "homepage": {
                    "type": "string",
                    "description": "Project homepage (`package.json` `homepage`)."
                },
                "repo": {
                    "type": "string",
                    "description": "Repository URL (`package.json` `repository`). For a workspace it also resolves to the workspace path (`repository.directory`)."
                },
                "nodeVersion": {
                    "type": "string",
                    "description": "Node version for CI/templates, eg. `22` (not `package.json` `engines`)."
                },
                "packageManager": {
                    "type": "string",
                    "description": "Package manager name, written as `<name>@<version>` (default `yarn`)."
                },
                "packageManagerVersion": {
                    "type": "string",
                    "description": "Package manager version, eg. `4.17.1`."
                },
                "description": {
                    "type": "string",
                    "description": "One-line description (`package.json` `description`)."
                },
                "inherit": {
                    "type": "boolean",
                    "description": "Inherit the parent project metadata (default true). Set false to keep this project metadata independent of the root config (other sections still merge normally)."
                }
            },
            "additionalProperties": false,
            "description": "Project metadata: canonical `package.json` fields and template tokens (shared fields are inherited by workspaces)."
        },
        "ToolchainCiConfig": {
            "type": "object",
            "properties": {
                "ci": {
                    "description": "The CI checks workflow (`ci.yml`).",
                    "$ref": "#/$defs/WorkflowSetting"
                },
                "changelog": {
                    "description": "The changelog/version workflow (`changelog.yml`) plus the changelog pipeline config (versioning, VS Code settings, commitlint).",
                    "$ref": "#/$defs/ChangelogWorkflowSetting"
                },
                "release": {
                    "description": "The release workflow (`release.yml`).",
                    "$ref": "#/$defs/WorkflowSetting"
                },
                "issues": {
                    "description": "The issue-title workflow (`issues.yml`).",
                    "$ref": "#/$defs/WorkflowSetting"
                },
                "sync": {
                    "description": "The toolchain sync workflow (`sync.yml`).",
                    "$ref": "#/$defs/WorkflowSetting"
                },
                "custom": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "$ref": "#/$defs/CustomWorkflowSettings"
                    },
                    "description": "Additional custom workflows, keyed by id (eg. `custom.my-workflow`). Each id writes `<dir>/<filename ?? id>.yml`."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "GitHub Actions workflows to generate (CI, release, issues, changelog, sync)."
        },
        "GitHubWorkflowSetting": {
            "type": "object",
            "properties": {
                "provider": {
                    "type": "string",
                    "const": "github",
                    "description": "Use a complete GitHub Actions workflow."
                },
                "workflow": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "The complete workflow object."
                },
                "filename": {
                    "type": "string",
                    "description": "Override the generated file name."
                },
                "dir": {
                    "type": "string",
                    "description": "Directory for the generated file."
                },
                "setup": {
                    "type": "boolean",
                    "description": "Inject the provider-specific checkout/Node/Corepack/install setup (default false: the workflow is written as-is)."
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable/disable this workflow (default: enabled when present)."
                }
            },
            "required": [
                "provider",
                "workflow"
            ],
            "additionalProperties": false,
            "description": "A complete GitHub Actions workflow written to `.github/workflows/<id>.yml` (or `filename`/`dir`)."
        },
        "GitLabWorkflowSetting": {
            "type": "object",
            "properties": {
                "provider": {
                    "type": "string",
                    "const": "gitlab",
                    "description": "Use a GitLab CI pipeline."
                },
                "workflow": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "The complete pipeline object."
                },
                "filename": {
                    "type": "string",
                    "description": "Override the generated file name."
                },
                "dir": {
                    "type": "string",
                    "description": "Directory for the generated file."
                },
                "setup": {
                    "type": "boolean",
                    "description": "Inject the provider-specific checkout/Node/Corepack/install setup (default false: the workflow is written as-is)."
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable/disable this workflow (default: enabled when present)."
                }
            },
            "required": [
                "provider",
                "workflow"
            ],
            "additionalProperties": false,
            "description": "A complete GitLab CI pipeline written to `.gitlab-ci.yml` (or `filename`/`dir`)."
        },
        "AzureWorkflowSetting": {
            "type": "object",
            "properties": {
                "provider": {
                    "type": "string",
                    "const": "azure",
                    "description": "Use an Azure Pipelines pipeline."
                },
                "workflow": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "The complete pipeline object."
                },
                "filename": {
                    "type": "string",
                    "description": "Override the generated file name."
                },
                "dir": {
                    "type": "string",
                    "description": "Directory for the generated file."
                },
                "setup": {
                    "type": "boolean",
                    "description": "Inject the provider-specific checkout/Node/Corepack/install setup (default false: the workflow is written as-is)."
                },
                "enabled": {
                    "type": "boolean",
                    "description": "Enable/disable this workflow (default: enabled when present)."
                }
            },
            "required": [
                "provider",
                "workflow"
            ],
            "additionalProperties": false,
            "description": "A complete Azure Pipelines pipeline written to `azure-pipelines.yml` (or `filename`/`dir`)."
        },
        "WorkflowOptions": {
            "type": "object",
            "properties": {
                "provider": {
                    "type": "string",
                    "const": "github",
                    "description": "Workflow vendor for a full `workflow` object (default `github`)."
                },
                "pushBranches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Replace `on.push.branches`."
                },
                "pullRequestBranches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Replace `on.pull_request.branches`."
                },
                "triggers": {
                    "$ref": "#/$defs/WorkflowTriggers"
                },
                "extra": {
                    "$ref": "#/$defs/WorkflowExtra"
                },
                "steps": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/WorkflowStepsConfig"
                        },
                        {
                            "type": "array",
                            "items": {
                                "$ref": "#/$defs/WorkflowStepsConfig"
                            }
                        }
                    ],
                    "description": "Extra steps for a job (one group, or per-job groups)."
                },
                "jobs": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "$ref": "#/$defs/WorkflowJob"
                    },
                    "description": "Extra complete jobs merged in."
                },
                "tokens": {
                    "$ref": "#/$defs/WorkflowTokens"
                },
                "filename": {
                    "type": "string",
                    "description": "Override the generated workflow file name (eg. `deploy.yml`)."
                },
                "dir": {
                    "type": "string",
                    "description": "Directory for the workflow file (default `.github/workflows`)."
                },
                "setup": {
                    "type": "boolean",
                    "description": "Inject the shared checkout/Node/Corepack/install steps into custom workflow jobs (default false; built-in workflows already include them)."
                },
                "enabled": {
                    "description": "Enable/disable this workflow (default: enabled when present).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Per-workflow overrides merged over the generated default."
        },
        "WorkflowTriggers": {
            "type": "object",
            "properties": {
                "push": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Push trigger (`on.push`)."
                },
                "pull_request": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Pull-request trigger (`on.pull_request`)."
                },
                "pull_request_target": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Pull-request-target trigger (`on.pull_request_target`)."
                },
                "workflow_dispatch": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Manual trigger (`on.workflow_dispatch`)."
                },
                "workflow_call": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Reusable workflow trigger (`on.workflow_call`)."
                },
                "workflow_run": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Triggered by another workflow (`on.workflow_run`)."
                },
                "schedule": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": {},
                        "description": "Scheduled trigger (`on.schedule`)."
                    },
                    "description": "Scheduled trigger list (`on.schedule`)."
                },
                "release": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Release trigger (`on.release`)."
                }
            },
            "additionalProperties": {
                "$ref": "#/$defs/ConfigJsonValue"
            },
            "description": "Extra `on.*` workflow triggers."
        },
        "ConfigJsonValue": {
            "description": "Any JSON value.",
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "number"
                },
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                },
                {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/ConfigJsonValue"
                    }
                },
                {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "$ref": "#/$defs/ConfigJsonValue"
                    }
                }
            ]
        },
        "WorkflowExtra": {
            "type": "object",
            "properties": {
                "permissions": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Workflow permissions."
                },
                "concurrency": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "object",
                            "properties": {
                                "group": {
                                    "type": "string",
                                    "description": "Concurrency group."
                                },
                                "cancel-in-progress": {
                                    "description": "Cancel in-progress runs (boolean or expression).",
                                    "type": [
                                        "boolean",
                                        "string"
                                    ]
                                }
                            },
                            "required": [
                                "group"
                            ],
                            "additionalProperties": {
                                "$ref": "#/$defs/ConfigJsonValue"
                            }
                        }
                    ],
                    "description": "Workflow concurrency."
                },
                "env": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Workflow environment variables."
                },
                "defaults": {
                    "type": "object",
                    "properties": {
                        "run": {
                            "type": "object",
                            "properties": {
                                "shell": {
                                    "type": "string",
                                    "description": "Default shell."
                                },
                                "working-directory": {
                                    "type": "string",
                                    "description": "Default working directory."
                                }
                            },
                            "additionalProperties": {
                                "$ref": "#/$defs/ConfigJsonValue"
                            }
                        }
                    },
                    "additionalProperties": {
                        "$ref": "#/$defs/ConfigJsonValue"
                    },
                    "description": "Default settings for `run` steps."
                },
                "name": {
                    "type": "string",
                    "description": "Workflow name."
                },
                "run-name": {
                    "type": "string",
                    "description": "Workflow run name."
                },
                "timeout-minutes": {
                    "type": "number",
                    "description": "Job timeout in minutes."
                },
                "container": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Container for the job."
                },
                "strategy": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Build matrix / strategy."
                }
            },
            "additionalProperties": {
                "$ref": "#/$defs/ConfigJsonValue"
            },
            "description": "Extra top-level workflow keys (`permissions`, `concurrency`, `env`, ...)."
        },
        "WorkflowStepsConfig": {
            "type": "object",
            "properties": {
                "job": {
                    "type": "string",
                    "description": "Target job id (defaults to the primary/first job)."
                },
                "before": {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/WorkflowStep"
                    },
                    "description": "Steps inserted at the start."
                },
                "after": {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/WorkflowStep"
                    },
                    "description": "Steps appended at the end."
                }
            },
            "additionalProperties": false,
            "description": "Extra steps to inject into a workflow job."
        },
        "WorkflowStep": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Step display name."
                },
                "id": {
                    "type": "string",
                    "description": "Step id (for `steps.<id>` outputs)."
                },
                "if": {
                    "type": "string",
                    "description": "Conditional expression (`if:`)."
                },
                "uses": {
                    "type": "string",
                    "description": "Action to run (`uses:`), eg. `actions/checkout@v4`."
                },
                "run": {
                    "type": "string",
                    "description": "Shell command(s) to run (`run:`)."
                },
                "shell": {
                    "type": "string",
                    "description": "Shell to run `run` in, eg. `bash`."
                },
                "working-directory": {
                    "type": "string",
                    "description": "Directory the step runs in."
                },
                "with": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": [
                            "string",
                            "number",
                            "boolean"
                        ]
                    },
                    "description": "Inputs for a `uses` action."
                },
                "env": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Environment variables for the step."
                }
            },
            "additionalProperties": false,
            "description": "A GitHub Actions workflow step."
        },
        "WorkflowJob": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Job display name."
                },
                "runs-on": {
                    "type": "string",
                    "description": "The runner label or expression."
                },
                "if": {
                    "type": "string",
                    "description": "Conditional expression (`if:`)."
                },
                "needs": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Job id(s) this job depends on."
                },
                "environment": {
                    "type": "string",
                    "description": "A GitHub environment name."
                },
                "permissions": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Job permissions."
                },
                "env": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Environment variables."
                },
                "outputs": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Job outputs."
                },
                "concurrency": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Job concurrency settings."
                },
                "timeout-minutes": {
                    "type": "number",
                    "description": "The job timeout in minutes."
                },
                "strategy": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "A build matrix / strategy."
                },
                "services": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Service containers."
                },
                "steps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/WorkflowStep"
                    },
                    "description": "The job steps."
                }
            },
            "required": [
                "runs-on",
                "steps"
            ],
            "additionalProperties": {
                "$ref": "#/$defs/ConfigJsonValue"
            },
            "description": "A complete GitHub Actions workflow job."
        },
        "WorkflowTokens": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Project name (`{{name}}`)."
                },
                "scope": {
                    "type": "string",
                    "description": "Package scope (`{{scope}}`)."
                },
                "author": {
                    "type": "string",
                    "description": "Author (`{{author}}`)."
                },
                "license": {
                    "type": "string",
                    "description": "License (`{{license}}`)."
                },
                "homepage": {
                    "type": "string",
                    "description": "Homepage (`{{homepage}}`)."
                },
                "repo": {
                    "type": "string",
                    "description": "Repository URL (`{{repo}}`)."
                },
                "description": {
                    "type": "string",
                    "description": "Description (`{{description}}`)."
                },
                "nodeVersion": {
                    "type": "string",
                    "description": "Node version (`{{nodeVersion}}`)."
                },
                "packageManager": {
                    "type": "string",
                    "description": "Package manager (`{{packageManager}}`)."
                },
                "yarnVersion": {
                    "type": "string",
                    "description": "Yarn version (`{{yarnVersion}}`)."
                },
                "packageManagerVersion": {
                    "type": "string",
                    "description": "Package manager version (`{{packageManagerVersion}}`)."
                },
                "mainBranch": {
                    "type": "string",
                    "description": "Main branch (`{{mainBranch}}`)."
                },
                "devBranch": {
                    "type": "string",
                    "description": "Dev branch (`{{devBranch}}`)."
                }
            },
            "additionalProperties": {
                "type": [
                    "string",
                    "number",
                    "boolean"
                ]
            },
            "description": "Per-workflow token overrides (`nodeVersion`, `packageManager`, ...)."
        },
        "WorkflowSetting": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "string"
                },
                {
                    "$ref": "#/$defs/GitHubWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/GitLabWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/AzureWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/WorkflowOptions"
                }
            ],
            "description": "`true`/`false` to enable/disable, an object to override parts of the default, a complete GitHub/GitLab/Azure workflow (with `provider`), or a raw YAML string written verbatim as the workflow file."
        },
        "CiChangelogConfig": {
            "type": "object",
            "properties": {
                "provider": {
                    "type": "string",
                    "const": "github",
                    "description": "Workflow vendor for a full `workflow` object (default `github`)."
                },
                "pushBranches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Replace `on.push.branches`."
                },
                "pullRequestBranches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Replace `on.pull_request.branches`."
                },
                "triggers": {
                    "$ref": "#/$defs/WorkflowTriggers"
                },
                "extra": {
                    "$ref": "#/$defs/WorkflowExtra"
                },
                "steps": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/WorkflowStepsConfig"
                        },
                        {
                            "type": "array",
                            "items": {
                                "$ref": "#/$defs/WorkflowStepsConfig"
                            }
                        }
                    ],
                    "description": "Extra steps for a job (one group, or per-job groups)."
                },
                "jobs": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "$ref": "#/$defs/WorkflowJob"
                    },
                    "description": "Extra complete jobs merged in."
                },
                "tokens": {
                    "$ref": "#/$defs/WorkflowTokens"
                },
                "filename": {
                    "type": "string",
                    "description": "Override the generated workflow file name (eg. `deploy.yml`)."
                },
                "dir": {
                    "type": "string",
                    "description": "Directory for the workflow file (default `.github/workflows`)."
                },
                "setup": {
                    "type": "boolean",
                    "description": "Inject the shared checkout/Node/Corepack/install steps into custom workflow jobs (default false; built-in workflows already include them)."
                },
                "enabled": {
                    "description": "Enable/disable the changelog workflow and pipeline (default: enabled when present).",
                    "type": "boolean"
                },
                "branches": {
                    "$ref": "#/$defs/ChangelogBranchesConfig"
                },
                "commitlint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ChangelogCommitlintConfig"
                        }
                    ],
                    "description": "commitlint config; set `false` to disable the Conventional-Commits pipeline."
                },
                "versioning": {
                    "description": "Automatic version bumping on changelog generation (default `true`).",
                    "$ref": "#/$defs/ChangelogVersioning"
                },
                "vscode": {
                    "type": "boolean",
                    "description": "Write the Conventional-Commits VS Code settings (default true)."
                },
                "groups": {
                    "anyOf": [
                        {
                            "type": "array",
                            "items": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string",
                                                "description": "The CC type (required for object entries in an array)."
                                            },
                                            "title": {
                                                "anyOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "description": "A custom group title callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Custom heading title (or callback; TS/JS configs only)."
                                            },
                                            "order": {
                                                "anyOf": [
                                                    {
                                                        "type": "number"
                                                    },
                                                    {
                                                        "description": "A custom group order callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Sort position; lower comes first (or callback; TS/JS configs only)."
                                            },
                                            "hidden": {
                                                "anyOf": [
                                                    {
                                                        "type": "boolean"
                                                    },
                                                    {
                                                        "description": "A custom group hidden callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Omit this group from the rendered changelog (or callback; TS/JS only)."
                                            }
                                        },
                                        "additionalProperties": false,
                                        "description": "One Conventional-Commits group."
                                    }
                                ]
                            }
                        },
                        {
                            "type": "object",
                            "propertyNames": {
                                "type": "string"
                            },
                            "additionalProperties": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string",
                                                "description": "The CC type (required for object entries in an array)."
                                            },
                                            "title": {
                                                "anyOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "description": "A custom group title callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Custom heading title (or callback; TS/JS configs only)."
                                            },
                                            "order": {
                                                "anyOf": [
                                                    {
                                                        "type": "number"
                                                    },
                                                    {
                                                        "description": "A custom group order callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Sort position; lower comes first (or callback; TS/JS configs only)."
                                            },
                                            "hidden": {
                                                "anyOf": [
                                                    {
                                                        "type": "boolean"
                                                    },
                                                    {
                                                        "description": "A custom group hidden callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Omit this group from the rendered changelog (or callback; TS/JS only)."
                                            }
                                        },
                                        "additionalProperties": false,
                                        "description": "One Conventional-Commits group."
                                    },
                                    {
                                        "type": "boolean"
                                    }
                                ]
                            }
                        },
                        {
                            "description": "A custom group builder (TS/JS configs only)."
                        }
                    ],
                    "description": "Conventional-Commits group order/titles: an ordered array of CC types or `{ type, title, order, hidden }`, a type->title/options record, or a callback (TS/JS configs only)."
                },
                "breaking": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "string",
                            "enum": [
                                "conventional",
                                "any"
                            ]
                        },
                        {
                            "type": "object",
                            "properties": {
                                "pattern": {
                                    "type": "string",
                                    "description": "A regular expression matched against the subject and body."
                                },
                                "match": {
                                    "type": "string",
                                    "description": "A substring matched against the subject and body."
                                }
                            },
                            "additionalProperties": false
                        },
                        {
                            "description": "A custom breaking-change predicate (TS/JS configs only)."
                        }
                    ],
                    "description": "How breaking changes are detected: `conventional` (default: a `!` in the CC subject or a `BREAKING CHANGE:` footer), `any` (legacy loose match), `false` (disable), `{ pattern }` / `{ match }`, or a callback (TS/JS configs only)."
                }
            },
            "additionalProperties": false,
            "description": "Changelog workflow + pipeline: versioning, VS Code settings and commitlint."
        },
        "ChangelogBranchesConfig": {
            "type": "object",
            "properties": {
                "main": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Branch glob(s) the CI + release workflows run on, and the release PR base (default `[\"main\"]`)."
                },
                "dev": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Branch glob(s) the changelog/version workflow runs on. No default: when omitted it reuses `main` (so a single-branch repo needs no `dev`)."
                }
            },
            "additionalProperties": false,
            "description": "Branches the generated workflows target."
        },
        "ChangelogCommitlintConfig": {
            "type": "object",
            "properties": {
                "dir": {
                    "type": "string",
                    "description": "Directory the generated `commitlint.config.mjs` is written to (default: the project root). The husky hook and CI use `--config` to point at it."
                },
                "types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Allowed commit types (commitlint)."
                },
                "scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Allowed commit scopes (commitlint)."
                },
                "enabled": {
                    "description": "Enable commitlint (default true when the changelog is enabled). Set false to generate changelogs without the Conventional-Commits pipeline.",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "commitlint config, output location and allow-lists."
        },
        "ChangelogVersioningConfig": {
            "type": "object",
            "properties": {
                "target": {
                    "description": "`uniform` bumps the root and every workspace to one shared version; `root-only` bumps the root only; `individual` bumps each changed workspace independently (default `uniform`).",
                    "$ref": "#/$defs/ChangelogVersioningTarget"
                },
                "workspaces": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Glob patterns selecting the workspaces to version (relative to the root). Defaults to the root `package.json` `workspaces` field; when there is none the root `package.json` is used on its own."
                },
                "bump": {
                    "type": "object",
                    "properties": {
                        "major": {
                            "$ref": "#/$defs/ChangelogBumpRule"
                        },
                        "minor": {
                            "$ref": "#/$defs/ChangelogBumpRule"
                        },
                        "patch": {
                            "$ref": "#/$defs/ChangelogBumpRule"
                        }
                    },
                    "additionalProperties": false,
                    "description": "Custom bump rules for major/minor/patch (matchers or callbacks)."
                },
                "allowOverBump": {
                    "type": "boolean",
                    "description": "Apply a bump once per matching change instead of once per run (default false)."
                },
                "commit": {
                    "description": "Commit message formatting/credit options (with an optional formatter callback).",
                    "$ref": "#/$defs/ChangelogCommitFormatConfig"
                },
                "provider": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "$ref": "#/$defs/ChangelogProviderConfig"
                        },
                        {
                            "description": "A custom provider callback returning the changelog body (TS/JS configs only)."
                        }
                    ],
                    "description": "`default`, `changesets`, a provider id, or a custom provider/callback."
                }
            },
            "additionalProperties": false,
            "description": "Automatic version bumping options."
        },
        "ChangelogVersioningTarget": {
            "type": "string",
            "enum": [
                "uniform",
                "root-only",
                "individual"
            ],
            "description": "Where the changelog version bump is applied."
        },
        "ChangelogBumpRule": {
            "anyOf": [
                {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "string"
                        },
                        {
                            "$ref": "#/$defs/ChangelogBumpRuleMatch"
                        },
                        {
                            "description": "A custom bump matcher (TS/JS configs only)."
                        }
                    ]
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "boolean"
                            },
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/$defs/ChangelogBumpRuleMatch"
                            },
                            {
                                "description": "A custom bump matcher (TS/JS configs only)."
                            }
                        ]
                    }
                }
            ],
            "description": "A bump rule: a matcher/callback or a list of matchers/callbacks."
        },
        "ChangelogBumpRuleMatch": {
            "type": "object",
            "properties": {
                "breaking": {
                    "type": "boolean",
                    "description": "Match only commits whose breaking state equals this value."
                },
                "type": {
                    "type": "string",
                    "description": "Match this Conventional-Commits type."
                },
                "types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Match any of these CC types."
                },
                "scope": {
                    "type": "string",
                    "description": "Match this Conventional-Commits scope."
                },
                "scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Match any of these CC scopes."
                },
                "pattern": {
                    "type": "string",
                    "description": "Match this regular expression."
                },
                "match": {
                    "type": "string",
                    "description": "Match this substring."
                }
            },
            "additionalProperties": false,
            "description": "A declarative bump matcher."
        },
        "ChangelogCommitFormatConfig": {
            "type": "object",
            "properties": {
                "author": {
                    "type": "boolean",
                    "description": "Include the `by <author>` credit (default true)."
                },
                "commitSha": {
                    "type": "boolean",
                    "description": "Include the commit hash link (default true)."
                },
                "issues": {
                    "type": "boolean",
                    "description": "Include issue/fixes links (default true)."
                },
                "authorAvatar": {
                    "type": "boolean",
                    "description": "Prefix the author with their GitHub avatar (default false)."
                },
                "format": {
                    "description": "Fully custom commit line formatter (TS/JS configs only; return the bullet body)."
                }
            },
            "additionalProperties": false,
            "description": "Commit message formatting/credit options."
        },
        "ChangelogProviderConfig": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "The provider id."
                },
                "run": {
                    "description": "A custom provider callback returning the changelog body (TS/JS configs only)."
                }
            },
            "required": [
                "id",
                "run"
            ],
            "additionalProperties": false,
            "description": "A custom changelog provider object."
        },
        "ChangelogVersioning": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "$ref": "#/$defs/ChangelogVersioningConfig"
                }
            ],
            "description": "Automatic version bumping when a changelog entry is generated."
        },
        "ChangelogWorkflowSetting": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "string"
                },
                {
                    "$ref": "#/$defs/GitHubWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/GitLabWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/AzureWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/CiChangelogConfig"
                }
            ],
            "description": "`true`/`false` to enable/disable, a complete GitHub/GitLab/Azure workflow (with `provider`), the changelog pipeline config object, or a raw YAML string written verbatim as the changelog workflow file."
        },
        "CustomWorkflowSettings": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/$defs/GitHubWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/GitLabWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/AzureWorkflowSetting"
                },
                {
                    "$ref": "#/$defs/WorkflowOptions"
                }
            ],
            "description": "A custom workflow: a raw YAML string, a complete GitHub/GitLab/Azure workflow (with `provider`), or GitHub settings merged over an empty workflow (use `triggers`, `extra` and `jobs` to define it)."
        },
        "ChangelogConfig": {
            "type": "object",
            "properties": {
                "commitlint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ChangelogCommitlintConfig"
                        }
                    ],
                    "description": "commitlint config; set `false` to disable the Conventional-Commits pipeline."
                },
                "versioning": {
                    "description": "Automatic version bumping on changelog generation (default `true`).",
                    "$ref": "#/$defs/ChangelogVersioning"
                },
                "vscode": {
                    "type": "boolean",
                    "description": "Write the Conventional-Commits VS Code settings (default true)."
                },
                "groups": {
                    "anyOf": [
                        {
                            "type": "array",
                            "items": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string",
                                                "description": "The CC type (required for object entries in an array)."
                                            },
                                            "title": {
                                                "anyOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "description": "A custom group title callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Custom heading title (or callback; TS/JS configs only)."
                                            },
                                            "order": {
                                                "anyOf": [
                                                    {
                                                        "type": "number"
                                                    },
                                                    {
                                                        "description": "A custom group order callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Sort position; lower comes first (or callback; TS/JS configs only)."
                                            },
                                            "hidden": {
                                                "anyOf": [
                                                    {
                                                        "type": "boolean"
                                                    },
                                                    {
                                                        "description": "A custom group hidden callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Omit this group from the rendered changelog (or callback; TS/JS only)."
                                            }
                                        },
                                        "additionalProperties": false,
                                        "description": "One Conventional-Commits group."
                                    }
                                ]
                            }
                        },
                        {
                            "type": "object",
                            "propertyNames": {
                                "type": "string"
                            },
                            "additionalProperties": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string",
                                                "description": "The CC type (required for object entries in an array)."
                                            },
                                            "title": {
                                                "anyOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "description": "A custom group title callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Custom heading title (or callback; TS/JS configs only)."
                                            },
                                            "order": {
                                                "anyOf": [
                                                    {
                                                        "type": "number"
                                                    },
                                                    {
                                                        "description": "A custom group order callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Sort position; lower comes first (or callback; TS/JS configs only)."
                                            },
                                            "hidden": {
                                                "anyOf": [
                                                    {
                                                        "type": "boolean"
                                                    },
                                                    {
                                                        "description": "A custom group hidden callback (TS/JS configs only)."
                                                    }
                                                ],
                                                "description": "Omit this group from the rendered changelog (or callback; TS/JS only)."
                                            }
                                        },
                                        "additionalProperties": false,
                                        "description": "One Conventional-Commits group."
                                    },
                                    {
                                        "type": "boolean"
                                    }
                                ]
                            }
                        },
                        {
                            "description": "A custom group builder (TS/JS configs only)."
                        }
                    ],
                    "description": "Conventional-Commits group order/titles: an ordered array of CC types or `{ type, title, order, hidden }`, a type->title/options record, or a callback (TS/JS configs only)."
                },
                "breaking": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "string",
                            "enum": [
                                "conventional",
                                "any"
                            ]
                        },
                        {
                            "type": "object",
                            "properties": {
                                "pattern": {
                                    "type": "string",
                                    "description": "A regular expression matched against the subject and body."
                                },
                                "match": {
                                    "type": "string",
                                    "description": "A substring matched against the subject and body."
                                }
                            },
                            "additionalProperties": false
                        },
                        {
                            "description": "A custom breaking-change predicate (TS/JS configs only)."
                        }
                    ],
                    "description": "How breaking changes are detected: `conventional` (default: a `!` in the CC subject or a `BREAKING CHANGE:` footer), `any` (legacy loose match), `false` (disable), `{ pattern }` / `{ match }`, or a callback (TS/JS configs only)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Manual `toolchain.changelog` pipeline config for `dbx changelog`, the VS Code actions and the API; `ci.changelog` inherits these options."
        },
        "ToolchainFmtConfig": {
            "type": "object",
            "properties": {
                "vscode": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainVscodeSettings"
                        }
                    ],
                    "description": "Add project-scoped VS Code settings: `true`/`false` or `{ overrides, exclude }` (default false; existing keys are kept)."
                },
                "oxc": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Oxfmt configuration options."
                        }
                    ],
                    "description": "Oxfmt options (`true` = defaults, `false` = disabled). `toolchain.vite.fmt` overrides these (deep merge)."
                },
                "biome": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Biome configuration options."
                        }
                    ],
                    "description": "Biome formatter options (`true` = defaults, `false` = disabled); merged into the generated `biome.json` (arrays union; `$remove:`/`$reset` prune or replace them)."
                },
                "prettier": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Prettier configuration options."
                        }
                    ],
                    "description": "Prettier options (`true` = defaults, `false` = disabled)."
                },
                "dprint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Dprint configuration options."
                        }
                    ],
                    "description": "Dprint options (`true` = defaults, `false` = disabled)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Formatter configuration: Oxc/Biome configs, editor defaults and source-tool options."
        },
        "ToolchainVscodeSettings": {
            "type": "object",
            "properties": {
                "overrides": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Settings deep-merged over the generated editor defaults."
                },
                "exclude": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Exact setting keys (eg. `editor.defaultFormatter`) to omit."
                }
            },
            "additionalProperties": false
        },
        "ToolchainLintConfig": {
            "type": "object",
            "properties": {
                "vscode": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainVscodeSettings"
                        }
                    ],
                    "description": "Add project-scoped VS Code settings: `true`/`false` or `{ overrides, exclude }` (default false; existing keys are kept)."
                },
                "oxc": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Oxlint configuration options."
                        }
                    ],
                    "description": "Oxlint options (`true` = defaults, `false` = disabled). `toolchain.vite.lint` overrides these (deep merge)."
                },
                "biome": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Biome configuration options."
                        }
                    ],
                    "description": "Biome linter options (`true` = defaults, `false` = disabled); merged into the generated `biome.json` (arrays union; `$remove:`/`$reset` prune or replace them)."
                },
                "eslint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "ESLint configuration options."
                        }
                    ],
                    "description": "ESLint options (`true` = defaults, `false` = disabled)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Linter configuration: Oxc/Biome configs, editor defaults and ESLint options."
        },
        "ToolchainBiomeConfig": {
            "type": "object",
            "properties": {
                "vscode": {
                    "type": "boolean",
                    "description": "Write the Biome VS Code settings (default true)."
                },
                "overrides": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Deep-merged over the generated `biome.json` (arrays union; `$remove:`/`$reset` prune or replace them)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Biome config generation (for consumers that still want a `biome.json`).",
            "deprecated": true,
            "deprecationMessage": "use `toolchain.fmt.biome` / `toolchain.lint.biome`. Still writes `biome.json`."
        },
        "ToolchainTsconfigConfig": {
            "type": "object",
            "properties": {
                "glob": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Glob(s) for the workspace default tsconfig files. Defaults to matching every `defaultFile` recursively."
                },
                "exclude": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Glob(s) to exclude from `glob`. Defaults to the common ignored paths (`node_modules`, `.dbx`, `dist`, `build`, ...)."
                },
                "gitignore": {
                    "type": "boolean",
                    "description": "Also respect `.gitignore` files (root + nested) when matching `glob` (default true)."
                },
                "refs": {
                    "type": "boolean",
                    "description": "Wire project references (default false)."
                },
                "composite": {
                    "type": "boolean",
                    "description": "Emit `composite: true` (default false)."
                },
                "aliases": {
                    "type": "boolean",
                    "description": "Inject path aliases (default true)."
                },
                "auto": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainTsconfigAliasAutoSetting"
                        }
                    ],
                    "description": "Auto-generate the root workspaces tsconfig paths/references from the project graph (default false). Set true to derive them from the project graph; set false to only use the entries you define yourself."
                },
                "aliasAuto": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainTsconfigAliasAutoSetting"
                        }
                    ],
                    "description": "Auto-generate path aliases (defaults to `auto`; `aliases` must also be enabled). Accepts the same `include`/`exclude`/`rewriteAlias` object as `auto`."
                },
                "refsAuto": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainTsconfigAutoSetting"
                        }
                    ],
                    "description": "Auto-generate project references (defaults to `auto`; `refs` must also be enabled)."
                },
                "autoSrcDir": {
                    "type": "string",
                    "description": "Source directory used to resolve workspace entry points when `package.json` does not declare `exports`/`main`/`types` (default: the workspace's final tsconfig `rootDir`/`baseUrl`, falling back to `src`)."
                },
                "indent": {
                    "type": "number",
                    "description": "JSON indentation (default 4)."
                },
                "rootFile": {
                    "type": "string",
                    "description": "The workspaces tsconfig file name that holds `paths` + `references` (default `tsconfig.workspaces.json`)."
                },
                "defaultFile": {
                    "type": "string",
                    "description": "The workspace default tsconfig file name that the generator expands (default `tsconfig.default.json`)."
                },
                "buildFile": {
                    "type": "string",
                    "description": "The workspace build tsconfig file name (default `tsconfig.build.json`)."
                },
                "baseFile": {
                    "type": "string",
                    "description": "The root base tsconfig file name (default `tsconfig.base.json`)."
                },
                "extends": {
                    "type": "object",
                    "properties": {
                        "base": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                {
                                    "type": "boolean",
                                    "const": false
                                }
                            ],
                            "description": "`extends` written into scaffolded `tsconfig.base.json` files (or `false` to remove the field)."
                        },
                        "default": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                {
                                    "type": "boolean",
                                    "const": false
                                }
                            ],
                            "description": "`extends` written into scaffolded `tsconfig.default.json` files (or `false` to remove the field)."
                        },
                        "build": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                {
                                    "type": "boolean",
                                    "const": false
                                }
                            ],
                            "description": "`extends` written into scaffolded `tsconfig.build.json` files. Default `./tsconfig.default.json`; use `./tsconfig.json` to let builds reuse the path aliases (at the cost of pulling workspace source into the build)."
                        }
                    },
                    "additionalProperties": false,
                    "description": "Per-file `extends` overrides for generated/scaffolded tsconfig templates."
                },
                "overrides": {
                    "$ref": "#/$defs/ToolchainTsconfigOverrides"
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Workspace tsconfig generation (path aliases + project references)."
        },
        "ToolchainTsconfigAliasAutoSetting": {
            "type": "object",
            "properties": {
                "include": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Only auto-wire entries matching these globs (`auto`: workspace dirs; `aliasAuto`: rewritten alias keys; `refsAuto`: reference paths)."
                },
                "exclude": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Skip entries matching these globs (same targets as `include`)."
                },
                "rewriteAlias": {
                    "anyOf": [
                        {
                            "type": "object",
                            "propertyNames": {
                                "type": "string"
                            },
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "pattern": {
                                        "anyOf": [
                                            {
                                                "type": "string"
                                            },
                                            {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        ]
                                    },
                                    "replacement": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "pattern",
                                    "replacement"
                                ],
                                "additionalProperties": false
                            }
                        }
                    ],
                    "description": "Rewrite the alias keys auto-wiring generates (custom keys are preserved). Patterns are URL-rewrite style: a string is a regular-expression source and replacements support `$1`, `$2`, ... capture groups. Examples: `{ \"^@acme/(.+)$\": \"@acme/pkg/$1\" }` (string patterns), `[{ pattern: /^@acme\\/(.+)$/, replacement: \"@acme/pkg/$1\" }]` (RegExp patterns), `[{ pattern: [\"^@acme/a$\", \"^@acme/b$\"], replacement: \"@acme/x\" }]` (an array of keys), and an array of such rules (applied in order; the first matching rule wins). `RegExp` patterns are only available from TS/JS configs; JSON configs use string patterns."
                }
            },
            "additionalProperties": false
        },
        "ToolchainTsconfigAutoSetting": {
            "type": "object",
            "properties": {
                "include": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Only auto-wire entries matching these globs (`auto`: workspace dirs; `aliasAuto`: rewritten alias keys; `refsAuto`: reference paths)."
                },
                "exclude": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Skip entries matching these globs (same targets as `include`)."
                }
            },
            "additionalProperties": false
        },
        "ToolchainTsconfigOverrides": {
            "type": "object",
            "properties": {
                "base": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Deep-merged into the root base tsconfig (`baseFile`) during sync."
                },
                "default": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Deep-merged into every workspace default tsconfig (`defaultFile`) during sync."
                },
                "build": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Deep-merged into every workspace build tsconfig (`buildFile`) during sync."
                },
                "root": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": {},
                    "description": "Deep-merged into the root workspaces tsconfig (`rootFile`) during sync."
                }
            },
            "additionalProperties": false,
            "description": "Managed overrides deep-merged into the base/root/default/build tsconfig files during sync. The originals are snapshotted in the manifest, so removing a key reverts it (restoring the original value when the file defined one)."
        },
        "ToolchainTemplatesConfig": {
            "type": "object",
            "properties": {
                "sources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/ToolchainTemplateSource"
                    },
                    "description": "Extra sources on top of the builtin + registry sources."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Template sources / scaffolding."
        },
        "ToolchainTemplateSource": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "#/$defs/ToolchainTemplateSourceType"
                },
                "locate": {
                    "type": "string",
                    "description": "A builtin id, local dir, npm scope, git URL or Vite+ id."
                },
                "id": {
                    "type": "string",
                    "description": "Stable id (defaults to the basename/scope)."
                },
                "name": {
                    "type": "string",
                    "description": "Display name override."
                },
                "description": {
                    "type": "string",
                    "description": "Description override."
                },
                "kind": {
                    "$ref": "#/$defs/ToolchainTemplateKind"
                },
                "ref": {
                    "type": "string",
                    "description": "Git branch/tag/commit."
                },
                "registry": {
                    "type": "string",
                    "description": "Custom npm registry URL (default: the project package manager registry)."
                },
                "subdir": {
                    "type": "string",
                    "description": "Subdirectory within the source that holds the template."
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Free-form tags."
                },
                "online": {
                    "type": "boolean",
                    "description": "Whether the source needs network access."
                }
            },
            "required": [
                "type",
                "locate"
            ],
            "additionalProperties": false,
            "description": "A template source: builtin, local, npm, git or Vite+."
        },
        "ToolchainTemplateSourceType": {
            "type": "string",
            "enum": [
                "builtin",
                "local",
                "npm",
                "git",
                "vite-plus",
                "remote"
            ],
            "description": "How to load the source."
        },
        "ToolchainTemplateKind": {
            "type": "string",
            "enum": [
                "project",
                "workspace",
                "application",
                "folder",
                "tooling",
                "pipeline"
            ],
            "description": "What the template produces."
        },
        "ToolchainRegistryConfig": {
            "type": "object",
            "properties": {
                "templates": {
                    "description": "Allow/deny globs for template sources and registries.",
                    "$ref": "#/$defs/ToolchainRegistryPolicy"
                },
                "providers": {
                    "description": "Allow/deny globs for provider sources and registries.",
                    "$ref": "#/$defs/ToolchainRegistryPolicy"
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Registry source allow/deny policies (templates + providers)."
        },
        "ToolchainRegistryPolicy": {
            "type": "object",
            "properties": {
                "allow": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Allowed host/path globs. When non-empty, only matching sources are used (eg. `*.example.com`, `https://registry.example.com/**`)."
                },
                "deny": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Denied host/path globs (checked before `allow`)."
                }
            },
            "additionalProperties": false,
            "description": "Registry source allow/deny globs."
        },
        "ToolchainCatalogsConfig": {
            "type": "object",
            "properties": {
                "packages": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The default catalog: package name -> version range."
                },
                "named": {
                    "type": "object",
                    "propertyNames": {
                        "type": "string"
                    },
                    "additionalProperties": {
                        "type": "object",
                        "propertyNames": {
                            "type": "string"
                        },
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "description": "Named catalogs (Yarn `catalogs:` / pnpm `catalogs:`): name -> packages."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Package catalogs written to the package manager catalog file (`catalog:`)."
        },
        "ToolchainViteConfig": {
            "type": "object",
            "properties": {
                "config": {
                    "description": "Write the managed Vite config (default true). A string sets its file name/path (relative to the project, or an absolute path inside it).",
                    "type": [
                        "boolean",
                        "string"
                    ]
                },
                "shim": {
                    "type": "string",
                    "enum": [
                        "runtime",
                        "static"
                    ],
                    "description": "How the generated `vite.config.ts` is rendered. `runtime` (default) loads the config from `dbx.config.*`; `static` serializes it into the file so the shim does not import `@deltabox/toolchain` (it then needs no built `dist`)."
                },
                "shimImport": {
                    "type": "string",
                    "description": "Module specifier used to import `resolveVite` in runtime shims (default `@deltabox/toolchain/vite`). A relative path is resolved from the repo root and rewritten relative to each generated config - useful for dogfooding a source checkout without a built `dist`."
                },
                "fmt": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Oxfmt configuration options."
                        }
                    ],
                    "description": "Oxfmt options; `true` uses the toolchain defaults."
                },
                "lint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "object",
                            "properties": {},
                            "additionalProperties": {},
                            "description": "Oxlint configuration options."
                        }
                    ],
                    "description": "Oxlint options; `true` uses the toolchain defaults."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": {},
            "description": "The full Vite+ config; `dbx sync` writes the root `vite.config.ts` from it."
        },
        "ToolchainWatchConfig": {
            "type": "object",
            "properties": {
                "debounce": {
                    "type": "number",
                    "description": "Debounce window in ms (default 150)."
                },
                "exclude": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Glob(s) excluded from watching. Defaults to the common ignored paths (`node_modules`, `.dbx`, `dist`, `build`, ...)."
                },
                "gitignore": {
                    "type": "boolean",
                    "description": "Also respect `.gitignore` files (root + nested) when watching (default true)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Watch behaviour for `dbx watch`."
        },
        "ToolchainLoggerConfig": {
            "type": "object",
            "properties": {
                "level": {
                    "type": "string",
                    "enum": [
                        "debug",
                        "info",
                        "warn",
                        "error",
                        "silent"
                    ],
                    "description": "Minimum level to print (default `info`)."
                },
                "color": {
                    "type": "boolean",
                    "description": "Force colours on/off (default: on; `--no-color` disables)."
                },
                "name": {
                    "type": "string",
                    "description": "Prefix non-indented lines with `<name>:` (default `dbx`)."
                },
                "suppress": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ],
                    "description": "Warning/error id, message substring, or `/regex/` to silence (single value or array)."
                },
                "logger": {
                    "type": "object",
                    "properties": {
                        "raw": {
                            "description": "Write raw stdout."
                        },
                        "rawError": {
                            "description": "Write raw stderr."
                        },
                        "write": {
                            "description": "Write to a specific output channel."
                        },
                        "debug": {
                            "description": "Print a debug message."
                        },
                        "info": {
                            "description": "Print an info message."
                        },
                        "success": {
                            "description": "Print a success message."
                        },
                        "warn": {
                            "description": "Print a warning."
                        },
                        "error": {
                            "description": "Print an error."
                        }
                    },
                    "required": [
                        "raw",
                        "rawError",
                        "write",
                        "debug",
                        "info",
                        "success",
                        "warn",
                        "error"
                    ],
                    "additionalProperties": false,
                    "description": "Custom `ToolchainLogger` implementation (TS/JS configs only; JSON cannot carry functions)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Logging level, colours and prefix for toolchain output."
        },
        "ToolchainProvidersConfig": {
            "type": "object",
            "properties": {
                "color": {
                    "type": "boolean",
                    "description": "Force provider command colours on/off (default: inherit the logger)."
                },
                "enabled": {
                    "description": "Enable/disable this section (default: enabled when defined).",
                    "type": "boolean"
                }
            },
            "additionalProperties": false,
            "description": "Provider command behaviour (eg. colour for the passthrough commands)."
        },
        "ToolchainConfigSections": {
            "type": "object",
            "properties": {
                "project": {
                    "description": "Project metadata: canonical `package.json` fields and template tokens (inherited by workspaces).",
                    "$ref": "#/$defs/ToolchainProjectConfig"
                },
                "ci": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainCiConfig"
                        }
                    ],
                    "description": "GitHub Actions workflows to generate (CI, release, issues, changelog, sync)."
                },
                "changelog": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ChangelogConfig"
                        }
                    ],
                    "description": "Manual changelog pipeline options for `dbx changelog`, the VS Code actions and the API. `ci.changelog` inherits these options."
                },
                "fmt": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainFmtConfig"
                        }
                    ],
                    "description": "Formatter configuration: Oxc/Biome options, editor defaults and tools."
                },
                "lint": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainLintConfig"
                        }
                    ],
                    "description": "Linter configuration: Oxc/Biome/ESLint options and editor defaults."
                },
                "biome": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainBiomeConfig"
                        }
                    ],
                    "description": "Biome config generation (for consumers that still want a `biome.json`)."
                },
                "tsconfig": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainTsconfigConfig"
                        }
                    ],
                    "description": "Workspace tsconfig generation (path aliases + project references)."
                },
                "templates": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainTemplatesConfig"
                        }
                    ],
                    "description": "Template sources / scaffolding."
                },
                "registry": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainRegistryConfig"
                        }
                    ],
                    "description": "Allow/deny host and path globs for template/provider registries."
                },
                "catalogs": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainCatalogsConfig"
                        }
                    ],
                    "description": "Package catalogs written to the package manager catalog file (`catalog:`)."
                },
                "vite": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainViteConfig"
                        }
                    ],
                    "description": "The full Vite+ config; `dbx sync` writes the root `vite.config.ts` from it."
                },
                "watch": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainWatchConfig"
                        }
                    ],
                    "description": "Watch behaviour for `dbx watch`."
                },
                "logger": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainLoggerConfig"
                        }
                    ],
                    "description": "Logging level, colours and prefix for toolchain output."
                },
                "providers": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "$ref": "#/$defs/ToolchainProvidersConfig"
                        }
                    ],
                    "description": "Provider command behaviour (eg. colour for the passthrough commands)."
                }
            },
            "additionalProperties": false
        }
    },
    "$id": "https://deltabox.studio/schemas/dbx.config.json",
    "title": "dbx.config",
    "description": "The dbx configuration model (the @deltabox/toolchain settings live under `toolchain`)."
}
