shotwell development or DAM alternative

I was just about to school you in what my idea of collections are, but figure you know that.

Ideally I would have the ability to have the following for collections:

A nested tree structure of collections

Static collections where I can manually drag and drop any image from file system into one or more collections in that tree

Dynamic collections that look at different metadata of images e.g. keyword, rating, capture date (from, to) etc