SGD commands - specifically getvar

I wrote a simple Go program to connect to the printer, run an a command

! U1 getvar "zpl.system_status"\r\n

I was then trying to read the response but my read listener kept timing out.  I was expecting a \n at the end of the data coming from the printer but was not getting it. Is there a way to tell the printer to respond and terminate the line with \n?

If not, what's the best way to listen for a response. I ended up reading the stream and then setting a timeout to wait for more data, but that seems kind of hacky.

Is there a specific character I can wait for to indicate the printer is done sending the response?

I also logged in with a telnet client manually and saw the same behavior.