Please remove fields/capabilities from SafariOptions class:
* `cleanSession`: This property is migrated from old safaridriver by selenium, but it was never used by Apple's safaridriver (Safari always creates clean session). Because current version does not support deprecated driver this capability should be removed.  
* `port` : this deprecated field is not exposed to user and cause the issue #5020 which maked SafaryOption unusable (in grid environment) 

Add new capabilities which are [supported by safaridriver](https://webkit.org/blog/6900/webdriver-support-in-safari-10/)
* `automaticInspection`
* `automaticProfiling`
  
public boolean getUseTechnologyPreview() {
    return is(Option.TECH_PREVIEW)|| options.get(Option.TECHNOLOGY_PREVIEW) == Boolean.TRUE;
  }
  
  /**
   * Parse a Map and reconstruct the {@link SafariOptions}.
   *
   * @return A {@link SafariOptions} instance associated with these extensions.
   */
  private static SafariOptions fromJsonMap(Map<?, ?> options)  {
    SafariOptions safariOptions = new SafariOptions();
    Object useTechnologyPreview = options.get(Option.TECHNOLOGY_PREVIEW);
    if (useTechnologyPreview instanceof Boolean) {
      safariOptions.setUseTechnologyPreview((Boolean) useTechnologyPreview);
    }
    return safariOptions;
  }
  @Override
  protected int amendHashCode() {
    return options.hashCode();
  }
  @Override
  public Map<String, Object> asMap() {
    return ImmutableSortedMap.<String, Object>naturalOrder()
        .putAll(super.asMap())
        .put(CAPABILITY, options)
        .build();
  }
}