In an IntegriChain data-processing workflow, generate a predictable sequence of Fibonacci values for a requested number of positions. Write a function that returns the first n Fibonacci numbers in order.
Define the sequence using F(0) = 0, F(1) = 1, and F(k) = F(k - 1) + F(k - 2) for k >= 2.
Implement fibonacci(n), where n is a non-negative integer. Return a Python list containing exactly n integers, beginning with 0. The output must not contain additional values. For n = 0, return an empty list.
Use an iterative approach rather than recomputing earlier values. The function should work for values of n large enough that the resulting Fibonacci numbers exceed typical fixed-width integer ranges, relying on Python's arbitrary-precision integers.
def fibonacci(n):