{ "$schema": "../_schema.json", "format": "docx", "element": "level", "elementAliases": ["lvl"], "parent": "abstractNum", "addParent": "/numbering/abstractNum[@id=N]", "operations": { "add": true, "set": true, "get": true, "query": false, "remove": true }, "paths": { "positional": ["/numbering/abstractNum[@id=N]/level[L]"] }, "note": "Single under an . L is the level index (w:ilvl, 0..8). 'add abstractNum' pre-populates 9 default levels (lvl%3 cycle); adding another --type level with the same ilvl replaces it in place. Aliases lvl / level. Top-level abstractNum.* properties also accept level0.* dotted forms for level-0 customization at creation time — this element is for adjusting levels 1..8 or replacing levels post-Add.", "properties": { "ilvl": { "type": "int", "description": "level index 0..8 (w:ilvl). Required on Add.", "add": true, "set": false, "get": true, "examples": ["--prop ilvl=1"], "readback": "integer 0..8", "enforcement": "strict" }, "format": { "type": "string", "description": "numFmt for this level. Common values: decimal, decimalZero, upperRoman, lowerRoman, upperLetter, lowerLetter, ordinal, cardinalText, ordinalText, bullet, chineseCounting, chineseLegalSimplified, japaneseCounting, koreanCounting, hex. Default decimal.", "aliases": ["fmt", "numFmt"], "add": true, "set": true, "get": true, "examples": [ "--prop format=decimal", "--prop format=chineseCounting" ], "readback": "numFmt token (lowerCamel as in OOXML)", "enforcement": "report" }, "lvlText": { "type": "string", "description": "lvlText template. Use %N to insert level N's running counter (e.g. '%1.', '%1.%2', '第%1章'). Default: %{ilvl+1}. for ordered, • for bullet.", "aliases": ["text"], "add": true, "set": true, "get": true, "examples": [ "--prop lvlText=\"%1.\"", "--prop lvlText=\"第%1章\"" ], "readback": "lvlText string (literal, including %N placeholders)", "enforcement": "report" }, "start": { "type": "int", "description": "starting number. Default 1.", "add": true, "set": true, "get": true, "examples": ["--prop start=5"], "readback": "integer", "enforcement": "report" }, "indent": { "type": "int", "description": "left indent in twips (pPr/ind/left). On Add, default (ilvl+1)*720.", "add": true, "set": true, "get": true, "examples": ["--prop indent=720"], "readback": "integer twips", "enforcement": "report" }, "hanging": { "type": "int", "description": "hanging indent in twips (pPr/ind/hanging). Default 360.", "add": true, "set": true, "get": true, "examples": ["--prop hanging=360"], "readback": "integer twips", "enforcement": "report" }, "justification": { "type": "enum", "values": ["left", "center", "right"], "aliases": ["jc"], "description": "lvlJc — marker alignment within the indent area. Default left.", "add": true, "set": true, "get": true, "examples": ["--prop justification=left"], "readback": "left | center | right", "enforcement": "report" }, "suff": { "type": "enum", "values": ["tab", "space", "nothing"], "description": "separator between the marker and the text content. Default tab.", "add": true, "set": true, "get": false, "examples": ["--prop suff=space"], "readback": "n/a", "enforcement": "report" }, "lvlRestart": { "type": "int", "description": "w:lvlRestart — level at which to restart this counter (0 = never restart).", "add": true, "set": true, "get": false, "examples": ["--prop lvlRestart=0"], "readback": "n/a", "enforcement": "report" }, "isLgl": { "type": "bool", "description": "w:isLgl — render this level's counter as decimal regardless of numFmt (legal-style numbering).", "add": true, "set": true, "get": false, "examples": ["--prop isLgl=true"], "readback": "n/a", "enforcement": "report" }, "direction": { "type": "enum", "values": ["rtl", "ltr"], "aliases": ["dir", "bidi"], "description": "right-to-left direction on the level's pPr. Only 'rtl' writes ; 'ltr' is the canonical clear.", "add": true, "set": false, "get": false, "examples": ["--prop direction=rtl"], "readback": "n/a", "enforcement": "report" }, "font": { "type": "string", "description": "marker font (rPr/rFonts). Useful for bullet glyphs that need Symbol or Wingdings.", "add": true, "set": true, "get": false, "examples": ["--prop font=Symbol"], "readback": "n/a", "enforcement": "report" }, "size": { "type": "font-size", "description": "marker font size (rPr/sz). Bare number = pt.", "add": true, "set": true, "get": false, "examples": ["--prop size=14"], "readback": "n/a", "enforcement": "report" }, "color": { "type": "color", "description": "marker color (rPr/color).", "add": true, "set": true, "get": false, "examples": ["--prop color=#FF0000"], "readback": "n/a", "enforcement": "report" }, "bold": { "type": "bool", "description": "bold marker (rPr/b).", "add": true, "set": true, "get": false, "examples": ["--prop bold=true"], "readback": "n/a", "enforcement": "report" }, "italic": { "type": "bool", "description": "italic marker (rPr/i).", "add": true, "set": true, "get": false, "examples": ["--prop italic=true"], "readback": "n/a", "enforcement": "report" } } }