Introdices convertObject function that implements the visitor pattern and uses it to implement sanitizeInput. It will used in the later diffs for implementing the id conversion function.
sanitizeInput should still redact passwords where it previously redacted them but it will now redact them in more places, e.g. lists, non-string optionals. Previously added tests succeed, and I have also added tests fot the new cases.
From the screenshot, this looks like too much text in a row. We could try separating out the third sentence into its own paragraph. We could also try showing the three sentences as three bullet points. @ted, any thoughts?