There’s an inconsistency in where value generators implement a typesafe initialize() but id generators just declare a constructor which has to have a certain signature.
All kinds of generator should have a choice between both options.