ScriptLink is technically language agnostic, and can be programmed in pretty much any language you want, though official documentation and most tutorials are in C# via MS Visual Studio (not VS Code) ...
You can pass as many parameters as the function you are calling can accept. You can't pass GUI objects. Regular objects can be passed, but their usage changes: From: SomeObj["Key1"] To: SomeObj.Key1 ...