{
  "title": "PersonAndPet",
  "$defs": {
    "Cat": {
      "title": "Cat",
      "type": "object",
      "properties": {
        "petType": {
          "const": "cat",
          "default": "cat",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "canMeow": {
          "type": "boolean"
        }
      }
    },
    "Dog": {
      "title": "Dog",
      "type": "object",
      "x-sgen-typename": "PersonAndDog.Dog",
      "properties": {
        "name": {
          "type": "string"
        },
        "breed": {
          "type": "string"
        },
        "age": {
          "type": "integer"
        }
      }
    },
    "Pet": {
      "title": "Pet",
      "discriminator": {
        "propertyName": "petType",
        "mapping": {
          "cat": "#/$defs/Cat",
          "dog": "#/$defs/Dog"
        }
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Cat"
        },
        {
          "$ref": "#/$defs/Dog"
        }
      ]
    }
  },
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "pet": {
      "$ref": "#/$defs/Pet"
    }
  }
}
