The Username authenticator is designed to be used together with other authenticators as a first factor. It collects the username, and forwards the authentication decision to an action or another authenticator.
The username itself is not validated in the authenticator. If needed, validation must be done in an action or in the next authenticator.
Do not use the username authenticator standalone. It does not validate credentials.
auto-submit-preferred-user-name - If enabled, the authenticator will automatically use the preferred username that is provided by a login_hint parameter or username cookie.
The source code for the authenticator is available on GitHub. It can make a good starting point new authenticators when needed.