`string|null` instead of `mixed`, so we know each possible return type.