Aug 30 2021
Well, if that's the usual terminology for the scripts in which the content is written (sh-cyrl and sh-latn are the two scripts of the Serbocroatian), then yes, those are to be the "content languages" for sh.wikipedia. The original (my) plan was to implement the same solution as for the sr (the mapping i.e. almost the whole code) and to have a similar two-way automatic transliteration (apart from the guessVariant function). After a bit of persuading from @Aca we concluded that a modified automatic transliteration similar to Tajik would suit better, a one-way transliterator, since the idea was to minimize the use of two scripts and in the long run have one script (Latin) but to have an option to read it in two. Second script (Cyrillic) would be allowed for content but if entered as content it would be gradually replaced by Latin. Actually, since Aca is doing all the necessary footwork for the converter stuff I should unassign this task from myself for him formally to take over.
Aug 28 2021
Yes, and if you put sh-latn with either ijekavsk or ekavsk, it substitutes latn with cyrl in the error message.
Aug 26 2021
Identifier Language Name(s) Status Code Sets Equivalent(s) Scope Language Type Denotations hbs Serbo-Croatian Active 639-3 639-1: sh (deprecated) Macrolanguage Living Ethnologue, Glottolog, Multitree, Wikipedia