{
    "title": "Asset Metadata",
    "properties": {
        "name": {
            "description": "Identifies the asset to which this NFT represents"
        },
        "description": {
            "description": "Describes the asset to which this NFT represents"
        },
        "image": {
            "description": "A URI pointing to a resource with mime type image/* 
            representing the asset to which this NFT represents. Consider making 
            any images at a width between 320 and 1080 pixels and aspect ratio 
            between 1.91:1 and 4:5 inclusive."
        }
    }
}

notice the image field, which is a link to an image. If we take example Project Memento, an NFT allowing change tiles you own to the desired letter. You basically trade “coordinates” on the website and there is NO NEED of an image for the project itself to work.

We could store them on the blockchain, but that would be excessively expensive 
  - The cost of data storage is 640k gas per kilobyte of data 
  - The current gas price is approximately 50 Gwei (or 0.000000050 ETH).
  - At today’s price (30th October 2021), 1 ETH is approximately $4000 
  - Each kilobyte for an image would cost $40