I suggest we just use `UnsupportedOperationException` and use a useful exception message (possibly create a protected static method in `Description` named something like `unsupportedOperationForImmutableInstance()`)