A message doesn't have to be a string. A message could be another kind of object.
This future is about transparently passing error messages around without coercing them strings every time.
In this future, when given an error object
{% error foo: "bar" %}
, the resulting mechanic/errors/task event renders
{{ error.message.foo }}
as
bar
.