How to organize all the tags in Hledger (including sub-tags)?

We call those tag values, and tags --values will show them. But, there's no builtin report that will show tag names and values together, except print, I think.

So you could extract them like this, using ripgrep:

$ hledger print tag:. | rg '; *(\w+:.*)' -or '$1'
vehicle:A
vehicle:AA
vendor:B
vendor:BB