As I work on this, I see that we can't have the default return for `external_name` be `@external_name || full_name` because we need to distinguish between an event's external name being specified vs. not, in order to support the precedence that we want. Not a big deal but wanted to point it out.