Address assignment and cryptographic key initialization is sometimes performed by closing a contact on the device while having a master controller broadcast an assignment message.
However, by "encoding" the rotor position into the ring position using the ring settings, additional variability was added to the encryption of the initialization vector.
This ensures proper order of initialization, i.e. the fields of a base class finish initialization before initialization of the fields of an object class begins.
Indeed, time-predictability can easily be ruined by the use of the standard library (lazy initialization, array resizing, etc.) which is not acceptable for safety-critical systems.