A state is 'Completed', when all its dependencies are available, i.e. the types of all its properties are available.
A state is 'Identifiable', when all those dependencies are available which are required to calculate the identifier of the type.
A state is 'Invalid' otherwise.
'Invalid' is made explicit, since it might require less dependencies than 'Completed' and therefore speed-ups the resolution of dependencies.
The transitions between the states of a type are depicted as state machine:
A state is 'Completed', when all its dependencies are available, i.e. the types of all its properties are available. A state is 'Identifiable', when all those dependencies are available which are required to calculate the identifier of the type. A state is 'Invalid' otherwise. 'Invalid' is made explicit, since it might require less dependencies than 'Completed' and therefore speed-ups the resolution of dependencies.