This compromises the ability to `inputs'?formatter`, but that seems
like a particularly rare use case.
Instead, we treat `inputs'` as another "programmatic" as opposed to
"polished" interfaces, similar to the `config` vs flake attributes
distinction.
The programmatic interfaces always prioritize laziness whereas the
polished interfaces may choose to omit known-missing things, to a
reasonable degree.
... avoid broken attributes in cases where we can predict that
we don't have any.
This is far from ideal, but it's the best we can do.
If it becomes a shit show, flake authors can opt out.
The workaround is no longer needed since Nixpkgs 22.05
(https://github.com/NixOS/nixpkgs/pull/156533).
Declaring options directly in a submodule now works, e.g. `options.flake.foo`.
The function is kept for backwards compatibility but documented as deprecated.
The minimum supported Nixpkgs lib version is already 22.05, so this change
does not drop support for any previously supported version.