State guards using _not_ to simplify permission definitions where protocol has many states

Is there a way to negate which states are valid on a permission? like

permission[me] p() | !FINISHED

I also would like to do this, but I believe it’s not currently possible.

There is not. But you could check immediately after:

permission[me] p() {
    require(
        currentState() != States.FINISHED,
        "great message goes here"
    );
}

Then I don’t get the nice warnings about stuff I shouldn’t be doing in the IDE