Now, the obvious answer to me, if everything were closed-ended, would be
either (1) to have a bitmap (or more likely byte-map) field in the starch
and vegetable fields, with one element for every protein, indicating
compatibility, or (2) to have two bitmaps in the protein file, indicating
the compatible starches and vegetables. The problem with this is that it's
inherently closed-ended, and even if some expansion space were built into
the bitmaps, it would be necessary to change the structure if that expansion
space were exceeded.