Version history — every write bumps the version and the previous book is kept whole. Nothing is deleted from this history. The newest version is not authoritative unless canonical state (the live book) says so.
The diff is computed against the live rulebook (gained/lost rule ids). Version causality is not invented — only canonical id membership is reported.