in reply to How do you name the possibilities?

The problem that I'm having is that the example you use has some implications that a more generic inventory system won't have.

For this example, it's easy to reduce name size by assuming 'Plain, not Toasted, no Cheese' as the default, and then only identify the necessary additions:

Plain - Plain, non-toasted, no cheese Cheese - Plain, non-toasted, cheese Lt - Plain, Lightly-toasted, no cheese CheeseLt - Plain, Lightly-toasted, cheese Dk - Plain, Darkly-toasted, no cheese CheeseDk - Plain, Darkly-toasted, cheese Seeds - Seeds, non-toasted, no cheese SeedsCheese - Seeds, non-toasted, cheese SeedsLt - Seeds, Lightly-toasted, no cheese SeedsCheeseLt - Seeds, Lightly-toasted, cheese SeedsDk - Seeds, Darkly-toasted, no cheese SeedsCheeseDk - Seeds, Darkly-toasted, cheese
You could probably even subsitute 'Ch' for 'Cheese', and make it even smaller...

In a larger, more generic system, this probably won't work, because there's not a 'default' build that is standard to the whole.

Trek