describe_block
Get a block's full schema: field types, descriptions, formulas, validation, and row keys, plus optional current values. Use it to learn a block's structure and constraints before writing to it.
Instructions
Return a block's full structure for the LLM: identity (name, sheet, position), per-field schema, and row keys in order. Every field reports both what it IS — type, description, required, unique, default_value, and references for a field pointing at another block — and what currently guards it: the value_formula, validation and editability templates. All of it comes from the Rust schema, the engine's authoritative source, so the answer is the same in every host and survives a save/load.
Read a field's type and description BEFORE writing a value to it: the description is where the unit, the convention, or the thing-not-to-do is written down, and it is the only record of it. A type of null means nobody has claimed one yet.
analyzes and analyzed_by say whether this block is a table or a conclusion drawn from one. A block with analyzes set is an ANALYSIS block — a total row, a set of statistics, a pivot — and its rows are its own, not the source's. Never sum an analysis block alongside the block it analyses: that counts the same numbers twice. A field with aggregates set is engine-computed from the source; writes to it are dropped, and you change it by changing the declaration.
Pass include_rows: true to additionally include current cell values as rows[].values[fieldName]. Off by default to save tokens — use it when the agent actually needs to inspect data, not when it only needs the shape.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Block ref name (the `name` of create_block). | |
| include_rows | No | When true, include current cell values. Off by default to save tokens. |