The sasjs tree has emitted its responses through the runtime's webout() since #461; the SAS 9 tree under sas/mocks/sas9/ still assigned every captured payload to _webout, so its envelope was frozen at the 2022 recording and its values carried the separators a template literal eats. All 35 services now call webout('OPEN') / webout('OBJ'|'ARR', name, rows) / webout('CLOSE'), with the three services that carry column metadata passing { showmeta } and loading the guard from the new weboutGuard.js. The payloads come from the captures read as JS produces them, with the backslashes a template literal silently drops restored: 121 separator values across 14 services - OMS URIs (OMSOBJ:<Class>\<repo>.<id>), BUILTIN\Administrators, SAS\sasdemo and D:\... / C:\... paths.