{
  "version": "1.2.0",
  "chapters": [
    {
      "title": "Introducing Josh Goldberg\r",
      "startTime": 0,
      "endTime": 130
    },
    {
      "title": "Why Are There So Many Linters?\r",
      "startTime": 130,
      "endTime": 168
    },
    {
      "title": "Why Do I Need a Linter With TypeScript, Anyway?\r",
      "startTime": 168,
      "endTime": 253
    },
    {
      "title": "Landscape of Linters in 2025\r",
      "startTime": 253,
      "endTime": 416
    },
    {
      "title": "How Does TypeScript Linting Actually Work?\r",
      "startTime": 416,
      "endTime": 495
    },
    {
      "title": "Creating Type-aware Native Speed Linters\r",
      "startTime": 495,
      "endTime": 666
    },
    {
      "title": "What Would the Ideal Linter Look Like?\r",
      "startTime": 666,
      "endTime": 768
    },
    {
      "title": "Where is the Bottleneck in Type-aware Linting?\r",
      "startTime": 768,
      "endTime": 915
    },
    {
      "title": "Are Native Speed Linters the Answer?\r",
      "startTime": 915,
      "endTime": 1263
    },
    {
      "title": "Okay, So Which Linter Should I Use?\r",
      "startTime": 1263,
      "endTime": 1413
    },
    {
      "title": "Are There Some Golden Type-aware Rules to Use?\r",
      "startTime": 1413,
      "endTime": 1484
    },
    {
      "title": "Customizing Your Linting Setup\r",
      "startTime": 1484,
      "endTime": 1625
    },
    {
      "title": "Writing Your Own Custom Lint Rules\r",
      "startTime": 1625,
      "endTime": 1868
    },
    {
      "title": "Josh's Recommended ESLint Plugins\r",
      "startTime": 1868,
      "endTime": 2055
    },
    {
      "title": "Future of Linting with Flint\r",
      "startTime": 2055,
      "endTime": 2197
    },
    {
      "title": "Attend SquiggleConf 2025 in Boston",
      "startTime": 2197,
      "endTime": 0
    }
  ]
}