graph TD;
	package_name --> requirement;
	specifier --> requirement;
	marker --> requirement;
	direct_url --> requirement;
	requirement --> distribution_metadata;
	version --> specifier;
	package_name --> pep621;
	version --> pep621;
	entry_points --> pep621;
	pep621 --> sdist;
	sdist --> wheel;
	wheel_metadata --> wheel;
	wheel_tag --> wheel_filename;
	package_name --> wheel_filename;
	version --> wheel_filename;
	wheel_filename --> wheel;
	package_name --> sdist_filename;
	version --> sdist_filename;
	marker --> wheel_tag;
	wheel_tag --> wheel_metadata;
	pep621 --> wheel_metadata;
	distribution --> installation;
	package_name --> distribution_metadata;
	version --> distribution_metadata;
	distribution_metadata --> dist-info;
	distribution_record --> dist-info;
	entry_points --> dist-info;
	wheel_metadata --> dist-info;
	direct_url --> dist-info;
	dist-info --> distribution;
	resource --> distribution;
	module_path --> distribution;
	distribution --> wheel;
	package_name --> module_path;
	module_path --> entry_points;
	sdist_manifest --> sdist;
	sdist --> sdist_archive;
	sdist_filename --> sdist_archive;
	sdist --> index;
	wheel --> index;
	entry_points --> script;
	requirement --> locator;
	locator --> index;
    (chart.dot is the version for GraphViz. Unfortunately GitHub doesn't support it yet.)
For see the glossary for
- the descriptions of the entities and their capabilities;
 - references to PEPs where they are defined (
https://peps.python.org/pep-<pep_number>/); - references to PyPA documents where they are defined (
https://packaging.python.org/en/latest/specifications/<spec_name>/). 
compact_matrix.tsv shows how well different libs support various entities involved into Python packaging:
- ✅ - mostly implemented
 - ⚠ - somehow implemented
 - ❌ - mostly unimplemented
 - ? - yet to be determined
 
full_matrix.tsv shows the support of subfeatures in tools:
- ✅ - implemented
 - ⚠ - implemented, but so poorly, that one is better to use something else
 - ❌ - unimplemented
 - ? - yet to be determined