{
    "extends": null,
    "skipTransform": false,
    "transformations": {
        "mappings": [],
        "replacements": [
            {
                "target": "$",
                "value": {
                    "validate":{
                        "inputMessage": "{{$.spec.input}}",
                        "mode": "{{$.spec.validate}}"
                    }
                },
                "precedence": 1,
                "condition": "$.spec.input !== 'message'"
            },
            {
                "target": "$.validate",
                "value": {
                    "inputMessage": "{{$.spec.input}}",
                    "mode": {
                        "openApiSchemaRef": {
                            "reference": "{{$.spec.validate.openApiSchemaRef.schemaReference}}",
                            "failureStatusCode": "{{$.spec.validate.openApiSchemaRef.failureStatusCode}}"
                        }
                    }
                },
                "precedence": 2,
                "condition": "$.spec.input === 'message' && $.spec.validate.openApiSchemaRef"
            },
            {
                "target": "$.validate.mode.response.schema",
                "value": {
                    "validateSchema": "{{$.spec.validate.response.schema.validate}}"
                },
                "precedence": 2,
                "condition": "$.spec.input === 'response' && $.spec.validate.response && $.spec.validate.response.schema.validate"
            },
            {
                "target": "$.validate.mode.request.schema",
                "value": {
                    "validateSchema": "{{$.spec.validate.request.schema.validate}}"
                },
                "precedence": 2,
                "condition": "$.spec.input === 'request' && $.spec.validate.request && $.spec.validate.request.schema.validate"
            },
            {
                "target": "$.validate",
                "value": {
                    "inputMessage": "{{$.spec.input}}",
                    "mode": {
                        "file": {
                            "$path": "{{$.spec.validate.file.$path}}",
                            "failureStatusCode": "{{$.spec.validate.file.failureStatusCode}}"
                        }
                    }
                },
                "precedence": 3,
                "condition": "$.spec.input === 'message' && $.spec.validate.file"
            }
        ]
    }
}