Callback functions arguments

Hi, I’m trying to learn how to develop scripts in lua. I have a question with the arguments that are passed in callback functions like this(it’s just an example):

RegisterCommand("ping", function(source, args, rawCommand)
    if (source > 0) then
        TriggerClientEvent("chat:addMessage", -1, {
            args = {
                GetPlayerName(source),
                "PONG!"
            },
            color = { 5, 255, 255 }
        })
    else
        print("This command was executed by the server console, RCON client, or a resource.")
    end
end, false)

what source, args and rawCommand are?

I’m sorry for my bad English if it’s caused any confusion

Well source is the player who sent it, args is an array of additional data.
You access arrays like this: args[x] instead of x you put a number.
So if you’re wrting /ping ding dong
Your args would be ding and dong.
args[1] = ding, args[2] = dong. (I’m not sure if the command itself is within the args, so correct me if I’m wrong)

And rawCommand, I honestly never used that, but I guess it’s the command /ping.

Thank you, your help was very helpful.