I would say, the operating system on which you're running may have certain limitations and the index knows about those so that it may accurately interpret data that comes from the filesystem. For example, if you have loaded a tree into the index that contains a symlink and the operating system doesn't support symlinks, then if you call `git_index_add_bypath` and the file on disk doesn't look like the symlink, the index will try to be intelligent about preserving the "symlink-ness" of the existing entry.

That said, this capabilities stuff is mostly unimportant for the vast majority of index users. I would leave it off for this documentation altogether. If the user is curious about these properties, the right thing is probably to be looking at the `core.ignorecase` or `core.filemode` or `core.symlinks` config settings for the repo, not at the index caps.