Oops, did 12.3 in 12.2 -- moved 12.2 soln. to 12.3 and modified 12.2 to be the simpler case.  Also fixed a bug handling non-string keys that weren't valid IDs