{
  "$schema": "../_schema.json",
  "format": "xlsx",
  "element": "range",
  "parent": "sheet",
  "container": true,
  "operations": {
    "add": false,
    "set": true,
    "get": true,
    "query": true,
    "remove": false
  },
  "paths": {
    "positional": ["/SheetName/A1:C10"]
  },
  "note": "Read-through container for cell ranges. Get returns a range node with cell list / aggregate preview. Set broadcasts formatting props to every cell in the range (font/color/numberformat/alignment/fill). Not an Add target — cells exist implicitly.",
  "properties": {
    "merge": {
      "type": "bool",
      "description": "merge all cells in the range into a single cell. Pass merge=true to merge; the range is taken from the path. A range-shaped value equal to the path's range (e.g. `set '/Sheet1/B2:C2' --prop merge=B2:C2`) is accepted as a convenience and is equivalent to merge=true; a range-shaped value that disagrees with the path is rejected. Set merge=false to unmerge — the range must exactly match an existing merge, otherwise the call fails with the precise refs to use. Pass merge=sweep to bulk-clear every merge contained in the range (destructive, no precision check). For multiple disjoint ranges in one call, use the prop value form on a sheet- or cell-anchored set (e.g. `set '/Sheet1' --prop merge=A1:B1,A2:B2`).",
      "add": false, "set": true, "get": true,
      "examples": ["--prop merge=true", "--prop merge=false", "--prop merge=sweep"],
      "readback": "true/false",
      "enforcement": "report"
    },
    "font.bold": {
      "type": "bool",
      "description": "broadcast bold to every cell.",
      "add": false, "set": true, "get": false,
      "examples": ["--prop font.bold=true"],
      "readback": "n/a (broadcast)",
      "enforcement": "report"
    },
    "fill": {
      "type": "color",
      "description": "broadcast fill color.",
      "add": false, "set": true, "get": false,
      "examples": ["--prop fill=#FFFF00"],
      "readback": "n/a (broadcast)",
      "enforcement": "report"
    },
    "numberformat": {
      "type": "string",
      "description": "broadcast number format code.",
      "aliases": ["format"],
      "add": false, "set": true, "get": false,
      "examples": ["--prop numberformat=\"#,##0.00\""],
      "readback": "n/a (broadcast)",
      "enforcement": "report"
    },
    "alignment.horizontal": {
      "type": "enum",
      "values": ["left", "center", "right", "justify", "general", "fill", "centerContinuous"],
      "aliases": ["halign"],
      "add": false, "set": true, "get": false,
      "examples": ["--prop alignment.horizontal=center"],
      "readback": "n/a (broadcast)",
      "enforcement": "report"
    }
  },
  "children": [
    { "element": "cell", "pathSegment": "{CellRef}", "cardinality": "1..n" }
  ]
}
