Fails fatally if the source and target are the same,
or the target is not writable.

Conflicts are resolved by either the resolver specified in the PROPHET_RESOLVER environmental variable,
the prefer argument (can be set to to or from,
in which case Prophet will always prefer changesets from one replica or the other),
or by using a default resolver.