Los dos motores hablan Lua y todas las API de alrededor hablan JSON. Convertir a mano es de donde salen los errores: Lua no tiene null, sus arrays empiezan en 1, y una clave que no es un identificador necesita corchetes.
Si lo dejas vacío, la tabla se devuelve en lugar de asignarse.
Desactivado los quita. Un nil dentro de un array de Lua termina el array, así que mantenerlo casi nunca es lo que quieres.