I have read about adding Storage gaps at the end of Base Upgradeable Contracts for reserving storage slots. More detailed explaination in Openzeppelin Docs here.
But what is the exact amount of storage gap to be added in the base contracts?
At some contracts it is
uint256[49] __gap;
Sometimes, it is
uint256[45] __gap;
as seen at Openzeppelin Contracts Upgradeable
Sometimes 50 slots.
What is the optimum number?