EIP 712 Best Practices - Nonce? Changing of Domain/Ver?

I'm building a few contracts to complete a Web3 eco system.
For this we have a minting contract that allows users to mint NFTs through our dapp.

The idea is that the user "creates" their NFT on the front-end, but the NFT gets minted only once the buyer is ready to pay.

We have implemented this using the signing of transaction following EIP-712.
So we sign the NFT data from the creator at the time of creating the NFT, and the buyer needs to use that sign to call the contract.

Here are a few questions:

  • Should we create some kind of unique value/code every time the creator signs? (Like a nonce, but can be another random value also.)
  • Can/Should we update the domain and version?
  • Are there any updated best practices when it comes to implementing EIP-712?

This implementation has been done using the OZ EIP712 and ECDSA Cryptography/Utility contracts.