NULL is OK, both for passing and for returning.
Parameter points to an array of items.
Parameter for input. Default is transfer none.
The data is owned by the callee, which is responsible of freeing it.