One form value: a plain field string, or a FormFile.
The discriminator is typeof value === 'string' — the same test the web
standard's entry values answer to. Narrowing on it is a security decision
wherever a value is consumed as text: a client chooses whether a part
carries a filename freely.
string | FormFile