I'm having a question on how can works a Breed System on ERC-721.
What I know
I understand well who to make a smart contract with limited supply and how to import all images and metadata to IPFS buckets. Now when a user mint an element, the smart contract will take the next one on the list and make it the owner.
What I don't know
Now I thinking on how to implement breed system (like on CryptoKitties for example), when a user have 2 NFT and want to breed them.
How can I create a new element on the collection ?
Solution 1: Do I have to push new files into IPFS from my web client when user want to breed ? So this smart contract function will only works from my own website (And user will have to trust me so it's not a real answer). I'm probably sure it's not possible to generate a new JSON file and import it to IPFS from a smart contract. (Is it ?)
Solution 2: Forget about IPFS and store metadata only into the smart contract. But in this case how can I legitimate that the data is immutable ? Do IPFS isn't used for that ?
Thank everyone for your time.