In the EvolvingProteus contract, there are multiple occasions where require statements are used for conditional checks. But these require statements are not using revert messages. Hence, if these require statements revert, it will be difficult to find the reason for the revert.
It is recommended to add meaningful revert messages to these require statements.
https://github.com/code-423n4/2023-08-shell/blob/main/src/proteus/EvolvingProteus.sol#L414
https://github.com/code-423n4/2023-08-shell/blob/main/src/proteus/EvolvingProteus.sol#L397-L402
