syntax = "proto3";

service gRPCComServeFunc {
    rpc sendMessage (MessageRequest) returns (MessageResponse) {};
}

message MessageRequest{
    map<string, MsgValue> msg = 1;
}

message MsgValue{
    oneof type {
        mSingle single_msg = 1;
        mList list_msg = 2;
        mDict_keyIsString dict_msg_stringkey = 3;
        mDict_keyIsInt dict_msg_intkey = 4;
    }
}

message mSingle{
    oneof type {
        float float_value = 1;
        int32 int_value = 2;
        string str_value = 3;
    }
}

message mList{
    repeated MsgValue list_value = 1;
}

message mDict_keyIsString{
    map<string, MsgValue> dict_value = 1;
}

message mDict_keyIsInt{
    map<int32, MsgValue> dict_value = 1;
}

message MessageResponse{
    string msg = 1;
}
