Use a dataclass for the alias substitution

It is starting to get out of hand with the inclusion of the effective
alias. It is also a good idea to signal to the users that this is an opaque
type that plugin authors should not look into its internals.
2 files changed