Entrambi gli engine parlano Lua e tutte le API intorno parlano JSON. Convertire a mano è da dove arrivano gli errori: Lua non ha null, i suoi array partono da 1, e una chiave che non è un identificatore vuole le parentesi quadre.
Lasciato vuoto, la tabella viene restituita invece che assegnata.
Disattivato li toglie. Un nil dentro un array Lua chiude l'array, quindi tenerlo è raramente quello che vuoi.