# Entanglement

Entanglement is the process of moving, copying, and linking domain objects
in such a way that their relationships are impossible to discern.

This bundle provides move, copy, and link functionality.  Achieving a state of 
entanglement is left up to the end user.


## Services implement logic

Each method (move, copy, link) is implemented as a service, and each service
provides two functions: `validate` and `perform`.

`validate(object, parentCandidate)` returns true if the `object` can be 
move/copy/linked into the `parentCandidate`'s composition.

`perform(object, parentObject)` move/copy/links the `object` into the 
`parentObject`'s composition.

## Actions implement user interactions

Actions are used to expose move/copy/link to the user.  They prompt for input
where necessary, and complete the actions.