code: func (e *EntityDefinition) Clone() *EntityDefinition {
  	newEd := &EntityDefinition{
  		Name: e.Name,
  		Key:  e.Key.Clone(),
  		ETL:  e.ETL,
  	}
  
  	if e.Columns != nil {
  		newEd.Columns = make([]*ColumnDefinition, len(e.Columns))
  		for i, col := range e.Columns {
  			newEd.Columns[i] = col.Clone()
  		}
  	}
  
  	if e.Indexes != nil {
  		newEd.Indexes = make(map[string]*IndexDefinition)
  		if e.Indexes == nil {
  			newEd.Indexes = nil
  		}
  		for k, index := range e.Indexes {
  			newEd.Indexes[k] = index.Clone()
  		}
  	}
  
  	return newEd
  }
docs: // Clone returns a deep copy of EntityDefinition