Great question! There are two ways to store NFT metadata: on-chain and off-chain.
Considering the cost and fees for storage, I highly recommend storing the data off-chain. In this case, the NFT will contain a reference to a JSON file that can contain anything.
If you choose to store the metadata on-chain, please note that the maximum size of the contract is 40k cells, and you will need to pay several TON per year for its storage.