\NeedsTeXFormat{LaTeX2e}
\RequirePackage{ l3keys2e, xparse }
\ExplSyntaxOn%  wegen \tl_ ..., sonst automatisch mit \ProvidesExplPackage
\tl_new:N  \l_keydemo_version \tl_set:Nn \l_keydemo_version{0.01}
\ProvidesExplPackage {l3keysdemo} {2013/08/20}
                     {\l_keydemo_version} {2013/08/20 Key/Value Demo}
\msg_set:nnn { keydemo } { version } { Version \l_keydemo_version }
\bool_new:N \g_keydemo_tf_bool
\bool_set_true:N \g_keydemo_tf_bool           %  Vorgabe ist true
\bool_new:N \l_keydemo_printversion_bool
\bool_set_false:N \l_keydemo_printversion_bool%  Vorgabe ist false

\keys_define:nn {keydemo}{%                      Paketoptionen
  tf .bool_set:N = \g_keydemo_tf_bool,%          global definiert
  tf .default:n  = false,%                       für tf ohne ANgabe
  version .code:n  = % TerminalAusgabe und im Dokument
    { \msg_warning:nn {keydemo} {version}
      \bool_set_true:N \l_keydemo_printversion_bool
    }}
\ProcessKeysOptions{keydemo}
\NewDocumentCommand\Test{}{ \bool_if:NTF \g_keydemo_tf_bool{wahr}{falsch} }
\AtBeginDocument { Das~Paket~hat~die~Version~
    \bool_if:NT \l_keydemo_printversion_bool { \l_keydemo_version } \par}
