Most solutions to Advent of Code found on the Internet consist of procedural spaghetti code that is not very readable, let alone maintainable.
I therefore took the trouble to implement each task in a truly object-oriented and test-driven way, resulting in a solution made of small, comprehensible objects interacting with each other.
For explanations of my solutions, see my Advent of Code 2022 Solutions article.
This project uses Java 19 features, including preview features, so most classes must be compiled and run with Java 19 and the --enable-preview
flag.