{
  "syntax": 3,
  "package": "",
  "imports": [],
  "enums": [
    {
      "name": "MyEnum",
      "values": [
        {
          "name": "FOO",
          "value": 1,
          "options": {
            "my_enum_value_option": "321"
          }
        },
        {
          "name": "BAR",
          "value": 2,
          "options": {}
        }
      ],
      "allow_alias": false,
      "options": {
        "my_enum_option": "true"
      }
    }
  ],
  "messages": [
    {
      "name": "MyMessage",
      "enums": [],
      "extends": [],
      "messages": [],
      "fields": [
        {
          "name": "foo",
          "type": "int32",
          "tag": 1,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {
            "my_field_option": "4.5"
          }
        },
        {
          "name": "bar",
          "type": "string",
          "tag": 2,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "extensions": null,
      "options": {
        "my_message_option": "1234"
      }
    },
    {
      "name": "RequestType",
      "enums": [],
      "extends": [],
      "messages": [],
      "fields": [],
      "extensions": null,
      "options": {}
    },
    {
      "name": "ResponseType",
      "enums": [],
      "extends": [],
      "messages": [],
      "fields": [],
      "extensions": null,
      "options": {}
    }
  ],
  "extends": [
    {
      "name": "google.protobuf.FileOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_file_option",
          "type": "string",
          "tag": 50000,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.MessageOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_message_option",
          "type": "int32",
          "tag": 50001,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.FieldOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_field_option",
          "type": "float",
          "tag": 50002,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.EnumOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_enum_option",
          "type": "bool",
          "tag": 50003,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.EnumValueOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_enum_value_option",
          "type": "uint32",
          "tag": 50004,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.ServiceOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_service_option",
          "type": "MyEnum",
          "tag": 50005,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    },
    {
      "name": "google.protobuf.MethodOptions",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "my_method_option",
          "type": "MyMessage",
          "tag": 50006,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    }
  ],
  "services": [
    {
      "name": "MyService",
      "methods": [
        {
          "name": "MyMethod",
          "input_type": "RequestType",
          "output_type": "ResponseType",
          "client_streaming": false,
          "server_streaming": false,
          "options": {
            "my_method_option": {
              "bar": "\"Some string\"",
              "foo": "567"
            }
          }
        }
      ],
      "options": {
        "my_service_option": "FOO",
        "my_service_option_map": {
          "foo": "\"bar\""
        }
      }
    }
  ],
  "optimize_for": "AUTO",
  "options": {
    "my_file_option": "\"Hello world!\""
  }
}