first pass at json descriptor generator