class TupleSchema extends AbstractPropertied implements TupleMetadata {

  public TupleMetadata copy() {
    TupleMetadata tuple = new TupleSchema();
    for (ColumnMetadata md : this) {
      tuple.addColumn(md.copy());
    }
    return tuple;
  }

  public  TupleSchema();
  @JsonCreator public  TupleSchema(@JsonProperty("columns") List<AbstractColumnMetadata> columns,
                     @JsonProperty("properties") Map<String, String> properties);

}