/call RemoteCall "subname param0 param1..."
Sub RemoteCall(string RemoteSubParams)
    ||| One may need to cache params if needed elsewhere, but you can also use .Arg[] to extract
    /declare MacroReturn string local NULL
    ||| Debug call stack but the value of CurSub is substituted with the subname passed in
    CALLINGSUB
    CALLINGINDEX
  
    ||| Perhaps put a generic debug Entry message in here
    PUSHCALL
  
    ||| Modify the DEBUG define(s) to use the debug flags as vars rather than hardcoded and replace CurSub with name of calling sub
    DEBUGN
  
    /call ${RemoteSubParams}
    /varset MacroReturn ${Macro.Return}
  
    DEBUGN...
  
    ||| Perhaps put a generic Exit messsage in here
    POPCALL
/return ${MacroReturn}