Ethereum Improvement Proposal 721 sets the standard for NFTs.
There are tons of NFT contracts out there doing really cool, crazy things. Many of those features are not required by the standard.
I explain what NFTs and metadata are, as well as commonly used OpenZeppelin extensions.
EIP-721:
The Github code I used for creating Pokemon NFTs:
My previous video on creating Pokemon NFTs: