fixture.schema.json (4254B)
1 { 2 "type": "object", 3 "properties": { 4 "fixture_format_version": { 5 "const": 1 6 }, 7 "case_id": { 8 "type": "string", 9 "minLength": 1 10 }, 11 "requirements": { 12 "type": "array", 13 "items": { 14 "type": "string", 15 "pattern": "^HYF-[A-Z]+-[0-9]{3}$" 16 }, 17 "minItems": 1, 18 "uniqueItems": true 19 }, 20 "family": { 21 "enum": [ 22 "domain", 23 "provider", 24 "journeys", 25 "protocol", 26 "security" 27 ] 28 }, 29 "boundary": { 30 "enum": [ 31 "domain", 32 "application", 33 "provider", 34 "transport", 35 "harness", 36 "process", 37 "security", 38 "journey" 39 ] 40 }, 41 "operation": { 42 "type": "string", 43 "minLength": 1 44 }, 45 "purpose": { 46 "type": "string", 47 "minLength": 1 48 }, 49 "implementation_status": { 50 "const": "planned" 51 }, 52 "required_from_step": { 53 "type": "string", 54 "pattern": "^S[0-9]{3}$" 55 }, 56 "mandatory": { 57 "const": true 58 }, 59 "context": { 60 "type": "object", 61 "minProperties": 1 62 }, 63 "given": { 64 "type": "object", 65 "minProperties": 1 66 }, 67 "provider_script": { 68 "type": "array", 69 "items": { 70 "type": "object", 71 "minProperties": 1 72 } 73 }, 74 "then": { 75 "type": "array", 76 "items": { 77 "type": "object", 78 "properties": { 79 "operator": { 80 "enum": [ 81 "equals", 82 "contains", 83 "not_contains", 84 "present", 85 "absent", 86 "max", 87 "min", 88 "approx" 89 ] 90 }, 91 "path": { 92 "type": "string", 93 "pattern": "^/" 94 }, 95 "value": {}, 96 "tolerance": { 97 "type": "number", 98 "minimum": 0 99 } 100 }, 101 "required": [ 102 "operator", 103 "path" 104 ], 105 "additionalProperties": false, 106 "allOf": [ 107 { 108 "if": { 109 "properties": { 110 "operator": { 111 "enum": [ 112 "equals", 113 "contains", 114 "not_contains", 115 "max", 116 "min", 117 "approx" 118 ] 119 } 120 } 121 }, 122 "then": { 123 "required": [ 124 "value" 125 ] 126 } 127 }, 128 { 129 "if": { 130 "properties": { 131 "operator": { 132 "const": "approx" 133 } 134 } 135 }, 136 "then": { 137 "required": [ 138 "tolerance" 139 ], 140 "properties": { 141 "value": { 142 "type": "number" 143 } 144 } 145 } 146 } 147 ] 148 }, 149 "minItems": 1 150 }, 151 "prohibited": { 152 "type": "array", 153 "items": { 154 "type": "string", 155 "minLength": 1 156 }, 157 "minItems": 1 158 }, 159 "provenance": { 160 "type": "object", 161 "properties": { 162 "kind": { 163 "const": "synthetic" 164 }, 165 "author": { 166 "type": "string", 167 "minLength": 1 168 }, 169 "review_status": { 170 "type": "string", 171 "minLength": 1 172 } 173 }, 174 "required": [ 175 "kind", 176 "author", 177 "review_status" 178 ], 179 "additionalProperties": false 180 }, 181 "assumptions": { 182 "type": "array", 183 "items": { 184 "type": "string", 185 "minLength": 1 186 }, 187 "minItems": 1 188 } 189 }, 190 "required": [ 191 "fixture_format_version", 192 "case_id", 193 "requirements", 194 "family", 195 "boundary", 196 "operation", 197 "purpose", 198 "implementation_status", 199 "required_from_step", 200 "mandatory", 201 "context", 202 "given", 203 "provider_script", 204 "then", 205 "prohibited", 206 "provenance", 207 "assumptions" 208 ], 209 "additionalProperties": false, 210 "$schema": "https://json-schema.org/draft/2020-12/schema", 211 "title": "hyf_v1_jev handoff semantic fixture definition; not a public Hyf request" 212 }