anchor.diff: +/**
  +  * # Component
  +  *
  +  * The component datum
  +  *
  +  * a component should be a single standalone unit
  +  * of functionality, that works by receiving signals from it's parent
  +  * object to provide some single functionality (i.e a slippery component)
  +  * that makes the object it's attached to cause people to slip over
  +  */
   /datum/component
   	var/dupe_mode = COMPONENT_DUPE_HIGHLANDER
   	var/dupe_type
  
positive.code: 			lookup[sig_type][src] = TRUE
  
  	signal_enabled = TRUE
  
  /datum/proc/UnregisterSignal(datum/target, sig_type_or_types)
  	var/list/lookup = target.comp_lookup
  	if(!signal_procs || !signal_procs[target] || !lookup)
  
negative.code: 
  	if(target == AddComponent(target))
  		target._JoinParent()
  /**
    * Transfer all components to target
    *
    * All components from source datum are taken
    *
    * Arguments:
    * * /datum/target the target to move the components to
    */
  /datum/proc/TransferComponents(datum/target)
  	var/list/dc = datum_components
  	if(!dc)
  