This should probably built as modular extensions to the TransactionValidator.
Incomplete list of things to consider/think about:
- Check if a account has enough fees beforehand
- Check transaction hooks before adding it / call removeTransactionWhen
- "Already have seen" lookup (?)