Option index as JSON 

A manual that documents options with .. confval:: is rendered with a confvals.json beside its toc.json: every option, with what the directive says about it, where it stands, and the first paragraph of its description.

It lets a reader find an option by its name without reading the pages that document it -- ninety of them for the TCA reference -- and pick the right one when several share a name. objects.inv.json lists the same options, but by name and address alone: the TCA reference documents itemsProcFunc eight times, once for each field type that has it, and there all eight are called itemsProcFunc and nothing more.

{
  "project": {
    "title": "TCA Reference",
    "version": "main",
    "permalink": "https://docs.typo3.org/permalink/t3tca:{anchor}@main"
  },
  "confvals": {
    "confval-select-checkbox-itemsprocfunc": {
      "name": "itemsProcFunc",
      "searchFacet": "TCA",
      "context": [
        "Field types (config > type)",
        "Select fields",
        "selectCheckBox",
        "Properties of the TCA column type select with renderType selectCheckBox"
      ],
      "type": "string (class->method reference)",
      "fields": {
        "Path": "$GLOBALS['TCA'][$table]['columns'][$field]['config']",
        "Scope": "Display / Proc."
      },
      "summary": "PHP method which is called to fill or manipulate the items array. See itemsProcFunc about details.",
      "path": "ColumnsConfig/Type/Select/CheckBox/Index"
    }
  }
}
Copied!

The project is described the way toc.json describes it. Each option is keyed by its anchor, which the permalink there resolves, and says:

name
The name of the option, as the directive writes it.
searchFacet
What kind of option it is, as the search of docs.typo3.org files it: the option's own :searchFacet: , or else the manual's confval-default. The list of facets is the same for every manual, such as TCA, TypoScript or TYPO3_CONF_VAR, so options of one kind can be found across manuals. Any other value is Option.
context
The titles above the option: the pages above its page in the table of contents, the sections of its page, and the options it is nested in. The start page is left out, since it is the manual. This is what tells apart options of the same name.
parent
The key of the option this one is nested in. Left out for an option that stands on its own.
type, default, required
The directive's own fields, as plain text. Left out where the directive does not give them; required is only ever true.
fields
Every other field of the directive, by the name the manual gives it and as plain text, except those the search reads and those listed under versions. The names are the manual's own and differ between manuals: the TCA reference writes Path and Scope.
versions
When the option was added, changed, deprecated or removed, as its :added: , :changed: , :deprecated: and :removed: options state it: each with its kind, the version, and the changelog entry and its url where the option names one, such as :removed: 14.0 breaking-106863-1749629371 . Left out for an option that states none. A version directive in the description is text and is not read.
summary
The first paragraph of the option's own description, as plain text. Left out for an option that has none, such as one that only holds the options nested in it.
path
The page that documents the option, relative to this file and without an extension, as in toc.json.

An option with :noindex: is left out, as it is from objects.inv.json. A manual without options writes no confvals.json.

For the TCA reference the file is about 530 KB with 757 options, for the TypoScript reference about 580 KB with 1107.