code: func BuildList(rawProperties []interface{}) (List, error) {
  	result := make(List, len(rawProperties), len(rawProperties))
  
  	for i, val := range rawProperties {
  		convertedVal, err := Build(val)
  		if err != nil {
  			return result, err
  		}
  
  		result[i] = convertedVal
  	}
  
  	return result, nil
  }
docs: // BuildList creates a new property List from an slice of interface{}, erroring if any elements are maps with non-string keys.
  // Slices in the property List are converted to property Lists. Maps in the property List are converted to property Maps.