generated ids are all-lowercase