Appendix: Versioning your Resources
If you’re implementing something that needs to keep track of drafts or a version history, consider creating two separate resources: one that represents the “latest” version and another that represents each revision. All of the required fields on the latest version should be optional on the revisions.
Consider blocking deletes and updates to revisions
The latest version is fully calculated based on revisions
Relationships between revisions; linked list
Ordered by timestamp
Using slugs as IDs and handling changes