code: public <T> GenericMarker<T> createMarker(T markerContext, GenericMapWidget mapWidget) {
          this.map = mapWidget;
          validateRequiredParameters();
          if(map instanceof GoogleV3MapWidget){
              return new GoogleV3Marker<T>(this, markerContext);
          }
          if(map instanceof OfflineMapWidget){
              return new OfflineMapMarker<T>(this, markerContext);
          }
          throw new UnsupportedOperationException();
      }
docs: Final build method of the builder, called once all parameters are setup for the Generic Marker
  
  @param markerContext the marker context is intended to hold a reference to the record set backing the marker,
  this used later in pop up panel and hover label construction to aid the client in building relevant
  markup from the record set backing the marker
  @param <T>           A record set backing the marker such as RecordList.Record
  @return an instance of generic marker