public class ExamplePlugin implements GeneralProcessConnectionInterface2 {

    // Initialization logic before the script is executed
    @Override
    public void init() {
        System.out.println("Initializing plugin...");
    }

    // Cleanup logic after the script finishes
    @Override
    public void dispose() {
        System.out.println("Disposing plugin...");
    }

    // Return true only for the function(s) you want to handle
    @Override
    public boolean isProcessable(String functionName) {
        if (functionName.equals("exampleFunction")) {
            return true;
        }
        return false;
    }

    // Main logic to execute when the function is called from VCSSL
    @Override
    public String[] process(String functionName, String[] args) {
        if (functionName.equals("exampleFunction")) {
            return new String[]{ "exampleFunction was called: arg0=" + args[0] + ", arg1=" + args[1] };
        }

        System.err.println("!!! If this gets printed, the function name was likely mistyped.");
        return null;
    }
}