Jade resolves tamed-animal owner names client-side; its Mojang profile lookup can't resolve offline-mode UUIDs and it falls back to NeoForge's UsernameCache, which the client loads from <game>/usernamecache.json. Ship that file (side = "client", installed at the game root) so migrated owners stop showing as "???". Maintain the mapping with tools/sync-usernamecache.py after new logins.