I can check what field names and values are using MediaMonkey, Rhythmbox, Exaile, Itunes and foobar.
Imo rating should be from 1 to 255 like in a description of standard. In that case "0" could be the default rating.
About solution to write tags I would prefer 1a) but I think some of users could want to save in a format (for example) of itunes or other player, so we should have a choice.
About other tags it is good idea but (imo) some of them would be useless like sound quality, because most of mp3 are in very good quality.
Maybe something like "description" tag would be better. We could write there if song is acapella, instrumental, slow tempo or fast, on what ocassion it is good to listen.
Itunes tags are: title, artist, album,bpm, comment, composer, date, discnumber(in format x/y), genre, grouping,UNSYNCED LYRICS
VlC tags: title,artist,album,comment,copyright,date,organization,tracknumber
exaile: title, artist, album , discnumber (x/y), genre, tracknumber (x/y).
foobar seems to be reading all possible tags, even those which are not recognized by him. Some of tags are stored as one sparated by ";".
mediamonkey: artist, title, album, date genre, composer,tracknumber, discnumber, comment, band, conductor, content group, copyright, encoding settings, isrc, lyricist, original album, original artist, original release, date, publisher, usynced lyrics, mood.
Quodlibet similar to foobar seems to be reading most of tags but some of them are missing (from mediamonkey).
rhythmbox and DeedBeaf doesnt seem to support tag editing so I cant tell what tags is he reading.