Better error reporting and no refs needed

The path schema can be a plain variable, and is actually reported in
errors now, which are cleaner (no nil components).