{
	"$defs": {
		"BumpPropagationMode": {
			"description": "Declares how a target's own changes propagate to its dependents.\n\nConfigure this on a `[[package]]` or `group` with `bump_propagation` and\nthe optional `bump_propagation_max` clamp. Policy resolution is\nmost-specific-first: the package declaration wins over its owning\ngroup's, which wins over `[defaults].bump_propagation`, which wins over\nthe legacy `[defaults].parent_bump` floor.",
			"oneOf": [
				{
					"const": "inherit",
					"description": "Dependents match this target's release severity: a breaking change in\nthis package means breaking changes for its dependents.",
					"type": "string"
				},
				{
					"const": "none",
					"description": "Propagation is disabled; dependents do not release because of this\ntarget. Semantic compatibility evidence can still escalate.",
					"type": "string"
				},
				{
					"const": "patch",
					"description": "Dependents always receive at least a `patch` bump.",
					"type": "string"
				},
				{
					"const": "minor",
					"description": "Dependents always receive at least a `minor` bump (pre-stable version\nshifting applies).",
					"type": "string"
				},
				{
					"const": "major",
					"description": "Dependents always receive at least a `major` bump.",
					"type": "string"
				}
			]
		},
		"BumpSeverity": {
			"enum": [
				"none",
				"patch",
				"minor",
				"major"
			],
			"type": "string"
		},
		"CargoSemverChecksSettings": {
			"additionalProperties": false,
			"description": "Opt-in cargo-semver-checks configuration for semantic Rust analysis.",
			"properties": {
				"enabled": {
					"default": false,
					"description": "Run the external analyzer when semantic detection is requested.",
					"type": "boolean"
				},
				"matrix": {
					"default": [
						{
							"feature_mode": "default",
							"name": "default"
						}
					],
					"description": "Feature and target combinations that define supported Rust API coverage.",
					"items": {
						"$ref": "#/$defs/CargoSemverMatrixCell"
					},
					"type": "array"
				},
				"timeout_seconds": {
					"default": 300,
					"description": "Maximum duration of each matrix cell.",
					"format": "uint64",
					"minimum": 0,
					"type": "integer"
				}
			},
			"type": "object"
		},
		"CargoSemverFeatureMode": {
			"description": "Cargo feature selection used by one cargo-semver-checks matrix cell.",
			"oneOf": [
				{
					"const": "default",
					"description": "Check the crate-defined default features plus explicitly listed features.",
					"type": "string"
				},
				{
					"const": "all",
					"description": "Check every declared feature.",
					"type": "string"
				},
				{
					"const": "none",
					"description": "Disable implicit features and use only explicitly listed features.",
					"type": "string"
				},
				{
					"const": "heuristic",
					"description": "Use cargo-semver-checks' stable-feature heuristic.",
					"type": "string"
				}
			]
		},
		"CargoSemverMatrixCell": {
			"additionalProperties": false,
			"description": "One configured cargo-semver-checks feature and target combination.",
			"properties": {
				"baseline_features": {
					"description": "Extra features enabled only for the baseline endpoint.",
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"current_features": {
					"description": "Extra features enabled only for the candidate endpoint.",
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"feature_mode": {
					"$ref": "#/$defs/CargoSemverFeatureMode",
					"default": "default",
					"description": "Implicit feature-selection mode shared by both endpoints."
				},
				"features": {
					"description": "Extra features enabled at both endpoints.",
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"name": {
					"description": "Stable, human-readable identifier used in reports.",
					"type": "string"
				},
				"target": {
					"description": "Rust compilation target, or the host target when omitted.",
					"type": [
						"string",
						"null"
					]
				}
			},
			"required": [
				"name"
			],
			"type": "object"
		},
		"ChangelogFormat": {
			"enum": [
				"monochange",
				"keep_a_changelog",
				"json",
				"text"
			],
			"type": "string"
		},
		"ChangelogOutputDefinition": {
			"additionalProperties": false,
			"description": "One named destination that renders a configured changelog stream.",
			"properties": {
				"format": {
					"$ref": "#/$defs/ChangelogFormat",
					"default": "monochange",
					"description": "Renderer used for the output artifact."
				},
				"initial_header": {
					"description": "Optional initial header for append-mode Markdown changelogs.",
					"type": [
						"string",
						"null"
					]
				},
				"mode": {
					"$ref": "#/$defs/ChangelogOutputMode",
					"default": "append",
					"description": "Whether releases are appended or written as standalone artifacts."
				},
				"path": {
					"description": "Output path template. Supports `path`, `id`, and `version` variables.",
					"type": "string"
				},
				"stream": {
					"default": "default",
					"description": "Stream selected for this output.",
					"type": "string"
				},
				"targets": {
					"description": "Configured package or group ids rendered by this output.",
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			},
			"required": [
				"path",
				"targets"
			],
			"type": "object"
		},
		"ChangelogOutputMode": {
			"description": "Controls whether a changelog output accumulates releases or represents only\nthe current release.",
			"oneOf": [
				{
					"const": "append",
					"description": "Insert each release at the top of an existing changelog.",
					"type": "string"
				},
				{
					"const": "release",
					"description": "Replace the destination with only the current release notes.",
					"type": "string"
				}
			]
		},
		"ChangelogSectionDef": {
			"additionalProperties": false,
			"properties": {
				"description": {
					"default": null,
					"description": "Description of when this section should appear.",
					"type": [
						"string",
						"null"
					]
				},
				"heading": {
					"description": "Display heading for the section in rendered changelogs.",
					"type": "string"
				},
				"priority": {
					"default": 100,
					"description": "Ordering priority for changelog rendering. Lower values appear first.",
					"format": "int8",
					"maximum": 127,
					"minimum": -128,
					"type": "integer"
				}
			},
			"required": [
				"heading"
			],
			"type": "object"
		},
		"ChangelogSectionThresholds": {
			"additionalProperties": false,
			"properties": {
				"collapse": {
					"default": 127,
					"description": "Collapse sections whose priority is greater than or equal to this value.",
					"format": "int8",
					"maximum": 127,
					"minimum": -128,
					"type": "integer"
				},
				"ignored": {
					"default": 127,
					"description": "Omit sections whose priority is strictly greater than this value.",
					"format": "int8",
					"maximum": 127,
					"minimum": -128,
					"type": "integer"
				}
			},
			"type": "object"
		},
		"ChangelogStreamDefinition": {
			"additionalProperties": false,
			"description": "Describes one configured changelog stream.\n\nStreams partition release-note content without coupling it to a renderer or\ndestination.",
			"properties": {
				"description": {
					"description": "Human-readable explanation of the stream's audience or scope.",
					"type": [
						"string",
						"null"
					]
				}
			},
			"type": "object"
		},
		"ChangelogStyle": {
			"additionalProperties": false,
			"description": "Rendering style options for changelog output.\n\nControls visual formatting of changelogs: section separators, package labels,\nmetadata lines, and collapsed section rendering. These are purely presentation\nconcerns; data-level configuration (sections, types, thresholds) lives in\n`ChangelogSettings`.\n\nA `ChangelogStyle::rules()` method produces a human-readable description of\nthe active style, suitable for feeding to an AI agent when reformatting\nexisting changelogs.",
			"properties": {
				"collapsed_section_style": {
					"$ref": "#/$defs/CollapsedSectionStyle",
					"default": "details"
				},
				"metadata_style": {
					"$ref": "#/$defs/MetadataStyle",
					"default": "inline"
				},
				"package_bump_symbols": {
					"default": true,
					"description": "Prefix each package label with a colored symbol for its bump severity.\n\n🔴 major, 🟠 minor, 🟢 patch, ⚪ none. Enabled by default so a reader can\nsee which package was breaking when an entry merged several targets.",
					"type": "boolean"
				},
				"package_label_placement": {
					"$ref": "#/$defs/PackageLabelPlacement",
					"default": "after_heading"
				},
				"package_label_style": {
					"$ref": "#/$defs/PackageLabelStyle",
					"default": "inline"
				},
				"section_separator": {
					"$ref": "#/$defs/SectionSeparator",
					"default": "blank_line"
				}
			},
			"type": "object"
		},
		"ChangesetAffectedSettings": {
			"additionalProperties": false,
			"properties": {
				"changed_paths": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"comment_on_failure": {
					"default": true,
					"type": "boolean"
				},
				"enabled": {
					"default": true,
					"type": "boolean"
				},
				"ignored_paths": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"required": {
					"default": true,
					"type": "boolean"
				},
				"skip_labels": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			},
			"type": "object"
		},
		"ChangesetClassificationSettings": {
			"additionalProperties": false,
			"description": "Pull-request label policy for `monochange change classify`.\n\nClassification describes the compatibility impact of pending work. A pull\nrequest that only bumps versions, such as the release request monochange\nopens itself, has no such pending work, so classifying it produces noise.",
			"properties": {
				"skip_labels": {
					"default": [
						"release"
					],
					"description": "Pull-request labels that skip classification entirely. When any label on\nthe pull request matches an entry here, the command reports a skipped\nresult instead of analyzing packages.\n\nDefaults to `[\"release\"]` so the release pull request monochange opens is\nnot classified. Set this to `[]` to always classify.",
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			},
			"type": "object"
		},
		"ChangesetSettings": {
			"additionalProperties": false,
			"properties": {
				"affected": {
					"$ref": "#/$defs/ChangesetAffectedSettings",
					"default": {
						"changed_paths": [],
						"comment_on_failure": true,
						"enabled": true,
						"ignored_paths": [],
						"required": true,
						"skip_labels": []
					}
				},
				"classification": {
					"$ref": "#/$defs/ChangesetClassificationSettings",
					"default": {
						"skip_labels": [
							"release"
						]
					}
				}
			},
			"type": "object"
		},
		"CliInputDefault": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"type": "boolean"
				},
				{
					"format": "int64",
					"type": "integer"
				},
				{
					"format": "double",
					"type": "number"
				}
			]
		},
		"CliInputDefinition": {
			"additionalProperties": false,
			"properties": {
				"choices": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"default": {
					"anyOf": [
						{
							"$ref": "#/$defs/CliInputDefault"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"help_text": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"name": {
					"type": "string"
				},
				"required": {
					"default": false,
					"type": "boolean"
				},
				"short": {
					"default": null,
					"maxLength": 1,
					"minLength": 1,
					"type": [
						"string",
						"null"
					]
				},
				"type": {
					"$ref": "#/$defs/CliInputKind"
				}
			},
			"required": [
				"name",
				"type"
			],
			"type": "object"
		},
		"CliInputKind": {
			"enum": [
				"string",
				"string_list",
				"path",
				"choice",
				"boolean"
			],
			"type": "string"
		},
		"CliStepDefinition": {
			"description": "Built-in execution units for `[[cli.<command>.steps]]`.\n\n`monochange` runs steps in order and lets later steps consume state created by\nearlier ones. Use standalone steps such as `Validate`, `Discover`,\n`AffectedPackages`, `DiagnoseChangesets`, and `RetargetRelease` when you want\ninspection or repair. Use `PrepareRelease` when later steps need structured\nrelease state.\n\nSee the CLI step reference in the book for full workflow guidance.",
			"oneOf": [
				{
					"additionalProperties": false,
					"description": "Expose the resolved `monochange` configuration and workspace root.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "Config",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Validate `monochange` configuration and changesets.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "Validate",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Discover packages across supported ecosystems and render the result.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "Discover",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Display planned package and group versions without mutating release files.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "DisplayVersions",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Create a `.changeset/*.md` file from typed CLI inputs or interactive\nprompts.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"show_progress": {
							"default": null,
							"type": [
								"boolean",
								"null"
							]
						},
						"type": {
							"const": "CreateChangeFile",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Prepare a release and expose structured `release.*` context to later\nsteps.",
					"properties": {
						"allow_empty_changesets": {
							"default": false,
							"description": "When true, do not error when there are no pending changesets.\nInstead, succeed with zero changesets, allowing downstream steps\nto check `number_of_changesets` in their `when` conditions.",
							"type": "boolean"
						},
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PrepareRelease",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Create a local release commit with an embedded durable `ReleaseRecord`.\n\nRequires a previous `PrepareRelease` step.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"no_verify": {
							"default": false,
							"type": "boolean"
						},
						"stage_all": {
							"default": false,
							"type": "boolean"
						},
						"type": {
							"const": "CommitRelease",
							"type": "string"
						},
						"update_release_json": {
							"default": false,
							"type": "boolean"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Verify a commit is reachable from one of the configured release branches.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "VerifyReleaseBranch",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Publish hosted releases from a prepared `monochange` release.\n\nRequires a previous `PrepareRelease` step and `[source]`\nconfiguration.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PublishRelease",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Publish placeholder package versions for missing registry packages.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PlaceholderPublish",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Publish package versions from durable monochange release state.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PublishPackages",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Plan package-registry rate-limit windows for publish operations.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PlanPublishRateLimits",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Open or update a hosted release request from prepared release state.\n\nRequires a previous `PrepareRelease` step and `[source]`\nconfiguration.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"no_verify": {
							"default": false,
							"type": "boolean"
						},
						"stage_all": {
							"default": false,
							"type": "boolean"
						},
						"type": {
							"const": "OpenReleaseRequest",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Comment on linked released issues after a prepared release.\n\nRequires a previous `PrepareRelease` step and expects\n`[source].provider = \"github\"`.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "CommentReleasedIssues",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Evaluate affected packages and changeset coverage for changed files.\n\nStandalone CI-oriented step.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "AffectedPackages",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Inspect parsed changeset data, provenance, and linked metadata.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "DiagnoseChangesets",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Inspect the monochange release record associated with a tag or commit.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "ReleaseRecord",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Check package registry publishing readiness without publishing packages.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "PublishReadiness",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Create and push release tags from the monochange release record on a commit.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "TagRelease",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Repair a recent release by retargeting its stored release tag set.\n\nThis step is independent from `PrepareRelease` and exposes structured\n`retarget.*` state to later commands.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"type": {
							"const": "RetargetRelease",
							"type": "string"
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type"
					],
					"type": "object"
				},
				{
					"additionalProperties": false,
					"description": "Run an arbitrary command with `monochange` template context.\n\nUse this to bridge built-in `monochange` state into external tooling.",
					"properties": {
						"always_run": {
							"default": false,
							"type": "boolean"
						},
						"command": {
							"type": "string"
						},
						"dry_run_command": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"id": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"inputs": {
							"$ref": "#/$defs/CliStepInputsSchema",
							"default": []
						},
						"name": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						},
						"shell": {
							"$ref": "#/$defs/ShellConfig",
							"default": false
						},
						"show_progress": {
							"default": null,
							"type": [
								"boolean",
								"null"
							]
						},
						"type": {
							"const": "Command",
							"type": "string"
						},
						"variables": {
							"additionalProperties": {
								"$ref": "#/$defs/CommandVariable"
							},
							"default": null,
							"type": [
								"object",
								"null"
							]
						},
						"when": {
							"default": null,
							"type": [
								"string",
								"null"
							]
						}
					},
					"required": [
						"type",
						"command"
					],
					"type": "object"
				}
			]
		},
		"CliStepInputOverrideValueSchema": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"type": "boolean"
				},
				{
					"format": "double",
					"type": "number"
				},
				{
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			]
		},
		"CliStepInputsSchema": {
			"anyOf": [
				{
					"additionalProperties": {
						"$ref": "#/$defs/CliStepInputOverrideValueSchema"
					},
					"type": "object"
				},
				{
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			]
		},
		"CollapsedSectionStyle": {
			"description": "How to render collapsed (low-priority) sections in changelogs.",
			"oneOf": [
				{
					"const": "details",
					"description": "Use HTML `<details>/<summary>` collapsible sections.",
					"type": "string"
				},
				{
					"const": "plain",
					"description": "Render as regular `### heading` sections with no collapse.",
					"type": "string"
				}
			]
		},
		"CommandVariable": {
			"enum": [
				"version",
				"group_version",
				"released_packages",
				"changed_files",
				"changesets"
			],
			"type": "string"
		},
		"EcosystemType": {
			"enum": [
				"cargo",
				"npm",
				"deno",
				"dart",
				"python",
				"go"
			],
			"type": "string"
		},
		"FloatingTagFormat": {
			"description": "Rendered template for one floating tag alias.\n\n`v0.9.2` also moves `v0.9` when the alias template renders\n`v{{ major }}.{{ minor }}`. Templates may use `{{ major }}`, `{{ minor }}`,\n`{{ patch }}`, and `{{ version }}`.",
			"type": "string"
		},
		"GitSource": {
			"description": "Which git-derived value a `git` source reads.",
			"oneOf": [
				{
					"const": "short_hash",
					"description": "Abbreviated commit hash of the release commit.",
					"type": "string"
				},
				{
					"const": "commit_count",
					"description": "Number of commits reachable from the release commit.",
					"type": "string"
				}
			]
		},
		"HashAlgorithm": {
			"description": "Hash algorithms available to `hash` value sources.",
			"oneOf": [
				{
					"const": "sha256",
					"description": "SHA-256, the default and only supported algorithm.",
					"type": "string"
				}
			]
		},
		"HashEncoding": {
			"description": "How a hash is rendered into a template value.",
			"oneOf": [
				{
					"const": "hex",
					"description": "Lowercase hexadecimal.",
					"type": "string"
				},
				{
					"const": "base32",
					"description": "Lowercase RFC 4648 base32 without padding.",
					"type": "string"
				},
				{
					"const": "base36",
					"description": "Lowercase base36 (`0-9a-z`), the alphanumeric option.",
					"type": "string"
				},
				{
					"const": "digits",
					"description": "Decimal digits only, derived from the hash as a big-endian integer.",
					"type": "string"
				}
			]
		},
		"LockfileCommandDefinition": {
			"additionalProperties": false,
			"properties": {
				"command": {
					"type": "string"
				},
				"cwd": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"shell": {
					"$ref": "#/$defs/ShellConfig",
					"default": false
				}
			},
			"required": [
				"command"
			],
			"type": "object"
		},
		"MetadataStyle": {
			"description": "How to render metadata lines (owner, review link, etc.) in changelog entries.",
			"oneOf": [
				{
					"const": "blockquote",
					"description": "Render metadata as block-quote lines: `> _Owner:_ @user`",
					"type": "string"
				},
				{
					"const": "plain",
					"description": "Render metadata as plain lines: `_Owner:_ @user`",
					"type": "string"
				},
				{
					"const": "inline",
					"description": "Render metadata as an inline paragraph joined with ` · `.\n\nWhen a review request (PR/MR) link is available, commit links are\nomitted since the PR already identifies the change. When no review\nrequest link exists, commit links are included.",
					"type": "string"
				},
				{
					"const": "omit",
					"description": "Omit metadata entirely.",
					"type": "string"
				}
			]
		},
		"MissingFieldBehavior": {
			"enum": [
				"ignore",
				"add"
			],
			"type": "string"
		},
		"PackageLabelPlacement": {
			"description": "Where to place package labels relative to a changelog entry.",
			"oneOf": [
				{
					"const": "after_heading",
					"description": "Place package labels after the change heading/title and before the change body.",
					"type": "string"
				},
				{
					"const": "after_change",
					"description": "Place package labels after the full rendered change.",
					"type": "string"
				}
			]
		},
		"PackageLabelStyle": {
			"description": "How to render multi-package labels in changelog entries.",
			"oneOf": [
				{
					"const": "badge",
					"description": "Render labels as emphasized package names.",
					"type": "string"
				},
				{
					"const": "inline",
					"description": "Render labels inline with the entry.\nSingle label: `- **my-pkg**: entry`\nMultiple labels: `**_pkg-a_, _pkg-b_**: entry`",
					"type": "string"
				},
				{
					"const": "omit",
					"description": "Omit package labels entirely.",
					"type": "string"
				}
			]
		},
		"PackageType": {
			"oneOf": [
				{
					"enum": [
						"cargo",
						"npm",
						"deno",
						"dart",
						"python",
						"go"
					],
					"type": "string"
				},
				{
					"const": "git_hub_actions",
					"description": "GitHub Actions repositories. Versions are released as git tags and\nprovider releases; there is no registry publish target.",
					"type": "string"
				}
			]
		},
		"PrereleaseBase": {
			"enum": [
				"planned",
				"current-stable",
				"fixed"
			],
			"type": "string"
		},
		"PrereleaseConfiguration": {
			"additionalProperties": false,
			"properties": {
				"base": {
					"$ref": "#/$defs/PrereleaseBase",
					"default": "planned"
				},
				"base_version": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"branches": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"changelog": {
					"default": false,
					"type": "boolean"
				},
				"channel": {
					"default": "alpha",
					"type": "string"
				},
				"enabled": {
					"default": false,
					"type": "boolean"
				},
				"keep_changesets": {
					"default": true,
					"type": "boolean"
				},
				"numbering": {
					"$ref": "#/$defs/PrereleaseNumbering",
					"default": "increment"
				},
				"publish_packages": {
					"default": false,
					"type": "boolean"
				},
				"release_notes": {
					"default": true,
					"type": "boolean"
				},
				"write_manifests": {
					"default": true,
					"type": "boolean"
				}
			},
			"type": "object"
		},
		"PrereleaseNumbering": {
			"enum": [
				"increment",
				"date",
				"datetime"
			],
			"type": "string"
		},
		"ProviderMergeRequestSettings": {
			"additionalProperties": false,
			"properties": {
				"auto_merge": {
					"default": false,
					"type": "boolean"
				},
				"base": {
					"default": "main",
					"type": "string"
				},
				"branch_prefix": {
					"default": "monochange/release",
					"type": "string"
				},
				"commit_subject": {
					"description": "Overrides the release commit subject while keeping `title` for the pull request.",
					"type": [
						"string",
						"null"
					]
				},
				"enabled": {
					"default": true,
					"type": "boolean"
				},
				"labels": {
					"default": [
						"release",
						"automated"
					],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"title": {
					"default": "chore(release): prepare release",
					"type": "string"
				},
				"verified_commits": {
					"default": false,
					"type": "boolean"
				}
			},
			"type": "object"
		},
		"ProviderReleaseNotesSource": {
			"enum": [
				"monochange",
				"github_generated"
			],
			"type": "string"
		},
		"ProviderReleaseSettings": {
			"additionalProperties": false,
			"properties": {
				"attestations": {
					"$ref": "#/$defs/ReleaseAttestationSettings"
				},
				"branches": {
					"default": [
						"main"
					],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"changelog_output": {
					"default": "default",
					"description": "Named changelog output used as the hosted release body.",
					"type": "string"
				},
				"changeset_context_timeout_seconds": {
					"default": 120,
					"format": "uint64",
					"minimum": 1,
					"type": "integer"
				},
				"draft": {
					"default": false,
					"type": "boolean"
				},
				"enabled": {
					"default": true,
					"type": "boolean"
				},
				"enforce_for_commit": {
					"default": false,
					"type": "boolean"
				},
				"enforce_for_publish": {
					"default": true,
					"type": "boolean"
				},
				"enforce_for_tags": {
					"default": true,
					"type": "boolean"
				},
				"generate_notes": {
					"default": false,
					"type": "boolean"
				},
				"prerelease": {
					"default": false,
					"type": "boolean"
				},
				"source": {
					"$ref": "#/$defs/ProviderReleaseNotesSource",
					"default": "monochange"
				}
			},
			"type": "object"
		},
		"PublishMode": {
			"description": "Whether monochange's built-in publisher handles release publishing for a package.\n\n- `Builtin` – monochange runs the ecosystem-specific publish command (e.g. `npm\n  publish`, `cargo publish`) during `PublishPackages`.\n- `External` – the package is skipped during `PublishPackages`; your own CI or\n  scripts handle release publishing instead.\n\nThis setting does **not** affect placeholder publishing (`PlaceholderPublish`),\nwhich processes all packages with `publish.enabled = true` regardless of mode.\nPlaceholder publishing is a bootstrap utility, not a release publishing step.",
			"oneOf": [
				{
					"const": "builtin",
					"description": "monochange runs the built-in publish command during release publishing.",
					"type": "string"
				},
				{
					"const": "external",
					"description": "The package is skipped during `PublishPackages`; external CI/scripts\nhandle release publishing. Placeholder publishing is not affected.",
					"type": "string"
				}
			]
		},
		"PublishOrderSettings": {
			"additionalProperties": false,
			"properties": {
				"dependency_fields": {
					"default": null,
					"items": {
						"type": "string"
					},
					"type": [
						"array",
						"null"
					]
				}
			},
			"type": "object"
		},
		"PublishRegistry": {
			"anyOf": [
				{
					"$ref": "#/$defs/RegistryKind"
				},
				{
					"type": "string"
				}
			]
		},
		"RegistryKind": {
			"enum": [
				"crates_io",
				"npm",
				"jsr",
				"pub_dev",
				"pypi",
				"go_proxy"
			],
			"type": "string"
		},
		"ReleaseAttestationSettings": {
			"additionalProperties": false,
			"properties": {
				"require_github_artifact_attestations": {
					"default": false,
					"type": "boolean"
				}
			},
			"type": "object"
		},
		"ReleaseNotesStyleOverrides": {
			"additionalProperties": false,
			"description": "Release notes-specific style overrides.\n\nAny unset field inherits from the base `ChangelogStyle` configured under\n`[changelog.style]`.",
			"properties": {
				"collapsed_section_style": {
					"anyOf": [
						{
							"$ref": "#/$defs/CollapsedSectionStyle"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"metadata_style": {
					"anyOf": [
						{
							"$ref": "#/$defs/MetadataStyle"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"package_bump_symbols": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"package_label_placement": {
					"anyOf": [
						{
							"$ref": "#/$defs/PackageLabelPlacement"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"package_label_style": {
					"anyOf": [
						{
							"$ref": "#/$defs/PackageLabelStyle"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"section_separator": {
					"anyOf": [
						{
							"$ref": "#/$defs/SectionSeparator"
						},
						{
							"type": "null"
						}
					],
					"default": null
				}
			},
			"type": "object"
		},
		"ResetPolicy": {
			"description": "When a stamped counter returns to its starting value.",
			"oneOf": [
				{
					"const": "never",
					"description": "Never reset: the value only ever increases.\n\nMatches Google Play `versionCode` and macOS `CFBundleVersion`.",
					"type": "string"
				},
				{
					"const": "version",
					"description": "Reset when the identity version changes, matching Apple's iOS release\ntrains.",
					"type": "string"
				}
			]
		},
		"SectionSeparator": {
			"description": "How to format section headings in rendered changelogs.\nNote: Section headings are plain strings — include emoji directly in the `heading` field\nof `ChangelogSectionDef` if desired (e.g. `\"🚀 Added\"`, `\"🐛 Fixed\"`).",
			"oneOf": [
				{
					"const": "blank_line",
					"description": "Insert a blank line between sections.",
					"type": "string"
				},
				{
					"const": "thematic_break",
					"description": "Insert a thematic break (`---`) between sections.",
					"type": "string"
				},
				{
					"const": "none",
					"description": "No separator between sections.",
					"type": "string"
				}
			]
		},
		"ShellConfig": {
			"description": "Shell configuration for `Command` steps.",
			"oneOf": [
				{
					"enum": [
						"None",
						"Default"
					],
					"type": "string"
				},
				{
					"additionalProperties": false,
					"properties": {
						"Custom": {
							"type": "string"
						}
					},
					"required": [
						"Custom"
					],
					"type": "object"
				}
			]
		},
		"SourceProvider": {
			"enum": [
				"github",
				"gitlab",
				"gitea",
				"forgejo"
			],
			"type": "string"
		},
		"StampBehaviour": {
			"description": "What happens to a file counter when a release is stamped.",
			"oneOf": [
				{
					"const": "increment",
					"description": "Add one on every stamped release.",
					"type": "string"
				},
				{
					"additionalProperties": false,
					"description": "Add a fixed amount on every stamped release.",
					"properties": {
						"add": {
							"properties": {
								"amount": {
									"description": "Amount added to the current value.",
									"format": "uint64",
									"minimum": 0,
									"type": "integer"
								}
							},
							"required": [
								"amount"
							],
							"type": "object"
						}
					},
					"required": [
						"add"
					],
					"type": "object"
				},
				{
					"const": "none",
					"description": "Read the value without changing it.",
					"type": "string"
				}
			]
		},
		"TimestampSource": {
			"description": "Which timestamp a `timestamp` value source reads.",
			"oneOf": [
				{
					"const": "now",
					"description": "The moment the release is prepared, in UTC.\n\nThis changes on every run by design; the stamped value is frozen into\nthe release record so re-rendering is stable.",
					"type": "string"
				},
				{
					"const": "commit",
					"description": "The commit time of the release commit, in UTC.",
					"type": "string"
				}
			]
		},
		"TrustedPublishingMode": {
			"description": "How strictly trusted publishing is enforced for a package publish.",
			"oneOf": [
				{
					"const": "required",
					"description": "Publishing must run from a verifiable CI/OIDC identity; local/manual\npublishing fails before any registry mutation.",
					"type": "string"
				},
				{
					"const": "preferred",
					"description": "Use trusted publishing when a verifiable CI/OIDC identity is available\nand fall back to local/manual credentials otherwise. CI runs still\nverify the configured repository, workflow, and environment.",
					"type": "string"
				}
			]
		},
		"ValueDefinition": {
			"additionalProperties": false,
			"description": "How a declared value produces its template string.\n\nExactly one of the source fields must be set. The sources are declared as\nsibling optional fields rather than a nested enum so unknown keys fail\nloudly and validation can report every conflict at once.",
			"properties": {
				"algorithm": {
					"$ref": "#/$defs/HashAlgorithm",
					"default": "sha256",
					"description": "Hash algorithm. Only meaningful with `hash`."
				},
				"encoding": {
					"$ref": "#/$defs/HashEncoding",
					"default": "hex",
					"description": "How a hash digest is rendered. Only meaningful with `hash`."
				},
				"env": {
					"description": "Environment variable name, for an environment-derived value.",
					"type": [
						"string",
						"null"
					]
				},
				"field": {
					"description": "Dot-separated field path inside `file`.",
					"type": [
						"string",
						"null"
					]
				},
				"file": {
					"description": "Counter file path, for a stamped or read-only file counter.",
					"type": [
						"string",
						"null"
					]
				},
				"git": {
					"anyOf": [
						{
							"$ref": "#/$defs/GitSource"
						},
						{
							"type": "null"
						}
					],
					"description": "Which git value to read."
				},
				"hash": {
					"description": "File to hash, for a derived hash value.",
					"type": [
						"string",
						"null"
					]
				},
				"length": {
					"description": "Truncate a rendered hash to this many characters.",
					"format": "uint",
					"minimum": 0,
					"type": [
						"integer",
						"null"
					]
				},
				"on_release": {
					"anyOf": [
						{
							"$ref": "#/$defs/StampBehaviour"
						},
						{
							"type": "null"
						}
					],
					"description": "What happens to a file counter when a release is stamped.\n\nDefaults to `increment` for `file` values and to no stamping for derived\nvalues. Declaring it on a derived value is a config error."
				},
				"reset": {
					"$ref": "#/$defs/ResetPolicy",
					"default": "never",
					"description": "When a stamped counter resets. Only meaningful with `file`."
				},
				"timestamp": {
					"anyOf": [
						{
							"$ref": "#/$defs/TimestampSource"
						},
						{
							"type": "null"
						}
					],
					"description": "Which timestamp to read."
				}
			},
			"type": "object"
		},
		"VersionSource": {
			"description": "Where a package's current release version is read from.\n\nDefaults to `manifest` for ecosystems that store a version field in their\nmanifest. `tag` reads the baseline from the latest reachable release tag\nmatching the release owner's `version_format`, which suits GitHub Actions\nrepositories and other tag-only release targets.",
			"enum": [
				"manifest",
				"tag"
			],
			"type": "string"
		},
		"VersionedFileDefinition": {
			"additionalProperties": false,
			"properties": {
				"fields": {
					"default": null,
					"items": {
						"type": "string"
					},
					"type": [
						"array",
						"null"
					]
				},
				"format": {
					"anyOf": [
						{
							"$ref": "#/$defs/VersionedFileFormat"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"missing_field_behavior": {
					"$ref": "#/$defs/MissingFieldBehavior",
					"default": "ignore"
				},
				"name": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"path": {
					"type": "string"
				},
				"prefix": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"regex": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"type": {
					"anyOf": [
						{
							"$ref": "#/$defs/EcosystemType"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"value_template": {
					"description": "Template rendered into this file's value instead of the plain version.\n\nSupports the version template namespace, including declared values such\nas `{{ build }}`. When set, `regex` and `fields` are not used.",
					"type": [
						"string",
						"null"
					]
				}
			},
			"required": [
				"path"
			],
			"type": "object"
		},
		"VersionedFileFormat": {
			"enum": [
				"json",
				"toml",
				"yaml",
				"yml",
				"env"
			],
			"type": "string"
		},
		"auto_discover_package_defaults": {
			"additionalProperties": false,
			"properties": {
				"release": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"tag": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"version_format": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				}
			},
			"type": "object"
		},
		"auto_discover_settings": {
			"additionalProperties": false,
			"properties": {
				"defaults": {
					"anyOf": [
						{
							"$ref": "#/$defs/auto_discover_package_defaults"
						},
						{
							"type": "null"
						}
					]
				},
				"exclude": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"id": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"include": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			},
			"type": "object"
		},
		"changelog_config": {
			"anyOf": [
				{
					"$ref": "#/$defs/changelog_definition"
				},
				{
					"$ref": "#/$defs/changelog_table"
				}
			]
		},
		"changelog_definition": {
			"anyOf": [
				{
					"type": "boolean"
				},
				{
					"type": "string"
				}
			]
		},
		"changelog_settings": {
			"additionalProperties": false,
			"properties": {
				"outputs": {
					"additionalProperties": {
						"$ref": "#/$defs/ChangelogOutputDefinition"
					},
					"default": {},
					"type": "object"
				},
				"release_notes": {
					"$ref": "#/$defs/ReleaseNotesStyleOverrides",
					"default": {
						"collapsed_section_style": null,
						"metadata_style": null,
						"package_bump_symbols": null,
						"package_label_placement": null,
						"package_label_style": null,
						"section_separator": null
					}
				},
				"section_thresholds": {
					"$ref": "#/$defs/ChangelogSectionThresholds",
					"default": {
						"collapse": 127,
						"ignored": 127
					}
				},
				"sections": {
					"additionalProperties": {
						"$ref": "#/$defs/ChangelogSectionDef"
					},
					"default": {},
					"type": "object"
				},
				"streams": {
					"additionalProperties": {
						"$ref": "#/$defs/ChangelogStreamDefinition"
					},
					"default": {},
					"type": "object"
				},
				"style": {
					"$ref": "#/$defs/ChangelogStyle",
					"default": {
						"collapsed_section_style": "details",
						"metadata_style": "inline",
						"package_bump_symbols": true,
						"package_label_placement": "after_heading",
						"package_label_style": "inline",
						"section_separator": "blank_line"
					}
				},
				"templates": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"types": {
					"additionalProperties": {
						"$ref": "#/$defs/changelog_type"
					},
					"type": "object"
				}
			},
			"type": "object"
		},
		"changelog_table": {
			"additionalProperties": false,
			"properties": {
				"enabled": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"format": {
					"anyOf": [
						{
							"$ref": "#/$defs/ChangelogFormat"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"include": {
					"anyOf": [
						{
							"$ref": "#/$defs/group_changelog_include"
						},
						{
							"type": "null"
						}
					]
				},
				"initial_header": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"path": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				}
			},
			"type": "object"
		},
		"changelog_type": {
			"additionalProperties": false,
			"properties": {
				"bump": {
					"$ref": "#/$defs/BumpSeverity",
					"default": "patch"
				},
				"description": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"section": {
					"type": "string"
				},
				"stream": {
					"default": "default",
					"type": "string"
				}
			},
			"required": [
				"section"
			],
			"type": "object"
		},
		"cli_command": {
			"additionalProperties": false,
			"properties": {
				"dry_run": {
					"default": false,
					"type": "boolean"
				},
				"help_text": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"inputs": {
					"default": [],
					"items": {
						"$ref": "#/$defs/CliInputDefinition"
					},
					"type": "array"
				},
				"steps": {
					"default": [],
					"items": {
						"$ref": "#/$defs/CliStepDefinition"
					},
					"type": "array"
				}
			},
			"type": "object"
		},
		"cli_snapshot_command": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "#/$defs/cli_snapshot_command_definition"
				}
			],
			"description": "Raw `cli.snapshot` value: a bare command string or a detailed definition\nmirroring `[ecosystems.*].lockfile_commands` entries."
		},
		"cli_snapshot_command_definition": {
			"additionalProperties": false,
			"properties": {
				"command": {
					"type": "string"
				},
				"cwd": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"shell": {
					"$ref": "#/$defs/ShellConfig",
					"default": false
				}
			},
			"required": [
				"command"
			],
			"type": "object"
		},
		"defaults": {
			"additionalProperties": false,
			"properties": {
				"bump_propagation": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpPropagationMode"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "Workspace-wide bump propagation for packages and groups with no\ndeclaration of their own: `\"inherit\"` matches the source's bump, and\nfixed severities act as floors. Precedence (most specific first):\npackage, group, defaults, legacy `parent_bump`."
				},
				"bump_propagation_max": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpSeverity"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "Clamp `bump_propagation` so dependents never exceed this severity\n(only valid with `bump_propagation = \"inherit\"`)."
				},
				"changelog": {
					"anyOf": [
						{
							"$ref": "#/$defs/changelog_config"
						},
						{
							"type": "null"
						}
					]
				},
				"changelog_version_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"empty_update_message": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"include_private": {
					"default": false,
					"type": "boolean"
				},
				"package_type": {
					"anyOf": [
						{
							"$ref": "#/$defs/PackageType"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"parent_bump": {
					"$ref": "#/$defs/BumpSeverity",
					"default": "patch"
				},
				"release_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"strict_version_conflicts": {
					"default": false,
					"type": "boolean"
				},
				"versioned_files": {
					"items": {
						"$ref": "#/$defs/versioned_file_definition"
					},
					"type": "array"
				},
				"warn_on_group_mismatch": {
					"default": true,
					"type": "boolean"
				}
			},
			"type": "object"
		},
		"ecosystem_settings": {
			"additionalProperties": false,
			"properties": {
				"auto_discover": {
					"anyOf": [
						{
							"$ref": "#/$defs/auto_discover_settings"
						},
						{
							"type": "null"
						}
					]
				},
				"dependency_version_prefix": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"enabled": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"exclude": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"lockfile_commands": {
					"default": [],
					"items": {
						"$ref": "#/$defs/LockfileCommandDefinition"
					},
					"type": "array"
				},
				"publish": {
					"$ref": "#/$defs/publish_settings"
				},
				"publish_order": {
					"$ref": "#/$defs/PublishOrderSettings",
					"default": {
						"dependency_fields": null
					}
				},
				"roots": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"semver_checks": {
					"$ref": "#/$defs/CargoSemverChecksSettings",
					"default": {
						"enabled": false,
						"matrix": [
							{
								"feature_mode": "default",
								"name": "default"
							}
						],
						"timeout_seconds": 300
					}
				},
				"versioned_files": {
					"items": {
						"$ref": "#/$defs/versioned_file_definition"
					},
					"type": "array"
				}
			},
			"type": "object"
		},
		"ecosystems": {
			"additionalProperties": false,
			"properties": {
				"cargo": {
					"$ref": "#/$defs/ecosystem_settings"
				},
				"dart": {
					"$ref": "#/$defs/ecosystem_settings"
				},
				"deno": {
					"$ref": "#/$defs/ecosystem_settings"
				},
				"go": {
					"$ref": "#/$defs/ecosystem_settings"
				},
				"npm": {
					"$ref": "#/$defs/ecosystem_settings"
				},
				"python": {
					"$ref": "#/$defs/ecosystem_settings"
				}
			},
			"type": "object"
		},
		"group_changelog_include": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"items": {
						"type": "string"
					},
					"type": "array"
				}
			]
		},
		"group_definition": {
			"additionalProperties": false,
			"properties": {
				"bump_ceiling": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpSeverity"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"bump_propagation": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpPropagationMode"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "How this package's changes propagate to dependents: `\"inherit\"` matches\nthis bump, fixed severities act as floors; defaults to\n`[defaults].bump_propagation`."
				},
				"bump_propagation_max": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpSeverity"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "Clamp `bump_propagation` so dependents never exceed this severity."
				},
				"changelog": {
					"anyOf": [
						{
							"$ref": "#/$defs/changelog_config"
						},
						{
							"type": "null"
						}
					]
				},
				"changelog_version_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"classification_enforced": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"empty_update_message": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"excluded_changelog_types": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"floating_tags": {
					"default": [],
					"items": {
						"$ref": "#/$defs/FloatingTagFormat"
					},
					"type": "array"
				},
				"packages": {
					"items": {
						"$ref": "#/$defs/group_package"
					},
					"type": "array"
				},
				"release": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"release_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"tag": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"version_format": {
					"default": "namespaced",
					"type": "string"
				},
				"version_source": {
					"anyOf": [
						{
							"$ref": "#/$defs/VersionSource"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"versioned_files": {
					"items": {
						"$ref": "#/$defs/versioned_file_definition"
					},
					"type": "array"
				}
			},
			"required": [
				"packages"
			],
			"type": "object"
		},
		"group_package": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "#/$defs/group_package_table"
				}
			]
		},
		"group_package_table": {
			"additionalProperties": false,
			"properties": {
				"max_bump": {
					"$ref": "#/$defs/BumpSeverity",
					"default": "major"
				},
				"name": {
					"type": "string"
				}
			},
			"required": [
				"name"
			],
			"type": "object"
		},
		"package_cli": {
			"additionalProperties": false,
			"description": "Raw `[package.<id>].cli` value: the binary name plus the command that\ncaptures its normalized surface snapshot.",
			"properties": {
				"name": {
					"type": "string"
				},
				"snapshot": {
					"$ref": "#/$defs/cli_snapshot_command"
				}
			},
			"required": [
				"name",
				"snapshot"
			],
			"type": "object"
		},
		"package_definition": {
			"additionalProperties": false,
			"properties": {
				"additional_paths": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"bump_ceiling": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpSeverity"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"bump_propagation": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpPropagationMode"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "How this package's changes propagate to dependents: `\"inherit\"` matches\nthis bump, fixed severities act as floors; defaults to\n`[defaults].bump_propagation`."
				},
				"bump_propagation_max": {
					"anyOf": [
						{
							"$ref": "#/$defs/BumpSeverity"
						},
						{
							"type": "null"
						}
					],
					"default": null,
					"description": "Clamp `bump_propagation` so dependents never exceed this severity."
				},
				"changelog": {
					"anyOf": [
						{
							"$ref": "#/$defs/changelog_config"
						},
						{
							"type": "null"
						}
					]
				},
				"changelog_version_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"classification_enforced": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"cli": {
					"anyOf": [
						{
							"$ref": "#/$defs/package_cli"
						},
						{
							"type": "null"
						}
					]
				},
				"display_version": {
					"default": null,
					"description": "Version scheme used to render this package's display label.",
					"type": [
						"string",
						"null"
					]
				},
				"empty_update_message": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"excluded_changelog_types": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"floating_tags": {
					"default": [],
					"items": {
						"$ref": "#/$defs/FloatingTagFormat"
					},
					"type": "array"
				},
				"ignore_ecosystem_versioned_files": {
					"default": false,
					"type": "boolean"
				},
				"ignored_paths": {
					"default": [],
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"path": {
					"type": "string"
				},
				"publish": {
					"$ref": "#/$defs/publish_settings"
				},
				"release": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"release_title": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"tag": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"type": {
					"anyOf": [
						{
							"$ref": "#/$defs/PackageType"
						},
						{
							"type": "null"
						}
					]
				},
				"values": {
					"additionalProperties": {
						"$ref": "#/$defs/ValueDefinition"
					},
					"default": {},
					"description": "Declared release values available as template variables by id.",
					"type": "object"
				},
				"version_format": {
					"default": "namespaced",
					"type": "string"
				},
				"version_source": {
					"anyOf": [
						{
							"$ref": "#/$defs/VersionSource"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"versioned_files": {
					"items": {
						"$ref": "#/$defs/versioned_file_definition"
					},
					"type": "array"
				}
			},
			"required": [
				"path"
			],
			"type": "object"
		},
		"placeholder_settings": {
			"additionalProperties": false,
			"properties": {
				"readme": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"readme_file": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				}
			},
			"type": "object"
		},
		"publish_attestation_settings": {
			"additionalProperties": false,
			"properties": {
				"require_registry_provenance": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				}
			},
			"type": "object"
		},
		"publish_rate_limit_settings": {
			"additionalProperties": false,
			"properties": {
				"enforce": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				}
			},
			"type": "object"
		},
		"publish_settings": {
			"additionalProperties": false,
			"properties": {
				"attestations": {
					"$ref": "#/$defs/publish_attestation_settings"
				},
				"enabled": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"fail_on_duplicate": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"mode": {
					"anyOf": [
						{
							"$ref": "#/$defs/PublishMode"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"placeholder": {
					"$ref": "#/$defs/placeholder_settings"
				},
				"rate_limits": {
					"$ref": "#/$defs/publish_rate_limit_settings"
				},
				"registry": {
					"anyOf": [
						{
							"$ref": "#/$defs/PublishRegistry"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"timeout": {
					"$ref": "#/$defs/publish_timeout_settings"
				},
				"trusted_publishing": {
					"anyOf": [
						{
							"$ref": "#/$defs/trusted_publishing_settings"
						},
						{
							"type": "null"
						}
					]
				}
			},
			"type": "object"
		},
		"publish_timeout_settings": {
			"additionalProperties": false,
			"properties": {
				"retries": {
					"default": null,
					"format": "uint32",
					"minimum": 0,
					"type": [
						"integer",
						"null"
					]
				},
				"timeout_seconds": {
					"default": null,
					"format": "uint64",
					"minimum": 0,
					"type": [
						"integer",
						"null"
					]
				}
			},
			"type": "object"
		},
		"source": {
			"additionalProperties": false,
			"properties": {
				"api_url": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"host": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"owner": {
					"type": "string"
				},
				"provider": {
					"$ref": "#/$defs/SourceProvider",
					"default": "github"
				},
				"pull_requests": {
					"$ref": "#/$defs/ProviderMergeRequestSettings",
					"default": {
						"auto_merge": false,
						"base": "main",
						"branch_prefix": "monochange/release",
						"enabled": true,
						"labels": [
							"release",
							"automated"
						],
						"title": "chore(release): prepare release",
						"verified_commits": false
					}
				},
				"releases": {
					"$ref": "#/$defs/ProviderReleaseSettings",
					"default": {
						"branches": [
							"main"
						],
						"changelog_output": "default",
						"changeset_context_timeout_seconds": 120,
						"draft": false,
						"enabled": true,
						"enforce_for_commit": false,
						"enforce_for_publish": true,
						"enforce_for_tags": true,
						"generate_notes": false,
						"prerelease": false,
						"source": "monochange"
					}
				},
				"repo": {
					"type": "string"
				}
			},
			"required": [
				"owner",
				"repo"
			],
			"type": "object"
		},
		"trusted_publishing_details": {
			"additionalProperties": false,
			"properties": {
				"enabled": {
					"default": null,
					"type": [
						"boolean",
						"null"
					]
				},
				"environment": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"mode": {
					"anyOf": [
						{
							"$ref": "#/$defs/TrustedPublishingMode"
						},
						{
							"type": "null"
						}
					],
					"default": null
				},
				"repository": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				},
				"workflow": {
					"default": null,
					"type": [
						"string",
						"null"
					]
				}
			},
			"type": "object"
		},
		"trusted_publishing_settings": {
			"anyOf": [
				{
					"type": "boolean"
				},
				{
					"$ref": "#/$defs/trusted_publishing_details"
				}
			]
		},
		"version_scheme": {
			"additionalProperties": false,
			"description": "Raw `[version_scheme.<id>]` value.",
			"properties": {
				"template": {
					"description": "Template rendered into a package's display label.",
					"type": "string"
				}
			},
			"required": [
				"template"
			],
			"type": "object"
		},
		"versioned_file_definition": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "#/$defs/VersionedFileDefinition"
				}
			]
		}
	},
	"$id": "https://monochange.github.io/monochange/schemas/monochange.v0.7.schema.json",
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"additionalProperties": false,
	"description": "JSON Schema for monochange.toml workspace configuration files.",
	"properties": {
		"changelog": {
			"$ref": "#/$defs/changelog_settings"
		},
		"changesets": {
			"$ref": "#/$defs/ChangesetSettings",
			"default": {
				"affected": {
					"changed_paths": [],
					"comment_on_failure": true,
					"enabled": true,
					"ignored_paths": [],
					"required": true,
					"skip_labels": []
				},
				"classification": {
					"skip_labels": [
						"release"
					]
				}
			}
		},
		"cli": {
			"additionalProperties": {
				"$ref": "#/$defs/cli_command"
			},
			"type": "object"
		},
		"defaults": {
			"$ref": "#/$defs/defaults"
		},
		"ecosystems": {
			"$ref": "#/$defs/ecosystems"
		},
		"group": {
			"additionalProperties": {
				"$ref": "#/$defs/group_definition"
			},
			"type": "object"
		},
		"lints": {
			"default": {
				"disable_gitignore": false,
				"exclude": [],
				"include": [],
				"rules": {},
				"scopes": [],
				"use": []
			}
		},
		"package": {
			"additionalProperties": {
				"$ref": "#/$defs/package_definition"
			},
			"type": "object"
		},
		"prerelease": {
			"$ref": "#/$defs/PrereleaseConfiguration",
			"default": {
				"base": "planned",
				"base_version": null,
				"branches": [],
				"changelog": false,
				"channel": "alpha",
				"enabled": false,
				"keep_changesets": true,
				"numbering": "increment",
				"publish_packages": false,
				"release_notes": true,
				"write_manifests": true
			}
		},
		"source": {
			"anyOf": [
				{
					"$ref": "#/$defs/source"
				},
				{
					"type": "null"
				}
			]
		},
		"version_scheme": {
			"additionalProperties": {
				"$ref": "#/$defs/version_scheme"
			},
			"description": "Reusable display-label schemes referenced by `[package.<id>].display_version`.",
			"type": "object"
		}
	},
	"title": "monochange configuration",
	"type": "object"
}
