{ "$id": "https://github.com/slackapi/manifest-schema/blob/main/manifest.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "All Versions Slack App Manifest File Configuration", "type": "object", "oneOf": [ { "$comment": "if _metadata.major_version == 1", "allOf": [ { "properties": { "_metadata": { "properties": { "major_version": { "const": 1 } }, "required": ["major_version"] } }, "required": ["_metadata"] }, { "$ref": "https://raw.githubusercontent.com/slackapi/manifest-schema/v0.0.0/schemas/manifest.schema.1.0.0.json" } ] }, { "$comment": "if _metadata.major_version == 2", "allOf": [ { "properties": { "_metadata": { "properties": { "major_version": { "const": 2 } }, "required": ["major_version"] } }, "required": ["_metadata"] }, { "$ref": "https://raw.githubusercontent.com/slackapi/manifest-schema/v0.0.0/schemas/manifest.schema.2.0.0.json" } ] }, { "$comment": "when _metadata.major_version is not present", "allOf": [ { "properties": { "_metadata": { "not": { "required": ["major_version"] } } }, "required": ["_metadata"] }, { "$ref": "https://raw.githubusercontent.com/slackapi/manifest-schema/v0.0.0/schemas/manifest.schema.1.0.0.json" } ] }, { "$comment": "when _metadata is not present", "allOf": [ { "not": { "required": ["_metadata"] } }, { "$ref": "https://raw.githubusercontent.com/slackapi/manifest-schema/v0.0.0/schemas/manifest.schema.1.0.0.json" } ] } ] }