In addition to hard session requirements, add "scored" predicates that can prefer one session over another. Broken out from #28.