Если бы вы написали API, который вызывается из Lua (который основан на 1, например, индексы таблиц начинаются с 1), примените ли вы то же правило к своему API?
Например, скажем, в вашем API была функция GetFoo (x, y), которая возвращала Foo по координате (x, y). Вы бы начали свои оси координат с (0,0) или (1,1) для API, предполагая, что в самой системе (скажем, написанной на C или C ++, основанной на 0) эти вещи начинаются с (0,0) (поэтому, если вы использовали соглашение Lua, вам всегда нужно будет вычитать 1 при получении чисел для операций такого типа из стека lua).