{
   "openapi": "3.0.0",
   "info": {
      "contact": {
         "url": "https://cuelang.org",
         "name": "John Doe"
      },
      "title": "An OpenAPI testing package.",
      "version": "v1beta2"
   },
   "paths": {},
   "components": {
      "schemas": {
         "DefaultStruct": {
            "type": "object",
            "default": {
               "port": 1
            },
            "oneOf": [
               {
                  "$ref": "#/components/schemas/Port"
               },
               {
                  "required": [
                     "port"
                  ],
                  "properties": {
                     "port": {
                        "type": "integer",
                        "enum": [
                           1
                        ]
                     }
                  }
               }
            ]
         },
         "Enum": {
            "type": "string",
            "enum": [
               "foo",
               "bar",
               "baz"
            ]
         },
         "Int32": {
            "type": "integer",
            "format": "int32"
         },
         "List": {
            "type": "array",
            "items": {
               "type": "number"
            },
            "default": [
               1,
               2,
               3
            ]
         },
         "Msg2": {
            "type": "object",
            "oneOf": [
               {
                  "required": [
                     "b"
                  ],
                  "properties": {
                     "b": {
                        "type": "number"
                     }
                  }
               },
               {
                  "required": [
                     "a"
                  ],
                  "properties": {
                     "a": {
                        "type": "string"
                     }
                  }
               }
            ]
         },
         "MyMessage": {
            "description": "MyMessage is my message.",
            "type": "object",
            "required": [
               "foo",
               "bar"
            ],
            "properties": {
               "port": {
                  "type": "object",
                  "$ref": "#/components/schemas/Port"
               },
               "foo": {
                  "type": "integer",
                  "allOf": [
                     {
                        "$ref": "#/components/schemas/Int32"
                     },
                     {
                        "exclusiveMinimum": true,
                        "minimum": 10,
                        "exclusiveMaximum": true,
                        "maximum": 1000
                     }
                  ]
               },
               "bar": {
                  "type": "array",
                  "items": {
                     "type": "string"
                  }
               }
            },
            "oneOf": [
               {
                  "required": [
                     "a"
                  ],
                  "properties": {
                     "a": {
                        "description": "Field a.",
                        "type": "integer",
                        "enum": [
                           1
                        ]
                     }
                  }
               },
               {
                  "required": [
                     "b"
                  ],
                  "properties": {
                     "b": {
                        "type": "string"
                     }
                  }
               }
            ]
         },
         "Port": {
            "type": "object",
            "required": [
               "port",
               "obj"
            ],
            "properties": {
               "port": {
                  "type": "integer"
               },
               "obj": {
                  "type": "array",
                  "items": {
                     "type": "integer"
                  }
               }
            }
         },
         "YourMessage": {
            "type": "object",
            "properties": {
               "a": {
                  "type": "string"
               }
            },
            "oneOf": [
               {
                  "required": [
                     "a"
                  ],
                  "properties": {
                     "a": {
                        "type": "number"
                     }
                  }
               },
               {
                  "required": [
                     "b"
                  ],
                  "properties": {
                     "b": {
                        "type": "string"
                     }
                  }
               },
               {
                  "required": [
                     "b"
                  ],
                  "properties": {
                     "b": {
                        "type": "number"
                     }
                  }
               }
            ]
         },
         "YourMessage2": {
            "type": "object",
            "allOf": [
               {
                  "oneOf": [
                     {
                        "required": [
                           "a"
                        ],
                        "properties": {
                           "a": {
                              "type": "number"
                           }
                        }
                     },
                     {
                        "required": [
                           "b"
                        ],
                        "properties": {
                           "b": {
                              "type": "number"
                           }
                        }
                     }
                  ]
               },
               {
                  "oneOf": [
                     {
                        "required": [
                           "c"
                        ],
                        "properties": {
                           "c": {
                              "type": "number"
                           }
                        }
                     },
                     {
                        "required": [
                           "d"
                        ],
                        "properties": {
                           "d": {
                              "type": "number"
                           }
                        }
                     }
                  ]
               },
               {
                  "oneOf": [
                     {
                        "required": [
                           "e"
                        ],
                        "properties": {
                           "e": {
                              "type": "number"
                           }
                        }
                     },
                     {
                        "required": [
                           "f"
                        ],
                        "properties": {
                           "f": {
                              "type": "number"
                           }
                        }
                     }
                  ]
               }
            ]
         }
      }
   }
}