msc {
	A [label="FSM instance"],B [label="FSM instance"], C [label="remote program"];
	|||;
	||| [label="LADDER DIAGRAM LEGEND"];
	|||;

	A rbox C [label="Group Heading"];

	A box A [label="function call or action"];
	A -> B [label="event within program"];
	B abox B [label="enter FSM state"];
	B => C [label="network protocol message"];
	...;
	... [label="asynchronous wait time"];
	...;
	B <= C [label="network protocol message"];
	|||;
	||| [label="continue synchronously"];
	|||;
	A <- B [label="event within program"];
	A rbox A [label="flow detail: 'continue at...'"];
	...;
	...;
	--- [label="IF conditional"];
	||| [label="..."];
	--- [label="END: conditional"];
	...;
	B note B [label="arbitrary prose"];
}
