code: func (pos *Position) ValidMoves() []*Move {
  	if pos.validMoves != nil {
  		return append([]*Move(nil), pos.validMoves...)
  	}
  	pos.validMoves = engine{}.CalcMoves(pos, false)
  	return append([]*Move(nil), pos.validMoves...)
  }
docs: // ValidMoves returns a list of valid moves for the position.