When a scald atom is referenced by ONLY an original record and that original record's community records, we want to allow ma_scald_duplicate_content_protocol_action to duplicate the protocols from the original record. For example, if ma_scald_get_atom_references returns ['node' => 3, 8, 9] and node 8 and 9 are CRs of 3, we can remove 8 and 9. If node 3 is the only remaining entity referencing the scald atom, we can safely duplicate the protocols.
Note that you cannot simply exclude ALL community records, that is not the same thing as above. Given the same example, but 9 is a CR of 4 rather than 3, then 9 is a valid second reference of the media item and we cannot duplicate the protocols because we do not know which one is authoritative.
Also note that if there are references from any other entity types beyond node, there is no need to do this computation.
When a scald atom is referenced by ONLY an original record and that original record's community records, we want to allow
ma_scald_duplicate_content_protocol_action
to duplicate the protocols from the original record. For example, ifma_scald_get_atom_references
returns['node' => 3, 8, 9]
and node 8 and 9 are CRs of 3, we can remove 8 and 9. If node 3 is the only remaining entity referencing the scald atom, we can safely duplicate the protocols.Note that you cannot simply exclude ALL community records, that is not the same thing as above. Given the same example, but 9 is a CR of 4 rather than 3, then 9 is a valid second reference of the media item and we cannot duplicate the protocols because we do not know which one is authoritative.
Also note that if there are references from any other entity types beyond node, there is no need to do this computation.