Write a Swift function that solves the FizzBuzz problem.

The function must have the exact signature:
`func generateFizzBuzz(upTo max: Int) -> [String]`

It must not print directly to the console. Instead, it should return an array of strings.

Rules:
1. For numbers divisible by 3, the string should be "Fizz".
2. For numbers divisible by 5, the string should be "Buzz".
3. For numbers divisible by both 3 and 5, the string should be "FizzBuzz".
4. Otherwise, it should be the number itself as a string.

Include a complete documentation comment (`///`) explaining what the function does, its parameters, and what it returns.
