# Reference Propagation * For every output potentially containing references, we need a boolean input that determines whether the references have to be created. * For every output that propagates referenced data from inputs, we need a subset of the data that needs to be propagated. * For every builtin node that creates a new reference, an input for the reference identifier is necessary. * For output sockets we need to know whether they can be computed without computing another output. 1. Create attribute propagation inputs for group. 2. Create input node for output socket usage. 3. Create output node for input socket usage. 4. Create nodes that determine which sockets are used. 5. Set defaults for propagation sets. 6. Link propagation sets. 7. Fix link cycles.