docs: public static List<Object[]> listKeyChains(final Object source) {
  
          List<Object[]> keyChainList = new LinkedList<>();
  
          if(source instanceof Map) {
              Map sourceMap = (Map) source;
              for (Object key: sourceMap.keySet()) {
                  keyChainList.addAll(listKeyChains(key, sourceMap.get(key)));
              }
          }
          else if(source instanceof List) {
              List sourceList = (List) source;
              for(int i=0; i<sourceList.size(); i++) {
                  keyChainList.addAll(listKeyChains(i, sourceList.get(i)));
              }
          }
          else {
              return Collections.emptyList();
          }
  
          return keyChainList;
      }