code: @NonNull
      @Override
      public Map<String, Object> toMap() {
          synchronized (lock) {
              final Map<String, Object> result = new HashMap<>();
              for (String key : internalDict) {
                  result.put(key, Fleece.toObject(getMValue(internalDict, key).asNative(internalDict)));
              }
              return result;
          }
      }
docs: Gets content of the current object as an Map. The values contained in the returned
  Map object are all JSON based values.
  
  @return the Map object representing the content of the current object in the JSON format.