Function definition format for function calling

I am having trouble understanding how to write definition of a function while passing them as tools in Chat Completion. I have a complex function which has a list of string as a parameter that I want to invoke via function calling. The examples mentioned here are very rudimentary. Please help me understand how to write function definitions while passing them to the model.

The json/typescript equivalent of a list is an array.

Where a weather example might have a “string” as a property to output the city, you would specify “array”. Then the function description, function and property names, and array property description must all be complete enough to know what kind of items the AI is to include and when the function would be of utility to satisfy a user question.