{
  "syntax": 3,
  "package": "",
  "imports": [],
  "enums": [],
  "messages": [
    {
      "name": "MsgNormal",
      "enums": [],
      "extends": [],
      "messages": [],
      "fields": [
        {
          "name": "field1",
          "type": "int32",
          "tag": 1,
          "map": null,
          "oneof": "",
          "required": true,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": false,
          "options": {}
        },
        {
          "name": "field2",
          "type": "string",
          "tag": 2,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        },
        {
          "name": "field3",
          "type": "int32",
          "tag": 3,
          "map": null,
          "oneof": "",
          "required": true,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": false,
          "options": {}
        },
        {
          "name": "exField1",
          "type": "int32",
          "tag": 101,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        },
        {
          "name": "exField2",
          "type": "string",
          "tag": 102,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "extensions": null,
      "options": {}
    },
    {
      "name": "MsgExtend",
      "enums": [],
      "extends": [],
      "messages": [],
      "fields": [
        {
          "name": "field1",
          "type": "int32",
          "tag": 1,
          "map": null,
          "oneof": "",
          "required": true,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": false,
          "options": {}
        },
        {
          "name": "field2",
          "type": "string",
          "tag": 2,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        },
        {
          "name": "field3",
          "type": "int32",
          "tag": 3,
          "map": null,
          "oneof": "",
          "required": true,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": false,
          "options": {}
        },
        {
          "name": "exField1",
          "type": "int32",
          "tag": 101,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        },
        {
          "name": "exField2",
          "type": "string",
          "tag": 102,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "extensions": {
        "from": 100,
        "to": 200
      },
      "options": {}
    }
  ],
  "extends": [
    {
      "name": "MsgExtend",
      "messages": [],
      "enums": [],
      "fields": [
        {
          "name": "exField1",
          "type": "int32",
          "tag": 101,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        },
        {
          "name": "exField2",
          "type": "string",
          "tag": 102,
          "map": null,
          "oneof": "",
          "required": false,
          "repeated": false,
          "deprecated": false,
          "packed": false,
          "optional": true,
          "options": {}
        }
      ],
      "options": {}
    }
  ],
  "services": [],
  "optimize_for": "AUTO",
  "options": {}
}