OK. Jacute, jacute and IJacute, ijacute are not needed.
In order to support Dutch, make sure your font contains:
J
j
jdotless
acutecomb
IJ
ij
Technically, you do not needed IJ and ij either. However, there are some Dutch users who expect it in the glyph picker. So just add those two, and build them automatically.
Consider acutecomb.case too.
Then, update your features, and it should automatically add an automatic ccmp. It will look something like this:
lookup ccmp_DFLT_1 {
@CombiningTopAccents = [acutecomb brevecomb circumflexcomb dieresiscomb dotaccentcomb gravecomb hookabovecomb ringcomb tildecomb];
lookupflag UseMarkFilteringSet @CombiningTopAccents;
sub i' @CombiningTopAccents by idotless;
sub j' @CombiningTopAccents by jdotless;
} ccmp_DFLT_1;
What it does: the j loses its dot before combining accents. Leave it like it is. Now add a manual ccmp and drag it right before the automatic ccmp. In the manual ccmp, you write:
lookup ccmp_DUTCH {
sub IJ by I J;
sub ij by i j;
};
script latn;
lookup ccmp_DUTCH;
Just before automatic features that do anything with I, J, i or j, repeat another manual version of that feature before the automatic one and add this code in it:
lookup ccmp_DUTCH;
That way, you do not need ij.sc etc.
Now, the Dutch keyboard lets you type the j with an acute, and what it produces is the following character sequence:
U+006A LATIN SMALL LETTER J
U+0301 COMBINING ACUTE ACCENT
This will use mark mark-to-base positioning for building your j with an acute. With the ccmp and the anchors inside jdotless and acutecomb, your font is ready for that. That’s it. HTH.