{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Adjacent", "oneOf": [ { "type": "object", "properties": { "t": { "type": "string", "const": "UnitOne" } }, "required": [ "t" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "StringMap" }, "c": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "t", "c" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "UnitStructNewType" }, "c": { "$ref": "#/$defs/UnitStruct" } }, "required": [ "t", "c" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "StructNewType" }, "c": { "$ref": "#/$defs/Struct" } }, "required": [ "t", "c" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "Struct" }, "c": { "type": "object", "properties": { "foo": { "type": "integer", "format": "int32" }, "bar": { "type": "boolean" } }, "required": [ "foo", "bar" ] } }, "required": [ "t", "c" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "Tuple" }, "c": { "type": "array", "prefixItems": [ { "type": "integer", "format": "int32" }, { "type": "boolean" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "t", "c" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "UnitTwo" } }, "required": [ "t" ] }, { "type": "object", "properties": { "t": { "type": "string", "const": "WithInt" }, "c": { "type": "integer", "format": "int32" } }, "required": [ "t", "c" ] } ], "$defs": { "UnitStruct": { "type": "null" }, "Struct": { "type": "object", "properties": { "foo": { "type": "integer", "format": "int32" }, "bar": { "type": "boolean" } }, "required": [ "foo", "bar" ] } } }