mapKey: withBlock now uses the json key name an user can now customize non-id types;