This is very disheartening, because there are a few reasonable strategies:
1. CRDT like linear change rules.
2. Vector clocks.
3. Forking the entire tree and allowing merge queries, creating a DAG of the state that can be interactively and speculatively remerged.
Just picking one winner arbitrary and silently discarding all peers sounds like the kind of thing that gets labeled as a bug when we examine concurrent data stores.