Ready for PR: ERC721Consecutive + ERC721Enumerable - feedback and guidance needed

Since the ERC721consecutive.sol and ERC721Enumerable.sol does not work together, see the conversation Is it possible to use ERC721Consecutive.sol & ERC721Enumerable at the same time with @frangio
I've created a new contract that is compatible with IERC721Enumerable & have batch minting.


I wish to create a pull request to OpenZeppeling repository but before that I wanted to here any feedbacks.

import "OpenZeppelin/openzeppelin-contracts@4.8.0/contracts/token/ERC721/ERC721.sol";
import "OpenZeppelin/openzeppelin-contracts@4.8.0/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
import "OpenZeppelin/openzeppelin-contracts@4.8.0/contracts/interfaces/IERC2309.sol";
import "OpenZeppelin/openzeppelin-contracts@4.8.0/contracts/utils/structs/BitMaps.sol";
import "OpenZeppelin/openzeppelin-contracts@4.8.0/contracts/utils/Checkpoints.sol";

contract ERC721CE is ERC721, IERC721Enumerable, IERC2309 {
    using BitMaps for BitMaps.BitMap;
    using Checkpoints for Checkpoints.Trace160;

    Checkpoints.Trace160 private _sequentialOwnership;
    BitMaps.BitMap private _sequentialBurn;
.
.
.

full code is here: Github - ERC721ConsecutiveEnumerable

I've also deployed a test contract on goerli: 0xaF8fA6fC07Da285a94f37148218fFd170eE827ff


this the first time that I try to contribute to openZeppelin so any feedback, guidance is would be huge help.

Thanks for the interest in contributing to our repository, we have a defined methodology for accepting contributions listed in our CONTRIBUTING file. Please check it out, and do the steps according to it for this to be considered as a contribution.