I think pointyfar’s link is excellent for many of these requirements.
epogrebnyak:
I was thinking about parsing the repo of themes and making a dataset of theme properties
FWIW, I have something like that, currently with the focus on filtering by tags, Hugo version, license, and github stars, sortable by date updated, stars, and name.