node module: generic identifier class with types and optional versions