The latter allows you to be more expressive w/o worrying about EVM gas. But for the tokens to appear properly on OpenSea and listing sites, you need metadata that points to a PNG file or HTML file, usually that means a rendering system that generates thumbs and and saves them on a url or ipfs link
terraforms contract delivers an svg for the "image": that opensea shows in the collection view i believe