The pubspec file specifies dependencies
that the project requires, such as particular packages
(and their versions), fonts, or image files.
It also specifies other requirements, such as 
dependencies on developer packages (like
testing or mocking packages), or particular
constraints on the version of the Flutter SDK.

Fields common to both Dart and Flutter projects
are described in the pubspec file on dart.dev.
This page lists Flutter-specific fields
that are only valid for a Flutter project.

Note:
  The first time you build your project, it
  creates a pubspec.lock file that contains
  specific versions of the included packages.
  This ensures that you get the same version
  the next time the project is built.

When you create a new project with the
flutter create command (or by using the
equivalent button in your IDE), it creates
a pubspec for a basic Flutter app.

Here is an example of a Flutter project pubspec file.
The Flutter only fields are highlighted.