Require JSON payloads
Add test endpoint
Tweak receiver
DRY message spec
Simplify message renderers