<?xml version="1.0" encoding="UTF-8"?>

<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">

    <!--        *    -->
    <!-- \... [...]  -->
    <!--             -->
    <!-- * DIMENSION -->

    <cd:define name="keyword-dimension">
        <cd:keywords>
            <cd:constant type="cd:dimension"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dimension-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:dimension"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dimension-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:dimension"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dimension-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:dimension"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * NUMBER   -->

    <cd:define name="keyword-number">
        <cd:keywords>
            <cd:constant type="cd:number"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-number-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:number"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-number-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:number"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-number-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:number"/>
        </cd:keywords>
    </cd:define>

    <!--        *    -->
    <!-- \... [...]  -->
    <!--             -->
    <!-- * REFERENCE -->

    <cd:define name="keyword-reference">
        <cd:keywords>
            <cd:constant type="cd:reference"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-reference-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:reference"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-reference-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:reference"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-reference-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:reference"/>
        </cd:keywords>
    </cd:define>

    <!--        *     -->
    <!-- \... [...]   -->
    <!--              -->
    <!-- * IDENTIFIER -->

    <cd:define name="keyword-name">
        <cd:keywords>
            <cd:constant type="cd:name"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-name-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:name"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-name-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:name"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-name-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:name"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * SECTION  -->

    <cd:define name="keyword-section">
        <cd:keywords>
            <cd:constant type="cd:section"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-section-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:section"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-section-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:section"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-section-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:section"/>
        </cd:keywords>
    </cd:define>

    <!--        *    -->
    <!-- \... [...]  -->
    <!--             -->
    <!-- * LANGUAGE  -->

    <cd:define name="keyword-language">
        <cd:keywords>
            <cd:constant type="cd:language"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-language-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:language"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-language-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:language"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-language-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:language"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * LIST     -->

    <cd:define name="keyword-list">
        <cd:keywords>
            <cd:constant type="cd:list"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-list-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:list"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-list-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:list"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-list-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:list"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * MARK     -->

    <cd:define name="keyword-mark">
        <cd:keywords>
            <cd:constant type="cd:mark"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-mark-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:mark"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-mark-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:mark"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-mark-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:mark"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * SINGULAR -->

    <cd:define name="keyword-singular">
        <cd:keywords>
            <cd:constant type="cd:singular"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-singular-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:singular"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-singular-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:singular"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-singular-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:singular"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * PLURAL   -->

    <cd:define name="keyword-plural">
        <cd:keywords>
            <cd:constant type="cd:plural"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-plural-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:plural"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-plural-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:plural"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-plural-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:plural"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * COLOR    -->

    <cd:define name="keyword-color">
        <cd:keywords>
            <cd:constant type="cd:color"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-color-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:color"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-color-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:color"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-color-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:color"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * TEXT     -->

    <cd:define name="keyword-text">
        <cd:keywords>
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-text-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-text-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-text-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * COMMAND  -->

    <cd:define name="keyword-command">
        <cd:keywords>
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-command-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-command-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-command-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * BUFFER   -->

    <cd:define name="keyword-buffer">
        <cd:keywords>
            <cd:constant type="cd:buffer"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-buffer-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:buffer"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-buffer-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:buffer"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-buffer-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:buffer"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * CATEGORY -->

    <cd:define name="keyword-category">
        <cd:keywords>
            <cd:constant type="cd:category"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-category-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:category"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-category-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:category"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-category-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:category"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * FILE     -->

    <cd:define name="keyword-file">
        <cd:keywords>
            <cd:constant type="cd:file"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-file-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:file"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-file-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:file"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-file-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:file"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * PATH     -->

    <cd:define name="keyword-path">
        <cd:keywords>
            <cd:constant type="cd:path"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-path-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:path"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-path-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:path"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-path-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:path"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * FONT     -->

    <cd:define name="keyword-font">
        <cd:keywords>
            <cd:constant type="cd:font"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-font-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:font"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-font-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:font"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-font-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:font"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * CSNAME   -->

    <cd:define name="keyword-csname">
        <cd:keywords>
            <cd:constant type="cd:csname"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-csname-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:csname"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-csname-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:csname"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-csname-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:csname"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * DUMMY    -->

    <cd:define name="keyword-dummy">
        <cd:keywords>
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dummy-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dummy-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-dummy-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:text"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * KEY      -->

    <cd:define name="keyword-key">
        <cd:keywords>
            <cd:constant type="cd:key"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-key-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:key"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-key-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:key"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-key-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:key"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * URL      -->

    <cd:define name="keyword-url">
        <cd:keywords>
            <cd:constant type="cd:url"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-url-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:url"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-url-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:url"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-url-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:url"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * TEMPLATE -->

    <cd:define name="keyword-template">
        <cd:keywords>
            <cd:constant type="cd:template"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-template-optional">
        <cd:keywords optional="yes">
            <cd:constant type="cd:template"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-template-list">
        <cd:keywords list="yes">
            <cd:constant type="cd:template"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-template-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:constant type="cd:template"/>
        </cd:keywords>
    </cd:define>

    <!--        *        -->
    <!-- \... [...]      -->
    <!--                 -->
    <!-- * FLOATLOCATION -->

    <cd:define name="keyword-floatlocation-list">
        <cd:keywords list="yes">
            <cd:resolve name="value-floatlocation"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-floatlocation-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:resolve name="value-floatlocation"/>
        </cd:keywords>
    </cd:define>

    <!--        *        -->
    <!-- \... [...]      -->
    <!--                 -->
    <!-- * LAYOUTELEMENT -->

    <cd:define name="keyword-layoutelement">
        <cd:keywords>
            <cd:constant type="date"/>
            <cd:constant type="pagenumber"/>
            <cd:constant type="cd:mark"/>
            <cd:constant type="cd:text"/>
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-layoutelement-optional">
        <cd:keywords optional="yes">
            <cd:constant type="date"/>
            <cd:constant type="pagenumber"/>
            <cd:constant type="cd:mark"/>
            <cd:constant type="cd:text"/>
            <cd:constant type="cd:command"/>
        </cd:keywords>
    </cd:define>

    <!--        *         -->
    <!-- \... [...]       -->
    <!--                  -->
    <!-- * BTXALTERNATIVE -->

    <cd:define name="keyword-btxalternative">
        <cd:keywords>
            <cd:resolve name="value-btxalternative"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-btxalternative-optional">
        <cd:keywords optional="yes">
            <cd:resolve name="value-btxalternative"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * FORMULA  -->

    <cd:define name="keyword-formula-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:resolve name="value-formula"/>
        </cd:keywords>
    </cd:define>

    <!--        *           -->
    <!-- \... [...]         -->
    <!--                    -->
    <!-- * FORMULAREFERENCE -->

    <cd:define name="keyword-formulareference-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:resolve name="value-formulareference"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * SCITE    -->

    <cd:define name="keyword-scite-optional">
        <cd:keywords optional="yes">
            <cd:constant type="none"/>
            <cd:constant type="tex"/>
            <cd:constant type="mkiv"/>
            <cd:constant type="mkvi"/>
            <cd:constant type="mkxi"/>
            <cd:constant type="mkix"/>
            <cd:constant type="mkii"/>
            <cd:constant type="cld"/>
            <cd:constant type="lua"/>
            <cd:constant type="lfg"/>
            <cd:constant type="lus"/>
            <cd:constant type="mp"/>
            <cd:constant type="mkiv"/>
            <cd:constant type="mkii"/>
            <cd:constant type="w"/>
            <cd:constant type="ww"/>
            <cd:constant type="c"/>
            <cd:constant type="h"/>
            <cd:constant type="cpp"/>
            <cd:constant type="hpp"/>
            <cd:constant type="cxx"/>
            <cd:constant type="hxx"/>
            <cd:constant type="xml"/>
            <cd:constant type="lmx"/>
            <cd:constant type="ctx"/>
            <cd:constant type="xsl"/>
            <cd:constant type="xsd"/>
            <cd:constant type="rlx"/>
            <cd:constant type="css"/>
            <cd:constant type="dtd"/>
            <cd:constant type="bib"/>
            <cd:constant type="rme"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * SCRIPT    -->

    <cd:define name="keyword-script">
        <cd:keywords>
            <cd:constant type="hangul"/>
            <cd:constant type="hanzi"/>
            <cd:constant type="nihongo"/>
            <cd:constant type="ethiopic"/>
            <cd:constant type="thai"/>
            <cd:constant type="test"/>
            <cd:constant type="cd:name"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * TRACKER  -->

    <cd:define name="keyword-tracker-list">
        <cd:keywords list="yes">
            <cd:resolve name="value-tracker"/>
        </cd:keywords>
    </cd:define>

    <!--        *    -->
    <!-- \... [...]  -->
    <!--             -->
    <!-- * DIRECTIVE -->

    <cd:define name="keyword-directive-list">
        <cd:keywords list="yes">
            <cd:resolve name="value-directive"/>
        </cd:keywords>
    </cd:define>

    <!--        *   -->
    <!-- \... [...] -->
    <!--            -->
    <!-- * DATE     -->

    <cd:define name="keyword-date-list">
        <cd:keywords list="yes">
            <cd:resolve name="value-date"/>
        </cd:keywords>
    </cd:define>

    <cd:define name="keyword-date-list-optional">
        <cd:keywords list="yes" optional="yes">
            <cd:resolve name="value-date"/>
        </cd:keywords>
    </cd:define>

</cd:interface>
