CHANGE LOG (26.05.2024):
- backward compatibility: NOT COMPATIBLE
- refactored multiple methods for better readability,
- simplified logging, removed redundant code lines,
- changed completely constructors and their arguments,
- changed completely static factory methods and their arguments,
- removed "magic numbers", extracted defaults and validators to a separate classes
This solver was one of my first projects developed at the beginning of my Java learning path. I have decided to refurbish it to some extend but it still holds some technical and style debt, however it is fully functional and does it job perfectly.