diff --git a/crates/cargo-util-schemas/manifest.schema.json b/crates/cargo-util-schemas/manifest.schema.json index 5bc43e49d37..55763cb0767 100644 --- a/crates/cargo-util-schemas/manifest.schema.json +++ b/crates/cargo-util-schemas/manifest.schema.json @@ -51,10 +51,7 @@ "null" ], "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/$defs/FeatureDefinition" } }, "lib": { @@ -597,6 +594,35 @@ ] }, "TomlValue": true, + "FeatureDefinition": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/$defs/FeatureMetadata" + } + ] + }, + "FeatureMetadata": { + "description": "Metadata about a feature.", + "type": "object", + "properties": { + "enables": { + "description": "Features that this feature enables.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enables" + ] + }, "TomlTarget": { "type": "object", "properties": {