関数に「名前付きで」引数を渡したい場合は、単純にテーブルの形にします。
function my_func( param ) { local key1 = assert( param.key1 ) -- key1は必須のパラメータ local key2 = param.key2 -- key2はあってもなくても良いパラメータ } my_func { key2=10, key1=30 } -- テーブルを渡せばOK。キータイプは順不同で渡せるメリットがある。