+\ExplSyntaxOn
+\cs_new:Nn \__my_ltjpreset_kana_color: {FF00FF}
+\cs_new:Nn \__my_ltjpreset_kana_range: {"30A0-"30AF}
+\cs_new:Nn \ltjpreset_define_family_hook_nfssonly:nnn
+{
+ \__ltjpreset_declare_font_shape:nnnnnnn { JY3 }
+ { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { nk }
+ { "#3" : jfm=\tl_use:N \__ltjpreset_use_jfm_yoko_tl }
+ { script=hani \bool_if:NT \g__ltjpreset_expert_bool { ;+hkna }
+ ; color=\__my_ltjpreset_kana_color: }
+ { \Cjascale }
+ \DeclareAlternateKanjiFont
+ { JY3 } { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { n }
+ { JY3 } { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { nk }
+ { \__my_ltjpreset_kana_range: }
+ \__ltjpreset_declare_font_shape:nnnnnnn { JT3 }
+ { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { nk }
+ { "#3" : jfm=\tl_use:N \__ltjpreset_use_jfm_tate_tl }
+ { script=hani \bool_if:NT \g__ltjpreset_expert_bool { ;+vkna }
+ ; color=\__my_ltjpreset_kana_color: }
+ { \Cjascale }
+ \DeclareAlternateKanjiFont
+ { JT3 } { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { n }
+ { JT3 } { ltjp #1 \int_to_arabic:n { \g__ltjpreset_applycount_int }} { #2 } { nk }
+ { \__my_ltjpreset_kana_range: }
+}
+\cs_new:Nn \ltjpreset_define_family_hook_fontspec:nnn {
+ AltFont={ { Range=\__my_ltjpreset_kana_range:, Color=\__my_ltjpreset_kana_color: } }
+}
+\ExplSyntaxOff
+\ltjnewpreset{mc}{} % error
+\ltjnewpreset{kozuka-pro}{} % error
+
+\ltjnewpreset{hoge}{ms}
+\ltjnewpreset{hoge}{} % error
+\ltjnewpreset*{hoge}{
+ kozuka-pr6n,
+ mc=SourceHanSerif-Regular,
+ mc-l=SourceHanSerif-Bold,
+ mc-m=KozMinPr6N-Regular,
+ mg-m=KozMinPr6N-Light,
+}