if there's one new shoe without new round, then just return this new shoe, not create a new one.
use multiple functions with pattern match
for now, lager doesn't support Erlang 17 Map, so transfer it to List.
remove the function for mannual patch for Map, replace the lager source code from https://github.com/quasiconvex/lager/blob/master/src/lager_trunc_io.erl for now, later update lager once this bug applied on master.