+\prg_new_conditional:Nnn \ltj_fontspec_if_liiikeys: {TF,F} {
+ \@ifpackagelater {fontspec} {2011/09/13}
+ { \prg_return_true: } % fontspec >= 2.2 (l3keys)
+ { \prg_return_false: } % fontspec < 2.2 (xkeyval)
+}
+
+\cs_new:Nn \ltj_fontspec_define_option:nn {
+ \ltj_fontspec_if_liiikeys:TF {
+ \keys_define:nn {fontspec} { #1 .code:n = {#2}}
+ } {
+ \define@key[zf]{options}{#1}{#2}
+ }
+}
+
+\cs_new:Nn \ltj_fontspec_define_preparse_external:nn {
+ \ltj_fontspec_if_liiikeys:TF {
+ \keys_define:nn {fontspec-preparse-external} { #1 .code:n = {#2}}
+ } {
+ \define@key[zf]{preparse-external}{#1}{#2}
+ }
+}
+