When I said "all good" re my font, I was talking in terms of it actually compiling.
Glyph substitution, however, is another matter.
I had a sample word ending in the letters "NATION".
When I view the OT representation of the word, the "AT" [A_T] glyph substitution is picked up, instead of what I want, which is the T_I_O_N glyph.
Here are the contents of the substitution . . .
feature liga { # Standard Ligatures
# Latin
sub A T A by A_T_A;
sub A T E by A_T_E;
sub A T H by A_T_H;
sub A T R by A_T_R;
sub A A by A_A;
sub A C by A_C;
sub A D by A_D;
sub A E by A_E;
sub A F by A_F;
sub A G by A_G;
sub A H by A_H;
sub A I by A_I;
sub A K by A_K;
sub A N by A_N;
sub A O by A_O;
sub A R by A_R;
sub A S by A_S;
sub A T by A_T;
sub A U by A_U;
sub A V by A_V;
sub A W by A_W;
sub A X by A_X;
sub A Y by A_Y;
sub A Z by A_Z;
sub C A by C_A;
sub C C by C_C;
sub C D by C_D;
sub C E by C_E;
sub C F by C_F;
sub C G by C_G;
sub C H by C_H;
sub C I by C_I;
sub C K by C_K;
sub C L by C_L;
sub C M by C_M;
sub C N by C_N;
sub C O by C_O;
sub C R by C_R;
sub C S by C_S;
sub C T by C_T;
sub C U by C_U;
sub C V by C_V;
sub C W by C_W;
sub C X by C_X;
sub C Y by C_Y;
sub C Z by C_Z;
sub E T A by E_T_E;
sub E T H by E_T_H;
sub E T R by E_T_R;
sub E A by E_A;
sub E C by E_C;
sub E D by E_D;
sub E E by E_E;
sub E F by E_F;
sub E G by E_G;
sub E H by E_H;
sub E I by E_I;
sub E K by E_K;
sub E L by E_L;
sub E N by E_N;
sub E O by E_O;
sub E R by E_R;
sub E S by E_S;
sub E T by E_T;
sub E U by E_U;
sub E V by E_V;
sub E W by E_W;
sub E X by E_X;
sub E Y by E_Y;
sub E Z by E_Z;
sub F A by F_A;
sub F C by F_C;
sub F D by F_D;
sub F E by F_E;
sub F F by F_F;
sub F G by F_G;
sub F H by F_H;
sub F I by F_I;
sub F K by F_K;
sub F L by F_L;
sub F N by F_N;
sub F O by F_O;
sub F R by F_R;
sub F S by F_S;
sub F T by F_T;
sub F U by F_U;
sub F V by F_V;
sub F W by F_W;
sub F X by F_X;
sub F Y by F_Y;
sub F Z by F_Z;
sub G H T by G_H_T;
sub G T H by G_T_H;
sub I T A by I_T_A;
sub I T E by I_T_E;
sub I T H by I_T_H;
sub I T R by I_T_R;
sub I T Y by I_T_Y;
sub K A by K_A;
sub K C by K_C;
sub K D by K_D;
sub K E by K_E;
sub K F by K_F;
sub K G by K_G;
sub K H by K_H;
sub K I by K_I;
sub K K by K_K;
sub K L by K_L;
sub K N by K_N;
sub K O by K_O;
sub K R by K_R;
sub K S by K_S;
sub K T by K_T;
sub K U by K_U;
sub K V by K_V;
sub K W by K_W;
sub K X by K_X;
sub K Y by K_Y;
sub K Z by K_Z;
sub L T H by L_T_H;
sub L A by L_A;
sub L C by L_C;
sub L D by L_D;
sub L E by L_E;
sub L F by L_F;
sub L G by L_G;
sub L H by L_H;
sub L I by L_I;
sub L K by L_K;
sub L L by L_L;
sub L N by L_N;
sub L O by L_O;
sub L R by L_R;
sub L S by L_S;
sub L T by L_T;
sub L U by L_U;
sub L V by L_V;
sub L W by L_W;
sub L X by L_X;
sub L Y by L_Y;
sub L Z by L_Z;
sub O T A by O_T_A;
sub O T E by O_T_E;
sub O T H by O_T_H;
sub O T R by O_T_R;
sub R T A by R_T_A;
sub R T E by R_T_E;
sub R T R by R_T_R;
sub R A by R_A;
sub R C by R_C;
sub R D by R_D;
sub R E by R_E;
sub R F by R_F;
sub R G by R_G;
sub R H by R_H;
sub R I by R_I;
sub R K by R_K;
sub R N by R_N;
sub R O by R_O;
sub R R by R_R;
sub R S by R_S;
sub R T by R_T;
sub R U by R_U;
sub R V by R_V;
sub R W by R_W;
sub R X by R_X;
sub R Y by R_Y;
sub R Z by R_Z;
sub S T A by S_T_A;
sub S T E by S_T_E;
sub S T H by S_T_H;
sub S T I by S_T_I;
sub S T O by S_T_O;
sub S T R by S_T_R;
sub S T U by S_T_U;
sub S T Y by S_T_Y;
sub T A by T_A;
sub T C by T_C;
sub T D by T_D;
sub T E by T_E;
sub T F by T_F;
sub T G by T_G;
sub T H by T_H;
sub T I by T_I;
sub T K by T_K;
sub T N by T_N;
sub T O by T_O;
sub T R by T_R;
sub T S by T_S;
sub T T by T_T;
sub T U by T_U;
sub T V by T_V;
sub T W by T_W;
sub T X by T_X;
sub T Y by T_Y;
sub T Z by T_Z;
sub U T A by U_T_A;
sub U T E by U_T_E;
sub U T H by U_T_H;
sub U T R by U_T_R;
sub Y T H by Y_T_H;
sub T I O N by T_I_O_N;
sub S I O N by S_I_O_N;
} liga;
I have tried placing "sub T I O N by T_I_O_N;" as the first statement instead of one of the last, but it makes no difference.
*NB* have also tried this with latest 5.2 build and get the same results