addedInput schema / properties / design
Added value: +{
+ "description": "Or the sheet laid out as a template is (the same design change_sheet takes); the Sheet is made large enough to show it.",
+ "properties": {
+ "accent": {
+ "description": "The colour family of the header rows, title, totals and charts (default blue).",
+ "enum": [
+ "emerald",
+ "violet",
+ "sky",
+ "indigo",
+ "blue",
+ "amber",
+ "teal",
+ "orange",
+ "rose",
+ "purple",
+ "cyan",
+ "fuchsia"
+ ],
+ "type": "string"
+ },
+ "blocks": {
+ "description": "In order. Rows 1 to 3 are the heading, subtitle and a gap. A block without at starts on row 4 (the first) or after one blank row under the block before it, in column A; a table is its header row, then its rows, then its total; fields are their heading (if any), then one row per item. So formulas can name the cells their blocks land on. The answer names each block’s ranges.",
+ "items": {
+ "oneOf": [
+ {
+ "properties": {
+ "at": {
+ "description": "Its header row’s first cell (\"A4\"); stacked when left out.",
+ "type": "string"
+ },
+ "chart": {
+ "description": "A chart of the table’s header and body rows (never its total), live from its cells.",
+ "properties": {
+ "at": {
+ "description": "The cell its top-left sits on; right of the table by default.",
+ "type": "string"
+ },
+ "columns": {
+ "description": "The columns charted by name, the first the labels; every column when left out.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "height": {
+ "description": "px, default 280.",
+ "type": "number"
+ },
+ "palette": {
+ "description": "Its colours. Left out: the family of its table’s header (a design’s accent: emerald and teal forest; sky, blue, indigo and cyan ocean; amber and orange sunset; rose, violet, purple and fuchsia berry), else vivid; a line, area or scatter chart of several series vivid, so its lines tell apart.",
+ "enum": [
+ "vivid",
+ "ocean",
+ "forest",
+ "sunset",
+ "berry",
+ "earth",
+ "grey",
+ "contrast"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "description": "column, bar, pie and doughnut draw one series (the first value column); line, area and scatter draw every value column.",
+ "enum": [
+ "column",
+ "bar",
+ "line",
+ "area",
+ "scatter",
+ "pie",
+ "doughnut"
+ ],
+ "type": "string"
+ },
+ "width": {
+ "description": "px, default 420.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ "checkboxes": {
+ "description": "Checkbox columns by name (TRUE or FALSE values).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "dropdowns": {
+ "additionalProperties": {
+ "properties": {
+ "colors": {
+ "description": "#rrggbb per option, or null.",
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": "array"
+ },
+ "options": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 500,
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "options"
+ ],
+ "type": "object"
+ },
+ "description": "Dropdown columns by name, over the body rows: each value a chip in its option’s colour.",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "formats": {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "description": "The parts of the format to set; parts left out are kept.",
+ "properties": {
+ "align": {
+ "anyOf": [
+ {
+ "enum": [
+ "left",
+ "center",
+ "right"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Horizontal alignment; null for automatic (numbers right, text left)."
+ },
+ "background": {
+ "description": "Fill colour, #rrggbb; null for none.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "bold": {
+ "description": "Bold on (true) or off (false).",
+ "type": "boolean"
+ },
+ "color": {
+ "description": "Text colour, #rrggbb; null for the default.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "currency": {
+ "description": "The currency symbol: R$ CHF zł kr £ $ € ¥ ₹ ₩ ₽ ₺ ₪ ₫; null for the default.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "decimals": {
+ "anyOf": [
+ {
+ "maximum": 10,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Decimal places, 0 to 10; null for the format’s own."
+ },
+ "fontSize": {
+ "description": "Font size in points, a whole number from 6 to 96; null for the default.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "italic": {
+ "description": "Italic on or off.",
+ "type": "boolean"
+ },
+ "numberFormat": {
+ "description": "How numbers show: auto, number, percent, currency, accounting, scientific, date, time, datetime, duration, text, custom; null for auto.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "strikethrough": {
+ "description": "Strikethrough on or off.",
+ "type": "boolean"
+ },
+ "underline": {
+ "description": "Underline on or off.",
+ "type": "boolean"
+ },
+ "verticalAlign": {
+ "anyOf": [
+ {
+ "enum": [
+ "top",
+ "middle",
+ "bottom"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Vertical alignment; null for the default (bottom)."
+ },
+ "wrap": {
+ "anyOf": [
+ {
+ "enum": [
+ "overflow",
+ "wrap",
+ "clip"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Long text runs over empty neighbours, wraps, or is clipped; null for overflow."
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "A number format by name (auto, number, percent, currency, accounting, scientific, date, time, datetime, duration, text, custom; number, currency and percent show 2 decimals), or a format in words ({\"numberFormat\": \"number\", \"decimals\": 0} for whole numbers)."
+ },
+ "description": "Formats by column name over the body and total: {\"Amount\": \"currency\", \"Share\": \"percent\"}.",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "head": {
+ "description": "The header row: each column’s name.",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "inputs": {
+ "description": "Columns meant to be typed over, by name: tinted soft yellow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "kind": {
+ "const": "table",
+ "description": "A block is a table, fields or a note.",
+ "type": "string"
+ },
+ "rows": {
+ "description": "The body rows, values read as typed (a leading = a formula).",
+ "items": {
+ "description": "One row, left to right.",
+ "items": {
+ "description": "A value: text is read as typed in en-GB (a leading = is a formula, \"12%\" a percent, \"03/04/2026\" the 3rd of April), a JSON number or boolean is kept as it is, null clears the cell.",
+ "type": [
+ "string",
+ "number",
+ "boolean",
+ "null"
+ ]
+ },
+ "maxItems": 200,
+ "type": "array"
+ },
+ "maxItems": 10000,
+ "type": "array"
+ },
+ "total": {
+ "description": "A total row under the body, bold and ruled above (\"Total\", null, \"=SUM(C5:C12)\").",
+ "items": {
+ "description": "A value: text is read as typed in en-GB (a leading = is a formula, \"12%\" a percent, \"03/04/2026\" the 3rd of April), a JSON number or boolean is kept as it is, null clears the cell.",
+ "type": [
+ "string",
+ "number",
+ "boolean",
+ "null"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "head",
+ "rows"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "at": {
+ "description": "Its first cell; stacked when left out.",
+ "type": "string"
+ },
+ "heading": {
+ "description": "A ruled heading over them.",
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "format": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "description": "The parts of the format to set; parts left out are kept.",
+ "properties": {
+ "align": {
+ "anyOf": [
+ {
+ "enum": [
+ "left",
+ "center",
+ "right"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Horizontal alignment; null for automatic (numbers right, text left)."
+ },
+ "background": {
+ "description": "Fill colour, #rrggbb; null for none.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "bold": {
+ "description": "Bold on (true) or off (false).",
+ "type": "boolean"
+ },
+ "color": {
+ "description": "Text colour, #rrggbb; null for the default.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "currency": {
+ "description": "The currency symbol: R$ CHF zł kr £ $ € ¥ ₹ ₩ ₽ ₺ ₪ ₫; null for the default.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "decimals": {
+ "anyOf": [
+ {
+ "maximum": 10,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Decimal places, 0 to 10; null for the format’s own."
+ },
+ "fontSize": {
+ "description": "Font size in points, a whole number from 6 to 96; null for the default.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "italic": {
+ "description": "Italic on or off.",
+ "type": "boolean"
+ },
+ "numberFormat": {
+ "description": "How numbers show: auto, number, percent, currency, accounting, scientific, date, time, datetime, duration, text, custom; null for auto.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "strikethrough": {
+ "description": "Strikethrough on or off.",
+ "type": "boolean"
+ },
+ "underline": {
+ "description": "Underline on or off.",
+ "type": "boolean"
+ },
+ "verticalAlign": {
+ "anyOf": [
+ {
+ "enum": [
+ "top",
+ "middle",
+ "bottom"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Vertical alignment; null for the default (bottom)."
+ },
+ "wrap": {
+ "anyOf": [
+ {
+ "enum": [
+ "overflow",
+ "wrap",
+ "clip"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Long text runs over empty neighbours, wraps, or is clipped; null for overflow."
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "A number format by name (auto, number, percent, currency, accounting, scientific, date, time, datetime, duration, text, custom; number, currency and percent show 2 decimals), or a format in words ({\"numberFormat\": \"number\", \"decimals\": 0} for whole numbers)."
+ },
+ "kind": {
+ "description": "input: tinted to type over; result: larger, bold, in the accent; value (default).",
+ "enum": [
+ "input",
+ "value",
+ "result"
+ ],
+ "type": "string"
+ },
+ "label": {
+ "description": "In the first column, quiet.",
+ "type": "string"
+ },
+ "value": {
+ "description": "In the column right of it.",
+ "type": [
+ "string",
+ "number",
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "label",
+ "value"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "kind": {
+ "const": "fields",
+ "description": "Labels and values, two columns.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "items"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "at": {
+ "type": "string"
+ },
+ "kind": {
+ "const": "note",
+ "description": "One quiet line.",
+ "type": "string"
+ },
+ "text": {
+ "description": "A quiet italic line.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "freeze": {
+ "description": "Rows frozen at the top; by default through the header of the table with the most rows, when it starts by row 12.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "heading": {
+ "description": "The title in A1, large and in the accent, across the sheet.",
+ "type": "string"
+ },
+ "look": {
+ "description": "banded (default: filled header, every other row tinted, ruled total), header, boxed (every cell lined), minimal (ruled, no gridlines) or plain.",
+ "enum": [
+ "plain",
+ "header",
+ "banded",
+ "boxed",
+ "minimal"
+ ],
+ "type": "string"
+ },
+ "subtitle": {
+ "description": "A quiet line under it, in A2: what the sheet is for, what to type over.",
+ "type": "string"
+ },
+ "widths": {
+ "description": "Column widths in px from A; each column fitted to its cells when left out.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "heading",
+ "blocks"
+ ],
+ "type": "object"
+}