Rpc()` is declared with untyped defaulted parameters. Because every parameter is `void` with a default, calling an `[RplRpc]` method with the wrong number or wrong types of arguments compiles without any warning, and at runtime the RPC silently fails to deliver — no VME, no log line, nothing on either end. The result is a replicated feature that simply doesn't work, with no signal pointing at the call site.
## Steps to reproduce
1. Declare `[RplRpc(RplChannel.Reliable, RplRcver.Owner)] void RpcDo_Test(int a, int b, int c)`.
2. Call `Rpc(RpcDo_Test, 1, 2, 3, 4)` from the server.
3. Compiles clean; at runtime the receiver never gets the RPC and no error is emitted anywhere.
## Expected / requested
Ideally, validate the argument list against the `func` target's signature at compile-time and fail to compile. Or at runtime when marshalling an RPC whose argument list does not match the target's parameters, emit a script error naming the method.
Would help to catch mistakes made in Rpc calls quicker rather than manually having to compare calls with their target declarations.