jsoncompat 0.4.1

JSON Schema and OpenAPI Compatibility Checker
Documentation
{
  "$defs": {
    "v1": {
      "properties": {
        "age": {
          "minimum": 0,
          "type": "integer"
        },
        "name": {
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "name",
        "age"
      ],
      "type": "object",
      "x-jsoncompat": {
        "kind": "declaration",
        "name": "UserProfileV1",
        "schema_ref": "#/$defs/v1",
        "stable_id": "user-profile",
        "version": 1
      }
    },
    "v2": {
      "properties": {
        "age": {
          "minimum": 0,
          "type": "integer"
        },
        "interests": {
          "type": "integer"
        },
        "name": {
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "name",
        "age",
        "interests"
      ],
      "type": "object",
      "x-jsoncompat": {
        "kind": "declaration",
        "name": "UserProfileV2",
        "schema_ref": "#/$defs/v2",
        "stable_id": "user-profile",
        "version": 2
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/v2"
        },
        "version": {
          "const": 2
        }
      },
      "required": [
        "version",
        "data"
      ],
      "type": "object",
      "x-jsoncompat": {
        "kind": "reader_variant",
        "name": "UserProfileV2Reader",
        "payload_ref": "#/$defs/v2",
        "stable_id": "user-profile",
        "version": 2
      }
    },
    {
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/v1"
        },
        "version": {
          "const": 1
        }
      },
      "required": [
        "version",
        "data"
      ],
      "type": "object",
      "x-jsoncompat": {
        "kind": "reader_variant",
        "name": "UserProfileV1Reader",
        "payload_ref": "#/$defs/v1",
        "stable_id": "user-profile",
        "version": 1
      }
    }
  ],
  "title": "user-profile reader",
  "x-jsoncompat": {
    "kind": "reader",
    "name": "UserProfileReader",
    "stable_id": "user-profile"
  }
}