I've been looking at the gnubg benchmark databases, which have positions represented as gnubg-nn position strings (20 characters, like JIGHPAABDAOAHDPAABDA), rather than regular gnubg position IDs.
I found some code in gnubg.c that converts a gnubg-nn position string to a list of checker counts; but after poking around a bit I can't find a function that goes the other way - given a set of checkers, create the gnubg-nn position string.
Does one of the functions in positionid.c do this? I wasn't successful in tracking it down if so. :)