全然複雑じゃない
複雑だと思うから複雑なだけであって、実際は第0番目の引数ということでしか無い
引数が色んな値になり得るのは当たり前で、どんな場合にどんな値が来るのかを知らないといけないのも当然
難しく考える必要は一切ない