{
  "$schema": "../_schema.json",
  "format": "docx",
  "element": "footnote",
  "parent": "paragraph|body",
  "addParent": "/body/p[N]",
  "operations": {
    "add": true,
    "set": true,
    "get": true,
    "query": true,
    "remove": true
  },
  "paths": {
    "stable": [
      "/footnote[@footnoteId=N]"
    ],
    "positional": [
      "/footnotes/footnote[N]"
    ]
  },
  "note": "Footnotes live in FootnotesPart. A FootnoteReference run is inserted at the anchor point; the note body is appended to footnotes.xml. Parent must be a paragraph path (/body/p[N]); use --index N to control position within the paragraph. Run-level parent (/body/p[N]/r[M]) is not accepted -- the footnote reference is inserted as a new run.",
  "properties": {
    "text": {
      "type": "string",
      "description": "footnote text. Required.",
      "add": true,
      "set": true,
      "get": true,
      "examples": [
        "--prop text=\"See ref [1]\""
      ],
      "readback": "concatenated text",
      "enforcement": "report"
    },
    "direction": {
      "type": "enum",
      "values": [
        "rtl",
        "ltr"
      ],
      "aliases": [
        "dir",
        "bidi"
      ],
      "description": "Reading direction. 'rtl' writes <w:bidi/> on the footnote content paragraph and cascades <w:rtl/> to the paragraph mark.",
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop direction=rtl"
      ],
      "enforcement": "report"
    },
    "align": {
      "type": "enum",
      "values": [
        "left",
        "center",
        "right",
        "justify",
        "both",
        "distribute"
      ],
      "description": "Horizontal alignment applied to the footnote content paragraph (<w:jc/>).",
      "aliases": [
        "alignment"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop align=right"
      ],
      "enforcement": "report"
    },
    "font.cs": {
      "type": "string",
      "description": "Complex-script font (rFonts/cs) — Arabic / Hebrew typeface.",
      "aliases": [
        "font.complexscript",
        "font.complex"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop font.cs=\"Arabic Typesetting\""
      ],
      "enforcement": "report"
    },
    "font.ea": {
      "type": "string",
      "description": "East-Asian font (rFonts/eastAsia).",
      "aliases": [
        "font.eastasia",
        "font.eastasian"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop font.ea=\"メイリオ\""
      ],
      "enforcement": "report"
    },
    "font.latin": {
      "type": "string",
      "description": "Latin font slot (rFonts/ascii + hAnsi).",
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop font.latin=Calibri"
      ],
      "enforcement": "report"
    },
    "bold.cs": {
      "type": "bool",
      "description": "complex-script bold (<w:bCs/>). Required for Arabic / Hebrew bold rendering.",
      "aliases": [
        "font.bold.cs",
        "boldcs"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop bold.cs=true"
      ],
      "enforcement": "report"
    },
    "italic.cs": {
      "type": "bool",
      "description": "complex-script italic (<w:iCs/>) for the footnote's runs.",
      "aliases": [
        "font.italic.cs",
        "italiccs"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop italic.cs=true"
      ],
      "enforcement": "report"
    },
    "size.cs": {
      "type": "font-size",
      "description": "complex-script font size (<w:szCs/>) for the footnote's runs.",
      "aliases": [
        "font.size.cs",
        "sizecs"
      ],
      "add": true,
      "set": true,
      "get": false,
      "examples": [
        "--prop size.cs=14pt"
      ],
      "enforcement": "report"
    },
    "id": {
      "type": "number",
      "description": "OOXML footnote id (w:footnote/@w:id). Assigned by the writer; surfaces only on Get/Query.",
      "add": false,
      "set": false,
      "get": true,
      "readback": "integer footnote ID",
      "enforcement": "report"
    }
  }
}
