
##var concatenation
[...] If you use this with the last argument in a variadic macro, any preceding spaces and a comma (if found) will be removed if the replacement is empty.
Preprocessor parser does not remove correctly remove the trailing comma leading to nonsense errors
reproduction code:
#define TEST_OPTIONAL(x, y...) x, ##y
proc/test()
world << "[TEST_OPTIONAL(1)]"