Better then `__toString()` is just `getMessageString()` or similar, clearly named, and explicitly written out. Allows you also to throw and catch Exceptions (and document those). There is normally no need to have `__toString()` in an interface, this is an implementation detail of a PHP feature for string context, so does belong only into (abstract) classes, not in a standardization IMHO.

Next to that I'm with @rdlowrey about the limitations of `__toString()` in stream contexts.