Alas, it appears my original idea of just connecting directly to #snapmakerartisan and sending gcode commands has hit a bit of a snag. It no longer uses http and json, but rather some binary format called SACP.
At least the Cura plugin has an implementation I can crib from.

