A
NULL is OK, both for passing and for returning.
N
NULL may be passed as the value in, out, in-out; or as a return value.
O
Parameter for returning results. Default is transfer full.
T
The caller owns the data, and is responsible for free it.
The data is owned by the callee, which is responsible of freeing it.