Ignore idea projects
Reimplement Event.describedAs(String)

Keeping Event as a Functional Interface was never really a goal and
didn't provide any practical benefits. However, it did make writing a
"describedAs" method impractical. So, Event is no longer a Functional
Interface, which required some refactoring of methods that abused that
old fact. There are now abstract parent classes for Condition and Event
that implement the basic describedAs and toString contract.