code: func GetGreasedVersions(supported []VersionNumber) []VersionNumber {
  	b := make([]byte, 1)
  	_, _ = rand.Read(b) // ignore the error here. Failure to read random data doesn't break anything
  	randPos := int(b[0]) % (len(supported) + 1)
  	greased := make([]VersionNumber, len(supported)+1)
  	copy(greased, supported[:randPos])
  	greased[randPos] = generateReservedVersion()
  	copy(greased[randPos+1:], supported[randPos:])
  	return greased
  }
docs: // GetGreasedVersions adds one reserved version number to a slice of version numbers, at a random position