Follow up from #1743686: Condition Plugin System. It doesn't make sense to me that Condition extends Executable (in any sense: interface, base class, or manager). Evaluating a condition is not conceptually similar to executing something.
Furthermore, it's a WTF that $condition->execute() returns the exact opposite of $condition->evaluate() when the 'negate' configuration is true. $condition->evaluate() should take all its configuration into account, including 'negate'.