[
	{
		"description": "oneOf",
		"schema": {
			"oneOf": [
				{
					"type": "integer"
				},
				{
					"minimum": 2
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "first oneOf valid",
				"data": 1,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "second oneOf valid",
				"data": 2.5,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both oneOf valid",
				"data": 3,
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "neither oneOf valid",
				"data": 1.5,
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with base schema",
		"schema": {
			"type": "string",
			"oneOf": [
				{
					"minLength": 2
				},
				{
					"maxLength": 4
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "mismatch base schema",
				"data": 3,
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "one oneOf valid",
				"data": "foobar",
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both oneOf valid",
				"data": "foo",
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with boolean schemas, all true",
		"schema": {
			"oneOf": [
				true,
				true,
				true
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "any value is invalid",
				"data": "foo",
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with boolean schemas, one true",
		"schema": {
			"oneOf": [
				true,
				false,
				false
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "any value is valid",
				"data": "foo",
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with boolean schemas, more than one true",
		"schema": {
			"oneOf": [
				true,
				true,
				false
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "any value is invalid",
				"data": "foo",
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with boolean schemas, all false",
		"schema": {
			"oneOf": [
				false,
				false,
				false
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "any value is invalid",
				"data": "foo",
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf complex types",
		"schema": {
			"oneOf": [
				{
					"properties": {
						"bar": {
							"type": "integer"
						}
					},
					"required": [
						"bar"
					]
				},
				{
					"properties": {
						"foo": {
							"type": "string"
						}
					},
					"required": [
						"foo"
					]
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "first oneOf valid (complex)",
				"data": {
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "second oneOf valid (complex)",
				"data": {
					"foo": "baz"
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both oneOf valid (complex)",
				"data": {
					"foo": "baz",
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "neither oneOf valid (complex)",
				"data": {
					"foo": 2,
					"bar": "quux"
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with empty schema",
		"schema": {
			"oneOf": [
				{
					"type": "number"
				},
				{}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "one valid - valid",
				"data": "foo",
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both valid - invalid",
				"data": 123,
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with required",
		"schema": {
			"type": "object",
			"oneOf": [
				{
					"required": [
						"foo",
						"bar"
					]
				},
				{
					"required": [
						"foo",
						"baz"
					]
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "both invalid - invalid",
				"data": {
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "first valid - valid",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "second valid - valid",
				"data": {
					"foo": 1,
					"baz": 3
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both valid - invalid",
				"data": {
					"foo": 1,
					"bar": 2,
					"baz": 3
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "oneOf with missing optional property",
		"schema": {
			"oneOf": [
				{
					"properties": {
						"bar": true,
						"baz": true
					},
					"required": [
						"bar"
					]
				},
				{
					"properties": {
						"foo": true
					},
					"required": [
						"foo"
					]
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "first oneOf valid",
				"data": {
					"bar": 8
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "second oneOf valid",
				"data": {
					"foo": "foo"
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "both oneOf valid",
				"data": {
					"foo": "foo",
					"bar": 8
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "neither oneOf valid",
				"data": {
					"baz": "quux"
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "nested oneOf, to check validation semantics",
		"schema": {
			"oneOf": [
				{
					"oneOf": [
						{
							"type": "null"
						}
					]
				}
			]
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "null is valid",
				"data": null,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "anything non-null is invalid",
				"data": 123,
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	}
]
