Kitty Contract - special zero'th element

I cant remember the lecture that explains it again but can someone remind me why the dummy/un ownable/unbuyable Kitty should exist at position 0 in the Kitty[] kitties; array ?

constructor() public Ownable() {
        owner = msg.sender;
        //create a cat that no one will own, we will use it so that no cat can have an token id of zero (which would cause issues in the marketplace offers array)
        _createKitty(0, 0, 0, uint256(-1), address(0));


hey @Emmett ! You should provide an address when you use _createKitty()
Dont use address 0 instead msg.sender.
For the gen-0 cats will only allow the owner of the contract. So make sure that you are also using the owner addreess

ok thanks… will change. But what was the reason for this kitty again ?

When we create a cat, we mint a token and transfer it. That token needs to belong to someone or some address, not to address(0).
This answer your question?

but I thought that the Kitty at position 0 was always supposed to be skipped over/not used?

Always provide an owner.

there was some other reason for having a dummy cat at position zero