1{ 2 "$schema": "https://json-schema.org/draft/next/schema", 3 "$id": "https://json-schema.org/draft/next/output/schema", 4 "description": "A schema that validates the minimum requirements for validation output", 5 6 "anyOf": [ 7 { "$ref": "#/$defs/flag" }, 8 { "$ref": "#/$defs/basic" }, 9 { "$ref": "#/$defs/hierarchical" } 10 ], 11 "$defs": { 12 "outputUnit":{ 13 "properties": { 14 "valid": { "type": "boolean" }, 15 "evaluationPath": { 16 "type": "string", 17 "format": "json-pointer" 18 }, 19 "schemaLocation": { 20 "type": "string", 21 "format": "uri" 22 }, 23 "instanceLocation": { 24 "type": "string", 25 "format": "json-pointer" 26 }, 27 "details": { 28 "$ref": "#/$defs/outputUnitArray" 29 }, 30 "annotations": { 31 "type": "object", 32 "additionalProperties": true 33 }, 34 "droppedAnnotations": { 35 "type": "object", 36 "additionalProperties": true 37 }, 38 "errors": { 39 "type": "object", 40 "additionalProperties": { "type": "string" } 41 } 42 }, 43 "required": [ "valid", "evaluationPath", "schemaLocation", "instanceLocation" ], 44 "allOf": [ 45 { 46 "if": { 47 "anyOf": [ 48 { 49 "required": [ "errors" ] 50 }, 51 { 52 "required": [ "droppedAnnotations" ] 53 } 54 ] 55 }, 56 "then": { 57 "properties": { 58 "valid": { "const": false } 59 } 60 } 61 }, 62 { 63 "if": { 64 "required": [ "annotations" ] 65 }, 66 "then": { 67 "properties": { 68 "valid": { "const": true } 69 } 70 } 71 } 72 ] 73 }, 74 "outputUnitArray": { 75 "type": "array", 76 "items": { "$ref": "#/$defs/outputUnit" } 77 }, 78 "flag": { 79 "properties": { 80 "valid": { "type": "boolean" } 81 }, 82 "required": [ "valid" ] 83 }, 84 "basic": { 85 "properties": { 86 "valid": { "type": "boolean" }, 87 "details": { 88 "$ref": "#/$defs/outputUnitArray" 89 } 90 }, 91 "required": [ "valid", "details" ] 92 }, 93 "hierarchical": { "$ref": "#/$defs/outputUnit" } 94 } 95} 96