Great work, can never go wrong with some nonograms hehe. Thought I would just let you that I ran into a crash when I finished one of the puzzles. I assume I just finished the last one in the demo and that's why it happened.
puzzles.lua:159: attempt to index a null value (field '?')
stack traceback:
puzzles.lua:159: in function 'initalisePuzzle'
main.lua:116: in function 'puzzleSolved'
main.lua:145: in function <main.lua:123>