{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Verifiable Presentation formats Schema",
    "description": "An object defining formats and proof types of Verifiable Presentations and Verifiable Credentials that a Verifier supports. It consists of a list of name/value pairs, where each name uniquely identifies a specific supported format",
    "type": "object",
    "properties": {
        "dc+sd-jwt": {
            "type": "object",
            "description": "Properties of the supported format SD-JWT, according the spec: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#appendix-B.3.4",
            "required": [
                "sd-jwt_alg_values",
                "kb-jwt_alg_values"
            ],
            "properties": {
                "sd-jwt_alg_values": {
                    "type": "array",
                    "description": "Identifiers of cryptographic algorithms the Verifier supports for protection of a SD-JWT",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "enum": [
                            "ES256",
                            "ES384",
                            "ES512"
                        ]
                    }
                },
                "kb-jwt_alg_values": {
                    "type": "array",
                    "description": "Identifiers of cryptographic algorithms the Verifier supports for protection of of a KB-JWT",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "enum": [
                            "ES256",
                            "ES384",
                            "ES512"
                        ]
                    }
                }
            },
            "additionalProperties": false
        },
        "mso_mdoc": {
            "type": "object",
            "description": "Properties of the supported format mso_mdoc, according the spec: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-metadata-3",
            "required": [
                "issuerauth_alg_values",
                "deviceauth_alg_values"
            ],
            "properties": {
                "issuerauth_alg_values": {
                    "type": "array",
                    "description": "A JSON array containing cryptographic algorithm identifiers",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "enum": [
                            "-7",
                            "-35",
                            "-36"
                        ]
                    }
                },
                "deviceauth_alg_values": {
                    "type": "array",
                    "description": "A JSON array containing cryptographic algorithm identifiers",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "enum": [
                            "-7",
                            "-35",
                            "-36"
                        ]
                    }
                }
            },
            "additionalProperties": false
        }
    },
    "anyOf": [
        {
            "required": [
                "dc+sd-jwt"
            ]
        },
        {
            "required": [
                "mso_mdoc"
            ]
        }
    ],
    "additionalProperties": false
}