Library for handling collections with requirements and rewards. See https://docs.google.com/a/mesmo.tv/document/d/1bXRTQqaAoONns3jEooKPY83zY0NdnotecHReTxjev0w/edit?usp=sharing