The first draft of Flow Spec used bare ISO 639-3 codes to identify languages. This was assumed possible since ISO 639-3 is supposed to contain every human written and spoken language.
However, what the consortium realized in discussions over time is that 639-3 alone doesn't make sense as a "primary key" for languages in flows, because:
It could be common to have multiple "languages" with the same 639-3 code, to support use-cases where organizations might have distinct sets of content ("language variants") for the same 639-3 value. A common example of variants could be "English - India" and "English - East Africa", or "English - Male voice" and "English - Female voice".
There might be rare cases of languages with no 639-3 code.
There is also additional data that might be useful to associate with languages, beyond the ISO 639-3 code; an example is the BCP 47 language+locale, useful often in conjunction with speech recognition and synthesis tools, etc.
The first draft of Flow Spec used bare ISO 639-3 codes to identify languages. This was assumed possible since ISO 639-3 is supposed to contain every human written and spoken language.
However, what the consortium realized in discussions over time is that 639-3 alone doesn't make sense as a "primary key" for languages in flows, because:
There is also additional data that might be useful to associate with languages, beyond the ISO 639-3 code; an example is the BCP 47 language+locale, useful often in conjunction with speech recognition and synthesis tools, etc.
Possible solution:
The language
id
would be a string, but the recommended format for language IDs would be: