Content versioning workflow for SDK

I’m curious what the correct or intended workflow should be for working with Content Versioning using the SDK.
As I understand there’s atleast two ways to do it:

  1. Manually
  • Fetch the item (main).
  • Fetch the version.
  • Apply the version on the item
  • When saving the version, save the changes back to the version using saveToContentVersion
  1. SDK methods
  • Fetch the item with version=“version”. This loads the entire item with the version changes applied.
  • Compare the full item with changes applied, with the previously saved version (use the compare endpoint) to generate a delta
  • Save using saveToContentVersion

Can someone guide me for the correct implementation? I’m getting things a bit mixed up and there’s not a lot of examples in the docs.

Thanks