Awesome; thanks for looking into this!
Nope. The way to do this is to add fields with the same names to the beets.library module. They need entries like this in the Item class definition:
And similarly for the Album class.
This is a little tricky. The way multiple storage styles work in MediaFile is with a “read any, write all” policy. But of course, it doesn’t make sense to “write all” when those values would need to be stored in the same “place.” That is, trying to write all of them would successively clobber the previously-written tag.
However, take a look at the way “suffix” works. When reading tags (cf. StorageStyle.deserialize), we just strip off the suffix if it’s there. Maybe the sensible thing to do would be to allow there to be a list of suffixes, all of which get stripped of if they’re present, rather than using separate StorageStyles for each.
This might also explain the thing you’re seeing where only one thing is being written.