Acknowledgements
To store puzzles, I used the Puz-Pre v3 format from by pzprjs, available under the MIT license.
Nonogram test puzzles were generated by a gacha written by 3892myamya.
Special thanks to KrazyDad, who agreed to usage of their puzzles in this course. The Skyscraper test puzzles were drawn from his site, and converted the Puz-Pre v3 format with permission.