{
    "rank.playerHandler.beginGame": {
        "optional uInt32 code": 1,
        "optional string msg": 2,
        "required uInt32 currank": 3
    },
    "enumTest": {
        "optional string aa": 1,
        "required uInt32 bb": 2,
        "required uInt32 cc": 3,
        "optional string enumstr": 4
    },
    "onAdd": {
        "required string nickname": 1,
        "required uInt32 nickname11": 2,
        "required uInt32 nowplayers": 3,
        "required float nowplayers2": 4,
        "required double nowplayers3": 5
    },
    "onRank": {
        "repeated uInt32 normalArr": 1,
        "required uInt32 enum": 2,
        "repeated string normalStrArr": 3,
        "message GGG": {
            "required uInt32 ccgg": 1
        },
        "optional GGG innerGGG": 4,
        "message MyRank": {
            "required uInt32 nickname": 1,
            "message GGG": {
                "required uInt32 ccgg": 1
            },
            "required GGG ggg": 2,
            "required GGG xxx": 3
        },
        "repeated MyRank ranks": 5,
        "optional MyRank rk": 6,
        "optional uInt32 val": 7,
        "required string ffname": 8,
        "message IGG": {
            "repeated string ggenv": 1
        },
        "repeated IGG aa": 9,
        "repeated string ggenv": 10
    }
}