Modern ERC721 Usage: Minting, Votes, Governance & Royalties

Hey Guys,

Just have some high level questions since I'm very new to Solidity;

I'm trying to build an ERC-721 token with voting privileges and can receive royalties on resales.

Where: [NFTMintToken.sol]( is the contract that mints the NFTs.

  1. Does [draft-ERC721Votes.sol]( replace the need to use ERC721Checkpointable.sol from the Nouns DAO project?

  2. How do I use draft-ERC721Votes.sol and ERC721Royalty.sol? Do I just import them into my ERC-721 minting contract, NFTMintToken.sol?

  3. [TimeLock.sol]( is this required for my use case? If so, is it a separate file that I have to add to the /contracts folder and import into my NFTMintToken.sol?