For validating entire objects: https://github.com/hapijs/joi
It's more overhead than simple functional approaches combined with conditional statements, but I think it's more approachable. Otherwise I find it doesn't leave too much of a margin for error and it's reasonably fast.
It's a personal preference, but I prefer it far more than a fluent interface. I actually avoid those now despite really loving them in the past.
Best I've found is a few libraries supporting JSON Schema.