A practical introduction to constraint programming using CP-SAT and Python (pganalyze.com)