One thing that bugged me was that if a player got a rules book, and they didn't use it immediately then another user got one and made a change, the first player's book would still have the old content and when they use it, it'd overwrite the second user's changes.
So now I made it such that when you open a PWR book, it validates that the book has the current rules. If not, it closes the book and reissues a new one. I'd have preferred it to just update itself then open with the latest, but apparently changes made to a book during PlayerInteractEvent do not actually take place for that specific interaction - rather, after it. So the only thing I can do is close the opened book then issue an update and inform the player.