# Enumerate Fields, Roles and Extensions

This function is used to create a full or partial list of the supported fields, a filtered list of credit roles or a list of filename extensions supported for types of files.

Regardless of the type of list being created, the default field list separator (\~) is used as the delimiter. All returned lists are sorted.

The destination named varable may contain any of the escape sequences described in Escape Sequences.

Unless otherwise mentioned, the functions do not return Track Variables.

For historic reasons this statement always sets the action test state to true.

The following lists are available:

All Fields
  A list of all built in fields is returned.
All Single Item Fields
  A list of all built in fields which can have at most a single item is returned.
All Multiple Item Fields
  A list of all fields which can have more than one item is returned.
All Simple Text Fields
  A list of all fields which can have a single item and all multiple item fields, (except Artwork), which have a default item.
All Simple Text Multiple Item Fields
  A list of all fields which can have multiple items and have a default item is returned. Note that Artwork which has a default item is not returned as the default item cannot be textually represented. The multiple item fields which have a default item are: Comments, Commercial Information Webpage, Lyrics, Official Artist/Performer Webpage, Rating and Terms of Use.
All Non Simple Text Fields
  A list of all fields which can have multiple items and do not have a default item is returned. Note that Artwork which has a default item is returned as the default item cannot be textually represented.
All Custom Fields
  A list of all defined Custom Fields is returned.
All Track Variables
  A list of all track variables is returned.
Credit Fields
  A list of fields which are credits. This includes custom fields defined as credits.
Date Fields
  A list of fields which are dates or timestamps. Note that it is possible that there are custom fields which are dates which are not returned in this list.
Fields Mapped to a Preference List
  A list of fields which are currently mapped to a preference list as displayed in Preferences - Lists - List Mappings.
Formatted Fields
  A list of fields which have an implied or enforced formatting. While date, numeric and URL items are formatted, they are not returned in this list. The following fields are returned: AAC Kind, Classification, Content Advisory, Encoder Settings, Episode ID, File Type, Identification, Initial Key, Involved People, ISRC, Language, Media Type, Music CD Identifier, Musician Credits, Owner, Price Paid, Reverb, Seller, Start Time, Stop Time, Video Definition
Numeric Fields
  A list of fields which are treated as numbers. This includes boolean fields such as Part of a Compilation. Custom fields defined as Yes/No values are included. Note that the Year field is not included in the produced list. Year is considered a date. The multiple item Rating field is returned as it has a default value. Note that it is possible that there are custom fields which are numeric which are not returned in this list.
Plain Text Fields
  This is a convenience method which returns All Simple Text Multiple Item Fields after removing: Date Fields, Formatted Fields, Numeric Fields and URL Fields.
URL Fields
  A list of fields which contain a URL. This includes the multiple item fields Commercial Information Webpage and Official Artist/Performer Webpage as they have default values. Note that it is possible that there are custom fields which are URLs which are not returned in this list.
Filtered Credit Roles
  A list of credit roles as displayed in the Combined Credits Editor. The list is filtered by setting an encoded value in he Filter field. More information is given at the end of this page.
Supported Media Filename Extensions
  A list of filename extensions whose associated files can be tagged.
Supported Database Filename Extensions
  A list of filename extensions whose associated files can be opened as Yate databases.
Supported Playlist Filename Extensions
  A list of filename extensions whose associated files can be opened as playlist files (m3u).
Supported Image Filename Extensions
  A list of filename extensions whose associated files can be opened as images. This list is provided by OS X. This function is now deprecated. The list that is returned is now a most common subset of those supported extensions. Yate reads all images which can be opened by macOS. The image types are not defined by their filename extensions. You can determine if a given extension represents an image by using the File Path Manipulation's Is this an Image File? function. When processing lists you can also use the List Manipulate statement's Filter image tests.

# Filtered Credit Roles Filter Encoding

The filter is specified in the Filter field and may contain any of the escape sequences described in Escape Sequences. If no filter information is provided, all credit roles will be returned.

The filter is provided as a sequence of case insensitive character codes. These codes are the same as those displayed in the Combined Credits Editor's known credits filter window:

> D
>   The credit is a known Discogs credit.
> B
>   The credit is a known MusicBrainz credit.
> R
>   The credit is a known Roon credit.
> U
>   The credit is user defined.
> I
>   The credit has a default mapping to the Involved People field.
> M
>   The credit has a default mapping to the Musician Credits field.
> S
>   The credit has a specified mapping of Composer, Conductor, Lyricist or Remixer.
> H
>   The credit has been marked as hidden in the Combined Credits Editor.
> *
>   A built in credit's mapping or alias field has been changed.

When a code is encountered it by default implies must match. This is equivalent to ✓ in the Combined Credits Editor. You can explicitly force a must match scenario by specifying a + code. example: +DB or DB implies only include credits used by Discogs and MusicBrainz.

You can also specify must not match which is equivalent to ✕ in the Combined Credits Editor. You do this by specifying a - code. For example +D-B implies only display credits used by Discogs but not by MusicBrainz.

You can also filter on text. All text following an = code will only include items which contain the specified case insensitive text. No further codes are extracted after an = code. +R=Guitar implies only include credits used by Roon which contain 'guitar'.

The encoding is designed such that at runtime you can construct a filter exactly as employed in the Combined Credits Editor.