When changing to `const &`, include a default to avoid having to pass empty contexts (applies also to other functions):
```c++
virtual int execute(const Context &context = Context()) = 0;
```