A slightly different question is when I categorize as /tax/a/b/c then suppose uncategorize as /tax/a/b. What's the meaning of that? Should I say, it's not categorized as /tax/a/b so you can't do that? Or instead, do I say it's now categorized as just /tax/a?
Made a decision on these API design questions, then had a discussion with Andrew to ensure his intuitions matched mine for the API design. Decided thusly:
Item will only store the specific category, and will just emit the others where needed in a view. You will only see the specific category that was used when you retrieve the item.
You can only uncategorize a specific category that has been used on the item, not a parent.
You can't categorize a parent of a child that's already been categorized.