Jackson binding of the Kanonak codec's $-envelope and Ref: KanonakModule names KanonakNode's $id, $type, $types, $name, $contentHash and $version, so a generated class read or written by Jackson keeps its identity, and binds Ref as a reference or an embedded node. In an artifact of its own, so kanonak-codec stays JDK-only.