anchor.diff:  
   import javax.inject.Inject;
   import javax.transaction.Transactional;
  -import javax.ws.rs.Consumes;
   import javax.ws.rs.GET;
   import javax.ws.rs.POST;
   import javax.ws.rs.Path;
  -import javax.ws.rs.Produces;
  -import javax.ws.rs.core.MediaType;
   
   import io.quarkus.panache.common.Sort;
   import org.acme.optaplanner.domain.Lesson;
  
positive.code: 
  [source,properties]
  ----
  # The solver runs only for 5 seconds to avoid a HTTP timeout in this simple implementation.
  # It's recommended to run for at least 5 minutes ("5m") otherwise.
  quarkus.optaplanner.solver.termination.spent-limit=5s
  
  # Effectively disable this termination in favor of the best-score-limit
  %test.quarkus.optaplanner.solver.termination.spent-limit=1h
  %test.quarkus.optaplanner.solver.termination.best-score-limit=0hard/*soft
  ----
  
negative.code: image::optaplanner-time-table-app-screenshot.png[]
  
  Your service will assign `Lesson` instances to `Timeslot` and `Room` instances automatically
  by using AI to adhere to hard and soft scheduling _constraints_, such as the following examples:
  
  * A room can have at most one lesson at the same time.
  * A teacher can teach at most one lesson at the same time.
  * A student can attend at most one lesson at the same time.
  * A teacher prefers to teach all lessons in the same room.
  * A teacher prefers to teach sequential lessons and dislikes gaps between lessons.
  * A student dislikes sequential lessons on the same subject.
  
  Mathematically speaking, school timetabling is an _NP-hard_ problem.
  This means it is difficult to scale.
  Simply brute force iterating through all possible combinations takes millions of years
  for a non-trivial dataset, even on a supercomputer.
  Luckily, AI constraint solvers such as OptaPlanner have advanced algorithms
  