Maybe at some point links and aliases will be real objects here too and we'll call to_json on them instead.