title: How do configuration flags in pubspec.yaml work?
body: <p>I am learning Flutter and Dart. I noticed that the<code>pubspec.yaml</code> file seems to contain more than just dependency versions for third party libraries. For example.</p>
  
  <pre><code># The following section is specific to Flutter.
  flutter:
    uses-material-design: true
  </code></pre>
  
  <p>I understand that the <a href="https://www.dartlang.org/tools/pub" rel="noreferrer">Dart Pub Tool</a> defines the format for the <code>pubspec.yaml</code> and it seems like frameworks like Flutter can enhance the <code>pubspec.yaml</code> with extra settings raising the following questions:</p>
  
  <ul>
  <li>Is <code>pubspec.yaml</code> designed to be used to provide configuration flags or only dependencies?</li>
  <li>Does the way flutter use <code>pubspec.yaml</code> idiomatic Dart or unique?</li>
  <li>Is <code>pubspec.yaml</code> only parsed by the <code>pub</code> tool or is it parsed at runtime as a generic application config file?</li>
  <li>Does Flutter implement it's own parser for <code>pubspec.yaml</code> and make settings like <code>uses-material-design: true</code> available at runtime? </li>
  </ul>