I am in the process of writing some validation code based on these assumptions:
I think I am doing the same thing right now. The pattern that applies here is the Filter pattern and the Filter Chain.
Each filter validates against one "way" (as you call them). First for syntax, second for Db lookups etc (from your second bullet).