The language defined is a compact line based format which is already in
widespread use

this is the most critical thing for me, and the reason this approach seems more attractive than the path of PEP426, although I'd certainly like to see Nick's reaction.

PEP426 tries to cover how names/specifiers/extras/markers would be put together in abstract "in-memory representation" (that can be serialized to json), but it's left open to pip (and other tools) to lay down a standard (via implementation) for how these pieces are put together and used by users.

this PEP would dictate both, right?  the user way, and the internal metadata way....