\RequirePackage{expl3}
\ProvidesExplPackage{emotion}{2024/02/13}{0.2}{LaTeX emoji}

\RequirePackage { fontspec }

\ExplSyntaxOn

% add emotion command
\newfontface \emotionfont: { Twemoji~Mozilla } [ Renderer = Harfbuzz ]

% enable update emoji font
\newcommand{\emotionsetup}[1]{
\renewfontface \emotionfont: {#1} [ Renderer = HarfBuzz]
}

% define emoji with unicode
% 1: id
% 2: unicode value
\newcommand{\emotiondef}[2]{
    \tl_const:cn{l__emotion_ #1}{#2}
}

% import pre-defined emotion
\file_input:n { emotion.def }

\tl_set:Nn \l__emotion_nodef_tl {❓}

\newcommand{\emotion}[1]{
\ifcsname l__emotion_#1\endcsname
    {\emotionfont:{\tl_use:c {l__emotion_ #1}}}
\else
    {\emotionfont:#1}
\fi
}

\ExplSyntaxOff

\endinput