Context: #22 (comment)
MessageValue lends itself naturally to be used an abstract interface referred to by other parts of the spec. Instead of allowing unknown values as input and having to specify what happens to them when they're resolved deeper in the spec, we could assume an implicit or explicit conversion is performed up front, and then only refer to MessageValues (with a known interface!) in the rest of the spec.
Context: #22 (comment)
MessageValuelends itself naturally to be used an abstract interface referred to by other parts of the spec. Instead of allowing unknown values as input and having to specify what happens to them when they're resolved deeper in the spec, we could assume an implicit or explicit conversion is performed up front, and then only refer to MessageValues (with a known interface!) in the rest of the spec.