Conflict Behavior

Conflicts are explicit, structured, and part of the normal contract.

Persistly does not silently overwrite. Sync requests carry baseVersion, and conflict responses return product-shaped local/cloud branches so the game can reconcile or discard local unsynced edits intentionally.

Optimistic Concurrency

Use conflict responses as normal control flow.

Persistly uses optimistic concurrency with baseVersion, the last cloud branch revision your client accepted.

The server returns explicit conflict semantics instead of silently overwriting data.

Conflict responses return product-shaped local/cloud branches so the game can retry from that version.