for review:
in ssb-ref https://github.com/ssbc/ssb-ref/pull/21
in ssb-validate https://github.com/ssbc/ssb-validate/pull/11
The top level properties are checked (previous, author, signature, and content if it's a string) but references inside content are not checked. I think if these are invalid, they should just be treated as arbitary strings, which is what the node.js implementation will do once the first link has been merged.