Versioning catalog items (take 2)

Leaving here for early feedback.


Supercedes #92 
i'd be in favour of allowing if they match; someone might for some reason want `id` and `symbolicName` and `version` in their json (eg if you get full details from a server and just send that back)