digraph {
	Cgo -> SCgo_t;
	Sgo -> SCgo_t;

	SCgo_t -> Mgo;
	SCgo_t -> Sgo;
	SCgo_t -> Cgo;

	Sgo -> Mmap_go;
	Sgo -> io_cancel;
	Sgo -> load_serial_next;

	Cgo -> Cgo_tasks;

	Cpy_r_Sgo -> Sgo;
	Cpy_r_Sgo -> Protog_fix;
	Cpy_r_Sgo -> Cpy_patch;
	Cpy_r_Sgo -> Mpy_vs_Sgo;

	Cgo_r_Sgo -> Cgo;
	Cgo_r_Sgo -> Sgo;		

	Cgo		[label=<C<sub>go</sub>> style=filled fillcolor=lightyellow];
	Sgo		[label=<S<sub>go</sub>> style=filled fillcolor=lightyellow];
	Mgo		[label=<M<sub>go</sub>> style=filled fillcolor=lightyellow];
	SCgo_t		[label=<S<sub>go</sub>  / C<sub>go</sub>  tests> style=filled fillcolor=lightyellow];
	Cpy_r_Sgo	[label=<C<sub>py</sub>  read S<sub>go</sub>>];
	Cgo_r_Sgo	[label=<C<sub>go</sub>  read S<sub>go</sub>>];
	Cpy_patch	[label=<py patch: ConnID py=go>];	// C<sub>py</sub>  patch for ConnID interop. with S<sub>go</sub>>];
	Mmap_go		[label="io.ReaderAt via mmap"];
	Protog_fix	[label="proto(go/py) compat fix"];
	Mpy_vs_Sgo	[label=<M<sub>py</sub> vs S<sub>go</sub>: try/fix>];

	io_cancel		[label="? conn IO vs ctx cancel"];
	load_serial_next	[label=<? GetObject return += serial<sub>next</sub>>];

	Cgo_tasks	[label="- talkMaster\n- update nodeTab/partTab\n- dial S on demand\n..." style=filled fillcolor=lightyellow];
}