Hey Cognitect Team,
I recently ran into the roundtrip issue with decimals as map keys. For me it surfaced when using transit-cljs, but I tracked it down to transit-js.
I fixed this locally by changing the return value of NumberHandler.prototype.tag to "d" and moving the Infinity and NaN stuff from JSONMarshaller.prototype.emitInteger to JSONMarshaller.prototype.emitDouble.
I have added some tests that expose this edge case.
I know you guys don't accept patches but I attached one for reference anyway, I hope it's useful.
BTW I had to change ModuleLoader$ResolutionMode/LEGACY to ModuleLoader$ResolutionMode/NODE in bin/closure_deps_graph.clj to make the tests run.
Have a nice day!