make it robust against input json

for example, when engine_args is missing