code: func Parse(selector string) (Op, error) {
  	segments := strings.Split(selector, ".")
  
  	ops := make([]Op, 0, len(segments))
  	for _, segment := range segments {
  		key := strings.TrimSpace(segment)
  		if key == "" {
  			continue
  		}
  
  		if op, ok := parseArray(key); ok {
  			ops = append(ops, op)
  			continue
  		}
  
  		ops = append(ops, Dot(key))
  	}
  
  	return Chain(ops...), nil
  }
docs: // Parse takes a string representation of a selector and returns the corresponding Op definition