Transaction guards have been introduced with Safe contracts version 1.3.0. They are used when there are restrictions on top of the
Transaction guards can make checks before and after a Safe transaction.
The check before a transaction can, e.g. programmatically check all of the parameters of the respective transaction prior to execution.
This check after a transaction is called at the very end of the transaction execution and can be used to, e.g. perform checks on the final state of the Safe.
IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for a Safe. Make sure to audit the guard code and pay attention to recovery mechanisms.