my problem boils down to this:
what is the difference between a text constraint and an expression constraint, and when to use what?
using this template:
ssrdemo needs to be a text contraint (but not really, i can set it to the fully qualified class name, it still works) while bool and string need to be expression constraints. is it just bad naming, and "expression" means "something that returns or is a value" and text meaning "a constant thing"