This is something that likely cannot be made into an RFC for the Perl language at this time because implementation would be greatly simplified when the Corinna object model is in core. For example, a base class for what is discussed might look like the following:
# Exception is a poor name for warnings, so a better name is warranted
class Exception :version(v0.1.0) {
# $message and $description might be from a messaging role
field $message :reader :param;
field $description :reader :param { "" };