Generated on 2022-11-16T17:32:07.993486
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
-
Allowed transformations
-
Non-allowed transformations
A new schema is backward compatible if it can be used to read the data written in the previous schema.
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1_new",
"type": "string",
"aliases": ["f1"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
A new schema is forward compatible if the previous schema can read data written in this schema.
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1_new",
"type": "string",
"aliases": ["f1"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
A new schema is fully compatible if it's both backward and forward compatible.
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string",
"default": "foo"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
},
{
"name": "f2",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1_new",
"type": "string",
"aliases": ["f1"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": "string"
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
V1
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string", "int"]
}
]
}
V2
{
"namespace": "test",
"name": "myrecord",
"type": "record",
"fields": [
{
"name": "f1",
"type": ["null", "string"]
}
]
}
A new schema is backward compatible if it can be used to read the data written in the previous schema.
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f2 = 1;
}
A new schema is forward compatible if the previous schema can read data written in this schema.
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f2 = 1;
}
A new schema is fully compatible if it's both backward and forward compatible.
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
optional string f2 = 2;
}
V2
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V1
syntax = "proto3";
message Example {
optional string f1 = 1;
}
V2
syntax = "proto3";
message Example {
optional string f2 = 1;
}
A new schema is backward compatible if it can be used to read the data written in the previous schema.
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
A new schema is forward compatible if the previous schema can read data written in this schema.
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
A new schema is fully compatible if it's both backward and forward compatible.
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"},
"f2": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1", "f2"]
}
V1
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": []
}
V2
{
"type": "object",
"properties": {
"f1": {"type": "string"}
},
"additionalProperties": false,
"required": ["f1"]
}