//unfortunately, have to wrap the docs in a C comment for doxygen
/**
\page connection_sequence QW Connection Sequence
\msc
Client,Server;
Client=>Server [label = "getchallenge\n"];
Server=>Client [label = "c[challenge][ext]"];
Client=>Server [label = "connect [protover] [qport] [challenge] [userinfo]"];
Server=>Client [label = "j"];
Client->Server [label = "[clc_stringcmd]new"];
Server->Client [label = "[svc_serverdata][data]"];
|||;
Client->Server [label = "[clc_stringcmd]soundlist [svcount] 0"];
--- [label = "soundlist loop start"];
Server->Client [label = "[svc_soundlist][data][next]"];
Client->Server [label = "[clc_stringcmd]soundlist [svcount] [next]"];
--- [label = "soundlist loop end"];
Server->Client [label = "[svc_soundlist][data]0"];
|||;
Client->Server [label = "[clc_stringcmd]modellist [svcount] 0"];
--- [label = "modellist list loop start"];
Server->Client [label = "[svc_modellist][data][next]"];
Client->Server [label = "[clc_stringcmd]modellist [svcount] [next]"];
--- [label = "modellist list loop end"];
Server->Client [label = "[svc_modellist][data]0"];
|||;
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n=0] [wcsum]"];
--- [label = "prespawn loop start"];
Server->Client [label = "[signon buffer n][stuffcmd]prespawn..."];
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n]"];
--- [label = "prespawn loop end"];
Server->Client [label = "[signon buffer n][stuffcmd]spawn..."];
|||;
Client->Server [label = "[clc_stringcmd]spawn [svcount] 0"];
Server->Client [label = "[spawn info][stuffcmd]skins"];
Client->Server [label = "[clc_stringcmd]begin [svcount]"];
#... [label = "in game message sequence"];
\endmsc
*/
