cap versions of germandbls as Jeremy describes in option 3
an uppercase class with Germandbls as described this tutorial
a calt feature containing:
lookup uppercaseSharpS {
sub @Uppercase@Uppercase germandbls’ by germandbls.calt;
sub germandbls’ @Uppercase by germandbls.calt;
} uppercaseSharpS;
Still in either InDesign or TextEdit changing case for germandbls results in SS and not the cap version.
Some type designers and font engineers, including me [@mekkablue], find this differentiation between the lowercase .calt variant and the uppercase character superfluous. In practice, it does not seem to matter anymore. So, you can just take sub germandbls by Germandbls; instead, and get away without duplicating the glyph.
And what is best practice to handle the smallcap version of ß? Right now I have a c2sc feature with: sub Germandbls by germandbls.sc;
and an smcp feature with sub germandbls by germandbls.sc;
Even with germandbls.calt removed from the feature I can’t get it to work.
Typing ẞ and then applying All Small Caps in InDesign still gives me SS in small caps.