syntax = "proto3";

package communication;

message MessagePack {
    bytes data = 1;
}

message Invocation {
    string module = 1;
    string function_name = 2;
    MessagePack args = 3;
};

message InvocationOverride {
    string module = 1;
    string function_name = 2;
};

message OverrideStatus {
    int32 status = 1;
};

service Forwarder {
    rpc Forward(Invocation) returns (stream MessagePack);
    rpc Override(InvocationOverride) returns (OverrideStatus);
};