In this case, _ is used to express the intent that this variable won’t be used. It’s simply a placeholder name.
This tends to happen when we don’t use the index / key when doing an iteration.
This one is a bit different. Metamethods start with two underscore because they are special. By doing so, developers can avoid potential name collisions, and we don’t restrict the use of keys like index or _index.