Base interface for remote package suppliers.
Represents a dependency specification.
Represents a single JSON value.
Represents a fully-qualified package name
Represents a version in semantic version format, or a branch identifier.
A range of versions that are acceptable