public List <int> SerializeByFirstGettingIndividualBits() { var output = new List <int>(_bitboard.PopCount()); if (_bitboard.IsEmpty) { return(output); } Bitboard[] list = _bitboard.IndividualBits(); for (int i = 0; i < list.Length; i++) { Bitboard bit = list[i]; int bitIndex = BitUtils.BitScanForward(bit); output.Add(bitIndex); } return(output); }