reunified `ParseKey`, `ParseString`, and `ParseStringOrKey` again