class WithTimestamps extends PTransform<PCollection<T>, PCollection<T>> {

  public static <T> WithTimestamps<T> of(SerializableFunction<T, Instant> fn) {
    return new WithTimestamps<>(fn, Duration.ZERO);
  }

  private  WithTimestamps(SerializableFunction<T, Instant> fn, Duration allowedTimestampSkew);

}