public void Call(FunctionId functionId, IMessage argument, CallOptions options = CallOptions.Default) { if ((options & CallOptions.Local) != 0) { functions[functionId]?.Invoke(argument); } if ((options & CallOptions.Remote) != 0) { RemoteCall?.Invoke(functionId, argument); } if ((options & CallOptions.Queue) != 0) { queuedRemoteCalls.Add((functionId, argument)); } }