Files
wehub-resource-sync 8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:09:29 +08:00

1040 lines
28 KiB
JSON

{
"$schema": "../_schema.json",
"format": "docx",
"element": "style",
"parent": "styles",
"addParent": "/styles",
"operations": {
"add": true,
"set": true,
"get": true,
"query": true,
"remove": true
},
"paths": {
"stable": [
"/styles/StyleId"
]
},
"note": "Style type defaults to paragraph. 'id' must be unique in styles.xml; duplicate id rejected if explicit, else auto-suffixed. Built-in ids (Normal, Heading1..9, Title, Subtitle, Quote, IntenseQuote, ListParagraph, NoSpacing, TOCHeading) bypass the customStyle=true flag. Path forms /style[@name=NAME] and /style[N] are NOT supported — only /styles/StyleId resolves; navigation does not handle a bare 'style' top-level segment.",
"properties": {
"id": {
"type": "string",
"description": "w:styleId (unique, immutable identity). Aliases fall through to 'name' when 'id' is omitted. Renaming after Add would require rewriting every paragraph/run/basedOn reference in the document; not supported.",
"aliases": [
"styleId",
"styleid"
],
"add": true,
"set": false,
"get": true,
"examples": [
"--prop id=MyAccent",
"--prop styleId=MyAccent"
],
"readback": "StyleId value",
"enforcement": "strict"
},
"name": {
"type": "string",
"description": "display name. Defaults to 'id' when omitted.",
"aliases": [
"styleName",
"stylename"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop name=\"My Accent\"",
"--prop styleName=\"My Accent\""
],
"readback": "StyleName.Val",
"enforcement": "report"
},
"type": {
"type": "enum",
"values": [
"paragraph",
"character",
"table",
"numbering"
],
"aliases": {
"character": [
"char"
],
"paragraph": [
"para"
]
},
"add": true,
"set": false,
"get": true,
"examples": [
"--prop type=paragraph"
],
"readback": "one of values (innerText of StyleValues)",
"enforcement": "report",
"note": "Style type is fixed at creation — changing a style's type after Add would orphan every paragraph/run that already references it. Recreate the style if you need a different type."
},
"basedOn": {
"type": "string",
"description": "parent style id to inherit from. Must be an existing w:styleId (not display name). Inherited properties are overridden by properties defined on this style.",
"aliases": [
"basedon"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop basedOn=Normal"
],
"readback": "BasedOn.Val",
"enforcement": "report"
},
"basedOn.path": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved path to the parent style node (get-only). Shortcut: use basedOn to Set.",
"readback": "/styles/{styleId}",
"enforcement": "report"
},
"next": {
"type": "string",
"description": "next-paragraph style id.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop next=Normal"
],
"readback": "NextParagraphStyle.Val",
"enforcement": "report"
},
"linked": {
"type": "string",
"aliases": [
"link"
],
"description": "linked-style pair: a paragraph style references its companion character style (or vice versa). Word UI: 'Linked (paragraph and character)'. Value is the partner styleId; must exist in styles.xml.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop linked=MyCharStyle"
],
"readback": "LinkedStyle.Val",
"enforcement": "report"
},
"qFormat": {
"type": "bool",
"aliases": [
"qformat"
],
"description": "mark as a 'primary' (quick) style shown in Word's Styles gallery (<w:qFormat/>). The default Normal style carries this; without round-tripping it the gallery designation is lost.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop qFormat=true"
],
"readback": "presence of <w:qFormat/>",
"enforcement": "report"
},
"uiPriority": {
"type": "int",
"aliases": [
"uipriority"
],
"description": "sort order of the style in Word's Styles pane / Recommended list (<w:uiPriority>). Lower sorts first.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop uiPriority=9"
],
"readback": "UIPriority.Val",
"enforcement": "report"
},
"semiHidden": {
"type": "bool",
"aliases": [
"semihidden"
],
"description": "hide the style from the main Styles gallery while keeping it usable (<w:semiHidden/>). Usually paired with unhideWhenUsed.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop semiHidden=true"
],
"readback": "presence of <w:semiHidden/>",
"enforcement": "report"
},
"unhideWhenUsed": {
"type": "bool",
"aliases": [
"unhidewhenused"
],
"description": "reveal a semiHidden style in the gallery once it is first applied in the document (<w:unhideWhenUsed/>).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop unhideWhenUsed=true"
],
"readback": "presence of <w:unhideWhenUsed/>",
"enforcement": "report"
},
"locked": {
"type": "bool",
"description": "lock the style against use when document formatting protection is active (<w:locked/>).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop locked=true"
],
"readback": "presence of <w:locked/>",
"enforcement": "report"
},
"customStyle": {
"type": "bool",
"aliases": [
"customstyle"
],
"description": "mark the style as user-authored rather than one of Word's built-ins (<w:customStyle/>). Carried verbatim through dump->batch so a built-in style renamed to a short id (Normal->'a') is NOT mis-flagged as custom on rebuild. Omitted from `add`/`set` falls back to inferring built-in-ness from the styleId.",
"add": true,
"set": false,
"get": true,
"examples": [
"--prop customStyle=true"
],
"readback": "CustomStyle.Val (always emitted, true or false)",
"enforcement": "report"
},
"align": {
"type": "enum",
"values": [
"left",
"center",
"right",
"justify",
"both",
"distribute"
],
"aliases": [
"alignment"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop align=center"
],
"readback": "one of values",
"enforcement": "report"
},
"spaceBefore": {
"type": "length",
"aliases": [
"spacebefore"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop spaceBefore=12pt"
],
"readback": "unit-qualified",
"enforcement": "report"
},
"spaceAfter": {
"type": "length",
"aliases": [
"spaceafter"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop spaceAfter=6pt"
],
"readback": "unit-qualified",
"enforcement": "report"
},
"spaceBeforeAuto": {
"type": "boolean",
"aliases": [
"beforeAutospacing"
],
"add": true,
"set": true,
"get": true,
"description": "w:spacing @beforeAutospacing — Word's 'automatic spacing between paragraphs of the same style' toggle for the space BEFORE paragraphs using this style (e.g. the built-in 'Normal (Web)' style). Surfaced on get only when present.",
"examples": [
"--prop spaceBeforeAuto=true"
],
"readback": "true|false",
"enforcement": "report"
},
"spaceAfterAuto": {
"type": "boolean",
"aliases": [
"afterAutospacing"
],
"add": true,
"set": true,
"get": true,
"description": "w:spacing @afterAutospacing — automatic spacing toggle for the space AFTER paragraphs using this style. See spaceBeforeAuto.",
"examples": [
"--prop spaceAfterAuto=true"
],
"readback": "true|false",
"enforcement": "report"
},
"font": {
"type": "string",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font=\"Calibri\""
],
"readback": "font name",
"enforcement": "report"
},
"font.ea": {
"type": "string",
"description": "East-Asian font slot (rFonts/eastAsia) for the style — Chinese / Japanese / Korean typefaces.",
"aliases": [
"font.eastAsia",
"font.eastasia",
"font.eastasian"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.ea=\"メイリオ\""
],
"enforcement": "report"
},
"font.cs": {
"type": "string",
"description": "Complex-script font slot (rFonts/cs) for the style — Arabic / Hebrew / Thai typefaces.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.cs=\"Arabic Typesetting\""
],
"enforcement": "report"
},
"font.asciiTheme": {
"type": "string",
"description": "Theme font binding for the style's ascii slot (rFonts/asciiTheme). Values: minorHAnsi, majorHAnsi, minorEastAsia, majorEastAsia, minorBidi, majorBidi.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.asciiTheme=majorHAnsi"
],
"enforcement": "report"
},
"font.hAnsiTheme": {
"type": "string",
"description": "Theme font binding for the style's hAnsi slot (rFonts/hAnsiTheme).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.hAnsiTheme=majorHAnsi"
],
"enforcement": "report"
},
"font.eaTheme": {
"type": "string",
"description": "Theme font binding for the style's East-Asia slot (rFonts/eastAsiaTheme). Values: minorEastAsia, majorEastAsia.",
"aliases": [
"font.eastAsiaTheme"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.eaTheme=majorEastAsia"
],
"enforcement": "report"
},
"font.csTheme": {
"type": "string",
"description": "Theme font binding for the style's complex-script slot (rFonts/cstheme). Values: minorBidi, majorBidi.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.csTheme=majorBidi"
],
"enforcement": "report"
},
"size": {
"type": "font-size",
"description": "font size. Accepts bare number or pt-suffixed.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop size=14"
],
"readback": "unit-qualified pt",
"enforcement": "report"
},
"bold": {
"type": "bool",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop bold=true"
],
"readback": "true/false",
"enforcement": "report"
},
"italic": {
"type": "bool",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop italic=true"
],
"readback": "true/false",
"enforcement": "report"
},
"color": {
"type": "color",
"description": "font color. Accepts #RRGGBB, RRGGBB, named colors (red, blue…), rgb(r,g,b), or 3-char shorthand (F00).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop color=#FF0000"
],
"readback": "#-prefixed uppercase hex",
"enforcement": "report"
},
"underline": {
"type": "string",
"description": "underline style (true/false, single, double, thick, dotted, dash, wavy, none, ...). Applied to the style's rPr.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop underline=single",
"--prop underline=double"
],
"readback": "underline style or true/false",
"enforcement": "report"
},
"strike": {
"type": "bool",
"description": "single-line strikethrough on the style's rPr.",
"aliases": [
"strikethrough"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop strike=true"
],
"readback": "true/false",
"enforcement": "report"
},
"dstrike": {
"type": "bool",
"description": "double-line strikethrough on the style's rPr.",
"aliases": [
"doublestrike"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop dstrike=true"
],
"readback": "true/false",
"enforcement": "report"
},
"highlight": {
"type": "string",
"description": "highlight color (yellow, green, cyan, magenta, blue, red, darkBlue, darkCyan, darkGreen, darkMagenta, darkRed, darkYellow, darkGray, lightGray, black, white, none).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop highlight=yellow"
],
"readback": "highlight color name",
"enforcement": "report"
},
"caps": {
"type": "bool",
"description": "all-caps display on the style's rPr.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop caps=true"
],
"readback": "true/false",
"enforcement": "report"
},
"smallCaps": {
"type": "bool",
"description": "small-caps display on the style's rPr.",
"aliases": [
"smallcaps"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop smallCaps=true"
],
"readback": "true/false",
"enforcement": "report"
},
"vanish": {
"type": "bool",
"description": "hidden text on the style's rPr.",
"aliases": [
"hidden"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop vanish=true"
],
"readback": "true/false",
"enforcement": "report"
},
"rtl": {
"type": "bool",
"description": "right-to-left run layout on the style's rPr.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop rtl=true"
],
"readback": "true/false",
"enforcement": "report"
},
"vertAlign": {
"type": "enum",
"values": [
"superscript",
"subscript",
"baseline"
],
"description": "vertical text alignment (superscript/subscript) on the style's rPr.",
"aliases": [
"vertalign",
"verticalAlign"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop vertAlign=superscript"
],
"readback": "one of values",
"enforcement": "report"
},
"charSpacing": {
"type": "length",
"description": "character spacing (letter-spacing) on the style's rPr.",
"aliases": [
"charspacing",
"letterSpacing",
"letterspacing"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop charSpacing=2pt"
],
"readback": "unit-qualified pt",
"enforcement": "report"
},
"shading": {
"type": "color",
"description": "background shading fill color on the style's rPr (or pPr for paragraph styles).",
"aliases": [
"shd"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop shading=#FFFF00"
],
"readback": "#-prefixed uppercase hex",
"enforcement": "report"
},
"lineSpacing": {
"type": "string",
"description": "line spacing — multiplier (1.5x, 150%) or fixed (18pt). Applied to the style's pPr.",
"aliases": [
"linespacing"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop lineSpacing=1.5x",
"--prop lineSpacing=18pt"
],
"readback": "\"<N>x\" or \"<N>pt\"",
"enforcement": "report"
},
"lineRule": {
"type": "enum",
"description": "line spacing rule paired with lineSpacing. 'auto' = multiplier, 'exact' = exact fixed height, 'atLeast' = minimum height (lines may grow to fit tall content). Applied to the style's pPr.",
"values": [
"auto",
"exact",
"atLeast"
],
"aliases": [
"linerule"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop lineSpacing=14pt --prop lineRule=atLeast"
],
"readback": "auto | exact | atLeast",
"enforcement": "report"
},
"contextualSpacing": {
"type": "bool",
"description": "suppress spacing between paragraphs of the same style.",
"aliases": [
"contextualspacing"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop contextualSpacing=true"
],
"readback": "true/false",
"enforcement": "report"
},
"outlineLvl": {
"type": "int",
"description": "outline level (0-9, 0=Heading 1). Drives TOC and Navigator. Applied to the style's pPr.",
"aliases": [
"outlinelvl",
"outlineLevel",
"outlinelevel"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop outlineLvl=0"
],
"readback": "integer 0-9",
"enforcement": "report"
},
"kinsoku": {
"type": "bool",
"description": "kinsoku (CJK line-break rules) toggle. Applied to the style's pPr.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop kinsoku=true"
],
"readback": "true/false",
"enforcement": "report"
},
"snapToGrid": {
"type": "bool",
"description": "snap to document grid for CJK layout. Applied to the style's pPr. Add/Set only — Get does not surface this back today.",
"aliases": [
"snaptogrid"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop snapToGrid=false"
],
"readback": "n/a",
"enforcement": "report"
},
"wordWrap": {
"type": "bool",
"description": "allow word-break for non-CJK text inside CJK lines. Applied to the style's pPr. Add/Set only — Get does not surface this back today.",
"aliases": [
"wordwrap"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop wordWrap=true"
],
"readback": "n/a",
"enforcement": "report"
},
"autoSpaceDE": {
"type": "bool",
"description": "auto spacing between East-Asian and Latin text. Applied to the style's pPr.",
"aliases": [
"autospacede"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop autoSpaceDE=true"
],
"readback": "true/false",
"enforcement": "report"
},
"autoSpaceDN": {
"type": "bool",
"description": "auto spacing between East-Asian text and numbers. Applied to the style's pPr.",
"aliases": [
"autospacedn"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop autoSpaceDN=true"
],
"readback": "true/false",
"enforcement": "report"
},
"bidi": {
"type": "bool",
"description": "right-to-left paragraph direction. Applied to the style's pPr.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop bidi=true"
],
"readback": "true/false",
"enforcement": "report"
},
"direction": {
"type": "enum",
"values": [
"rtl",
"ltr"
],
"aliases": [
"dir"
],
"description": "Paragraph reading direction (Arabic / Hebrew). 'rtl' writes <w:bidi/> on the style pPr; equivalent to bidi=true in canonical form.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop direction=rtl"
],
"readback": "rtl | ltr",
"enforcement": "report"
},
"overflowPunct": {
"type": "bool",
"description": "allow punctuation to hang outside the text margin (CJK). Applied to the style's pPr.",
"aliases": [
"overflowpunct"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop overflowPunct=true"
],
"readback": "true/false",
"enforcement": "report"
},
"topLinePunct": {
"type": "bool",
"description": "compress punctuation at the start of a line (CJK). Applied to the style's pPr. Add/Set only — Get does not surface this back today.",
"aliases": [
"toplinepunct"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop topLinePunct=true"
],
"readback": "n/a",
"enforcement": "report"
},
"suppressAutoHyphens": {
"type": "bool",
"description": "disable automatic hyphenation in this style. Add/Set only — Get does not surface this back today.",
"aliases": [
"suppressautohyphens"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop suppressAutoHyphens=true"
],
"readback": "n/a",
"enforcement": "report"
},
"suppressLineNumbers": {
"type": "bool",
"description": "exclude this paragraph style from line numbering. Add/Set only — Get does not surface this back today.",
"aliases": [
"suppresslinenumbers"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop suppressLineNumbers=true"
],
"readback": "n/a",
"enforcement": "report"
},
"keepNext": {
"type": "bool",
"description": "keep this paragraph on the same page as the next.",
"aliases": [
"keepnext"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop keepNext=true"
],
"readback": "true/false",
"enforcement": "report"
},
"keepLines": {
"type": "bool",
"description": "keep all lines of this paragraph together on one page.",
"aliases": [
"keeplines"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop keepLines=true"
],
"readback": "true/false",
"enforcement": "report"
},
"pageBreakBefore": {
"type": "bool",
"description": "force a page break before each paragraph using this style.",
"aliases": [
"pagebreakbefore"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop pageBreakBefore=true"
],
"readback": "true/false",
"enforcement": "report"
},
"widowControl": {
"type": "bool",
"description": "prevent widows and orphans (single isolated lines).",
"aliases": [
"widowcontrol"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop widowControl=true"
],
"readback": "true/false",
"enforcement": "report"
},
"pbdr": {
"type": "string",
"description": "paragraph border. Sub-keys: pbdr.top / pbdr.bottom / pbdr.left / pbdr.right / pbdr.between / pbdr.bar / pbdr.all. Value form: 'style:size:color' (e.g. 'single:6:#FF0000'). Set-only — Get does not surface paragraph borders on the style today.",
"aliases": [
"border"
],
"add": false,
"set": true,
"get": false,
"examples": [
"--prop pbdr.bottom=single:6:#FF0000",
"--prop pbdr.all=single:4:auto"
],
"readback": "n/a",
"enforcement": "report"
},
"numId": {
"type": "int",
"description": "numbering instance ID this style references. Paragraphs using --prop style=<id> inherit numbering through ResolveNumPrFromStyle without their own numPr — the canonical multi-level outline pattern (Heading1..9). Requires the numId to already exist in /numbering.",
"aliases": [
"numid"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop numId=3"
],
"readback": "integer numId on style/pPr/numPr",
"enforcement": "report"
},
"ilvl": {
"type": "int",
"description": "list level (0-8) for the style-borne numPr.",
"aliases": [
"numLevel",
"numlevel"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop ilvl=0"
],
"readback": "integer 0-8",
"enforcement": "report"
},
"effective.alignment": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved paragraph alignment after walking basedOn → linked → docDefaults.",
"readback": "alignment token (left|center|right|both|distribute)",
"enforcement": "report"
},
"effective.alignment.src": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "source pointer for effective.alignment (style id chain).",
"readback": "style id or `docDefaults`",
"enforcement": "report"
},
"effective.direction": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved paragraph reading direction (rtl|ltr).",
"readback": "`rtl` | `ltr`",
"enforcement": "report"
},
"effective.direction.src": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "source pointer for effective.direction.",
"readback": "style id or `docDefaults`",
"enforcement": "report"
},
"effective.highlight": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved highlight color name (yellow|green|cyan|...) inherited from the style chain.",
"readback": "highlight token",
"enforcement": "report"
},
"effective.lineSpacing": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved line spacing (`<N>x` or `<N>pt`).",
"readback": "unit-qualified spacing",
"enforcement": "report"
},
"effective.lineSpacing.src": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "source pointer for effective.lineSpacing.",
"readback": "style id or `docDefaults`",
"enforcement": "report"
},
"effective.spaceBefore": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved space-before (unit-qualified).",
"readback": "unit-qualified length",
"enforcement": "report"
},
"effective.spaceBefore.src": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "source pointer for effective.spaceBefore.",
"readback": "style id or `docDefaults`",
"enforcement": "report"
},
"effective.spaceAfter": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "resolved space-after (unit-qualified).",
"readback": "unit-qualified length",
"enforcement": "report"
},
"effective.spaceAfter.src": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "source pointer for effective.spaceAfter.",
"readback": "style id or `docDefaults`",
"enforcement": "report"
},
"effective.strike": {
"type": "bool",
"add": false,
"set": false,
"get": true,
"description": "true when strike-through is inherited from the style chain.",
"readback": "true|false",
"enforcement": "report"
}
}
}