eyre: include mark of fact in channel json
This change greatly improves the ergonomics of working with channel JSON
in statically typed languages, as the polymorphism is moved out of the
actual diff and into the event framing.
==
::
%fact
- :~ ['response' [%s 'diff']]
+ :+ ['response' [%s 'diff']]
::
:- 'json'
~| [%unexpected-fact-mark p.cage.sign]
?> =(%json p.cage.sign)
!<(json q.cage.sign)
+ ::
+ ?~ from ~
+ :~ ['mark' [%s mark.u.from]]
+ ['desk' [%s desk.u.from]]
==
::
%kick
