I solved the problem with (I believe it was) the first response out of the four or five I got almost immediately.
I got four _separate_ completely valid solutions and this has pointed me on some learning paths here. This mailing list is awesome. Thank you.