I think all objects can be eagerly initialized (that is to say created with the context)
If you speak about the delayed initialization, all Initializable descriptors can be delayed or not. Objects implement Initializable, but all collection descriptors implements this as well.
The ReferenceDescriptor does not implement Initializable, but as it can reference an Initializable descriptor, we can specify if the referred object initialization can be delayed or not.
I added the explanation of init attribute in WireParser because it's the entry point for the xml grammar (and because it's in this class that the attribute is parsed).
I tried to explain the initialization of Descriptors in WireContext, and the xml attribute in WireParser. This way, we have a separation beween the xml parsing and the descriptor mechanism.
Maybe we can move it somewhere else.
I have the same problem with attributes that are used in all xml elements (such as name), or special elements such as method arguments.
Maybe we can find a better way to centralize all this than putting it in WireParser ?