PR 58 review (last one): rename score2 to optimisticBound/pessimisticBound + hardcode level sizes in tests (in tests this is fine and even encouraged to make them more readable) + refactor Score.parseScore to Score.valueOf + use exact primitive types (-7L for longs, -7.0 for doubles instead of just -7) to avoid casting surprises