{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "RequestJWTPayload",
    "type": "object",
    "required": [
        "iss",
        "aud",
        "exp",
        "iat",
        "response_type",
        "response_mode",
        "client_id",
        "state",
        "code_challenge",
        "code_challenge_method",
        "scope",
        "authorization_details",
        "redirect_uri",
        "jti"
    ],
    "properties": {
        "iss": {
            "type": "string",
            "format": "uri"
        },
        "aud": {
            "type": "string",
            "format": "uri"
        },
        "exp": {
            "type": "number"
        },
        "iat": {
            "type": "number"
        },
        "response_type": {
            "type": "string",
            "const": "code"
        },
        "response_mode": {
            "type": "string",
            "enum": [
                "query",
                "form_post.jwt"
            ]
        },
        "client_id": {
            "type": "string"
        },
        "state": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9]{32,}$"
        },
        "code_challenge": {
            "type": "string"
        },
        "code_challenge_method": {
            "type": "string",
            "const": "S256"
        },
        "scope": {
            "type": "string"
        },
        "authorization_details": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "const": "openid_credential"
                    },
                    "credential_configuration_id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "credential_configuration_id"
                ],
                "additionalProperties": false
            }
        },
        "redirect_uri": {
            "type": "string",
            "format": "uri"
        },
        "jti": {
            "type": "string",
            "pattern": "^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$"
        },
        "issuer_state": {
            "type": "string",
            "pattern": "^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$"
        },
        "additionalProperties": false
    },
    "additionalProperties": false
}