This reflects the actual requirements of the core flake-parts
functionality and removes any possible confusion about where lib comes
from (always flake-parts's input) vs where pkgs comes from (always the
flake's nixpkgs input). Flakes which use flake-parts should only ever
have to override its input in the very unlikely event of a bug in lib.
Hopefully lib will be separated into its own flake some day, which
will also make this a much smaller footprint.
With the pre-2.7 `defaultPackage` key, one would write
```
defaultPackage = packages.hello
```
I guess you can do the same in 2.7, but then you have two attrs in packages, which seems like it might confuse tooling:
```
packages.default = packages.hello
```
I wonder if packages.default shouldn't be a string? but then it would need validation...