docs: @SuppressWarnings("unchecked")
      public Object put(Object key, Object value) {
          // avoid different case keys being added by explicit remove
          Object orig = remove(key);
          result.put(key, value);
          return orig;
      }