index.html is the only required template

A block theme needs style.css, templates/index.html and nothing else, which makes the minimum viable theme three files.

theme/
  style.css       /* Theme Name: Minimal */
  theme.json      { "version": 2 }
  templates/
    index.html    <!-- wp:post-content /-->

# and WordPress fills in the rest: every template type
# falls back to index.html, and the site editor offers to
# create the others from it.

The fallback to index.html is total rather than partial, so a theme with only that file renders every page type through it — which is genuinely usable for a simple site and is a much lower floor than a classic theme ever had. It also means a missing template is invisible rather than an error, and a page rendering the wrong layout is the symptom.