Skip to main content
Glama
u9401066

asset-aware-mcp

by u9401066

asset-aware-mcp

Citation-ready document infrastructure for AI agents: editable native documents, reusable evidence, and portable Foam/LightRAG wikis.

License

🌐 繁體中文 · Docs Site · GitHub Wiki

v1.4.1 Consolidated native-document release

This release brings together the document and evidence work below. We keep the 1.4.x line and consolidate verified changes instead of releasing each feature. Check GitHub Releases for publication status and the changelog for details.

Format

Supported workflows

PDF

Pages/regions, page assembly, annotations, AcroForm fields, actual previews, historical evidence

DOCX

Creation, scoped body/table edits, table grids/layout, headers/footers, footnotes/endnotes

XLSX/XLSM

Cells, worksheet/grid/layout operations, native Tables, A2T application and independent XLSX creation

ODS

Creation, exact logical-cell edits/clearing, dependency-checked worksheet rename and optional Calc previews

CSV/TSV

Literal fields and row/column CRUD with explicit dialects and byte-preservation checks

PPTX

Slides, text, notes, pictures, editable tables and optional whole-slide previews

Raster images

Frames/regions, PNG/TIFF derivatives, composition and checked candidate revisions

Evidence/Wiki

Immutable selections/derivations, complete receipts, CSL/custom citations and exact source attachments

Discover the installed runtime's complete contract and enabled flags before acting. Since v1.4.0, native-contract-v2 can page schemas: inspect schema_delivery, select for_op, or follow the hash-pinned schema_request. Follow contract_request for paged policies too; abbreviated previews are not complete operation instructions.

Related MCP server: Qdrant Neo4j Crawl4AI MCP Server

🎯 Why Asset-Aware MCP?

Model document analysis may be enough for summaries and questions. This project's purpose is ongoing work on native documents with reusable, checkable results: which source revision was used, which component changed, what stayed intact, and which evidence still supports a claim after later edits or a change of model.

An asset carries identity, revision, native locators, representations, relationships, available operations and validation state. Wiki notes link these assets; citation formatting preserves the underlying evidence. Complete operation receipts and historical sources remain available after component edits or deletion.

MCP checks source/version integrity, native constraints and operation results. The Agent performs complete semantic and visual review and coordinates corrections. Static previews do not establish interactive viewer parity or universal fidelity. Arbitrary PDF body editing and ODS worksheet/grid lifecycle remain open work. See native usage and limits, capability gaps and upstream references, actual Agent evaluations and contracts.

✨ Features

Version 1.3.0 adds a native DOCX bridge with revision-bound read_docx and update_docx, reusing the existing DFM checks before committing a managed version. It preserves unrelated package parts and supports explicit tracked text changes; source writeback and agent layout review remain separate. DOCX block references now support bounded reads and native verification; wiki snapshots include full block records, the original DOCX and exact package-part attachments. Existing 1.2.0 wiki outputs retain their identities and bytes. See the DOCX bridge guide.

  • 📄 Asset-Aware ETL - PDF → Markdown with a pluggable multi-engine parser (ETL_ENGINE):

    • PyMuPDF (default) - Fast extraction (~50MB), no models required

    • PyMuPDF4LLM ([pdf-plus]) - Drop-in layout-aware upgrade, no GPU

    • Docling ([docling]) - MIT-licensed layout+table+formula+chart engine; bridges through an isolated .venv-docling interpreter when the main environment can't install it directly (see docs/docling-setup.md)

    • MinerU - Adapter retained, but the packaged extra is on security hold while MinerU pins a vulnerable transformers<5 chain

    • Marker - Adapter retained for evaluation, but production selection fails closed while upstream marker-pdf conflicts with the patched Pillow floor. The legacy use_marker parameter now means “prefer the configured structured extractor”; it does not bypass this hold.

  • 🧩 Unified Segmentation Export - Normalized segmentation.json merges manifest, blocks, reading order, and persisted markdown line spans for downstream tools and extensions.

  • 🩺 Safe PDF Preflight Router - document(op="preflight") classifies each page as native, sparse, image, scanned, or hybrid; returns 1-based top-left locators, source SHA-256, OCR reasons, and a bounded extraction-engine recommendation from a process-isolated inspector.

  • 📦 Reusable Agent Asset Bundles - document(op="export_assets") writes deterministic manifest.json, assets.jsonl, copied media, and a portable Foam index.md/notes/** subtree while preserving stable IDs, hashes, locators, and citation refs.

  • 🛡️ PDF Safety/Structure/Coverage/Accessibility Audits - OpenDataloader-inspired artifact-only reports flag suspicious hidden/off-page/prompt-injection text, native structure signals, segmentation coverage gaps, and accessibility/readability readiness via the existing document facade. document(op="prepare_ai") and document(op="auto") expose agent-ready status and next actions without adding public tools.

  • 🧭 Structural Pointer Retrieval - Proxy-Pointer-inspired document(op="pointer_index"), document(op="structural_retrieve"), and document(op="compare") preserve section breadcrumbs, line/char/byte locators, source hashes, asset IDs, and evidence-span provenance without adding MCP tools.

  • 🖼️ Layout Overlay Debugging - Render page overlays from original.pdf to inspect bbox, segment type, and reading order visually.

  • 🔤 On-Demand OCR Preprocessing - Optional ocrmypdf preprocessing path for scanned PDFs before ETL.

  • 🧭 Section Navigation - Dynamic hierarchy section tree through the section facade: browse, search, detail, content reading, and block extraction for any depth of headings.

  • 🔄 Async Job Pipeline - Supports asynchronous ingest, configured structured parse, OCR, and conversion jobs with progress tracking.

  • 🔀 Mixed-Format Batch Ingestion - document(op="auto", file_paths=[...]) auto-detects a batch mixing PDF with DOCX/DOC/ODT/ODS, ingests each file through its correct existing engine in one background job, isolates per-file failures so one bad file cannot abort the rest, and reports per-file progress — no new public tool required.

  • 🗺️ Document Manifest - Provides a structured "map" of the document for precise data access by Agents.

  • 🧠 LightRAG Integration - Knowledge Graph + Vector Index, supporting cross-document comparison and reasoning.

  • 🧾 Verified Citation Bundles - citation_bundle, Foam evidence packs, citation health checks, table/figure evidence notes, and claim promotion export citation-ready spans with locator, quote/hash, context, CRAAP scaffold, and verification status.

  • 📝 Docx Editing (DFM) - Edit .docx files in Markdown via Docx-Flavored Markdown format. Supports legacy .doc, .odt, and .ods ingest via LibreOffice auto-conversion. The balanced surface keeps 6 DOCX/DFM public entrypoints for ingest, read, save, validation, conversion, table edit planning, and Docx ↔ A2T bridges.

  • 🛡️ DFM Integrity Checker - Automatic validation and auto-repair at every pipeline stage (post-ingest, pre-save, post-save). Catches orphan markers, column mismatches, and format inconsistencies.

  • 📊 A2T (Anything to Table) - 7 operation-based tools for building professional tables from any source (PDF assets, Knowledge Graph, URLs, user input). Features: stable row IDs, row search/filter/paging, citation coverage, artifact-only large-table render, skipped-large-table UX, Citations (AssetRef), Audit Trail, Schema Evolution, Templates, Drafting, and Token-efficient resumption.

  • 🖥️ VS Code Management Extension - Graphical interface for monitoring server status, ingested documents, document artifacts, citation spans, and A2T tables/drafts with one-click Excel export.

  • 🔌 MCP SDK 2 Server - Uses the official Python SDK MCPServer API, runtime-injected context, and v2 clients. MCP SDK v1 is intentionally unsupported.

  • 🔬 Research-ready, domain-neutral assets - Works with scholarly, technical, policy, and operational documents; bounded image bytes let compatible multimodal clients analyze figures instead of relying on server-local paths.

🏗️ Architecture

┌─────────────────────────────────────────────────────────┐
│                    AI Agent (Copilot)                   │
└─────────────────────┬───────────────────────────────────┘
                      │ MCP Protocol (Tools & Resources)
┌─────────────────────▼───────────────────────────────────┐
│            MCP Server (Modular Presentation)            │
│  ┌─────────────────────────────────────────────────┐   │
│  │ tools/: 30 public tools (balanced surface)                   │   │
│  │   17 facade tools + 13 high-frequency shortcuts       │   │
│  │   compact=17 │ legacy/direct compatibility=63 │
│  └─────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────┐   │
│  │ resources/: 13 resources in 2 modules           │   │
│  └─────────────────────────────────────────────────┘   │
└─────────────────────┬───────────────────────────────────┘
                      │
┌─────────────────────▼───────────────────────────────────┐
│                  ETL Pipeline (DDD)                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐              │
│  │ PyMuPDF  │  │  Asset   │  │ LightRAG │              │
│  │ Adapter  │→ │  Parser  │→ │  Index   │              │
│  └──────────┘  └──────────┘  └──────────┘              │
└─────────────────────┬───────────────────────────────────┘
                      │
┌─────────────────────▼───────────────────────────────────┐
│                   Local Storage                         │
│  ./data/                                                │
│  ├── {doc_id}/        # PDF document artifacts          │
│  ├── docx_{id}/       # Docx IR + DFM + Assets          │
│  ├── tables/          # A2T Tables (JSON/MD/XLSX)       │
│  │   └── drafts/      # Table Drafts (Persistence)      │
│  └── lightrag_db/     # Knowledge Graph                 │
└─────────────────────────────────────────────────────────┘

📁 Project Structure (DDD)

asset-aware-mcp/
├── src/
│   ├── domain/              # 🔵 Domain: Entities, Value Objects, Interfaces
│   ├── application/         # 🟢 Application: Doc Service, Table Service (A2T), Asset Service
│   ├── infrastructure/      # 🟠 Infrastructure: PyMuPDF, LightRAG, Excel Renderer
│   └── presentation/        # 🔴 Presentation: MCP SDK 2 MCPServer
├── data/                    # Document and Asset Storage
├── docs/
│   └── spec.md              # Technical Specification
├── tests/                   # Unit and Integration Tests
├── vscode-extension/        # VS Code Management Extension
└── pyproject.toml           # uv Project Config

📐 Architecture and workflows

The maintained, versioned references are the documentation site, architecture guide, PDF workflow, MCP tool catalog, and release checklist. They are generated and checked with the implementation so tool counts, engine holds, and release behavior do not drift inside obsolete screenshots.

🚀 Quick Start

# Install dependencies (using uv) — default install stays on the fast PyMuPDF backend
uv sync

# Optional high-fidelity PDF->asset engines:
# uv sync --extra pdf-plus   # PyMuPDF4LLM: drop-in layout-aware upgrade
# uv sync --extra docling    # Docling: MIT layout+table+formula+chart engine
# MinerU and Marker packaged extras are temporarily empty security holds.
# Then set ETL_ENGINE=pymupdf4llm|docling.

# Run MCP Server
uv run python -m src.presentation.server

# Or use the VS Code extension for graphical management

Runtime note: The VS Code extension prefers a managed Python 3.11 runtime when launching the MCP server via version-pinned uv tool run, with Python 3.10 fallback for older machines. This avoids native package builds on end-user machines, especially macOS systems without Xcode Command Line Tools, while keeping the project itself compatible with newer Python versions.

Installation scope note:

  • The VS Code extension installs once per user. In a trusted workspace, the native VS Code MCP provider may use workspace-scoped DATA_DIR, cache, settings, and .env; local source is accepted only in Extension Development/Test mode (or a future explicit opt-in).

  • Global Codex and Cline entries always launch asset-aware-mcp==<extension-version> from extension global storage. They do not inherit workspace-local source, workspace-scoped settings, or repository .env values. Restricted Mode skips external config writes and assistant-asset sync entirely.

Engine selection note: ETL_ENGINE picks the extraction backend (default pymupdf). The active packaged structured engines (pymupdf4llm, docling) lazy-load and gracefully fall back to PyMuPDF when their extra is not installed. Marker remains on hold because marker-pdf requires Pillow<11; MinerU is also on hold because MinerU 3.4.4 pins transformers<5 while current security fixes require transformers>=5.5. Both adapters remain in-tree, but this package will not install a known-vulnerable dependency chain. Use document(op="preflight", pdf_path="...") to choose between fast native extraction, OCR, and Docling before ingest.

Agent asset / Foam handoff:

document(op="preflight", pdf_path="/papers/source.pdf")
document(op="auto", file_paths=["/papers/source.pdf"])
document(op="export_assets", doc_id="doc_...", output_dir="agent-assets")

The exported directory is deterministic and portable: manifest.json is the bundle contract, assets.jsonl is the agent-readable inventory, and index.md plus notes/** can be mounted or copied into a Foam workspace.

🔌 MCP Tools

The default runtime surface is balanced: 30 public tools that keep the full document workflow available without overwhelming agents. It is made of 17 operation-based facade tools plus 13 high-frequency shortcuts. Set ASSET_AWARE_MCP_TOOL_SURFACE=compact for the 17 facade-only surface, or ASSET_AWARE_MCP_TOOL_SURFACE=legacy / ASSET_AWARE_MCP_ENABLE_LEGACY_TOOLS=true for the full 63-tool compatibility inventory.

Area

Balanced public tools

Documents, assets, evidence, conversion

document, document_asset, evidence, convert_document, ingest_documents, list_documents, parse_pdf_structure, fetch_document_asset, find_evidence_spans, verify_citation_ref, citation_bundle

DOCX / DFM

docx, docx_table, ingest_docx, get_docx_content, save_docx, docx_table_edit_plan

Sections, jobs, KG, ETL profiles

section, job, get_job_status, list_jobs, knowledge, etl_profile

A2T tables

plan_table, table_manage, table_data, table_cite, table_history, table_draft, discover_sources

See MCP Tools and Tool Consolidation for operation details, shortcut rationale, and legacy direct-tool mapping.

Agent handoff note: Use document(op="auto", file_paths=[...]) for new PDFs and document(op="auto", doc_id="...") or document(op="prepare_ai", doc_id="...") for existing documents. document(op="prepare_ai", output_format="json") returns the v2 readiness contract with status, blockers, warnings, capabilities, artifacts, missing_audits, invalid_audits, audit_artifacts, and next_actions. document(op="audit", doc_id="...") reuses current audit artifacts only when they are present and valid; pass refresh=true to rebuild safety, native-structure, coverage, and accessibility reports. Use document(op="pointer_index"), document(op="structural_retrieve", query="..."), and document(op="compare", doc_b_id="...", criteria="...") when an agent needs section-level structural retrieval or comparison without new public tools. Readiness and job-status artifact discovery are read-only, so status checks do not create document directories.

PDF audit caveat: The audit reports are inspired by OpenDataloader-style artifact workflows, but they are not a sanitizer, a PDF/UA certification, or an OpenDataloader compatibility layer. They preserve source artifacts and report conservative diagnostics for review.

🔧 Tech Stack

Category

Technology

Language

Python 3.10+

Package Manager

uv (all pip/setup-python removed)

ETL

PyMuPDF (default) + secure optional PyMuPDF4LLM / Docling engines; MinerU and Marker adapters are on dependency security hold

RAG

LightRAG (lightrag-hku)

MCP

Official Python MCP SDK 2 (MCPServer); SDK v1 unsupported

Storage

Local filesystem (JSON/Markdown/PNG)

📋 Documentation

Installation guidance:

  • Default install: uv sync (slim ~227 MB; no LightRAG/KG dependencies).

  • LightRAG / Knowledge Graph backend (optional, since v0.6.34): uv tool install --upgrade --python 3.11 'asset-aware-mcp[lightrag]' for uvx/published users, or uv sync --extra lightrag for local source checkouts. Required before setting ENABLE_LIGHTRAG=true.

  • VS Code extension: run the command Asset-Aware MCP: Install LightRAG Backend from the Command Palette; it auto-detects source vs published mode and emits the matching install command.

  • OpenRouter optional preset (since v0.6.35): set LLM_BACKEND=openrouter, OPENROUTER_API_KEY=..., and optionally OPENROUTER_MODEL=liquid/lfm-2.5-1.2b-instruct:free for fast low-cost summaries and draft RAG answers. LightRAG retrieval still uses the configured embedding backend.

  • High-fidelity PDF engines: uv sync --extra pdf-plus (PyMuPDF4LLM) or uv sync --extra docling (Docling), then set ETL_ENGINE accordingly. Docling ships a cross-platform isolated installer; see docs/docling-setup.md.

  • MinerU and Marker backends: their adapters remain available for upstream testing, but the packaged extras are empty security holds until their dependency caps permit patched transformers and Pillow releases.

  • VS Code extension: assetAwareMcp.enableMarkerBackend is retained as a setting, but the launcher will not install marker-pdf while the security hold is active.

  • Technical Spec - Detailed technical specification

  • Architecture - System architecture

  • Constitution - Project principles

  • Competitive Analysis - MCP + DOCX ecosystem landscape

📄 License

Apache License 2.0

Available Tools

30 tools
citation_bundleC

Export citation-ready evidence spans as a verified bundle.

Each entry carries AssetRef, exact quote/hash, locator metadata, context, conservative CRAAP scaffold, optional verification status, and Foam anchor metadata. Use output_format="foam" for a Foam-compatible evidence pack. Pass wiki_root to write the pack and optionally update an index note.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
doc_idYes
span_idNo
overwriteNo
wiki_rootNo
index_pathNo
span_kindsNo
output_pathNo
citation_keyNo
update_indexNo
output_formatNomarkdown
citation_contractNo
citation_metadataNo
include_verificationNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It usefully reveals the bundle contents, the Foam output option, and the side effect of writing a pack and optionally updating an index note. However, it does not disclose overwrite behavior, whether verification is always applied, or other potential mutations beyond the wiki_root path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but not bloated; each sentence conveys useful information about contents, format, or side effects. It is front-loaded with the main purpose. Minor structural friction comes from burying the parameter tips mid-description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with no output schema and no annotations, this description is incomplete. It explains the high-level deliverable and a couple of options, but an agent cannot confidently determine how to set query, span kinds, citation metadata, overwrite, output paths, or how the return value will be structured.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning for only a few parameters: output_format, wiki_root, and update_index. The remaining 12 parameters—including doc_id, span_id, span_kinds, citation_contract, citation_metadata, include_verification, and output_path—remain essentially undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-plus-resource statement: 'Export citation-ready evidence spans as a verified bundle,' which clearly conveys the tool's core function. It details what each entry contains, but it does not explicitly differentiate this tool from siblings like find_evidence_spans or verify_citation_ref.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives parameter-level guidance ('Use output_format="foam"', 'Pass wiki_root'), but does not state when to choose this tool over alternatives or when not to use it. No exclusions, prerequisites, or sibling comparisons are provided, leaving tool-selection guidance to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_documentC

Consolidated document conversion entrypoint.

Dispatches to the existing conversion tools so each source family keeps its established output-path containment policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNocontent
sourceYes
md_textNo
async_modeNo
output_pathNo
source_formatNoauto
target_formatYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral disclosure burden. It reveals that the tool dispatches to other conversion tools and preserves output-path containment, which is useful, but it does not disclose operational behavior such as async execution, mode handling, side effects, failure behavior, or security implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and free of fluff, with each sentence carrying some information. However, it is under-specified for a 7-parameter entrypoint tool, so its brevity is more a sign of incompleteness than effective conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 7 parameters, no annotations, and no output schema, making it a relatively complex tool. The description only covers the routing and output-path containment concept; it omits conversion behavior, parameter semantics, async behavior, source/target format handling, and return values, leaving the AI agent without enough information for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no parameter-level meaning. All seven parameters (`mode`, `source`, `md_text`, `async_mode`, `output_path`, `source_format`, `target_format`) are left entirely reliant on their names, with no guidance on formats, defaults, relationships, or required values beyond the required flags.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a 'Consolidated document conversion entrypoint' that 'dispatches to the existing conversion tools', so the core purpose of converting documents is clear. However, it does not mention a specific conversion verb/resource or name the underlying tools, leaving the actual scope vague relative to the many conversion-related siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Consolidated ... entrypoint' implies this should be used as a routing tool for document conversion, and the mention of 'output-path containment policy' provides some contextual guidance. But there is no explicit statement of when to prefer this over the sibling conversion tools, no negative cases, and no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_sourcesB

🔍 資料來源探索:跨文件搜尋可用於表格的資料來源。

整合 Section、Figure、Table、Knowledge Graph 多個資料庫, 返回統一的 AssetRef 格式結果。短 evidence span 會保持 canonical;過長 span 僅回傳 discovery-only span_preview,完整可驗證 AssetRef 必須從 persisted citation / agent-asset bundle 取得。

Args: query: 搜尋關鍵字 doc_ids: 限定搜尋的文件(不指定則搜尋所有文件) include_kg: 是否包含知識圖譜搜尋 limit: 每類來源的最大結果數

Returns: 發現的資料來源(AssetRef 格式)

Example: discover_sources("remimazolam dosing") discover_sources("drug comparison", doc_ids=["doc_abc"])

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
doc_idsNo
include_kgNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral aspects: it returns unified AssetRef results, preserves canonical format for short evidence spans, and provides only a discovery-only preview for long spans, with the caveat that full verifiable AssetRef must be obtained from persisted citations or the agent-asset bundle. This gives the user a clear expectation of output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two clear sentences that efficiently convey the tool's function and output behavior. It is well-structured and easy to read, with no redundant or verbose wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the output format and handling of spans, it omits essential context about how to invoke the tool correctly, particularly regarding the parameters. It also does not mention the expected return structure in detail beyond the AssetRef format, leaving gaps for a user who needs to understand the full context of usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no explanation of the parameters (query, doc_ids, include_kg, limit) and the schema also lacks descriptions. With 0% schema coverage, the description completely fails to compensate, leaving the user without any understanding of what these parameters do or how to use them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to search for data sources across documents, integrating multiple databases (Section, Figure, Table, Knowledge Graph) and returning a unified AssetRef format. This distinguishes it from sibling tools like get_docx_content or parse_pdf_structure, which are more specific to content extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives, such as what scenarios warrant discover_sources instead of find_evidence_spans. It also lacks any mention of prerequisites, limitations, or contexts in which it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

documentA

Document operations including versioned native file assets.

Operation -> required parameters:

  • auto: exactly one of file_paths (ingest) or doc_id (readiness).

  • ingest / import: file_paths.

  • preflight: pdf_path only; file_paths is rejected.

  • inspect / prepare_ai / audit and retrieval operations: doc_id.

  • export_assets / agent_assets: doc_id; output_dir is optional.

  • native: native_request with its own op (contract/schema/register/create/ list/inspect/read_cell/read_docx/read_docx_block/update_docx/create_pptx/ read_pptx/read_pptx_shape/update_pptx/verify/export_wiki/update/history/publish/writeback/refresh/archive). XLSX/XLSM expose cells; DOCX has a checked DFM bridge; PPTX has native shapes and scoped run edits. Query the contract for PDF create/read/read-page/render/ add/update/delete/reorder operations with revision-pinned page references. PDF edits compose pages and change rotation/crop; native text reading is not OCR. Native wiki includes XLSX/XLSM cells, DOCX blocks/parts, PPTX shapes/parts and PDF pages/previews/exact source bytes; other formats retain opaque source attachments. Verification checks integrity, while agents review semantics, rendered layout and extraction coverage. Native wiki citation_contract/citation_metadata belong inside native_request. contract accepts for_op for one operation. Check schema_delivery; follow schema_request for complete paged JSON and pin schema_sha256 on continuation.

Existing direct document tools stay registered and keep their original contracts. The facade descriptions make op-specific requirements visible even though the shared JSON schema can require only op globally.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYesFacade operation name. preflight requires pdf_path; auto/ingest/import use file_paths; export_assets/agent_assets require doc_id.
pageNo
limitNo
queryNo
deskewNo
doc_idNoIdentifier of an already ingested document; required by inspect, prepare_ai, audit, retrieval, and export_assets operations.
refreshNo
criteriaNo
doc_b_idNo
pdf_pathNoSingle PDF path required by preflight and used by PDF-specific facade operations. preflight never consumes file_paths.
async_modeNo
file_pathsNoSource document paths for auto, ingest, or import. This batch field is not accepted by preflight; pass exactly one PDF through pdf_path.
output_dirNoManaged child output directory. For export_assets it is resolved inside the document directory and defaults to agent-assets.
use_markerNo
ocr_enabledNo
output_pathNo
page_rangesNo
show_labelsNo
ocr_languageNoeng
rotate_pagesNo
output_formatNomarkdown
native_requestNo
extract_figuresNo
citation_contractNo
citation_metadataNo
include_reading_orderNo
index_knowledge_graphNo
marker_max_pages_per_chunkNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden, and it does a strong job: it states that native text reading is not OCR, PDF edits compose pages and affect rotation/crop, verification checks integrity while agents review semantics/rendered layout/extraction coverage, and other formats retain opaque source attachments. It also explains continuation behavior (schema_delivery, schema_request, schema_sha256 pinning). It does not mention auth, rate limits, or explicit destructive-operation warnings, but the included behavioral notes are substantive and not available elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but it is structured into operation groups with clear 'Operation -> required parameters' patterns and front-loads the core purpose. Each sentence adds operational detail, and there is little filler for a tool of this complexity. It could be better formatted with explicit headers, but it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the enormous scope and the absence of an output schema, the description is remarkably complete: it covers operation selection, parameter routing, per-format capabilities (XLSX cells, DOCX DFM bridge, PPTX shapes, PDF page ops), citation placement, pagination/continuation, and the coexistence of legacy direct tools. It stops short of describing return structures, error behavior, or authorization, but for such a wide facade the essential selection and invocation context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18%, so the description must compensate, and it largely does. It maps operation classes to the correct top-level parameters (file_paths vs doc_id vs pdf_path vs native_request), calls out that preflight rejects file_paths, marks output_dir as optional, and notes that citation_contract/citation_metadata belong inside native_request. It also explains the shared-schema limitation and the for_op mechanism. It does not elaborate every one of the 28 parameters, but it covers the high-stakes routing decisions that an agent would otherwise get wrong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Document operations including versioned native file assets' and then enumerates the operation families, from ingest/preflight through native XLSX/DOCX/PPTX/PDF operations. This goes well beyond the bare tool name 'document' and distinguishes it from the sibling direct document tools by explicitly noting that they 'stay registered and keep their original contracts.' It could be tighter, but it clearly identifies the resource and the scope of operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a detailed operation-to-parameter map (auto uses file_paths, inspect uses doc_id, preflight rejects file_paths, export_assets takes optional output_dir, native_request carries its own op). It also notes that direct document tools remain available, which hints at alternatives. However, it never explicitly states when to choose this facade over those direct tools, nor does it give a crisp when-to-use vs when-not-to-use rule. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

document_assetD

Consolidated document asset and section entrypoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
pathNo
fuzzyNo
limitNo
queryNo
doc_idNo
asset_idNofull
max_sizeNo
max_charsNo
max_depthNo
overwriteNo
wiki_rootNo
asset_typeNo
index_pathNo
output_dirNoassets
block_typesNo
citation_keyNo
update_indexNo
response_formatNotree
include_childrenNo

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not mention any side effects, permissions, or behavioral characteristics. The tool's behavior is entirely opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is brief, its brevity comes at the expense of clarity. It lacks the necessary structure to be considered well-organized or informative, making it effectively useless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (20 parameters, multiple optional fields), the description is grossly insufficient. It does not provide any context about the tool's role within the broader document processing workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain any of the 20 parameters, leaving their purpose and relationships completely unclear. It adds no additional meaning to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Consolidated document asset and section entrypoint' is vague and does not specify what actions the tool performs. It fails to convey the tool's core functionality or how it differs from other document-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description provides no context for when it is appropriate to invoke this tool or what conditions suggest its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docxD

Consolidated DOCX/DFM entrypoint.

The legacy DOCX tools remain registered and keep their original parameters and output formats. This wrapper only adds an operation-based facade.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
forceNo
doc_idNo
strictNo
from_mdNo
block_idNo
file_pathNo
max_charsNo
dfm_contentNo
output_pathNo
track_changesNo
revision_authorNoAsset-Aware MCP

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the behavioral disclosure burden. It states only that the wrapper preserves legacy parameters/outputs and adds an operation-based facade; it does not disclose side effects, permissions, failure behavior, return shapes, or what operations mutate state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and free of wordiness, but this is under-specification rather than useful conciseness. For a 12-parameter consolidated entrypoint, three high-level sentences do not provide actionable structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero schema coverage, no output schema, no annotations, and many sibling tools, the description is wholly insufficient. An agent cannot determine how to invoke this tool correctly, what operation to choose, or what the tool will return.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description explains none of the 12 parameters. It only references an 'op' concept without enumerating valid operations, required arguments, parameter interdependencies, or even the meaning of 'force', 'strict', 'from_md', and 'dfm_content'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description calls itself a 'Consolidated DOCX/DFM entrypoint' and a 'wrapper'/'operation-based facade,' but never states what the tool actually does or which operations it exposes. It is not a tautology, but it is too vague to distinguish from the many functional sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that legacy DOCX tools remain registered, which implies they can be used directly, but it gives no guidance on when to use this wrapper instead. There are no explicit alternatives, conditions, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docx_tableD

Consolidated DOCX table bridge entrypoint.

Existing docx_table_* tools remain available for clients that rely on their names or generated allow-lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
doc_idNo
block_idNo
registerNo
save_dfmNo
table_idNo
target_rowsNo
target_columnsNo

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description does not disclose any behavioral traits such as safety, destructiveness, or auth requirements. The agent has no insight into side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences are concise but under-specified. The first sentence is vague, the second is about backward compatibility; neither adds useful functional detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and no annotations, the description is severely incomplete. The agent lacks essential information to correctly select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and description adds no meaning to parameters. The critical 'op' parameter lacks enum values or explanation, making it impossible for the agent to know valid operations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Consolidated DOCX table bridge entrypoint' which is vague and lacks a clear verb+resource. It mentions existing docx_table_* tools remain available, but does not differentiate this tool's purpose from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only mentions backward compatibility but provides no guidance on when to use this tool versus alternatives. No explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docx_table_edit_planA

Plan a DOCX table write-back before applying structural changes.

The current DFM bridge is safest for same-shape cell text updates. This plan separates safe cell updates from row/column/header structural changes so the caller can review risk before docx_table_from_context.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYes
block_idYes
table_idNo
target_rowsNo
target_columnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool is for planning and risk review, implying it is non-destructive. However, it could explicitly state that it does not modify the document. The description does not contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and front-loaded with the purpose. However, it omits essential parameter details, making it less complete. It earns its place but could include more information without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 0% schema coverage, no annotations, and an output schema present, the description is incomplete. It does not describe what the output contains or how parameters affect the plan. The agent lacks sufficient information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does not explain any of the 5 parameters (doc_id, block_id, table_id, target_columns, target_rows). The agent cannot understand how to fill these parameters based on the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Plan a DOCX table write-back before applying structural changes.' It uses a specific verb ('plan') and resource ('DOCX table'). It distinguishes from sibling tools by indicating it's a planning step before actual write-back (like docx_table_from_context).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'The current DFM bridge is safest for same-shape cell text updates. This plan separates safe cell updates from row/column/header structural changes so the caller can review risk before docx_table_from_context.' This tells when to use (before structural changes) and when not (for simple same-shape updates) and names an alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etl_profileD

Consolidated ETL profile entrypoint.

Existing profile tools stay registered for backwards compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
nameNo
doc_idNo
activateNo
pdf_pathNo
json_pathNo
sample_textNo
sample_pagesNo

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior but provides nothing—no side effects, permissions, or outcomes. 'Entrypoint' is too abstract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely brief but fails to convey meaning; under-specification rather than conciseness. Benefits of brevity lost due to lack of substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and no annotations, the description is wholly insufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

0% schema description coverage and the description adds no parameter explanation. The critical 'op' parameter is required but not described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Consolidated ETL profile entrypoint' which is vague and does not specify what operations are performed. The term 'ETL profile' is undefined, and the tool's function relative to its name and siblings is unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over siblings. The only hint is 'Existing profile tools stay registered for backwards compatibility,' implying it may supersede some, but no explicit when-to-use or when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evidenceB

Evidence operations; contract describes citation formats, bundle applies them.

citation_contract accepts a preset selector or named-field inline/reference templates; citation_metadata supplies bibliographic fields, never locators. csl_contract returns the complete hash-paged CSL document schema. render_citations accepts citation_document for document-context APA/Chicago/ Vancouver processing; read every text page at one text_sha256. Optional wiki_root exports an immutable citation snapshot with exact native sources. CSL text_limit is 1..8000 characters; stop paging when next_text_offset is null. inspect_etl_source takes ref={doc_id,source_type,source_id} and returns a full current AssetRef via hash paging. capture_etl_source verifies/captures it in ref. read_etl_source reads the resulting immutable ref; view_etl_source returns its actual original PDF page image. Use the captured ref in CSL sources; source extraction accuracy and semantic support still require Agent review.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
refNo
limitNo
queryNo
doc_idNo
span_idNo
overwriteNo
wiki_rootNo
index_pathNo
span_kindsNo
text_limitNo
block_typesNo
output_pathNo
render_sizeNo
text_offsetNo
citation_keyNo
update_indexNo
output_formatNomarkdown
citation_contractNo
citation_documentNo
citation_metadataNo
expected_text_sha256No

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden and mostly succeeds: it discloses hash-paging, a paging stop condition, the 1..8000 character text limit, immutability of snapshots/refs, and the need for Agent review. It does not fully cover side effects for capture/overwrite or error behavior, which prevents a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, jargon-heavy block with no bullets, headings, or separation between the different operations, making it difficult to scan. It is information-rich but poorly structured and does not front-load a clear operation list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity dispatcher with 22 parameters, no annotations, and no output schema, it covers central citation and ETL-source workflows plus useful paging and immutability details. It is still incomplete as an invocation guide because it lacks a formal op enumeration, full parameter mapping, and explicit differentiation from the many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does add meaning to ref, text_limit, citation_contract, citation_metadata, citation_document, and wiki_root. But many parameters in the 22-param schema, such as query, span_id, block_types, output_path, render_size, and update_index, remain unexplained in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a multi-operation evidence tool and enumerates specific suboperations with concrete objects and verbs: citation_contract, csl_contract, render_citations, and the ETL source operations. It is not a tautology, though it never explicitly lists the valid op values or crisply separates itself from the large sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides workflow guidance, such as stopping paging when next_text_offset is null, capturing before reading/viewing an ETL source, and using the captured ref in CSL sources. However, it does not give explicit when-to-use versus alternatives like find_evidence_spans or verify_citation_ref, and the line 'contract describes citation formats, bundle applies them' is oblique.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_document_assetA

Fetch specific content from a document with precision.

Asset Types:

  • "table": Returns table as markdown (with page number)

  • "figure": Returns image as base64 with page number for verification

  • "section": Returns section text content

  • "full_text": Returns entire document as markdown

Args: doc_id: Document identifier asset_type: One of "table", "figure", "section", "full_text" asset_id: Asset ID from manifest (e.g., "tab_1", "fig_1_1", "sec_methods") Use "full" for full_text type max_size: Maximum image dimension (longest edge) for figures. - None (default): Use default 1024px - 0: Return original size (no resize) - N: Resize to Npx longest edge (e.g., 512, 768, 2048)

Returns: For figures: ImageContent that vision AI can directly analyze For others: TextContent in markdown format

Example: # Get Table 1 from document fetch_document_asset("abc123", "table", "tab_1")

# Get figure with default resize (1024px)
fetch_document_asset("abc123", "figure", "fig_2_1")

# Get figure at specific size (512px for smaller context)
fetch_document_asset("abc123", "figure", "fig_2_1", max_size=512)

# Get original image (no resize)
fetch_document_asset("abc123", "figure", "fig_2_1", max_size=0)
ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYes
asset_idNofull
max_sizeNo
max_charsNo
asset_typeYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses table-to-markdown, base64 figures with page numbers, full_text behavior, resizing semantics for max_size, and vision-compatible return content. It omits max_chars behavior and error/not-found cases, but the disclosed behavior is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded: purpose, asset types, args, returns, then examples. Every major section earns its place, and the examples clarify usage without excessive verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is rich in output and resizing details, which is good given the lack of an output schema. However, it is incomplete: max_chars is never explained, asset_id requirements for non-full_text types are only implied, and there is no error, authentication, or not-found behavior mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It does explain doc_id, asset_type, asset_id, and max_size thoroughly, with defaults and examples. However, max_chars is completely undocumented in both the schema and the description, leaving an entire parameter semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Fetch specific content from a document') and defines four concrete asset types with their output forms. It is clear and precise, though it does not explicitly differentiate itself from the sibling 'document_asset' or 'section' tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong internal guidance on which asset_type to use and provides multiple call examples. However, it never states when to prefer this tool over the many sibling tools, nor does it include any exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_evidence_spansC

Search citation-ready evidence spans with exact locator metadata.

Returns span-level AssetRef JSON that can be passed to table_cite.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
doc_idYes
span_idNo
span_kindsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose safety traits (e.g., read-only, permissions) or side effects. It only reveals that output is AssetRef JSON compatible with table_cite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the action verb, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, 0% schema coverage, no annotations) and the existence of an output schema, the description fails to cover parameter semantics, usage context, and behavioral details, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of the five parameters (doc_id, query, span_id, span_kinds, limit). The agent receives no guidance on parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for evidence spans with exact locator metadata and mentions the output format. It distinguishes itself from siblings by focusing on spans for citation, but does not explicitly contrast with the 'evidence' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it is for producing input to table_cite, but lacks when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docx_contentA

取得 docx 文件的可編輯 DFM 內容。

若指定 block_id,只回傳該區塊的內容;否則回傳完整 DFM。

Args: doc_id: 文件 ID(由 ingest_docx 產生) block_id: 可選,特定區塊 ID(如 p001, t001, h001)

Returns: DFM 內容或特定區塊資訊

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYes
block_idNo
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description partially discloses behavior (returns full DFM or specific block). However, it completely ignores the max_chars parameter, leaving its behavior undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. The Args list is simple and readable, though it could include max_chars for completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description misses the max_chars parameter and lacks usage guidance. It partially satisfies completeness but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains doc_id (source) and block_id (with examples), but omits max_chars entirely, which is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves editable DFM content of a docx file, with optional block filtering. It distinguishes from sibling docx tools (e.g., save_docx, ingest_docx) by focusing on retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving DFM content and mentions that doc_id comes from ingest_docx, but does not explicitly state when to use this tool vs alternatives like document or section, nor provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_job_statusA

Get the status of an ETL job.

Use this to check progress of document ingestion started with ingest_documents.

Args: job_id: Job ID returned from ingest_documents

Returns: Job status including progress, phase, and result (if completed)

Example: get_job_status("job_20251226_143000_abc12345")

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses return fields (progress, phase, result) and shows an example input, but does not discuss error handling, authentication, or rate limits. For a read-only tool this is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, followed by concise sections for arguments, returns, and an example. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool with one parameter and an output schema, the description covers all essential aspects: usage, parameter, return values, and an example. It is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, job_id, is well explained: 'Job ID returned from ingest_documents' and an example is given. This adds significant meaning beyond the schema's minimal type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the status of an ETL job' and explicitly links it to the 'ingest_documents' tool, differentiating it from siblings like 'list_jobs' or 'ingest_documents'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance: 'Use this to check progress of document ingestion started with ingest_documents.' It does not explicitly mention alternatives or when not to use, but the context is sufficient for a single-purpose tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ingest_documentsA

Process PDF files and create Document Manifests.

ETL Pipeline:

  1. Extract text (to markdown) and images

  2. Generate structured Document Manifest

  3. Index in LightRAG (if enabled)

Args: file_paths: List of absolute paths to PDF files async_mode: Kept for backwards compatibility. PDF ingestion is routed to a background job from the MCP tool layer to keep stdio clients responsive. use_marker: Backwards-compatible flag that requests the configured structured extractor. The active packaged structured route is Docling; MinerU and Marker are dependency security holds. Default False uses PyMuPDF (faster and always available). marker_max_pages_per_chunk: When using a configured structured extractor, split PDFs into fixed-size page chunks. Set 0 to use the safe automatic strategy. extract_figures: When using a configured structured extractor, control whether image crops are extracted and saved. Disable this first for image-heavy textbooks to reduce memory pressure. page_ranges: 1-indexed inclusive page ranges applied to every input file, e.g. ["1-50", "120-160"].

Returns: Job ID for tracking progress with get_job_status.

Example: # Async (recommended for large files): ingest_documents(["/papers/study1.pdf"]) # Then check status: get_job_status("job_xxx")

# With the configured structured extractor for precise source tracking:
ingest_documents(["/papers/textbook.pdf"], use_marker=True)
ParametersJSON Schema
NameRequiredDescriptionDefault
deskewNo
async_modeNo
file_pathsYes
use_markerNo
ocr_enabledNo
page_rangesNo
ocr_languageNoeng
rotate_pagesNo
extract_figuresNo
index_knowledge_graphNo
marker_max_pages_per_chunkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral transparency. It discloses that ingestion runs in a background job for async, explains backwards-compatibility flags (async_mode, use_marker), details the default extractor (PyMuPDF) and alternatives (Docling, with security holds), and warns about memory pressure with image-heavy textbooks. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Overview, ETL Pipeline, Args, Returns, Example). It is detailed yet concise, avoiding repetition. Every sentence adds value, and the use of bullet points and an example improves readability without sacrificing depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, no annotations, and a simple return type), the description is highly complete. It covers the workflow, key parameters, behavioral nuances, and provides a concrete example with follow-up status checking via get_job_status. This is sufficient for an agent to correctly invoke and monitor the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It provides detailed semantics for file_paths, async_mode, use_marker, marker_max_pages_per_chunk, extract_figures, and page_ranges. However, parameters like deskew, ocr_enabled, ocr_language, rotate_pages, and index_knowledge_graph are not described, leaving some ambiguity for these self-explanatory but still important options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary function: 'Process PDF files and create Document Manifests.' It outlines the ETL pipeline steps (extract text/images, generate manifest, index in LightRAG). This distinguishes it from siblings like parse_pdf_structure (focused on structure parsing) and convert_document (likely format conversion), making its purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context with an example for async mode ('recommended for large files') and explains when to use the configured structured extractor (for precise source tracking). However, it does not explicitly differentiate from sibling tools or state when not to use this tool, leaving some room for interpretation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ingest_docxA

攝入 .docx / .doc 文件,轉換為 DFM (Docx-Flavored Markdown) 格式。

將 docx 解析為中間表示 (IR),再轉換為可在 VS Code 中編輯的 DFM 格式。 支援複雜元素:合併表格、圖表、頁首頁尾、巨集、目錄等。 支援舊版 .doc 格式(自動透過 LibreOffice 轉換為 .docx)。

輸出目錄結構:

data/{doc_id}/
├── content.dfm     # 可編輯的 Markdown + YAML 標注
├── ir.json          # IR 快照(用於回寫)
├── original.docx    # 原始檔案備份
├── parts/           # 保留的 XML 零件
└── assets/          # 圖片和二進位資產

Args: file_path: .docx 或 .doc 檔案的絕對路徑

Returns: 攝入結果摘要(doc_id、區塊數量等)

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

无注释,描述承担全责。描述了转换流程、输出文件结构、旧版格式支持,且说明了通过 LibreOffice 转换,这提供了一些行为信息。但未涉及副作用、权限需求、失败情况或是否可逆,对于摄取工具通常安全,但描述未明确声明破坏性状态,因此部分透明。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述结构清晰,有分节(转换流程、支持元素、输出目录),开头总结了功能,后面详述细节。虽然较长,但每条信息对工具使用均有帮助,没有冗余。较复杂工具需要详细说明,因此适当,但可精简。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

工具复杂度较高(解析、转换、输出多文件),描述覆盖了主要方面:支持格式、转换中间表示、输出目录结构、支持复杂元素,并存在输出 schema 说明返回值。但缺少错误处理、性能考虑、权限需求及与兄弟工具的边缘情况,整体较完整但仍有提升空间。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

只有一个参数 file_path,schema 无描述(覆盖率为0%),但描述中 Args 部分明确说明 'file_path: .docx 或 .doc 檔案的絕對路徑',提供了参数的类型(绝对路径)和格式要求,这远超 schema 提供的信息,因此充分补偿了低覆盖率。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述明确说明工具作用:摄取 .docx/.doc 文件并转换为 DFM 格式,动词明确(攝入/轉換),资源明确(文件)且输出清晰,包含详细输出目录结构。与兄弟工具如 convert_document、save_docx 有明确区分,因为它聚焦于摄取并转换为特定文档格式。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述隐含使用场景(处理 docx/doc 文件),但未明确说明何时使用此工具而不是其他兄弟工具(如 convert_document、save_docx)。没有提供排除条件或替代方案,但由于描述了详细输出结构,用户能推断用途,但缺少显式指南。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobD

Consolidated job entrypoint over get/list/cancel.

Existing job tools stay registered for backwards compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
job_idNo
active_onlyNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose whether operations are read-only or destructive (e.g., cancel is destructive). It lacks information on permissions, side effects, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and to the point, but it sacrifices necessary detail. It is front-loaded with the core idea, but the brevity reduces usefulness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are 3 parameters (one required), no output schema, and no annotations, the description is severely incomplete. It does not explain the behavior of each operation, return format, or prerequisites, making it hard for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no additional meaning for the three parameters (op, job_id, active_only). It does not list valid values for 'op' or explain the purpose of 'job_id' and 'active_only'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Consolidated job entrypoint over get/list/cancel' but does not specify the exact operations (e.g., which actions the 'op' parameter accepts). It also mentions backwards compatibility but does not distinguish this tool from sibling tools like get_job_status and list_jobs, which presumably offer similar functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the separate get/list/cancel tools. The only hint is 'Existing job tools stay registered for backwards compatibility,' which implies that new usage should prefer this tool, but it is not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledgeC

Consolidated knowledge-graph entrypoint.

Existing consult/export tools remain registered and keep their separate contracts for clients that prefer explicit tool names.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
modeNohybrid
limitNo
queryNo
formatNosummary
doc_idsNo
user_promptNo
response_modeNostructured
evidence_limitNo
verify_referencesNo
include_referencesNo

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations existed, so the description carried the burden. However, the description fails to explain behavior like parameter orchestration, dispatch behavior, return format, or side effects. Saying 'entrypoint for consult/export' does not reveal what happens when the agent calls it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, which is concise, but the second sentence is about backward compatibility and does not clearly describe the tool's function. It could be more direct about the tool's purpose and parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complexity is high with 11 parameters, routing to sub-operations, and sibling tools relying on this entry point. The description does not address required 'op' values, parameter validation, error behavior, or the format/meaning of the response. With all field descriptions missing, the natural language must be much richer to be 'complete', but it is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema description coverage is zero percent and most parameters like 'op', 'mode', 'limit' have no defaults, the description should compensate, but it does not explain what each parameter does. The construction of 'op' values or the meaning of 'mode' is not elaborated. Given the zero coverage, the description provides no additional meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description calls it a 'Consolidated knowledge-graph entrypoint' which is vague, though it does reference 'consult/export' operations. It fails to state what distinct operation the tool performs or what it creates. The title is null, and the tool name 'knowledge' is broad, which is unhelpful.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says existing tools 'remain registered', implying a consolidated interface, but it doesn't explain when to use this tool versus the specific siblings like 'query' or 'export'. It suggests clients prefer explicit tool names, but doesn't clarify if the agent should invoke this tool as a router. The second sentence does note that alternatives exist for clients preferring explicit tool names, which provides some guidance that this is a wrapper.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsA

List all processed documents with summaries.

Returns: List of documents with doc_id, title, and asset counts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description must disclose behavioral traits. It indicates it lists processed documents but does not clarify what 'processed' means, whether there is a limit, pagination, or any side effects. The return fields are mentioned, but the scope is somewhat vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences), front-loaded with the action, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and an existing output schema, the description adequately explains the purpose and return structure. It could mention ordering or filtering options, but the tool appears to return all processed documents, so it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist in the input schema (coverage 100%). Baseline for 0 parameters is 4. The description does not add parameter information, but none is needed. The return fields are described, which adds context for parameterless invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all processed documents with summaries. The verb 'list' and resource 'processed documents' are specific. Among sibling tools, there is no other list tool for documents, making it distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., search, fetch individual document) or mention any preconditions or filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jobsA

List ETL jobs.

Args: active_only: If True, only show pending/processing jobs

Returns: List of jobs with status and progress

ParametersJSON Schema
NameRequiredDescriptionDefault
active_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clarifies the action (list) and the active_only filter, and mentions return type. However, it does not confirm idempotency/read-only nature, pagination, or performance implications, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core purpose. The structured 'Args' and 'Returns' sections are efficient, though the separation into blocks could be slightly more integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (not shown), the return description is adequate. However, the tool has only one parameter and no usage context, and lacks guidance on how to interpret results or combine with sibling tools. Overall minimal but functional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter. The description compensates fully by explaining 'active_only: If True, only show pending/processing jobs', which adds clear semantic meaning beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List ETL jobs' which clearly specifies the verb (List) and resource (ETL jobs). This distinguishes it from sibling tools like get_job_status (specific job status) and job (resource manipulation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. There is no mention of scenarios or exclusions, leaving the agent without context for tool selection among siblings like get_job_status or job.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_pdf_structureC

Create a background job using the configured structured PDF extractor.

ParametersJSON Schema
NameRequiredDescriptionDefault
deskewNo
pdf_pathYes
async_modeNo
output_dirNo
ocr_enabledNo
page_rangesNo
ocr_languageNoeng
rotate_pagesNo
extract_figuresNo
marker_max_pages_per_chunkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry full behavioral burden. It discloses that it creates a background job (implying async), but does not reveal safety, side effects, or what the job does in detail. The reader cannot tell if this is read-only, what gets modified, or what the output represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single under-specified sentence. It is not concise in a helpful way—it omits critical details. The low word count is not efficient but insufficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no annotations, and an output schema, the description is grossly incomplete. It does not describe what the parsed structure is, how the job works, what the output semantics are, or when to choose this over linked tools. The description is almost entirely inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no parameter information. It mentions 'configured structured PDF extractor' but does not explain any of the 10 parameters (e.g., ocr_enabled, page_ranges, deskew). The description fails to add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mentions 'structured PDF extractor' and 'background job' which hints at parsing PDFs, but the primary verb is 'Create a background job', which is vague and doesn't explicitly state it parses PDF structure. It does not differentiate from sibling tools like ingest_documents or convert_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description lacks any context about prerequisites, scenarios, or exclusions. It is a single statement with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_tableB

📋 表格規劃工具:Schema 設計、模板查詢、模板建表。

Operations:

  • schema: 根據問題自動規劃表格結構

  • templates: 列出內建表格模板

  • from_template: 從模板快速建立表格

Args: operation: 操作類型 question: [schema] 使用者問題 doc_ids: [schema] 相關文件 ID hints: [schema] 結構提示 template_name: [from_template] 模板名稱 title_override: [from_template] 自訂標題

Examples: plan_table("schema", question="比較三種藥物副作用") plan_table("templates") plan_table("from_template", template_name="drug_comparison")

ParametersJSON Schema
NameRequiredDescriptionDefault
hintsNo
doc_idsNo
questionNo
operationYes
template_nameNo
title_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions operations like '建表' (create table) which might imply side effects, but the tool name 'plan_table' suggests planning only. There is no clarification on whether operations are read-only or destructive, nor any authentication or rate limit information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections, bullet points, and emojis, making it easy to scan. It front-loads the tool's purpose. It is fairly concise, though it could potentially be more compact without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, 3 sub-operations) and lack of annotations, the description explains the operations and parameters but lacks details on expected output, error handling, or behavioral nuances. The presence of an output schema partially mitigates the need for return value descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds some meaning by mapping parameters to operations (e.g., '[schema] 使用者問題') and providing examples. However, the descriptions are very terse and do not explain parameter formats, constraints, or behaviors, leaving much to be inferred.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool as a table planning tool with three operations (schema, templates, from_template), which specifies the verb and resource. However, it does not explicitly differentiate from sibling tools like docx_table_edit_plan or table_draft, which also deal with table planning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples for each operation, which implicitly suggests when to use each sub-operation. However, there is no explicit guidance on when to use this tool versus alternative tools, nor are there any conditions or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_docxA

將編輯後的內容存回 .docx 檔案。

支援兩種模式:

  • DFM 模式(預設):傳入 dfm_content(.dfm 格式全文)

  • MD 模式(from_md=True):從磁碟讀取 content.md + format.yaml

回寫流程:

  1. 解析 DFM/MD → 提取修改

  2. 載入原始 IR

  3. 合併修改(格式合併策略)

  4. 重建 .docx

安全機制:若內容萎縮 > 50%,預設拒絕輸出(疑似資料遺失)。 使用 force=True 強制輸出。

若 track_changes=True,會將 DFM 中的文字修改以真正 Word Track Changes (w:del/w:ins) 寫回,供使用者在 Word 中逐項審查。

Args: doc_id: 文件 ID dfm_content: 編輯後的 DFM 全文(from_md=True 時可省略) output_path: 輸出路徑(預設為 data/{doc_id}/output.docx) from_md: 若為 True,從磁碟讀取 content.md + format.yaml 而非使用 dfm_content force: 若為 True,即使偵測到嚴重內容萎縮仍強制輸出 track_changes: 若為 True,以 Word Track Changes 寫入文字 diff revision_author: 產生追蹤修訂時使用的作者名稱

Returns: 儲存結果

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
doc_idYes
from_mdNo
dfm_contentNo
output_pathNo
track_changesNo
revision_authorNoAsset-Aware MCP

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behaviors: the safety check for content shrinkage, the force override, and the track_changes mechanism (writing w:del/w:ins). It also explains the merge strategy and rebuild process. However, it does not mention permissions, side effects, or error handling in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but well-structured: it starts with a summary, then lists modes, workflow steps, safety mechanism, and a clear parameter list. Every sentence adds value, and the structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (though not shown) and the detailed behavioral description, the description is reasonably complete. It covers modes, safety, tracking, and parameter semantics, but the return value is only briefly stated as '儲存結果' without richer detail on the result object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema coverage is reported as 0%, the description includes an Args section that explains each parameter's role (doc_id, dfm_content, output_path, from_md, force, track_changes, revision_author). This adds meaning beyond the bare schema properties, clarifying defaults and conditional behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: saving edited content back to a .docx file. It specifies two modes (DFM and MD) and outlines the workflow, distinguishing it from sibling tools like ingest_docx or convert_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use DFM mode vs MD mode (from_md=True), the safety mechanism that refuses output when content shrinks >50%, and how force and track_changes parameters alter behavior. It does not explicitly mention when not to use this tool or alternative options, but provides sufficient operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sectionD

Consolidated section navigation entrypoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
pathNo
fuzzyNo
limitNo
queryNo
doc_idYes
formatNotree
max_charsNo
max_depthNo
section_idNo
block_typesNo
include_childrenNo

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose any behavioral traits such as whether the tool is read-only, destructive, or requires specific permissions. The parameter 'op' hints at multiple behaviors, but no further details are given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence), which is concise but at the expense of essential information. It does not earn its place because it fails to clarify the tool's purpose or parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 complex parameters, no output schema, and no annotations, the description is grossly inadequate. It should explain the 'op' parameter, the meaning of each parameter, and how they interact (e.g., how path and section_id relate, what format controls, etc.).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 12 parameters with 0% description coverage (no parameter descriptions in the schema). The tool description adds no meaning to any parameter. For example, 'op' is required but not explained; 'doc_id', 'path', 'section_id', and others remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Consolidated section navigation entrypoint' gives only a vague sense of the tool's domain (sections and navigation). It does not specify what operations are possible (e.g., get, list, modify) nor distinguish it from sibling tools like 'document' or 'evidence'. The parameter 'op' likely indicates the action but is left unexplained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or context that would help an agent decide to invoke 'section' instead of other document-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_citeA

📎 表格引用管理:為儲存格附加、查詢、移除來源引用。

引用是「平行附加層」,不改變表格資料結構。 每個引用用 AssetRef 指向具體來源(PDF section、URL、使用者輸入等)。

Operations:

  • add: 新增引用到儲存格

  • get: 查詢引用摘要(cell / row / table);完整引用用 read

  • read: 完整 cell/value/citation JSON 分頁,不截斷 canonical quote/locator

  • remove: 移除引用

  • cell_history: 查看儲存格變更歷史

Args: operation: 操作類型 table_id: 表格 ID row_index: 列索引 (0-based),get 時可省略取得全表引用 column_name: 欄位名,get 時可省略取得整列引用 refs: [add] 引用列表,每項為 AssetRef dict [{"source_type":"section","doc_id":"doc_xxx","asset_id":"sec_01","excerpt":"..."}] [{"source_type":"external","url":"https://doi.org/...","label":"Smith 2024"}] [{"source_type":"user_input","excerpt":"Patient reported"}] confidence: [add] Agent 信心度 0.0~1.0 notes: [add] 備註 ref_index: [remove] 移除特定引用索引(不指定則移除整個 cell 引用) text_offset: [read] 字元起點;後續頁必須保留 citation_sha256 text_limit: [read] 每頁 1..4000 字元,可能因回應上限縮短 citation_sha256: [read] 首頁回傳的 hash,拒絕混接不同 cell/value/citation

read requires a row_id (preferred) or row_index and column_name. Concatenate text_excerpt pages at one hash, verify UTF-8 SHA-256, then parse the full JSON. Follow next_text_offset until null. Readback does not verify source or meaning.

Examples: table_cite("add", "tbl_xxx", row_index=0, column_name="Drug", refs=[{"source_type":"section","doc_id":"doc_a","asset_id":"sec_01", "excerpt":"dose was 5mg"}], confidence=0.9) table_cite("get", "tbl_xxx") # 全表引用 table_cite("get", "tbl_xxx", row_index=0) # 全列引用 table_cite("cell_history", "tbl_xxx", row_index=0, column_name="Drug")

ParametersJSON Schema
NameRequiredDescriptionDefault
refsNo
limitNo
notesNo
offsetNo
row_idNo
table_idYes
operationYes
ref_indexNo
row_indexNo
confidenceNo
text_limitNo
column_nameNo
text_offsetNo
citation_sha256No

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does it well: it discloses that citations do not modify the table structure, that read pagination must preserve citation_sha256 and follow next_text_offset, that text may be truncated by response limits, and explicitly warns that readback does not verify source or meaning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured, front-loaded with the core concept, and organized into operations, arguments, and examples. Every section earns its place and there is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is thorough for a complex polyglot tool with six operations and 14 parameters, but it omits the 'coverage' operation entirely and does not map limit/offset to any operation. Since an output schema exists, return-value shape does not need to be explained, but these gaps prevent the description from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It documents most parameters, including operation, table_id, row_index, column_name, refs with concrete AssetRef examples, confidence range, notes, ref_index, text_offset, text_limit, and citation_sha256. However, it leaves limit, offset, and the 'coverage' operation unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb/resource pair: managing source citations attached to table cells. It clearly distinguishes the tool from data-table operations by explaining that citations are a parallel attachment layer that does not change the table data structure, and it enumerates the operation modes explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives actionable intra-tool routing: 'get' returns summaries while 'read' returns full citations, row_index/column_name can be omitted for table/row-level queries, and read requires row_id or row_index+column_name. It does not explicitly name sibling tools or state when table_cite should not be used, so it misses the strongest possible usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_dataC

📝 表格資料操作:新增/取得/更新/刪除 列 & 儲存格。

Operations:

  • add_rows: 批次新增資料列

  • get_row: 取得單列(含引用)

  • update_row: 整列更新

  • delete_row: 刪除列

  • get_cell: 取得單格(含引用)

  • update_cell: 更新單格

  • clear_cell: 清除單格

Args: operation: 操作類型 table_id: 表格 ID rows: [add_rows] 資料列列表 row: [update_row] 新的列資料 row_index: [get/update/delete_row, cell ops] 列索引 (0-based) column_name: [cell ops] 欄位名 value: [update_cell] JSON 值;native 欄位使用 {kind, value} 保留型別

Examples: table_data("add_rows", "tbl_xxx", rows=[{"Drug":"A","Dose":1}]) table_data("get_row", "tbl_xxx", row_index=0) table_data("update_cell", "tbl_xxx", row_index=0, column_name="Drug", value="B")

ParametersJSON Schema
NameRequiredDescriptionDefault
rowNo
rowsNo
limitNo
valueNo
offsetNo
row_idNo
searchNo
filtersNo
table_idYes
operationYes
row_indexNo
column_nameNo
include_coverageNo
selected_columnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure and provides some useful context: update_row is described as a full-row update, get_row/get_cell are said to include citations, and native field values preserve type via {kind, value}. However, it does not mention mutation side effects, reversibility, permissions, pagination, or what happens with deleted rows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into operation list, argument mapping, and examples, making it easy to scan. It is somewhat verbose, but each section earns its place and the examples add practical clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 14 parameters and 9 schema-defined operations, the description is incomplete: it documents only 7 operations and provides no coverage of query/filter/pagination behavior. The presence of an output schema helps for return values, but the missing query_rows operation and multiple undocumented parameters leave important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It does explain operation, table_id, rows, row, row_index, column_name, and value, and includes useful examples. But it omits search, filters, limit, offset, row_id, include_coverage, selected_columns, and the query_rows operation, leaving several parameters semantically unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource ('table data') and lists clear row/cell operations including add, get, update, delete, and cell-level variants. It is understandable on its own, though it does not explicitly differentiate from sibling table tools like table_manage or table_cite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description labels each operation and shows associated arguments and examples, but it never states when to prefer this tool over alternatives or when to choose one operation over another. Notably, query_rows is missing from the operation list despite being a valid enum value in the schema, leaving a usage gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_draftA

📝 草稿工作流:建立、更新、新增資料、恢復、提交。

草稿會自動保存,即使對話中斷也能恢復。 適合長時間的表格建立流程。

Operations:

  • create: 建立草稿

  • update: 更新草稿

  • add_rows: 批次新增資料到草稿

  • resume: 恢復草稿(Token-efficient)

  • commit: 草稿轉正式表格

  • list: 列出草稿

  • delete: 刪除草稿

Args: operation: 操作類型 draft_id: [大部分操作] 草稿 ID title: [create/update] 標題 intent: [create/update] comparison / citation / summary proposed_columns: [create/update] 欄位定義 extraction_plan: [create/update] 抽取計畫 source_doc_ids: [create/update] 來源文件 ID source_sections: [create/update] 來源章節 ID notes: [create/update] 工作筆記 rows: [add_rows] 資料列

Examples: table_draft("create", title="Drug Comparison", intent="comparison", proposed_columns=[{"name":"Drug","type":"text"}]) table_draft("add_rows", draft_id="draft_xxx", rows=[{"Drug":"A"}]) table_draft("commit", draft_id="draft_xxx")

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNo
notesNo
titleNo
intentNo
draft_idNo
operationYes
source_doc_idsNo
extraction_planNo
source_sectionsNo
proposed_columnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses auto-save and resume after interruption. However, with no annotations, it lacks details on destructive consequences (e.g., delete), authentication needs, or rate limits. Moderate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections, emoji, bullet list, and examples. Not overly verbose but could be slightly more concise. Overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters and operation variants, the description covers all parameter uses, provides examples, and mentions auto-save. Output schema exists but is not described; still, the description is fairly complete for a draft tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds significant value by explaining each parameter's purpose per operation (e.g., draft_id, rows). Provides clarity beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a draft workflow for tables, listing all operations (create, update, add_rows, resume, commit, list, delete). It distinguishes from sibling tools like table_manage by focusing on the draft lifecycle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions suitability for long table creation processes and auto-save/resume. Provides operation-specific parameter documentation and examples, but does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_historyA

📜 表格歷史與統計:變更紀錄、Token 估算。

Operations:

  • changes: 查看表格變更歷史

  • tokens: 估算 Token 消耗

Args: operation: 操作類型 table_id: 表格 ID [changes, tokens] limit: [changes] 最近 N 筆 draft_id: [tokens] 草稿 ID(可選) text: [tokens] 任意文字(可選)

Examples: table_history("changes", "tbl_xxx") table_history("tokens", "tbl_xxx")

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
limitNo
draft_idNo
table_idNo
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full behavioral disclosure. It describes operations and parameters but does not state safety (read-only vs mutation), permissions, side effects, or limitations. Output schema exists but return behavior is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, about 10 lines, with structured headers and bullet points. It front-loads the purpose and every sentence earns its place without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two operations and five parameters. The description explains both modes and parameter usage but does not describe return format or prerequisites. Output schema exists, so return values are covered externally. Slightly more context on what each operation returns would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds significant value by mapping parameters to operations (e.g., limit only for changes, draft_id/text optional for tokens) and providing examples. This compensates well for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides table history and token estimation, listing two distinct operations (changes and tokens). This distinguishes it from sibling tools like table_data or table_manage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. Examples are provided but no when-to-use or when-not-to-use advice, and sibling tools are not mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_manageB

📊 表格管理工具:建立、刪除、列表、預覽、渲染、Schema 演進。

Operations:

  • create: 建立新表格

  • delete: 刪除表格

  • list: 列出所有表格

  • preview: Markdown 預覽

  • resume: 恢復工作(Token-efficient)

  • render: 渲染為 Excel/Markdown

  • add_column: 新增欄位

  • remove_column: 移除欄位

  • rename_column: 重新命名欄位

Args: operation: 操作類型 intent: [create] comparison / citation / summary title: [create] 表格標題 columns: [create] 欄位列表 [{"name":"Drug","type":"text"}] source_description: [create] 資料來源 table_id: [大部分操作] 表格 ID limit: [preview] 預覽行數 format: [render] 輸出格式 filename: [render] 檔案名稱 column_name: [add/remove/rename_column] 欄位名 column_type: [add_column] 欄位類型 required: [add_column] 是否必填 default_value: [add_column] 預設值 enum_values: [add_column] enum 可選值 new_name: [rename_column] 新欄位名

Examples: table_manage("create", intent="comparison", title="Drug Compare", columns=[{"name":"Drug","type":"text"}]) table_manage("list") table_manage("preview", table_id="tbl_xxx") table_manage("add_column", table_id="tbl_xxx", column_name="Route", column_type="enum", enum_values=["IV","IM"])

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleNo
formatNoexcel
intentNo
offsetNo
columnsNo
filenameNooutput
new_nameNo
requiredNo
table_idNo
operationYes
column_nameNo
column_typeNotext
enum_valuesNo
artifact_onlyNo
default_valueNo
source_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full responsibility for revealing side effects. It discloses almost nothing about consequences: delete and remove_column are listed by name but with no warning about data loss or reversibility, and there is no mention of persistence, authorization, or side-effect profile. The only behavioral trait added is 'resume' being token-efficient, which is far too little for a mutation-heavy tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into summary, operations, args, and examples, with the core purpose front-loaded. The bullet lists are scannable and each entry carries operational meaning. Although long, the length is proportionate to a 9-operation dispatcher and the examples earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 parameters and 9 operations, the description covers operation semantics, per-operation args, and examples, and an output schema exists to document return values. However, it omits the destructive behavior of delete and remove_column, the meaning of offset and artifact_only, and a required-parameter matrix per operation. These gaps matter for safe, correct invocation, so completeness is only partial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args section maps nearly every parameter to the operation(s) that use it, e.g., intent for create, table_id for most operations, and enum_values for add_column. It also provides a concrete JSON example for columns and a full add_column example. It omits offset and artifact_only, so the compensation is strong but not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear umbrella statement (建立、刪除、列表、預覽、渲染、Schema 演進) and enumerates nine operation verbs, each tied to a resource (表格/欄位). This makes it clear the tool manages table lifecycle and schema. It doesn't explicitly differentiate it from sibling table tools like table_data, table_cite, or docx_table, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Operation-specific arg annotations ([create], [preview], [render], etc.) and examples imply when each operation is used, and the 'resume' entry hints at token-efficient workflows. However, there is no explicit guidance on when to choose table_manage over sibling table tools, and no when-not or exclusion conditions. This is adequate but not explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_citation_refC

Verify a span-level AssetRef against the persisted citation index.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It simply states the action without indicating side effects, authentication needs, or whether it is read-only. The description is too brief to inform an agent about behavioral outcomes beyond a simple verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it sacrifices necessary detail. It is front-loaded with the action but lacks bullet points or additional context that would improve usability. It earns a 3 as it is neither overly verbose nor sufficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested object parameter, no parameter descriptions, no annotations), the description is incomplete. It does not explain input formats, return values (output schema exists but is not discussed), or error scenarios. The description is minimally viable but leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not add any meaning to the 'ref' parameter. It does not explain what 'span-level AssetRef' entails, expected structure, or examples. The agent has no parameter guidance beyond the schema type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the action 'verify' and the resource 'span-level AssetRef against the persisted citation index'. It is clear about what the tool does, though the term 'span-level AssetRef' may be jargon. It does not differentiate from sibling tools like 'citation_bundle' or 'evidence', but the purpose is adequately stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or conditions that would help an agent decide to use this tool over siblings like 'find_evidence_spans' or 'document_asset'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.4.1
    • Changeddocument69 fields changed
      • addedInput schema / $defs / DocxNoteIdChange
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "new_note_id": {
        +      "maximum": 2147483647,
        +      "minimum": 1,
        +      "title": "New Note Id",
        +      "type": "integer"
        +    },
        +    "note_id": {
        +      "maximum": 2147483647,
        +      "minimum": -2147483648,
        +      "title": "Note Id",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "note_id",
        +    "new_note_id"
        +  ],
        +  "title": "DocxNoteIdChange",
        +  "type": "object"
        +}
      • addedInput schema / $defs / DocxNoteRemap
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "mappings": {
        +      "items": {
        +        "$ref": "#/$defs/DocxNoteIdChange"
        +      },
        +      "maxItems": 20000,
        +      "minItems": 1,
        +      "title": "Mappings",
        +      "type": "array"
        +    },
        +    "note_kind": {
        +      "enum": [
        +        "footnote",
        +        "endnote"
        +      ],
        +      "title": "Note Kind",
        +      "type": "string"
        +    },
        +    "op": {
        +      "const": "remap_ids",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "part": {
        +      "maxLength": 1024,
        +      "minLength": 1,
        +      "title": "Part",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "note_kind",
        +    "part",
        +    "mappings"
        +  ],
        +  "title": "DocxNoteRemap",
        +  "type": "object"
        +}
      • addedInput schema / $defs / DocxNotesUpdate / properties / edits / items / discriminator / mapping / remap_ids
        Added value: +"#/$defs/DocxNoteRemap"
      • changedInput schema / $defs / DocxNotesUpdate / properties / edits / items / oneOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/DocxNoteCreate"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxNoteDelete"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/DocxNoteCreate"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteDelete"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteRemap"
        +  }
        +]
      • changedInput schema / $defs / NativeDerivation / properties / sources / items / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/NativeCellReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDocxBlockReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxStoryReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxNoteReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePptxReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfRegionReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDelimitedReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeFileReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeSelectionReference"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/NativeCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDocxBlockReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxStoryReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePptxReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfAnnotationReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfFieldReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDelimitedReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeODSCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageFrameReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeFileReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeSelectionReference"
        +  }
        +]
      • changedInput schema / $defs / NativeDerivation / properties / target / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/NativeCellReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDocxBlockReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxStoryReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxNoteReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePptxReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfRegionReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDelimitedReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeFileReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeSelectionReference"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/NativeCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDocxBlockReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxStoryReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePptxReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfAnnotationReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfFieldReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDelimitedReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeODSCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageFrameReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeFileReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeSelectionReference"
        +  }
        +]
      • changedInput schema / $defs / NativeDocumentRequest / properties / for_op / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "contract",
        -      "contract_details",
        -      "schema",
        -      "register",
        -      "create",
        -      "list",
        -      "inspect",
        -      "project_workbook_table",
        -      "read_table_workspace",
        -      "apply_table_workspace",
        -      "create_workbook_from_table",
        -      "read_workbook",
        -      "create_workbook_rendition",
        -      "read_rendition",
        -      "update_worksheet_grid",
        -      "read_worksheet_layout",
        -      "update_worksheet_layout",
        -      "update_workbook_table",
        -      "add_workbook_table",
        -      "add_worksheets",
        -      "rename_worksheet",
        -      "reorder_worksheets",
        -      "delete_worksheets",
        -      "read_cell",
        -      "create_delimited",
        -      "read_delimited",
        -      "read_delimited_cell",
        -      "update_delimited",
        -      "create_pdf",
        -      "read_pdf",
        -      "read_pdf_page",
        -      "read_pdf_region",
        -      "render_pdf_page",
        -      "add_pdf_pages",
        -      "update_pdf",
        -      "delete_pdf_pages",
        -      "reorder_pdf_pages",
        -      "read_pptx_layouts",
        -      "render_pptx_slide",
        -      "add_pptx_slides",
        -      "delete_pptx_slides",
        -      "reorder_pptx_slides",
        -      "create_pptx",
        -      "add_pptx_pictures",
        -      "replace_pptx_pictures",
        -      "read_pptx_picture",
        -      "extract_pptx_picture",
        -      "read_pptx",
        -      "read_pptx_shape",
        -      "update_pptx",
        -      "add_pptx_tables",
        -      "update_pptx_table_grid",
        -      "add_pptx_shapes",
        -      "delete_pptx_shapes",
        -      "read_docx",
        -      "read_docx_notes",
        -      "read_docx_note",
        -      "update_docx_note",
        -      "update_docx_notes",
        -      "read_docx_stories",
        -      "read_docx_story",
        -      "update_docx_story",
        -      "read_docx_story_structure",
        -      "update_docx_story_structure",
        -      "render_docx_page",
        -      "create_docx",
        -      "add_docx_blocks",
        -      "delete_docx_blocks",
        -      "read_docx_block",
        -      "read_docx_table",
        -      "update_docx_table_grid",
        -      "update_docx",
        -      "verify",
        -      "read_selection",
        -      "record_derivation",
        -      "read_derivations",
        -      "retract_derivation",
        -      "verify_derivation",
        -      "export_wiki",
        -      "update",
        -      "history",
        -      "publish",
        -      "writeback",
        -      "refresh",
        -      "archive"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "contract",
        +      "contract_details",
        +      "schema",
        +      "register",
        +      "create",
        +      "list",
        +      "inspect",
        +      "project_workbook_table",
        +      "read_table_workspace",
        +      "apply_table_workspace",
        +      "create_workbook_from_table",
        +      "read_workbook",
        +      "create_workbook_rendition",
        +      "read_rendition",
        +      "update_worksheet_grid",
        +      "read_worksheet_layout",
        +      "update_worksheet_layout",
        +      "update_workbook_table",
        +      "add_workbook_table",
        +      "add_worksheets",
        +      "rename_worksheet",
        +      "reorder_worksheets",
        +      "delete_worksheets",
        +      "read_cell",
        +      "create_ods",
        +      "read_ods",
        +      "read_ods_cell",
        +      "update_ods",
        +      "read_ods_dependencies",
        +      "rename_ods_table",
        +      "create_delimited",
        +      "read_delimited",
        +      "read_delimited_cell",
        +      "update_delimited",
        +      "create_pdf",
        +      "create_image",
        +      "extract_image",
        +      "compose_images",
        +      "read_image",
        +      "read_image_frame",
        +      "render_image_frame",
        +      "read_image_region",
        +      "update_image",
        +      "read_pdf",
        +      "read_pdf_page",
        +      "read_pdf_region",
        +      "read_pdf_annotations",
        +      "read_pdf_annotation",
        +      "update_pdf_annotations",
        +      "read_pdf_fields",
        +      "read_pdf_field",
        +      "update_pdf_fields",
        +      "render_pdf_page",
        +      "add_pdf_pages",
        +      "update_pdf",
        +      "delete_pdf_pages",
        +      "reorder_pdf_pages",
        +      "read_pptx_layouts",
        +      "render_pptx_slide",
        +      "add_pptx_slides",
        +      "delete_pptx_slides",
        +      "reorder_pptx_slides",
        +      "create_pptx",
        +      "add_pptx_pictures",
        +      "replace_pptx_pictures",
        +      "read_pptx_picture",
        +      "extract_pptx_picture",
        +      "read_pptx",
        +      "read_pptx_shape",
        +      "update_pptx",
        +      "add_pptx_tables",
        +      "update_pptx_table_grid",
        +      "add_pptx_shapes",
        +      "delete_pptx_shapes",
        +      "read_docx",
        +      "read_docx_notes",
        +      "read_docx_note",
        +      "update_docx_note",
        +      "update_docx_notes",
        +      "read_docx_stories",
        +      "read_docx_story",
        +      "update_docx_story",
        +      "read_docx_story_structure",
        +      "update_docx_story_structure",
        +      "render_docx_page",
        +      "create_docx",
        +      "add_docx_blocks",
        +      "delete_docx_blocks",
        +      "read_docx_block",
        +      "read_docx_table",
        +      "update_docx_table_grid",
        +      "update_docx",
        +      "verify",
        +      "read_selection",
        +      "record_derivation",
        +      "read_derivations",
        +      "retract_derivation",
        +      "verify_derivation",
        +      "export_wiki",
        +      "update",
        +      "history",
        +      "publish",
        +      "writeback",
        +      "refresh",
        +      "archive"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_catalog_sha256
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Image Catalog Sha256"
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_color_policy
        Added value: +{
        +  "default": "embedded_to_srgb",
        +  "enum": [
        +    "embedded_to_srgb",
        +    "unmanaged"
        +  ],
        +  "title": "Image Color Policy",
        +  "type": "string"
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_compose
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageCompose"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_create
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageBlank"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_extract
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageExtract"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_locator
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageFrameLocator"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_region
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageRegionSelector"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / image_update
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeImageRevisionPlan"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / ods_create
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeODSCreate"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / ods_locator
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeODSCellLocator"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / ods_table_rename
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeODSTableRename"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / ods_text_sha256
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Ods Text Sha256"
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / ods_update
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeODSUpdate"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • changedInput schema / $defs / NativeDocumentRequest / properties / op / enum
        Previous value: -[
        -  "contract",
        -  "contract_details",
        -  "schema",
        -  "register",
        -  "create",
        -  "list",
        -  "inspect",
        -  "project_workbook_table",
        -  "read_table_workspace",
        -  "apply_table_workspace",
        -  "create_workbook_from_table",
        -  "read_workbook",
        -  "create_workbook_rendition",
        -  "read_rendition",
        -  "update_worksheet_grid",
        -  "read_worksheet_layout",
        -  "update_worksheet_layout",
        -  "update_workbook_table",
        -  "add_workbook_table",
        -  "add_worksheets",
        -  "rename_worksheet",
        -  "reorder_worksheets",
        -  "delete_worksheets",
        -  "read_cell",
        -  "create_delimited",
        -  "read_delimited",
        -  "read_delimited_cell",
        -  "update_delimited",
        -  "create_pdf",
        -  "read_pdf",
        -  "read_pdf_page",
        -  "read_pdf_region",
        -  "render_pdf_page",
        -  "add_pdf_pages",
        -  "update_pdf",
        -  "delete_pdf_pages",
        -  "reorder_pdf_pages",
        -  "read_pptx_layouts",
        -  "render_pptx_slide",
        -  "add_pptx_slides",
        -  "delete_pptx_slides",
        -  "reorder_pptx_slides",
        -  "create_pptx",
        -  "add_pptx_pictures",
        -  "replace_pptx_pictures",
        -  "read_pptx_picture",
        -  "extract_pptx_picture",
        -  "read_pptx",
        -  "read_pptx_shape",
        -  "update_pptx",
        -  "add_pptx_tables",
        -  "update_pptx_table_grid",
        -  "add_pptx_shapes",
        -  "delete_pptx_shapes",
        -  "read_docx",
        -  "read_docx_notes",
        -  "read_docx_note",
        -  "update_docx_note",
        -  "update_docx_notes",
        -  "read_docx_stories",
        -  "read_docx_story",
        -  "update_docx_story",
        -  "read_docx_story_structure",
        -  "update_docx_story_structure",
        -  "render_docx_page",
        -  "create_docx",
        -  "add_docx_blocks",
        -  "delete_docx_blocks",
        -  "read_docx_block",
        -  "read_docx_table",
        -  "update_docx_table_grid",
        -  "update_docx",
        -  "verify",
        -  "read_selection",
        -  "record_derivation",
        -  "read_derivations",
        -  "retract_derivation",
        -  "verify_derivation",
        -  "export_wiki",
        -  "update",
        -  "history",
        -  "publish",
        -  "writeback",
        -  "refresh",
        -  "archive"
        -]New value: +[
        +  "contract",
        +  "contract_details",
        +  "schema",
        +  "register",
        +  "create",
        +  "list",
        +  "inspect",
        +  "project_workbook_table",
        +  "read_table_workspace",
        +  "apply_table_workspace",
        +  "create_workbook_from_table",
        +  "read_workbook",
        +  "create_workbook_rendition",
        +  "read_rendition",
        +  "update_worksheet_grid",
        +  "read_worksheet_layout",
        +  "update_worksheet_layout",
        +  "update_workbook_table",
        +  "add_workbook_table",
        +  "add_worksheets",
        +  "rename_worksheet",
        +  "reorder_worksheets",
        +  "delete_worksheets",
        +  "read_cell",
        +  "create_ods",
        +  "read_ods",
        +  "read_ods_cell",
        +  "update_ods",
        +  "read_ods_dependencies",
        +  "rename_ods_table",
        +  "create_delimited",
        +  "read_delimited",
        +  "read_delimited_cell",
        +  "update_delimited",
        +  "create_pdf",
        +  "create_image",
        +  "extract_image",
        +  "compose_images",
        +  "read_image",
        +  "read_image_frame",
        +  "render_image_frame",
        +  "read_image_region",
        +  "update_image",
        +  "read_pdf",
        +  "read_pdf_page",
        +  "read_pdf_region",
        +  "read_pdf_annotations",
        +  "read_pdf_annotation",
        +  "update_pdf_annotations",
        +  "read_pdf_fields",
        +  "read_pdf_field",
        +  "update_pdf_fields",
        +  "render_pdf_page",
        +  "add_pdf_pages",
        +  "update_pdf",
        +  "delete_pdf_pages",
        +  "reorder_pdf_pages",
        +  "read_pptx_layouts",
        +  "render_pptx_slide",
        +  "add_pptx_slides",
        +  "delete_pptx_slides",
        +  "reorder_pptx_slides",
        +  "create_pptx",
        +  "add_pptx_pictures",
        +  "replace_pptx_pictures",
        +  "read_pptx_picture",
        +  "extract_pptx_picture",
        +  "read_pptx",
        +  "read_pptx_shape",
        +  "update_pptx",
        +  "add_pptx_tables",
        +  "update_pptx_table_grid",
        +  "add_pptx_shapes",
        +  "delete_pptx_shapes",
        +  "read_docx",
        +  "read_docx_notes",
        +  "read_docx_note",
        +  "update_docx_note",
        +  "update_docx_notes",
        +  "read_docx_stories",
        +  "read_docx_story",
        +  "update_docx_story",
        +  "read_docx_story_structure",
        +  "update_docx_story_structure",
        +  "render_docx_page",
        +  "create_docx",
        +  "add_docx_blocks",
        +  "delete_docx_blocks",
        +  "read_docx_block",
        +  "read_docx_table",
        +  "update_docx_table_grid",
        +  "update_docx",
        +  "verify",
        +  "read_selection",
        +  "record_derivation",
        +  "read_derivations",
        +  "retract_derivation",
        +  "verify_derivation",
        +  "export_wiki",
        +  "update",
        +  "history",
        +  "publish",
        +  "writeback",
        +  "refresh",
        +  "archive"
        +]
      • addedInput schema / $defs / NativeDocumentRequest / properties / pdf_annotation_locator
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/PdfAnnotationLocator"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / pdf_annotations_update
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/PdfAnnotationsUpdate"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / pdf_field_locator
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/PdfFieldLocator"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / pdf_field_text_sha256
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Complete PDF field response hash; required for text continuation.",
        +  "title": "Pdf Field Text Sha256"
        +}
      • addedInput schema / $defs / NativeDocumentRequest / properties / pdf_fields_update
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/PdfFieldsUpdate"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • changedInput schema / $defs / NativeDocumentRequest / properties / reference / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/NativeCellReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDocxBlockReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxStoryReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxNoteReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePptxReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfRegionReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDelimitedReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeFileReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeSelectionReference"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/NativeCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDocxBlockReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxStoryReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePptxReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfAnnotationReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfFieldReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDelimitedReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeODSCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageFrameReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeFileReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeSelectionReference"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / $defs / NativeImageBlank
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "height": {
        +      "maximum": 32000,
        +      "minimum": 1,
        +      "title": "Height",
        +      "type": "integer"
        +    },
        +    "name": {
        +      "maxLength": 200,
        +      "minLength": 5,
        +      "title": "Name",
        +      "type": "string"
        +    },
        +    "rgba": {
        +      "items": {
        +        "maximum": 255,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "title": "Rgba",
        +      "type": "array"
        +    },
        +    "width": {
        +      "maximum": 32000,
        +      "minimum": 1,
        +      "title": "Width",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "width",
        +    "height",
        +    "rgba"
        +  ],
        +  "title": "NativeImageBlank",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageCompose
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "frames": {
        +      "items": {
        +        "$ref": "#/$defs/NativeImageFrameInput"
        +      },
        +      "maxItems": 128,
        +      "minItems": 1,
        +      "title": "Frames",
        +      "type": "array"
        +    },
        +    "metadata_policy": {
        +      "const": "pixels_only",
        +      "title": "Metadata Policy",
        +      "type": "string"
        +    },
        +    "name": {
        +      "maxLength": 200,
        +      "minLength": 5,
        +      "title": "Name",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "frames",
        +    "metadata_policy"
        +  ],
        +  "title": "NativeImageCompose",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageExtract
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "metadata_policy": {
        +      "const": "pixels_only",
        +      "title": "Metadata Policy",
        +      "type": "string"
        +    },
        +    "name": {
        +      "maxLength": 200,
        +      "minLength": 5,
        +      "title": "Name",
        +      "type": "string"
        +    },
        +    "pixel_policy": {
        +      "enum": [
        +        "preserve_decoded",
        +        "srgb_rgba8"
        +      ],
        +      "title": "Pixel Policy",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "region": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/NativeImageRegionSelector"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "reference",
        +    "pixel_policy",
        +    "metadata_policy"
        +  ],
        +  "title": "NativeImageExtract",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameDelete
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "before": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "op": {
        +      "const": "delete",
        +      "default": "delete",
        +      "title": "Op",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "before"
        +  ],
        +  "title": "NativeImageFrameDelete",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameInput
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "pixel_policy": {
        +      "enum": [
        +        "preserve_decoded",
        +        "srgb_rgba8"
        +      ],
        +      "title": "Pixel Policy",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "region": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/NativeImageRegionSelector"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "required": [
        +    "reference",
        +    "pixel_policy"
        +  ],
        +  "title": "NativeImageFrameInput",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameInsert
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "after": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "op": {
        +      "const": "insert",
        +      "default": "insert",
        +      "title": "Op",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "after"
        +  ],
        +  "title": "NativeImageFrameInsert",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameLocator
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "frame_index": {
        +      "exclusiveMaximum": 128,
        +      "minimum": 0,
        +      "title": "Frame Index",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "frame_index"
        +  ],
        +  "title": "NativeImageFrameLocator",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameMap
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "after": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "before": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "metadata": {
        +      "default": "preserve_decoder_metadata",
        +      "enum": [
        +        "preserve_decoder_metadata",
        +        "replace"
        +      ],
        +      "title": "Metadata",
        +      "type": "string"
        +    },
        +    "op": {
        +      "const": "map",
        +      "default": "map",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "pixels": {
        +      "default": "preserve_decoded",
        +      "enum": [
        +        "preserve_decoded",
        +        "replace"
        +      ],
        +      "title": "Pixels",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "before",
        +    "after"
        +  ],
        +  "title": "NativeImageFrameMap",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageFrameReference
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asset_id": {
        +      "pattern": "^file_[a-f0-9]{32}$",
        +      "title": "Asset Id",
        +      "type": "string"
        +    },
        +    "locator": {
        +      "$ref": "#/$defs/NativeImageFrameLocator"
        +    },
        +    "revision": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Revision",
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "const": "native-image-frame-ref-v1",
        +      "default": "native-image-frame-ref-v1",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "value_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Value Sha256",
        +      "type": "string"
        +    },
        +    "verification_scope": {
        +      "const": "immutable_decoded_image_frame",
        +      "default": "immutable_decoded_image_frame",
        +      "title": "Verification Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "asset_id",
        +    "revision",
        +    "locator",
        +    "value_sha256"
        +  ],
        +  "title": "NativeImageFrameReference",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageRegionReference
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asset_id": {
        +      "pattern": "^file_[a-f0-9]{32}$",
        +      "title": "Asset Id",
        +      "type": "string"
        +    },
        +    "parent": {
        +      "$ref": "#/$defs/NativeImageFrameReference"
        +    },
        +    "revision": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Revision",
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "const": "native-image-region-ref-v1",
        +      "default": "native-image-region-ref-v1",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "selector": {
        +      "$ref": "#/$defs/NativeImageRegionSelector"
        +    },
        +    "value_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Value Sha256",
        +      "type": "string"
        +    },
        +    "verification_scope": {
        +      "const": "immutable_image_frame_region",
        +      "default": "immutable_image_frame_region",
        +      "title": "Verification Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "asset_id",
        +    "revision",
        +    "parent",
        +    "selector",
        +    "value_sha256"
        +  ],
        +  "title": "NativeImageRegionReference",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageRegionSelector
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "coordinate_system": {
        +      "const": "displayed_frame_fraction",
        +      "default": "displayed_frame_fraction",
        +      "title": "Coordinate System",
        +      "type": "string"
        +    },
        +    "rect": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "title": "Rect",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "rect"
        +  ],
        +  "title": "NativeImageRegionSelector",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeImageRevisionPlan
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "candidate": {
        +      "$ref": "#/$defs/NativeFileReference"
        +    },
        +    "container_policy": {
        +      "const": "accept_exact_candidate_bytes",
        +      "title": "Container Policy",
        +      "type": "string"
        +    },
        +    "expected_catalog_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Expected Catalog Sha256",
        +      "type": "string"
        +    },
        +    "frames": {
        +      "items": {
        +        "discriminator": {
        +          "mapping": {
        +            "delete": "#/$defs/NativeImageFrameDelete",
        +            "insert": "#/$defs/NativeImageFrameInsert",
        +            "map": "#/$defs/NativeImageFrameMap"
        +          },
        +          "propertyName": "op"
        +        },
        +        "oneOf": [
        +          {
        +            "$ref": "#/$defs/NativeImageFrameMap"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeImageFrameInsert"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeImageFrameDelete"
        +          }
        +        ]
        +      },
        +      "maxItems": 256,
        +      "minItems": 1,
        +      "title": "Frames",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "candidate",
        +    "expected_catalog_sha256",
        +    "frames",
        +    "container_policy"
        +  ],
        +  "title": "NativeImageRevisionPlan",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSCellLocator
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "column": {
        +      "exclusiveMaximum": 16384,
        +      "minimum": 0,
        +      "title": "Column",
        +      "type": "integer"
        +    },
        +    "part": {
        +      "const": "content.xml",
        +      "default": "content.xml",
        +      "title": "Part",
        +      "type": "string"
        +    },
        +    "row": {
        +      "exclusiveMaximum": 1048576,
        +      "minimum": 0,
        +      "title": "Row",
        +      "type": "integer"
        +    },
        +    "table_index": {
        +      "maximum": 255,
        +      "minimum": 0,
        +      "title": "Table Index",
        +      "type": "integer"
        +    },
        +    "table_name": {
        +      "maxLength": 1024,
        +      "minLength": 1,
        +      "title": "Table Name",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "table_index",
        +    "table_name",
        +    "row",
        +    "column"
        +  ],
        +  "title": "NativeODSCellLocator",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSCellReference
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asset_id": {
        +      "pattern": "^file_[a-f0-9]{32}$",
        +      "title": "Asset Id",
        +      "type": "string"
        +    },
        +    "locator": {
        +      "$ref": "#/$defs/NativeODSCellLocator"
        +    },
        +    "revision": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Revision",
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "const": "native-ods-cell-ref-v1",
        +      "default": "native-ods-cell-ref-v1",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "value_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Value Sha256",
        +      "type": "string"
        +    },
        +    "verification_scope": {
        +      "const": "immutable_native_representation",
        +      "default": "immutable_native_representation",
        +      "title": "Verification Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "asset_id",
        +    "revision",
        +    "locator",
        +    "value_sha256"
        +  ],
        +  "title": "NativeODSCellReference",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSCellUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "display_policy": {
        +      "const": "replace_paragraphs_preserve_cell_style",
        +      "title": "Display Policy",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/NativeODSCellReference"
        +    },
        +    "value": {
        +      "$ref": "#/$defs/NativeODSValue"
        +    }
        +  },
        +  "required": [
        +    "reference",
        +    "value",
        +    "display_policy"
        +  ],
        +  "title": "NativeODSCellUpdate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSCreate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "name": {
        +      "default": "workbook.ods",
        +      "maxLength": 200,
        +      "minLength": 5,
        +      "title": "Name",
        +      "type": "string"
        +    },
        +    "tables": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 256,
        +      "minItems": 1,
        +      "title": "Tables",
        +      "type": "array"
        +    }
        +  },
        +  "title": "NativeODSCreate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSTableRename
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "One revision-bound table identity and the complete dependency inventory.",
        +  "properties": {
        +    "dependencies_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Dependencies Sha256",
        +      "type": "string"
        +    },
        +    "new_name": {
        +      "maxLength": 1024,
        +      "minLength": 1,
        +      "title": "New Name",
        +      "type": "string"
        +    },
        +    "table_index": {
        +      "maximum": 255,
        +      "minimum": 0,
        +      "title": "Table Index",
        +      "type": "integer"
        +    },
        +    "table_name": {
        +      "maxLength": 1024,
        +      "minLength": 1,
        +      "title": "Table Name",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "table_index",
        +    "table_name",
        +    "new_name",
        +    "dependencies_sha256"
        +  ],
        +  "title": "NativeODSTableRename",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "cells": {
        +      "items": {
        +        "$ref": "#/$defs/NativeODSCellUpdate"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "title": "Cells",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "cells"
        +  ],
        +  "title": "NativeODSUpdate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / NativeODSValue
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "currency": {
        +      "anyOf": [
        +        {
        +          "pattern": "^[A-Z]{3}$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Currency"
        +    },
        +    "kind": {
        +      "default": "string",
        +      "enum": [
        +        "string",
        +        "float",
        +        "percentage",
        +        "currency",
        +        "boolean",
        +        "date",
        +        "time",
        +        "formula",
        +        "blank"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "value": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Value"
        +    }
        +  },
        +  "title": "NativeODSValue",
        +  "type": "object"
        +}
      • changedInput schema / $defs / NativeSelectionReference / properties / parent / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/$defs/NativeCellReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDocxBlockReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxStoryReference"
        -  },
        -  {
        -    "$ref": "#/$defs/DocxNoteReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePptxReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativePdfRegionReference"
        -  },
        -  {
        -    "$ref": "#/$defs/NativeDelimitedReference"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/NativeCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDocxBlockReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxStoryReference"
        +  },
        +  {
        +    "$ref": "#/$defs/DocxNoteReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePptxReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfAnnotationReference"
        +  },
        +  {
        +    "$ref": "#/$defs/PdfFieldReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativePdfRegionReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeDelimitedReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeODSCellReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageFrameReference"
        +  },
        +  {
        +    "$ref": "#/$defs/NativeImageRegionReference"
        +  }
        +]
      • addedInput schema / $defs / PdfAnnotationAppearance
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Coordinates are fractions of the displayed, rotated CropBox.",
        +  "oneOf": [
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "border_width"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Text"
        +        },
        +        "point": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "point"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "FreeText"
        +        },
        +        "rect": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "rect"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "border_width"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Highlight"
        +        },
        +        "quads": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "quads"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "border_width"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Underline"
        +        },
        +        "quads": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "quads"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "border_width"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "StrikeOut"
        +        },
        +        "quads": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "quads"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "border_width"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Squiggly"
        +        },
        +        "quads": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "quads"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Square"
        +        },
        +        "rect": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "rect"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Circle"
        +        },
        +        "rect": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "rect"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Line"
        +        },
        +        "vertices": {
        +          "maxItems": 2,
        +          "minItems": 2,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "vertices"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "PolyLine"
        +        },
        +        "vertices": {
        +          "minItems": 2,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "vertices"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "strokes"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Polygon"
        +        },
        +        "vertices": {
        +          "minItems": 3,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "vertices"
        +      ]
        +    },
        +    {
        +      "not": {
        +        "anyOf": [
        +          {
        +            "required": [
        +              "point"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "rect"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "vertices"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "quads"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "font_size"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "text_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "fill_color"
        +            ]
        +          },
        +          {
        +            "required": [
        +              "icon"
        +            ]
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "kind": {
        +          "const": "Ink"
        +        },
        +        "strokes": {
        +          "minItems": 1,
        +          "not": {
        +            "type": "null"
        +          }
        +        }
        +      },
        +      "required": [
        +        "strokes"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "border_width": {
        +      "default": 1,
        +      "maximum": 100,
        +      "minimum": 0,
        +      "title": "Border Width",
        +      "type": "number"
        +    },
        +    "fill_color": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "maxItems": 3,
        +          "minItems": 3,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Fill Color"
        +    },
        +    "font_size": {
        +      "default": 12,
        +      "maximum": 144,
        +      "minimum": 1,
        +      "title": "Font Size",
        +      "type": "number"
        +    },
        +    "icon": {
        +      "default": "Note",
        +      "enum": [
        +        "Note",
        +        "Comment",
        +        "Key",
        +        "Help",
        +        "NewParagraph",
        +        "Paragraph",
        +        "Insert",
        +        "Cross",
        +        "Circle"
        +      ],
        +      "title": "Icon",
        +      "type": "string"
        +    },
        +    "kind": {
        +      "enum": [
        +        "Text",
        +        "FreeText",
        +        "Highlight",
        +        "Underline",
        +        "StrikeOut",
        +        "Squiggly",
        +        "Square",
        +        "Circle",
        +        "Line",
        +        "PolyLine",
        +        "Polygon",
        +        "Ink"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "opacity": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Opacity",
        +      "type": "number"
        +    },
        +    "point": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "maxItems": 2,
        +          "minItems": 2,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Point"
        +    },
        +    "quads": {
        +      "items": {
        +        "items": {
        +          "maximum": 1,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "maxItems": 8,
        +        "minItems": 8,
        +        "type": "array"
        +      },
        +      "maxItems": 1000,
        +      "title": "Quads",
        +      "type": "array"
        +    },
        +    "rect": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "maxItems": 4,
        +          "minItems": 4,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Rect"
        +    },
        +    "stroke_color": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 3,
        +      "minItems": 3,
        +      "title": "Stroke Color",
        +      "type": "array"
        +    },
        +    "strokes": {
        +      "items": {
        +        "items": {
        +          "items": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "maxItems": 2,
        +          "minItems": 2,
        +          "type": "array"
        +        },
        +        "maxItems": 2000,
        +        "minItems": 2,
        +        "type": "array"
        +      },
        +      "maxItems": 100,
        +      "title": "Strokes",
        +      "type": "array"
        +    },
        +    "text": {
        +      "default": "",
        +      "maxLength": 65536,
        +      "title": "Text",
        +      "type": "string"
        +    },
        +    "text_color": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 3,
        +      "minItems": 3,
        +      "title": "Text Color",
        +      "type": "array"
        +    },
        +    "vertices": {
        +      "items": {
        +        "items": {
        +          "maximum": 1,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "maxItems": 2,
        +        "minItems": 2,
        +        "type": "array"
        +      },
        +      "maxItems": 2000,
        +      "title": "Vertices",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "kind"
        +  ],
        +  "title": "PdfAnnotationAppearance",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationCreate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "appearance": {
        +      "$ref": "#/$defs/PdfAnnotationAppearance"
        +    },
        +    "metadata": {
        +      "$ref": "#/$defs/PdfAnnotationMetadata"
        +    },
        +    "op": {
        +      "const": "create",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "page_reference": {
        +      "$ref": "#/$defs/NativePdfReference"
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "page_reference",
        +    "appearance"
        +  ],
        +  "title": "PdfAnnotationCreate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationDelete
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "op": {
        +      "const": "delete",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/PdfAnnotationReference"
        +    },
        +    "scope": {
        +      "const": "annotation_and_owned_popup",
        +      "title": "Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "reference",
        +    "scope"
        +  ],
        +  "title": "PdfAnnotationDelete",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationLocator
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "annotation_index": {
        +      "exclusiveMaximum": 20000,
        +      "minimum": 0,
        +      "title": "Annotation Index",
        +      "type": "integer"
        +    },
        +    "generation": {
        +      "minimum": 0,
        +      "title": "Generation",
        +      "type": "integer"
        +    },
        +    "object_id": {
        +      "minimum": 0,
        +      "title": "Object Id",
        +      "type": "integer"
        +    },
        +    "page": {
        +      "$ref": "#/$defs/NativePdfPageLocator"
        +    }
        +  },
        +  "required": [
        +    "page",
        +    "annotation_index",
        +    "object_id",
        +    "generation"
        +  ],
        +  "title": "PdfAnnotationLocator",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationMetadata
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Omitted keys stay untouched; explicit null removes the native key.",
        +  "properties": {
        +    "author": {
        +      "anyOf": [
        +        {
        +          "maxLength": 4096,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Author"
        +    },
        +    "contents": {
        +      "anyOf": [
        +        {
        +          "maxLength": 65536,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Contents"
        +    },
        +    "modified": {
        +      "anyOf": [
        +        {
        +          "maxLength": 256,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Modified"
        +    },
        +    "subject": {
        +      "anyOf": [
        +        {
        +          "maxLength": 4096,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Subject"
        +    }
        +  },
        +  "title": "PdfAnnotationMetadata",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationReference
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asset_id": {
        +      "pattern": "^file_[a-f0-9]{32}$",
        +      "title": "Asset Id",
        +      "type": "string"
        +    },
        +    "locator": {
        +      "$ref": "#/$defs/PdfAnnotationLocator"
        +    },
        +    "revision": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Revision",
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "const": "native-pdf-annotation-ref-v1",
        +      "default": "native-pdf-annotation-ref-v1",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "value_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Value Sha256",
        +      "type": "string"
        +    },
        +    "verification_scope": {
        +      "const": "immutable_native_representation",
        +      "default": "immutable_native_representation",
        +      "title": "Verification Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "asset_id",
        +    "revision",
        +    "locator",
        +    "value_sha256"
        +  ],
        +  "title": "PdfAnnotationReference",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "metadata": {
        +      "$ref": "#/$defs/PdfAnnotationMetadata"
        +    },
        +    "op": {
        +      "const": "update",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/PdfAnnotationReference"
        +    },
        +    "replace_appearance": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/PdfAnnotationAppearance"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "reference"
        +  ],
        +  "title": "PdfAnnotationUpdate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfAnnotationsUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "edits": {
        +      "items": {
        +        "discriminator": {
        +          "mapping": {
        +            "create": "#/$defs/PdfAnnotationCreate",
        +            "delete": "#/$defs/PdfAnnotationDelete",
        +            "update": "#/$defs/PdfAnnotationUpdate"
        +          },
        +          "propertyName": "op"
        +        },
        +        "oneOf": [
        +          {
        +            "$ref": "#/$defs/PdfAnnotationCreate"
        +          },
        +          {
        +            "$ref": "#/$defs/PdfAnnotationUpdate"
        +          },
        +          {
        +            "$ref": "#/$defs/PdfAnnotationDelete"
        +          }
        +        ]
        +      },
        +      "maxItems": 32,
        +      "minItems": 1,
        +      "title": "Edits",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "edits"
        +  ],
        +  "title": "PdfAnnotationsUpdate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldButtonValue
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "kind": {
        +      "const": "button",
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "state": {
        +      "maxLength": 256,
        +      "minLength": 2,
        +      "pattern": "^/",
        +      "title": "State",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind",
        +    "state"
        +  ],
        +  "title": "PdfFieldButtonValue",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldChoiceValue
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "indices": {
        +      "items": {
        +        "exclusiveMaximum": 10000,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "maxItems": 10000,
        +      "title": "Indices",
        +      "type": "array"
        +    },
        +    "kind": {
        +      "const": "choice",
        +      "title": "Kind",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind",
        +    "indices"
        +  ],
        +  "title": "PdfFieldChoiceValue",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldCreate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "field": {
        +      "$ref": "#/$defs/PdfFieldDefinition"
        +    },
        +    "new_groups": {
        +      "items": {
        +        "maxLength": 4096,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 32,
        +      "title": "New Groups",
        +      "type": "array"
        +    },
        +    "op": {
        +      "const": "create",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "parent_reference": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/PdfFieldReference"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "field"
        +  ],
        +  "title": "PdfFieldCreate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldDefinition
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "kind": {
        +      "enum": [
        +        "text",
        +        "checkbox",
        +        "radio",
        +        "choice"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "multiline": {
        +      "default": false,
        +      "title": "Multiline",
        +      "type": "boolean"
        +    },
        +    "multiselect": {
        +      "default": false,
        +      "title": "Multiselect",
        +      "type": "boolean"
        +    },
        +    "name": {
        +      "maxLength": 4096,
        +      "minLength": 1,
        +      "title": "Name",
        +      "type": "string"
        +    },
        +    "options": {
        +      "items": {
        +        "$ref": "#/$defs/PdfFieldOption"
        +      },
        +      "maxItems": 10000,
        +      "title": "Options",
        +      "type": "array"
        +    },
        +    "value": {
        +      "discriminator": {
        +        "mapping": {
        +          "button": "#/$defs/PdfFieldButtonValue",
        +          "choice": "#/$defs/PdfFieldChoiceValue",
        +          "text": "#/$defs/PdfFieldTextValue"
        +        },
        +        "propertyName": "kind"
        +      },
        +      "oneOf": [
        +        {
        +          "$ref": "#/$defs/PdfFieldTextValue"
        +        },
        +        {
        +          "$ref": "#/$defs/PdfFieldButtonValue"
        +        },
        +        {
        +          "$ref": "#/$defs/PdfFieldChoiceValue"
        +        }
        +      ],
        +      "title": "Value"
        +    },
        +    "widgets": {
        +      "items": {
        +        "$ref": "#/$defs/PdfFieldWidgetCreate"
        +      },
        +      "maxItems": 32,
        +      "title": "Widgets",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "kind",
        +    "value"
        +  ],
        +  "title": "PdfFieldDefinition",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldDelete
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "op": {
        +      "const": "delete",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/PdfFieldReference"
        +    },
        +    "scope": {
        +      "const": "field_subtree_and_all_widgets",
        +      "title": "Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "reference",
        +    "scope"
        +  ],
        +  "title": "PdfFieldDelete",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldLocator
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "First index addresses AcroForm.Fields; subsequent indices address Kids.",
        +  "properties": {
        +    "field_path": {
        +      "items": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "maxItems": 64,
        +      "minItems": 1,
        +      "title": "Field Path",
        +      "type": "array"
        +    },
        +    "generation": {
        +      "minimum": 0,
        +      "title": "Generation",
        +      "type": "integer"
        +    },
        +    "object_id": {
        +      "minimum": 0,
        +      "title": "Object Id",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "field_path",
        +    "object_id",
        +    "generation"
        +  ],
        +  "title": "PdfFieldLocator",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldOption
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "export": {
        +      "maxLength": 4096,
        +      "title": "Export",
        +      "type": "string"
        +    },
        +    "label": {
        +      "maxLength": 4096,
        +      "title": "Label",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "export",
        +    "label"
        +  ],
        +  "title": "PdfFieldOption",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldReference
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asset_id": {
        +      "pattern": "^file_[a-f0-9]{32}$",
        +      "title": "Asset Id",
        +      "type": "string"
        +    },
        +    "locator": {
        +      "$ref": "#/$defs/PdfFieldLocator"
        +    },
        +    "revision": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Revision",
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "const": "native-pdf-field-ref-v1",
        +      "default": "native-pdf-field-ref-v1",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "value_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Value Sha256",
        +      "type": "string"
        +    },
        +    "verification_scope": {
        +      "const": "immutable_native_representation",
        +      "default": "immutable_native_representation",
        +      "title": "Verification Scope",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "asset_id",
        +    "revision",
        +    "locator",
        +    "value_sha256"
        +  ],
        +  "title": "PdfFieldReference",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldStyle
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Explicit replacement style; embedded Unicode font, existing widget bounds.",
        +  "properties": {
        +    "alignment": {
        +      "default": 0,
        +      "enum": [
        +        0,
        +        1,
        +        2
        +      ],
        +      "title": "Alignment",
        +      "type": "integer"
        +    },
        +    "border_color": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 3,
        +      "minItems": 3,
        +      "title": "Border Color",
        +      "type": "array"
        +    },
        +    "border_width": {
        +      "default": 1,
        +      "maximum": 20,
        +      "minimum": 0,
        +      "title": "Border Width",
        +      "type": "number"
        +    },
        +    "fill_color": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "maxItems": 3,
        +          "minItems": 3,
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Fill Color"
        +    },
        +    "font_size": {
        +      "default": 12,
        +      "maximum": 144,
        +      "minimum": 1,
        +      "title": "Font Size",
        +      "type": "number"
        +    },
        +    "text_color": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 3,
        +      "minItems": 3,
        +      "title": "Text Color",
        +      "type": "array"
        +    }
        +  },
        +  "title": "PdfFieldStyle",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldTextValue
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "kind": {
        +      "const": "text",
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "text": {
        +      "maxLength": 65536,
        +      "title": "Text",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind",
        +    "text"
        +  ],
        +  "title": "PdfFieldTextValue",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "appearance_policy": {
        +      "enum": [
        +        "replace_all_widget_appearances",
        +        "preserve_native_button_states",
        +        "no_widgets"
        +      ],
        +      "title": "Appearance Policy",
        +      "type": "string"
        +    },
        +    "op": {
        +      "const": "update",
        +      "title": "Op",
        +      "type": "string"
        +    },
        +    "reference": {
        +      "$ref": "#/$defs/PdfFieldReference"
        +    },
        +    "value": {
        +      "discriminator": {
        +        "mapping": {
        +          "button": "#/$defs/PdfFieldButtonValue",
        +          "choice": "#/$defs/PdfFieldChoiceValue",
        +          "text": "#/$defs/PdfFieldTextValue"
        +        },
        +        "propertyName": "kind"
        +      },
        +      "oneOf": [
        +        {
        +          "$ref": "#/$defs/PdfFieldTextValue"
        +        },
        +        {
        +          "$ref": "#/$defs/PdfFieldButtonValue"
        +        },
        +        {
        +          "$ref": "#/$defs/PdfFieldChoiceValue"
        +        }
        +      ],
        +      "title": "Value"
        +    },
        +    "widget_styles": {
        +      "items": {
        +        "$ref": "#/$defs/PdfFieldWidgetStyle"
        +      },
        +      "maxItems": 32,
        +      "title": "Widget Styles",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "op",
        +    "reference",
        +    "value",
        +    "appearance_policy"
        +  ],
        +  "title": "PdfFieldUpdate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldWidgetCreate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "on_state": {
        +      "anyOf": [
        +        {
        +          "maxLength": 256,
        +          "minLength": 2,
        +          "pattern": "^/",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "On State"
        +    },
        +    "page_reference": {
        +      "$ref": "#/$defs/NativePdfReference"
        +    },
        +    "rect": {
        +      "items": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "title": "Rect",
        +      "type": "array"
        +    },
        +    "style": {
        +      "$ref": "#/$defs/PdfFieldStyle"
        +    }
        +  },
        +  "required": [
        +    "page_reference",
        +    "rect"
        +  ],
        +  "title": "PdfFieldWidgetCreate",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldWidgetStyle
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "style": {
        +      "$ref": "#/$defs/PdfFieldStyle"
        +    },
        +    "widget_path": {
        +      "items": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "maxItems": 64,
        +      "minItems": 1,
        +      "title": "Widget Path",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "widget_path",
        +    "style"
        +  ],
        +  "title": "PdfFieldWidgetStyle",
        +  "type": "object"
        +}
      • addedInput schema / $defs / PdfFieldsUpdate
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "edits": {
        +      "items": {
        +        "discriminator": {
        +          "mapping": {
        +            "create": "#/$defs/PdfFieldCreate",
        +            "delete": "#/$defs/PdfFieldDelete",
        +            "update": "#/$defs/PdfFieldUpdate"
        +          },
        +          "propertyName": "op"
        +        },
        +        "oneOf": [
        +          {
        +            "$ref": "#/$defs/PdfFieldCreate"
        +          },
        +          {
        +            "$ref": "#/$defs/PdfFieldUpdate"
        +          },
        +          {
        +            "$ref": "#/$defs/PdfFieldDelete"
        +          }
        +        ]
        +      },
        +      "maxItems": 32,
        +      "minItems": 1,
        +      "title": "Edits",
        +      "type": "array"
        +    },
        +    "expected_catalog_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "title": "Expected Catalog Sha256",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "expected_catalog_sha256",
        +    "edits"
        +  ],
        +  "title": "PdfFieldsUpdate",
        +  "type": "object"
        +}
  2. 7 tool updatesv1.4.0
    • Changedcitation_bundle2 fields changed
      • addedInput schema / properties / citation_contract
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Contract"
        +}
      • addedInput schema / properties / citation_metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Metadata"
        +}
    • Changeddocument4 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "CitationFormatContract": {
        +    "additionalProperties": false,
        +    "description": "A bounded named-field template, not a programming language or CSL engine.",
        +    "properties": {
        +      "inline_template": {
        +        "maxLength": 2048,
        +        "minLength": 1,
        +        "title": "Inline Template",
        +        "type": "string"
        +      },
        +      "name": {
        +        "default": "custom",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "reference_template": {
        +        "maxLength": 2048,
        +        "minLength": 1,
        +        "title": "Reference Template",
        +        "type": "string"
        +      },
        +      "required_fields": {
        +        "default": [],
        +        "items": {
        +          "type": "string"
        +        },
        +        "maxItems": 13,
        +        "title": "Required Fields",
        +        "type": "array"
        +      },
        +      "version": {
        +        "const": "citation-format-v1",
        +        "default": "citation-format-v1",
        +        "title": "Version",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "inline_template",
        +      "reference_template"
        +    ],
        +    "title": "CitationFormatContract",
        +    "type": "object"
        +  },
        +  "CitationFormatPreset": {
        +    "additionalProperties": false,
        +    "description": "A display-only preset selector, with no provenance or template overrides.",
        +    "properties": {
        +      "preset": {
        +        "enum": [
        +          "source",
        +          "author-year",
        +          "numeric"
        +        ],
        +        "title": "Preset",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "preset"
        +    ],
        +    "title": "CitationFormatPreset",
        +    "type": "object"
        +  },
        +  "CitationMetadata": {
        +    "additionalProperties": false,
        +    "description": "Caller-supplied bibliographic data; never canonical locator overrides.",
        +    "properties": {
        +      "authors": {
        +        "default": "",
        +        "maxLength": 1024,
        +        "title": "Authors",
        +        "type": "string"
        +      },
        +      "doi": {
        +        "default": "",
        +        "maxLength": 512,
        +        "title": "Doi",
        +        "type": "string"
        +      },
        +      "reference_number": {
        +        "anyOf": [
        +          {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Reference Number"
        +      },
        +      "title": {
        +        "default": "",
        +        "maxLength": 1024,
        +        "title": "Title",
        +        "type": "string"
        +      },
        +      "url": {
        +        "default": "",
        +        "maxLength": 2048,
        +        "title": "Url",
        +        "type": "string"
        +      },
        +      "year": {
        +        "default": "",
        +        "maxLength": 32,
        +        "title": "Year",
        +        "type": "string"
        +      }
        +    },
        +    "title": "CitationMetadata",
        +    "type": "object"
        +  },
        +  "DocxGridDelete": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "count": {
        +        "maximum": 100,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "delete",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "count"
        +    ],
        +    "title": "DocxGridDelete",
        +    "type": "object"
        +  },
        +  "DocxGridHeaderRows": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "set_header_rows",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "count"
        +    ],
        +    "title": "DocxGridHeaderRows",
        +    "type": "object"
        +  },
        +  "DocxGridInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "cells": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "items": {
        +                "$ref": "#/$defs/NativeDocxCell"
        +              },
        +              "maxItems": 100,
        +              "minItems": 1,
        +              "type": "array"
        +            },
        +            "maxItems": 100,
        +            "minItems": 1,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Cells"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "insert",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "sizes_twips": {
        +        "items": {
        +          "maximum": 31680,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Sizes Twips",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "sizes_twips"
        +    ],
        +    "title": "DocxGridInsert",
        +    "type": "object"
        +  },
        +  "DocxGridMerge": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "content_policy": {
        +        "enum": [
        +          "require_empty",
        +          "append_blocks"
        +        ],
        +        "title": "Content Policy",
        +        "type": "string"
        +      },
        +      "end_column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Column",
        +        "type": "integer"
        +      },
        +      "end_row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Row",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "merge",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "row",
        +      "column",
        +      "end_row",
        +      "end_column",
        +      "op",
        +      "content_policy"
        +    ],
        +    "title": "DocxGridMerge",
        +    "type": "object"
        +  },
        +  "DocxGridResize": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "resize",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "sizes_twips": {
        +        "items": {
        +          "maximum": 31680,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Sizes Twips",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "sizes_twips"
        +    ],
        +    "title": "DocxGridResize",
        +    "type": "object"
        +  },
        +  "DocxGridRowLayout": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "maximum": 100,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "height": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxRowHeight"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "index": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "set_row_layout",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "split": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "allow",
        +              "prevent",
        +              "inherit"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Split"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "index",
        +      "count"
        +    ],
        +    "title": "DocxGridRowLayout",
        +    "type": "object"
        +  },
        +  "DocxGridSplit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "split",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "row",
        +      "column"
        +    ],
        +    "title": "DocxGridSplit",
        +    "type": "object"
        +  },
        +  "DocxNoteAnchor": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "character_offset": {
        +        "maximum": 4194304,
        +        "minimum": 0,
        +        "title": "Character Offset",
        +        "type": "integer"
        +      },
        +      "expected_text_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Text Sha256",
        +        "type": "string"
        +      },
        +      "text_path": {
        +        "items": {
        +          "maximum": 100000,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "maxItems": 64,
        +        "minItems": 1,
        +        "title": "Text Path",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "text_path",
        +      "character_offset",
        +      "expected_text_sha256"
        +    ],
        +    "title": "DocxNoteAnchor",
        +    "type": "object"
        +  },
        +  "DocxNoteCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "anchor": {
        +        "$ref": "#/$defs/DocxNoteAnchor"
        +      },
        +      "blocks": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "paragraph": "#/$defs/NativeDocxParagraph",
        +              "table": "#/$defs/NativeDocxTable"
        +            },
        +            "propertyName": "kind"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativeDocxParagraph"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxTable"
        +            }
        +          ]
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Blocks",
        +        "type": "array"
        +      },
        +      "note_id": {
        +        "anyOf": [
        +          {
        +            "maximum": 2147483647,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Note Id"
        +      },
        +      "note_kind": {
        +        "enum": [
        +          "footnote",
        +          "endnote"
        +        ],
        +        "title": "Note Kind",
        +        "type": "string"
        +      },
        +      "op": {
        +        "const": "create",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "note_kind",
        +      "part",
        +      "anchor",
        +      "blocks"
        +    ],
        +    "title": "DocxNoteCreate",
        +    "type": "object"
        +  },
        +  "DocxNoteDelete": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "expected_note_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Note Sha256",
        +        "type": "string"
        +      },
        +      "literal_body_text": {
        +        "const": "preserve",
        +        "title": "Literal Body Text",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/DocxNoteLocator"
        +      },
        +      "op": {
        +        "const": "delete",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "locator",
        +      "expected_note_sha256",
        +      "literal_body_text"
        +    ],
        +    "title": "DocxNoteDelete",
        +    "type": "object"
        +  },
        +  "DocxNoteLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "note_id": {
        +        "maximum": 2147483647,
        +        "minimum": -2147483648,
        +        "title": "Note Id",
        +        "type": "integer"
        +      },
        +      "note_kind": {
        +        "enum": [
        +          "footnote",
        +          "endnote"
        +        ],
        +        "title": "Note Kind",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "part",
        +      "note_kind",
        +      "note_id"
        +    ],
        +    "title": "DocxNoteLocator",
        +    "type": "object"
        +  },
        +  "DocxNoteReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/DocxNoteLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-docx-note-ref-v1",
        +        "default": "native-docx-note-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "DocxNoteReference",
        +    "type": "object"
        +  },
        +  "DocxNoteUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "delete_blocks": "#/$defs/StoryDelete",
        +              "insert_blocks": "#/$defs/StoryInsert",
        +              "set_text": "#/$defs/StoryTextEdit"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/StoryTextEdit"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryInsert"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryDelete"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/DocxNoteLocator"
        +      },
        +      "shared_scope": {
        +        "const": "all_native_references",
        +        "title": "Shared Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "locator",
        +      "shared_scope",
        +      "edits"
        +    ],
        +    "title": "DocxNoteUpdate",
        +    "type": "object"
        +  },
        +  "DocxNotesUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "create": "#/$defs/DocxNoteCreate",
        +              "delete": "#/$defs/DocxNoteDelete"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/DocxNoteCreate"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxNoteDelete"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "expected_catalog_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Catalog Sha256",
        +        "type": "string"
        +      },
        +      "scope": {
        +        "const": "definitions_and_native_body_references",
        +        "title": "Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "expected_catalog_sha256",
        +      "scope",
        +      "edits"
        +    ],
        +    "title": "DocxNotesUpdate",
        +    "type": "object"
        +  },
        +  "DocxRowHeight": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "rule": {
        +        "enum": [
        +          "auto",
        +          "at_least",
        +          "exact",
        +          "inherit"
        +        ],
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "value_twips": {
        +        "anyOf": [
        +          {
        +            "maximum": 31680,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Value Twips"
        +      }
        +    },
        +    "required": [
        +      "rule"
        +    ],
        +    "title": "DocxRowHeight",
        +    "type": "object"
        +  },
        +  "DocxStoryLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "story_kind": {
        +        "enum": [
        +          "header",
        +          "footer"
        +        ],
        +        "title": "Story Kind",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "part",
        +      "story_kind"
        +    ],
        +    "title": "DocxStoryLocator",
        +    "type": "object"
        +  },
        +  "DocxStoryReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/DocxStoryLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-docx-story-ref-v1",
        +        "default": "native-docx-story-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "DocxStoryReference",
        +    "type": "object"
        +  },
        +  "DocxStoryStructure": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "bind": "#/$defs/StoryBind",
        +              "clone": "#/$defs/StoryClone",
        +              "create": "#/$defs/StoryCreate",
        +              "delete": "#/$defs/StoryRemove",
        +              "even_pages": "#/$defs/StoryEvenPages",
        +              "first_page": "#/$defs/StoryFirstPage"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/StoryCreate"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryClone"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryBind"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryRemove"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryFirstPage"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryEvenPages"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "expected_catalog_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Catalog Sha256",
        +        "type": "string"
        +      },
        +      "scope": {
        +        "const": "sections_and_following_inheritors",
        +        "title": "Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "expected_catalog_sha256",
        +      "scope",
        +      "edits"
        +    ],
        +    "title": "DocxStoryStructure",
        +    "type": "object"
        +  },
        +  "DocxStoryUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "delete_blocks": "#/$defs/StoryDelete",
        +              "insert_blocks": "#/$defs/StoryInsert",
        +              "set_text": "#/$defs/StoryTextEdit"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/StoryTextEdit"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryInsert"
        +            },
        +            {
        +              "$ref": "#/$defs/StoryDelete"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "shared_scope": {
        +        "const": "all_sections_using_part",
        +        "title": "Shared Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "part",
        +      "shared_scope",
        +      "edits"
        +    ],
        +    "title": "DocxStoryUpdate",
        +    "type": "object"
        +  },
        +  "NativeAgentReview": {
        +    "additionalProperties": false,
        +    "description": "Caller assertions only; the server does not authenticate or endorse them.",
        +    "properties": {
        +      "formula_results": {
        +        "default": "not_checked",
        +        "enum": [
        +          "not_checked",
        +          "passed",
        +          "failed",
        +          "not_applicable"
        +        ],
        +        "title": "Formula Results",
        +        "type": "string"
        +      },
        +      "notes": {
        +        "default": "",
        +        "maxLength": 4096,
        +        "title": "Notes",
        +        "type": "string"
        +      },
        +      "rendered_layout": {
        +        "default": "not_checked",
        +        "enum": [
        +          "not_checked",
        +          "passed",
        +          "failed",
        +          "not_applicable"
        +        ],
        +        "title": "Rendered Layout",
        +        "type": "string"
        +      },
        +      "semantic_accuracy": {
        +        "default": "not_checked",
        +        "enum": [
        +          "not_checked",
        +          "passed",
        +          "failed",
        +          "not_applicable"
        +        ],
        +        "title": "Semantic Accuracy",
        +        "type": "string"
        +      }
        +    },
        +    "title": "NativeAgentReview",
        +    "type": "object"
        +  },
        +  "NativeCalculatedEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "formula": {
        +        "anyOf": [
        +          {
        +            "maxLength": 8192,
        +            "minLength": 2,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Formula"
        +      },
        +      "policy": {
        +        "enum": [
        +          "require_matching",
        +          "replace_all",
        +          "keep_cells"
        +        ],
        +        "title": "Policy",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "formula",
        +      "policy"
        +    ],
        +    "title": "NativeCalculatedEdit",
        +    "type": "object"
        +  },
        +  "NativeCellEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cell": {
        +        "maxLength": 10,
        +        "minLength": 2,
        +        "title": "Cell",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "default": "string",
        +        "enum": [
        +          "string",
        +          "number",
        +          "boolean",
        +          "formula",
        +          "blank"
        +        ],
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "sheet": {
        +        "maxLength": 31,
        +        "minLength": 1,
        +        "title": "Sheet",
        +        "type": "string"
        +      },
        +      "value": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Value"
        +      }
        +    },
        +    "required": [
        +      "sheet",
        +      "cell"
        +    ],
        +    "title": "NativeCellEdit",
        +    "type": "object"
        +  },
        +  "NativeCellLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cell": {
        +        "maxLength": 10,
        +        "minLength": 2,
        +        "title": "Cell",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "sheet_id": {
        +        "maxLength": 128,
        +        "minLength": 1,
        +        "title": "Sheet Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "sheet_id",
        +      "part",
        +      "kind",
        +      "cell"
        +    ],
        +    "title": "NativeCellLocator",
        +    "type": "object"
        +  },
        +  "NativeCellReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativeCellLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-cell-ref-v1",
        +        "default": "native-cell-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "NativeCellReference",
        +    "type": "object"
        +  },
        +  "NativeCharacterRange": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "end": {
        +        "exclusiveMinimum": 0,
        +        "title": "End",
        +        "type": "integer"
        +      },
        +      "start": {
        +        "minimum": 0,
        +        "title": "Start",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "start",
        +      "end"
        +    ],
        +    "title": "NativeCharacterRange",
        +    "type": "object"
        +  },
        +  "NativeDelimitedCellEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "reference": {
        +        "$ref": "#/$defs/NativeDelimitedReference"
        +      },
        +      "value": {
        +        "maxLength": 16777216,
        +        "title": "Value",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "reference",
        +      "value"
        +    ],
        +    "title": "NativeDelimitedCellEdit",
        +    "type": "object"
        +  },
        +  "NativeDelimitedCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bom": {
        +        "default": false,
        +        "title": "Bom",
        +        "type": "boolean"
        +      },
        +      "dialect": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDelimitedDialect"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "final_separator": {
        +        "default": true,
        +        "title": "Final Separator",
        +        "type": "boolean"
        +      },
        +      "name": {
        +        "default": "table.csv",
        +        "maxLength": 200,
        +        "minLength": 5,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "record_separator": {
        +        "default": "\r\n",
        +        "enum": [
        +          "\n",
        +          "\r",
        +          "\r\n"
        +        ],
        +        "title": "Record Separator",
        +        "type": "string"
        +      },
        +      "rows": {
        +        "items": {
        +          "items": {
        +            "maxLength": 16777216,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "maxItems": 20000,
        +        "title": "Rows",
        +        "type": "array"
        +      }
        +    },
        +    "title": "NativeDelimitedCreate",
        +    "type": "object"
        +  },
        +  "NativeDelimitedDeleteColumns": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "maximum": 1024,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "index": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "operation": {
        +        "const": "delete_columns",
        +        "title": "Operation",
        +        "type": "string"
        +      },
        +      "record_separator": {
        +        "default": "\r\n",
        +        "enum": [
        +          "\n",
        +          "\r",
        +          "\r\n"
        +        ],
        +        "title": "Record Separator",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "index",
        +      "count"
        +    ],
        +    "title": "NativeDelimitedDeleteColumns",
        +    "type": "object"
        +  },
        +  "NativeDelimitedDeleteRows": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "maximum": 1024,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "index": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "operation": {
        +        "const": "delete_rows",
        +        "title": "Operation",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "index",
        +      "count"
        +    ],
        +    "title": "NativeDelimitedDeleteRows",
        +    "type": "object"
        +  },
        +  "NativeDelimitedDialect": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "delimiter": {
        +        "default": ",",
        +        "maxLength": 1,
        +        "minLength": 1,
        +        "title": "Delimiter",
        +        "type": "string"
        +      },
        +      "doublequote": {
        +        "default": true,
        +        "title": "Doublequote",
        +        "type": "boolean"
        +      },
        +      "encoding": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "utf-8",
        +              "utf-16-le",
        +              "utf-16-be",
        +              "cp950",
        +              "cp1252",
        +              "latin-1"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Encoding"
        +      },
        +      "escapechar": {
        +        "anyOf": [
        +          {
        +            "maxLength": 1,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Escapechar"
        +      },
        +      "quotechar": {
        +        "anyOf": [
        +          {
        +            "maxLength": 1,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": "\"",
        +        "title": "Quotechar"
        +      }
        +    },
        +    "title": "NativeDelimitedDialect",
        +    "type": "object"
        +  },
        +  "NativeDelimitedInsertColumn": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "index": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "operation": {
        +        "const": "insert_column",
        +        "title": "Operation",
        +        "type": "string"
        +      },
        +      "values": {
        +        "items": {
        +          "maxLength": 16777216,
        +          "type": "string"
        +        },
        +        "maxItems": 20000,
        +        "minItems": 1,
        +        "title": "Values",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "index",
        +      "values"
        +    ],
        +    "title": "NativeDelimitedInsertColumn",
        +    "type": "object"
        +  },
        +  "NativeDelimitedInsertRows": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "index": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "operation": {
        +        "const": "insert_rows",
        +        "title": "Operation",
        +        "type": "string"
        +      },
        +      "record_separator": {
        +        "enum": [
        +          "\n",
        +          "\r",
        +          "\r\n"
        +        ],
        +        "title": "Record Separator",
        +        "type": "string"
        +      },
        +      "rows": {
        +        "items": {
        +          "items": {
        +            "maxLength": 16777216,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "maxItems": 1024,
        +        "minItems": 1,
        +        "title": "Rows",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "index",
        +      "rows",
        +      "record_separator"
        +    ],
        +    "title": "NativeDelimitedInsertRows",
        +    "type": "object"
        +  },
        +  "NativeDelimitedLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "byte_end": {
        +        "maximum": 16777216,
        +        "minimum": 0,
        +        "title": "Byte End",
        +        "type": "integer"
        +      },
        +      "byte_start": {
        +        "maximum": 16777216,
        +        "minimum": 0,
        +        "title": "Byte Start",
        +        "type": "integer"
        +      },
        +      "char_end": {
        +        "maximum": 16777216,
        +        "minimum": 0,
        +        "title": "Char End",
        +        "type": "integer"
        +      },
        +      "char_start": {
        +        "maximum": 16777216,
        +        "minimum": 0,
        +        "title": "Char Start",
        +        "type": "integer"
        +      },
        +      "column": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "row": {
        +        "exclusiveMaximum": 20000,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "row",
        +      "column",
        +      "byte_start",
        +      "byte_end",
        +      "char_start",
        +      "char_end"
        +    ],
        +    "title": "NativeDelimitedLocator",
        +    "type": "object"
        +  },
        +  "NativeDelimitedReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "dialect": {
        +        "$ref": "#/$defs/NativeDelimitedDialect"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativeDelimitedLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-delimited-cell-ref-v1",
        +        "default": "native-delimited-cell-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_delimited_field",
        +        "default": "immutable_delimited_field",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "dialect",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "NativeDelimitedReference",
        +    "type": "object"
        +  },
        +  "NativeDelimitedSetCells": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cells": {
        +        "items": {
        +          "$ref": "#/$defs/NativeDelimitedCellEdit"
        +        },
        +        "maxItems": 1000,
        +        "minItems": 1,
        +        "title": "Cells",
        +        "type": "array"
        +      },
        +      "operation": {
        +        "const": "set_cells",
        +        "title": "Operation",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "cells"
        +    ],
        +    "title": "NativeDelimitedSetCells",
        +    "type": "object"
        +  },
        +  "NativeDerivation": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "activity": {
        +        "maxLength": 2000,
        +        "minLength": 1,
        +        "title": "Activity",
        +        "type": "string"
        +      },
        +      "agent": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "title": "Agent",
        +        "type": "string"
        +      },
        +      "review": {
        +        "$ref": "#/$defs/NativeAgentReview"
        +      },
        +      "sources": {
        +        "items": {
        +          "anyOf": [
        +            {
        +              "$ref": "#/$defs/NativeCellReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxBlockReference"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxStoryReference"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxNoteReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePptxReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePdfReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePdfRegionReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDelimitedReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeFileReference"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeSelectionReference"
        +            }
        +          ]
        +        },
        +        "maxItems": 64,
        +        "minItems": 1,
        +        "title": "Sources",
        +        "type": "array"
        +      },
        +      "supersedes": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Supersedes"
        +      },
        +      "target": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCellReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDocxBlockReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxStoryReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxNoteReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePptxReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfRegionReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDelimitedReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeFileReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeSelectionReference"
        +          }
        +        ],
        +        "title": "Target"
        +      }
        +    },
        +    "required": [
        +      "target",
        +      "sources",
        +      "activity",
        +      "agent"
        +    ],
        +    "title": "NativeDerivation",
        +    "type": "object"
        +  },
        +  "NativeDerivationRetraction": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "agent": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "title": "Agent",
        +        "type": "string"
        +      },
        +      "derivation_id": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Derivation Id",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "const": "retract",
        +        "default": "retract",
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "reason": {
        +        "maxLength": 2000,
        +        "minLength": 1,
        +        "title": "Reason",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "derivation_id",
        +      "agent",
        +      "reason"
        +    ],
        +    "title": "NativeDerivationRetraction",
        +    "type": "object"
        +  },
        +  "NativeDocumentRequest": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "allow_3d_membership_change": {
        +        "default": false,
        +        "title": "Allow 3D Membership Change",
        +        "type": "boolean"
        +      },
        +      "asset_id": {
        +        "anyOf": [
        +          {
        +            "pattern": "^file_[a-f0-9]{32}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Asset Id"
        +      },
        +      "block_id": {
        +        "anyOf": [
        +          {
        +            "maxLength": 64,
        +            "pattern": "^[a-z]+[0-9]+$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Block Id"
        +      },
        +      "cell": {
        +        "anyOf": [
        +          {
        +            "maxLength": 10,
        +            "minLength": 2,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Cell"
        +      },
        +      "citation_contract": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/CitationFormatContract"
        +          },
        +          {
        +            "$ref": "#/$defs/CitationFormatPreset"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "Citation display only: select a preset or supply inline/reference templates. Source references and proof objects are not formatting fields.",
        +        "title": "Citation Contract"
        +      },
        +      "citation_metadata": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/CitationMetadata"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "contract_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Contract Sha256"
        +      },
        +      "delimited_column": {
        +        "anyOf": [
        +          {
        +            "exclusiveMaximum": 20000,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Delimited Column"
        +      },
        +      "delimited_create": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDelimitedCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "delimited_dialect": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDelimitedDialect"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "delimited_row": {
        +        "anyOf": [
        +          {
        +            "exclusiveMaximum": 20000,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Delimited Row"
        +      },
        +      "delimited_update": {
        +        "anyOf": [
        +          {
        +            "discriminator": {
        +              "mapping": {
        +                "delete_columns": "#/$defs/NativeDelimitedDeleteColumns",
        +                "delete_rows": "#/$defs/NativeDelimitedDeleteRows",
        +                "insert_column": "#/$defs/NativeDelimitedInsertColumn",
        +                "insert_rows": "#/$defs/NativeDelimitedInsertRows",
        +                "set_cells": "#/$defs/NativeDelimitedSetCells"
        +              },
        +              "propertyName": "operation"
        +            },
        +            "oneOf": [
        +              {
        +                "$ref": "#/$defs/NativeDelimitedSetCells"
        +              },
        +              {
        +                "$ref": "#/$defs/NativeDelimitedInsertRows"
        +              },
        +              {
        +                "$ref": "#/$defs/NativeDelimitedDeleteRows"
        +              },
        +              {
        +                "$ref": "#/$defs/NativeDelimitedInsertColumn"
        +              },
        +              {
        +                "$ref": "#/$defs/NativeDelimitedDeleteColumns"
        +              }
        +            ]
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Delimited Update"
        +      },
        +      "derivation": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDerivation"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "derivation_id": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Derivation Id"
        +      },
        +      "derivations_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Derivations Sha256"
        +      },
        +      "docx_block_refs": {
        +        "items": {
        +          "$ref": "#/$defs/NativeDocxBlockReference"
        +        },
        +        "maxItems": 100,
        +        "title": "Docx Block Refs",
        +        "type": "array"
        +      },
        +      "docx_create": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_edit": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_insert": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxInsert"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_note_locator": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxNoteLocator"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_note_reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxNoteReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_note_update": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxNoteUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_notes_update": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxNotesUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_page_index": {
        +        "anyOf": [
        +          {
        +            "exclusiveMaximum": 2000,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Docx Page Index"
        +      },
        +      "docx_story_part": {
        +        "anyOf": [
        +          {
        +            "maxLength": 1024,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Docx Story Part"
        +      },
        +      "docx_story_reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxStoryReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_story_structure": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxStoryStructure"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_story_update": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/DocxStoryUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_table_grid": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxTableGridEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "docx_table_reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxBlockReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativeCellEdit"
        +        },
        +        "maxItems": 20000,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "expected_derivations_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Expected Derivations Sha256"
        +      },
        +      "expected_revision": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Expected Revision"
        +      },
        +      "expected_source_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Expected Source Sha256"
        +      },
        +      "expected_table_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Expected Table Sha256"
        +      },
        +      "for_op": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "contract",
        +              "contract_details",
        +              "schema",
        +              "register",
        +              "create",
        +              "list",
        +              "inspect",
        +              "project_workbook_table",
        +              "read_table_workspace",
        +              "apply_table_workspace",
        +              "create_workbook_from_table",
        +              "read_workbook",
        +              "create_workbook_rendition",
        +              "read_rendition",
        +              "update_worksheet_grid",
        +              "read_worksheet_layout",
        +              "update_worksheet_layout",
        +              "update_workbook_table",
        +              "add_workbook_table",
        +              "add_worksheets",
        +              "rename_worksheet",
        +              "reorder_worksheets",
        +              "delete_worksheets",
        +              "read_cell",
        +              "create_delimited",
        +              "read_delimited",
        +              "read_delimited_cell",
        +              "update_delimited",
        +              "create_pdf",
        +              "read_pdf",
        +              "read_pdf_page",
        +              "read_pdf_region",
        +              "render_pdf_page",
        +              "add_pdf_pages",
        +              "update_pdf",
        +              "delete_pdf_pages",
        +              "reorder_pdf_pages",
        +              "read_pptx_layouts",
        +              "render_pptx_slide",
        +              "add_pptx_slides",
        +              "delete_pptx_slides",
        +              "reorder_pptx_slides",
        +              "create_pptx",
        +              "add_pptx_pictures",
        +              "replace_pptx_pictures",
        +              "read_pptx_picture",
        +              "extract_pptx_picture",
        +              "read_pptx",
        +              "read_pptx_shape",
        +              "update_pptx",
        +              "add_pptx_tables",
        +              "update_pptx_table_grid",
        +              "add_pptx_shapes",
        +              "delete_pptx_shapes",
        +              "read_docx",
        +              "read_docx_notes",
        +              "read_docx_note",
        +              "update_docx_note",
        +              "update_docx_notes",
        +              "read_docx_stories",
        +              "read_docx_story",
        +              "update_docx_story",
        +              "read_docx_story_structure",
        +              "update_docx_story_structure",
        +              "render_docx_page",
        +              "create_docx",
        +              "add_docx_blocks",
        +              "delete_docx_blocks",
        +              "read_docx_block",
        +              "read_docx_table",
        +              "update_docx_table_grid",
        +              "update_docx",
        +              "verify",
        +              "read_selection",
        +              "record_derivation",
        +              "read_derivations",
        +              "retract_derivation",
        +              "verify_derivation",
        +              "export_wiki",
        +              "update",
        +              "history",
        +              "publish",
        +              "writeback",
        +              "refresh",
        +              "archive"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "For Op"
        +      },
        +      "limit": {
        +        "default": 20,
        +        "maximum": 1000,
        +        "minimum": 1,
        +        "title": "Limit",
        +        "type": "integer"
        +      },
        +      "offset": {
        +        "default": 0,
        +        "minimum": 0,
        +        "title": "Offset",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "default": "contract",
        +        "enum": [
        +          "contract",
        +          "contract_details",
        +          "schema",
        +          "register",
        +          "create",
        +          "list",
        +          "inspect",
        +          "project_workbook_table",
        +          "read_table_workspace",
        +          "apply_table_workspace",
        +          "create_workbook_from_table",
        +          "read_workbook",
        +          "create_workbook_rendition",
        +          "read_rendition",
        +          "update_worksheet_grid",
        +          "read_worksheet_layout",
        +          "update_worksheet_layout",
        +          "update_workbook_table",
        +          "add_workbook_table",
        +          "add_worksheets",
        +          "rename_worksheet",
        +          "reorder_worksheets",
        +          "delete_worksheets",
        +          "read_cell",
        +          "create_delimited",
        +          "read_delimited",
        +          "read_delimited_cell",
        +          "update_delimited",
        +          "create_pdf",
        +          "read_pdf",
        +          "read_pdf_page",
        +          "read_pdf_region",
        +          "render_pdf_page",
        +          "add_pdf_pages",
        +          "update_pdf",
        +          "delete_pdf_pages",
        +          "reorder_pdf_pages",
        +          "read_pptx_layouts",
        +          "render_pptx_slide",
        +          "add_pptx_slides",
        +          "delete_pptx_slides",
        +          "reorder_pptx_slides",
        +          "create_pptx",
        +          "add_pptx_pictures",
        +          "replace_pptx_pictures",
        +          "read_pptx_picture",
        +          "extract_pptx_picture",
        +          "read_pptx",
        +          "read_pptx_shape",
        +          "update_pptx",
        +          "add_pptx_tables",
        +          "update_pptx_table_grid",
        +          "add_pptx_shapes",
        +          "delete_pptx_shapes",
        +          "read_docx",
        +          "read_docx_notes",
        +          "read_docx_note",
        +          "update_docx_note",
        +          "update_docx_notes",
        +          "read_docx_stories",
        +          "read_docx_story",
        +          "update_docx_story",
        +          "read_docx_story_structure",
        +          "update_docx_story_structure",
        +          "render_docx_page",
        +          "create_docx",
        +          "add_docx_blocks",
        +          "delete_docx_blocks",
        +          "read_docx_block",
        +          "read_docx_table",
        +          "update_docx_table_grid",
        +          "update_docx",
        +          "verify",
        +          "read_selection",
        +          "record_derivation",
        +          "read_derivations",
        +          "retract_derivation",
        +          "verify_derivation",
        +          "export_wiki",
        +          "update",
        +          "history",
        +          "publish",
        +          "writeback",
        +          "refresh",
        +          "archive"
        +        ],
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "output_dir": {
        +        "anyOf": [
        +          {
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Output Dir"
        +      },
        +      "output_path": {
        +        "anyOf": [
        +          {
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Output Path"
        +      },
        +      "pdf_create": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pdf_edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativePdfPageEdit"
        +        },
        +        "maxItems": 100,
        +        "title": "Pdf Edits",
        +        "type": "array"
        +      },
        +      "pdf_insert": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfInsert"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pdf_locator": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfPageLocator"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pdf_order": {
        +        "items": {
        +          "$ref": "#/$defs/NativePdfReference"
        +        },
        +        "maxItems": 2000,
        +        "title": "Pdf Order",
        +        "type": "array"
        +      },
        +      "pdf_page_refs": {
        +        "items": {
        +          "$ref": "#/$defs/NativePdfReference"
        +        },
        +        "maxItems": 100,
        +        "title": "Pdf Page Refs",
        +        "type": "array"
        +      },
        +      "pdf_region": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfRegionSelector"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pptx_edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxTextEdit"
        +        },
        +        "maxItems": 1000,
        +        "title": "Pptx Edits",
        +        "type": "array"
        +      },
        +      "pptx_locator": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePptxShapeLocator"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pptx_picture_edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxPictureReplace"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Picture Edits",
        +        "type": "array"
        +      },
        +      "pptx_pictures": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxPictureCreate"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Pictures",
        +        "type": "array"
        +      },
        +      "pptx_shape_refs": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxReference"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Shape Refs",
        +        "type": "array"
        +      },
        +      "pptx_shapes": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxShapeCreate"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Shapes",
        +        "type": "array"
        +      },
        +      "pptx_slide_insert": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePptxSlideInsert"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pptx_slide_key": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePptxSlideKey"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pptx_slide_keys": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxSlideKey"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Slide Keys",
        +        "type": "array"
        +      },
        +      "pptx_slide_order": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxSlideKey"
        +        },
        +        "maxItems": 2000,
        +        "title": "Pptx Slide Order",
        +        "type": "array"
        +      },
        +      "pptx_table_grid": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePptxTableGridEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pptx_tables": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxTableAddition"
        +        },
        +        "maxItems": 100,
        +        "title": "Pptx Tables",
        +        "type": "array"
        +      },
        +      "presentation": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePresentationCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCellReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDocxBlockReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxStoryReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxNoteReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePptxReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfRegionReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDelimitedReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeFileReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeSelectionReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Reference"
        +      },
        +      "render_size": {
        +        "default": 1024,
        +        "maximum": 2048,
        +        "minimum": 64,
        +        "title": "Render Size",
        +        "type": "integer"
        +      },
        +      "retraction": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDerivationRetraction"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "revision": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Revision"
        +      },
        +      "schema_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Schema Sha256"
        +      },
        +      "selection": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeSelectionSelector"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "sheet": {
        +        "anyOf": [
        +          {
        +            "maxLength": 31,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Sheet"
        +      },
        +      "source_path": {
        +        "anyOf": [
        +          {
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Source Path"
        +      },
        +      "table_create": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTableCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "table_id": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[A-Za-z0-9_.-]{1,128}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Table Id"
        +      },
        +      "table_projection": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTableProjection"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "table_sha256": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[a-f0-9]{64}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Table Sha256"
        +      },
        +      "table_update": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTableUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "table_workbook": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTableWorkbookCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "text_limit": {
        +        "default": 2000,
        +        "maximum": 4000,
        +        "minimum": 1,
        +        "title": "Text Limit",
        +        "type": "integer"
        +      },
        +      "text_offset": {
        +        "default": 0,
        +        "minimum": 0,
        +        "title": "Text Offset",
        +        "type": "integer"
        +      },
        +      "workbook": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeWorkbookCreate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "workbook_rendition": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeWorkbookRendition"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "workbook_view": {
        +        "default": "structure",
        +        "enum": [
        +          "structure",
        +          "references"
        +        ],
        +        "title": "Workbook View",
        +        "type": "string"
        +      },
        +      "worksheet_grid": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeGridUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "worksheet_insert": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeWorksheetInsert"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "worksheet_key": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeWorksheetKey"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "worksheet_keys": {
        +        "items": {
        +          "$ref": "#/$defs/NativeWorksheetKey"
        +        },
        +        "maxItems": 32,
        +        "title": "Worksheet Keys",
        +        "type": "array"
        +      },
        +      "worksheet_layout": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeLayoutUpdate"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "worksheet_order": {
        +        "items": {
        +          "$ref": "#/$defs/NativeWorksheetKey"
        +        },
        +        "maxItems": 256,
        +        "title": "Worksheet Order",
        +        "type": "array"
        +      },
        +      "worksheet_rename": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeWorksheetRename"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "workspace_reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeFileReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      }
        +    },
        +    "title": "NativeDocumentRequest",
        +    "type": "object"
        +  },
        +  "NativeDocxBlockLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "block_id": {
        +        "maxLength": 64,
        +        "pattern": "^[a-z]+[0-9]+$",
        +        "title": "Block Id",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "block_id",
        +      "part"
        +    ],
        +    "title": "NativeDocxBlockLocator",
        +    "type": "object"
        +  },
        +  "NativeDocxBlockReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativeDocxBlockLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-docx-block-ref-v1",
        +        "default": "native-docx-block-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "NativeDocxBlockReference",
        +    "type": "object"
        +  },
        +  "NativeDocxCell": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "fill_rgb": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[0-9A-Fa-f]{6}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Fill Rgb"
        +      },
        +      "paragraphs": {
        +        "items": {
        +          "$ref": "#/$defs/NativeDocxParagraph"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Paragraphs",
        +        "type": "array"
        +      },
        +      "vertical_alignment": {
        +        "default": "top",
        +        "enum": [
        +          "top",
        +          "center",
        +          "bottom"
        +        ],
        +        "title": "Vertical Alignment",
        +        "type": "string"
        +      }
        +    },
        +    "title": "NativeDocxCell",
        +    "type": "object"
        +  },
        +  "NativeDocxCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "author": {
        +        "default": "",
        +        "maxLength": 255,
        +        "title": "Author",
        +        "type": "string"
        +      },
        +      "blocks": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "paragraph": "#/$defs/NativeDocxParagraph",
        +              "table": "#/$defs/NativeDocxTable"
        +            },
        +            "propertyName": "kind"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativeDocxParagraph"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxTable"
        +            }
        +          ]
        +        },
        +        "maxItems": 20000,
        +        "title": "Blocks",
        +        "type": "array"
        +      },
        +      "margin_bottom_twips": {
        +        "default": 1440,
        +        "maximum": 31680,
        +        "minimum": 0,
        +        "title": "Margin Bottom Twips",
        +        "type": "integer"
        +      },
        +      "margin_left_twips": {
        +        "default": 1440,
        +        "maximum": 31680,
        +        "minimum": 0,
        +        "title": "Margin Left Twips",
        +        "type": "integer"
        +      },
        +      "margin_right_twips": {
        +        "default": 1440,
        +        "maximum": 31680,
        +        "minimum": 0,
        +        "title": "Margin Right Twips",
        +        "type": "integer"
        +      },
        +      "margin_top_twips": {
        +        "default": 1440,
        +        "maximum": 31680,
        +        "minimum": 0,
        +        "title": "Margin Top Twips",
        +        "type": "integer"
        +      },
        +      "name": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "page_height_twips": {
        +        "default": 15840,
        +        "maximum": 31680,
        +        "minimum": 1,
        +        "title": "Page Height Twips",
        +        "type": "integer"
        +      },
        +      "page_width_twips": {
        +        "default": 12240,
        +        "maximum": 31680,
        +        "minimum": 1,
        +        "title": "Page Width Twips",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "name"
        +    ],
        +    "title": "NativeDocxCreate",
        +    "type": "object"
        +  },
        +  "NativeDocxEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "dfm_text": {
        +        "maxLength": 4194304,
        +        "minLength": 1,
        +        "title": "Dfm Text",
        +        "type": "string"
        +      },
        +      "revision_author": {
        +        "default": "Asset-Aware MCP",
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "title": "Revision Author",
        +        "type": "string"
        +      },
        +      "track_changes": {
        +        "default": false,
        +        "title": "Track Changes",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "dfm_text"
        +    ],
        +    "title": "NativeDocxEdit",
        +    "type": "object"
        +  },
        +  "NativeDocxInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "anchor": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeDocxBlockReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "blocks": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "paragraph": "#/$defs/NativeDocxParagraph",
        +              "table": "#/$defs/NativeDocxTable"
        +            },
        +            "propertyName": "kind"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativeDocxParagraph"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxTable"
        +            }
        +          ]
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Blocks",
        +        "type": "array"
        +      },
        +      "position": {
        +        "enum": [
        +          "start",
        +          "end",
        +          "before",
        +          "after"
        +        ],
        +        "title": "Position",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "position",
        +      "blocks"
        +    ],
        +    "title": "NativeDocxInsert",
        +    "type": "object"
        +  },
        +  "NativeDocxMerge": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "end_column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Column",
        +        "type": "integer"
        +      },
        +      "end_row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Row",
        +        "type": "integer"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "row",
        +      "column",
        +      "end_row",
        +      "end_column"
        +    ],
        +    "title": "NativeDocxMerge",
        +    "type": "object"
        +  },
        +  "NativeDocxParagraph": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "alignment": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "left",
        +              "center",
        +              "right",
        +              "justify"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Alignment"
        +      },
        +      "keep_with_next": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Keep With Next"
        +      },
        +      "kind": {
        +        "const": "paragraph",
        +        "default": "paragraph",
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "outline_level": {
        +        "anyOf": [
        +          {
        +            "maximum": 8,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Outline Level"
        +      },
        +      "page_break_before": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Page Break Before"
        +      },
        +      "runs": {
        +        "items": {
        +          "$ref": "#/$defs/NativeDocxRun"
        +        },
        +        "maxItems": 100,
        +        "title": "Runs",
        +        "type": "array"
        +      },
        +      "space_after_twips": {
        +        "anyOf": [
        +          {
        +            "maximum": 31680,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Space After Twips"
        +      },
        +      "space_before_twips": {
        +        "anyOf": [
        +          {
        +            "maximum": 31680,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Space Before Twips"
        +      }
        +    },
        +    "title": "NativeDocxParagraph",
        +    "type": "object"
        +  },
        +  "NativeDocxRun": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bold": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Bold"
        +      },
        +      "color_rgb": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[0-9A-Fa-f]{6}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Color Rgb"
        +      },
        +      "font_name": {
        +        "anyOf": [
        +          {
        +            "maxLength": 200,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Font Name"
        +      },
        +      "font_size_pt": {
        +        "anyOf": [
        +          {
        +            "maximum": 400,
        +            "minimum": 1,
        +            "multipleOf": 0.5,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Font Size Pt"
        +      },
        +      "italic": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Italic"
        +      },
        +      "text": {
        +        "maxLength": 8000,
        +        "title": "Text",
        +        "type": "string"
        +      },
        +      "underline": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Underline"
        +      }
        +    },
        +    "required": [
        +      "text"
        +    ],
        +    "title": "NativeDocxRun",
        +    "type": "object"
        +  },
        +  "NativeDocxTable": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "alignment": {
        +        "default": "left",
        +        "enum": [
        +          "left",
        +          "center",
        +          "right"
        +        ],
        +        "title": "Alignment",
        +        "type": "string"
        +      },
        +      "borders": {
        +        "default": true,
        +        "title": "Borders",
        +        "type": "boolean"
        +      },
        +      "cells": {
        +        "items": {
        +          "items": {
        +            "$ref": "#/$defs/NativeDocxCell"
        +          },
        +          "maxItems": 100,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Cells",
        +        "type": "array"
        +      },
        +      "column_widths_twips": {
        +        "items": {
        +          "maximum": 31680,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Column Widths Twips",
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "table",
        +        "default": "table",
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "merges": {
        +        "items": {
        +          "$ref": "#/$defs/NativeDocxMerge"
        +        },
        +        "maxItems": 5000,
        +        "title": "Merges",
        +        "type": "array"
        +      },
        +      "repeat_header": {
        +        "default": false,
        +        "title": "Repeat Header",
        +        "type": "boolean"
        +      },
        +      "row_heights_twips": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "maximum": 31680,
        +              "minimum": 1,
        +              "type": "integer"
        +            },
        +            "maxItems": 100,
        +            "minItems": 1,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Row Heights Twips"
        +      }
        +    },
        +    "required": [
        +      "column_widths_twips",
        +      "cells"
        +    ],
        +    "title": "NativeDocxTable",
        +    "type": "object"
        +  },
        +  "NativeDocxTableGridEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "delete": "#/$defs/DocxGridDelete",
        +              "insert": "#/$defs/DocxGridInsert",
        +              "merge": "#/$defs/DocxGridMerge",
        +              "resize": "#/$defs/DocxGridResize",
        +              "set_header_rows": "#/$defs/DocxGridHeaderRows",
        +              "set_row_layout": "#/$defs/DocxGridRowLayout",
        +              "split": "#/$defs/DocxGridSplit"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/DocxGridInsert"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridDelete"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridResize"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridMerge"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridSplit"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridHeaderRows"
        +            },
        +            {
        +              "$ref": "#/$defs/DocxGridRowLayout"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "reference": {
        +        "$ref": "#/$defs/NativeDocxBlockReference"
        +      }
        +    },
        +    "required": [
        +      "reference",
        +      "edits"
        +    ],
        +    "title": "NativeDocxTableGridEdit",
        +    "type": "object"
        +  },
        +  "NativeFileReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-file-ref-v1",
        +        "default": "native-file-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_file_bytes",
        +        "default": "immutable_file_bytes",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision"
        +    ],
        +    "title": "NativeFileReference",
        +    "type": "object"
        +  },
        +  "NativeGridEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "maximum": 1048576,
        +        "minimum": 1,
        +        "title": "At",
        +        "type": "integer"
        +      },
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "collapsed_objects": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "preserve_size",
        +              "reject"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Collapsed Objects"
        +      },
        +      "count": {
        +        "default": 1,
        +        "maximum": 1024,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "expand_tables": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "$ref": "#/$defs/NativeTableExpansion"
        +            },
        +            "maxItems": 32,
        +            "minItems": 1,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Expand Tables"
        +      },
        +      "inherit_format": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "before",
        +              "after",
        +              "none"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Inherit Format"
        +      },
        +      "merged_anchor": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "preserve",
        +              "delete"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Merged Anchor"
        +      },
        +      "operation": {
        +        "enum": [
        +          "insert",
        +          "delete"
        +        ],
        +        "title": "Operation",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "operation",
        +      "at"
        +    ],
        +    "title": "NativeGridEdit",
        +    "type": "object"
        +  },
        +  "NativeGridUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column_digit_width": {
        +        "anyOf": [
        +          {
        +            "maximum": 100,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Column Digit Width"
        +      },
        +      "default_column_pixels": {
        +        "anyOf": [
        +          {
        +            "maximum": 10000,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Default Column Pixels"
        +      },
        +      "default_row_height_points": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 409.5,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Default Row Height Points"
        +      },
        +      "edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativeGridEdit"
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "worksheet": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      }
        +    },
        +    "required": [
        +      "worksheet",
        +      "edits"
        +    ],
        +    "title": "NativeGridUpdate",
        +    "type": "object"
        +  },
        +  "NativeLayoutEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "maximum": 1048576,
        +        "minimum": 1,
        +        "title": "At",
        +        "type": "integer"
        +      },
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "collapsed_objects": {
        +        "default": "reject",
        +        "enum": [
        +          "reject",
        +          "preserve_size"
        +        ],
        +        "title": "Collapsed Objects",
        +        "type": "string"
        +      },
        +      "count": {
        +        "default": 1,
        +        "maximum": 1024,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "height_points": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 409.5,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Height Points"
        +      },
        +      "hidden": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Hidden"
        +      },
        +      "reset_size": {
        +        "default": false,
        +        "title": "Reset Size",
        +        "type": "boolean"
        +      },
        +      "width_ooxml": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 255,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "Raw OOXML column width, including padding; not Excel UI characters.",
        +        "title": "Width Ooxml"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "at"
        +    ],
        +    "title": "NativeLayoutEdit",
        +    "type": "object"
        +  },
        +  "NativeLayoutUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column_digit_width": {
        +        "anyOf": [
        +          {
        +            "maximum": 100,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Column Digit Width"
        +      },
        +      "default_column_pixels": {
        +        "anyOf": [
        +          {
        +            "maximum": 10000,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Default Column Pixels"
        +      },
        +      "default_row_height_points": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 409.5,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Default Row Height Points"
        +      },
        +      "edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativeLayoutEdit"
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "worksheet": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      }
        +    },
        +    "required": [
        +      "worksheet",
        +      "edits"
        +    ],
        +    "title": "NativeLayoutUpdate",
        +    "type": "object"
        +  },
        +  "NativePdfBlankPage": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "height": {
        +        "default": 842,
        +        "maximum": 14400,
        +        "minimum": 3,
        +        "title": "Height",
        +        "type": "number"
        +      },
        +      "width": {
        +        "default": 595,
        +        "maximum": 14400,
        +        "minimum": 3,
        +        "title": "Width",
        +        "type": "number"
        +      }
        +    },
        +    "title": "NativePdfBlankPage",
        +    "type": "object"
        +  },
        +  "NativePdfCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "maxLength": 200,
        +        "minLength": 5,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "pages": {
        +        "items": {
        +          "$ref": "#/$defs/NativePdfPageInput"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Pages",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "pages"
        +    ],
        +    "title": "NativePdfCreate",
        +    "type": "object"
        +  },
        +  "NativePdfInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "pages": {
        +        "items": {
        +          "$ref": "#/$defs/NativePdfPageInput"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Pages",
        +        "type": "array"
        +      },
        +      "position": {
        +        "maximum": 2000,
        +        "minimum": 0,
        +        "title": "Position",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "position",
        +      "pages"
        +    ],
        +    "title": "NativePdfInsert",
        +    "type": "object"
        +  },
        +  "NativePdfPageEdit": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "properties": {
        +          "rotation": {
        +            "not": {
        +              "type": "null"
        +            }
        +          }
        +        },
        +        "required": [
        +          "rotation"
        +        ]
        +      },
        +      {
        +        "properties": {
        +          "crop_box": {
        +            "not": {
        +              "type": "null"
        +            }
        +          }
        +        },
        +        "required": [
        +          "crop_box"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "crop_box": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "type": "number"
        +            },
        +            "maxItems": 4,
        +            "minItems": 4,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Crop Box"
        +      },
        +      "reference": {
        +        "$ref": "#/$defs/NativePdfReference"
        +      },
        +      "rotation": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              0,
        +              90,
        +              180,
        +              270
        +            ],
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Rotation"
        +      }
        +    },
        +    "required": [
        +      "reference"
        +    ],
        +    "title": "NativePdfPageEdit",
        +    "type": "object"
        +  },
        +  "NativePdfPageInput": {
        +    "additionalProperties": false,
        +    "oneOf": [
        +      {
        +        "properties": {
        +          "blank": {
        +            "not": {
        +              "type": "null"
        +            }
        +          },
        +          "reference": {
        +            "type": "null"
        +          }
        +        },
        +        "required": [
        +          "blank"
        +        ]
        +      },
        +      {
        +        "properties": {
        +          "blank": {
        +            "type": "null"
        +          },
        +          "reference": {
        +            "not": {
        +              "type": "null"
        +            }
        +          }
        +        },
        +        "required": [
        +          "reference"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "blank": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfBlankPage"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "reference": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativePdfReference"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      }
        +    },
        +    "title": "NativePdfPageInput",
        +    "type": "object"
        +  },
        +  "NativePdfPageLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "generation": {
        +        "minimum": 0,
        +        "title": "Generation",
        +        "type": "integer"
        +      },
        +      "object_id": {
        +        "minimum": 1,
        +        "title": "Object Id",
        +        "type": "integer"
        +      },
        +      "page_index": {
        +        "exclusiveMaximum": 2000,
        +        "minimum": 0,
        +        "title": "Page Index",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "page_index",
        +      "object_id",
        +      "generation"
        +    ],
        +    "title": "NativePdfPageLocator",
        +    "type": "object"
        +  },
        +  "NativePdfReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativePdfPageLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-pdf-page-ref-v1",
        +        "default": "native-pdf-page-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "NativePdfReference",
        +    "type": "object"
        +  },
        +  "NativePdfRegionReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "parent": {
        +        "$ref": "#/$defs/NativePdfReference"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-pdf-region-ref-v1",
        +        "default": "native-pdf-region-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "selector": {
        +        "$ref": "#/$defs/NativePdfRegionSelector"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_pdf_page_region",
        +        "default": "immutable_pdf_page_region",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "parent",
        +      "selector",
        +      "value_sha256"
        +    ],
        +    "title": "NativePdfRegionReference",
        +    "type": "object"
        +  },
        +  "NativePdfRegionSelector": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "coordinate_system": {
        +        "const": "displayed_crop_fraction",
        +        "default": "displayed_crop_fraction",
        +        "title": "Coordinate System",
        +        "type": "string"
        +      },
        +      "rect": {
        +        "items": {
        +          "maximum": 1,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "maxItems": 4,
        +        "minItems": 4,
        +        "title": "Rect",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "rect"
        +    ],
        +    "title": "NativePdfRegionSelector",
        +    "type": "object"
        +  },
        +  "NativePptxGridDelete": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "count": {
        +        "maximum": 100,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "delete",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "count"
        +    ],
        +    "title": "NativePptxGridDelete",
        +    "type": "object"
        +  },
        +  "NativePptxGridInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "cells": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "items": {
        +                "$ref": "#/$defs/NativePptxTableCellCreate"
        +              },
        +              "maxItems": 100,
        +              "minItems": 1,
        +              "type": "array"
        +            },
        +            "maxItems": 100,
        +            "minItems": 1,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Cells"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "insert",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "sizes": {
        +        "items": {
        +          "maximum": 100000000,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Sizes",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "sizes"
        +    ],
        +    "title": "NativePptxGridInsert",
        +    "type": "object"
        +  },
        +  "NativePptxGridMerge": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "content_policy": {
        +        "enum": [
        +          "require_empty",
        +          "append_paragraphs"
        +        ],
        +        "title": "Content Policy",
        +        "type": "string"
        +      },
        +      "end_column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Column",
        +        "type": "integer"
        +      },
        +      "end_row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Row",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "merge",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "row",
        +      "column",
        +      "end_row",
        +      "end_column",
        +      "op",
        +      "content_policy"
        +    ],
        +    "title": "NativePptxGridMerge",
        +    "type": "object"
        +  },
        +  "NativePptxGridResize": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "axis": {
        +        "enum": [
        +          "row",
        +          "column"
        +        ],
        +        "title": "Axis",
        +        "type": "string"
        +      },
        +      "index": {
        +        "maximum": 100,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "resize",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "sizes": {
        +        "items": {
        +          "maximum": 100000000,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Sizes",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "axis",
        +      "index",
        +      "op",
        +      "sizes"
        +    ],
        +    "title": "NativePptxGridResize",
        +    "type": "object"
        +  },
        +  "NativePptxGridSplit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "split",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "row",
        +      "column"
        +    ],
        +    "title": "NativePptxGridSplit",
        +    "type": "object"
        +  },
        +  "NativePptxPictureCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "container": {
        +        "$ref": "#/$defs/NativePptxShapeContainer"
        +      },
        +      "description": {
        +        "default": "",
        +        "maxLength": 2000,
        +        "title": "Description",
        +        "type": "string"
        +      },
        +      "fit": {
        +        "default": "contain",
        +        "enum": [
        +          "contain",
        +          "cover",
        +          "stretch"
        +        ],
        +        "title": "Fit",
        +        "type": "string"
        +      },
        +      "height": {
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Height",
        +        "type": "integer"
        +      },
        +      "image": {
        +        "$ref": "#/$defs/NativeFileReference"
        +      },
        +      "left": {
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Left",
        +        "type": "integer"
        +      },
        +      "name": {
        +        "default": "Picture",
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "top": {
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Top",
        +        "type": "integer"
        +      },
        +      "width": {
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Width",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "container",
        +      "image",
        +      "left",
        +      "top",
        +      "width",
        +      "height"
        +    ],
        +    "title": "NativePptxPictureCreate",
        +    "type": "object"
        +  },
        +  "NativePptxPictureReplace": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "image": {
        +        "$ref": "#/$defs/NativeFileReference"
        +      },
        +      "mapping": {
        +        "const": "preserve_existing",
        +        "default": "preserve_existing",
        +        "title": "Mapping",
        +        "type": "string"
        +      },
        +      "reference": {
        +        "$ref": "#/$defs/NativePptxReference"
        +      }
        +    },
        +    "required": [
        +      "reference",
        +      "image"
        +    ],
        +    "title": "NativePptxPictureReplace",
        +    "type": "object"
        +  },
        +  "NativePptxReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativePptxShapeLocator"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-pptx-shape-ref-v1",
        +        "default": "native-pptx-shape-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_native_representation",
        +        "default": "immutable_native_representation",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "locator",
        +      "value_sha256"
        +    ],
        +    "title": "NativePptxReference",
        +    "type": "object"
        +  },
        +  "NativePptxRunCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bold": {
        +        "default": false,
        +        "title": "Bold",
        +        "type": "boolean"
        +      },
        +      "font_size_pt": {
        +        "default": 18,
        +        "maximum": 400,
        +        "minimum": 1,
        +        "title": "Font Size Pt",
        +        "type": "integer"
        +      },
        +      "italic": {
        +        "default": false,
        +        "title": "Italic",
        +        "type": "boolean"
        +      },
        +      "text": {
        +        "maxLength": 8000,
        +        "title": "Text",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "text"
        +    ],
        +    "title": "NativePptxRunCreate",
        +    "type": "object"
        +  },
        +  "NativePptxRunLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "anyOf": [
        +          {
        +            "maximum": 20000,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Column"
        +      },
        +      "paragraph": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Paragraph",
        +        "type": "integer"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "region": {
        +        "default": "slide",
        +        "enum": [
        +          "slide",
        +          "notes"
        +        ],
        +        "title": "Region",
        +        "type": "string"
        +      },
        +      "row": {
        +        "anyOf": [
        +          {
        +            "maximum": 20000,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Row"
        +      },
        +      "run": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Run",
        +        "type": "integer"
        +      },
        +      "shape_id": {
        +        "maxLength": 10,
        +        "pattern": "^(0|[1-9][0-9]*)$",
        +        "title": "Shape Id",
        +        "type": "string"
        +      },
        +      "slide_id": {
        +        "maxLength": 10,
        +        "pattern": "^[1-9][0-9]*$",
        +        "title": "Slide Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "slide_id",
        +      "part",
        +      "shape_id",
        +      "paragraph",
        +      "run"
        +    ],
        +    "title": "NativePptxRunLocator",
        +    "type": "object"
        +  },
        +  "NativePptxShapeContainer": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "group_shape_id": {
        +        "anyOf": [
        +          {
        +            "maxLength": 10,
        +            "pattern": "^(0|[1-9][0-9]*)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Group Shape Id"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "region": {
        +        "default": "slide",
        +        "enum": [
        +          "slide",
        +          "notes"
        +        ],
        +        "title": "Region",
        +        "type": "string"
        +      },
        +      "slide_id": {
        +        "maxLength": 10,
        +        "pattern": "^[1-9][0-9]*$",
        +        "title": "Slide Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "slide_id",
        +      "part"
        +    ],
        +    "title": "NativePptxShapeContainer",
        +    "type": "object"
        +  },
        +  "NativePptxShapeCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "container": {
        +        "$ref": "#/$defs/NativePptxShapeContainer"
        +      },
        +      "textbox": {
        +        "$ref": "#/$defs/NativePptxTextBoxCreate"
        +      }
        +    },
        +    "required": [
        +      "container",
        +      "textbox"
        +    ],
        +    "title": "NativePptxShapeCreate",
        +    "type": "object"
        +  },
        +  "NativePptxShapeLocator": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "region": {
        +        "default": "slide",
        +        "enum": [
        +          "slide",
        +          "notes"
        +        ],
        +        "title": "Region",
        +        "type": "string"
        +      },
        +      "shape_id": {
        +        "maxLength": 10,
        +        "pattern": "^(0|[1-9][0-9]*)$",
        +        "title": "Shape Id",
        +        "type": "string"
        +      },
        +      "slide_id": {
        +        "maxLength": 10,
        +        "pattern": "^[1-9][0-9]*$",
        +        "title": "Slide Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "slide_id",
        +      "part",
        +      "shape_id"
        +    ],
        +    "title": "NativePptxShapeLocator",
        +    "type": "object"
        +  },
        +  "NativePptxSlideAddition": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "layout_part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Layout Part",
        +        "type": "string"
        +      },
        +      "textboxes": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxTextBoxCreate"
        +        },
        +        "maxItems": 100,
        +        "title": "Textboxes",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "layout_part"
        +    ],
        +    "title": "NativePptxSlideAddition",
        +    "type": "object"
        +  },
        +  "NativePptxSlideCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "notes": {
        +        "default": "",
        +        "maxLength": 32767,
        +        "title": "Notes",
        +        "type": "string"
        +      },
        +      "textboxes": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxTextBoxCreate"
        +        },
        +        "maxItems": 100,
        +        "title": "Textboxes",
        +        "type": "array"
        +      }
        +    },
        +    "title": "NativePptxSlideCreate",
        +    "type": "object"
        +  },
        +  "NativePptxSlideInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "index": {
        +        "maximum": 2000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "slides": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxSlideAddition"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Slides",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "index",
        +      "slides"
        +    ],
        +    "title": "NativePptxSlideInsert",
        +    "type": "object"
        +  },
        +  "NativePptxSlideKey": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "slide_id": {
        +        "maxLength": 10,
        +        "pattern": "^[1-9][0-9]*$",
        +        "title": "Slide Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "slide_id",
        +      "part"
        +    ],
        +    "title": "NativePptxSlideKey",
        +    "type": "object"
        +  },
        +  "NativePptxTableAddition": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "container": {
        +        "$ref": "#/$defs/NativePptxShapeContainer"
        +      },
        +      "table": {
        +        "$ref": "#/$defs/NativePptxTableCreate"
        +      }
        +    },
        +    "required": [
        +      "container",
        +      "table"
        +    ],
        +    "title": "NativePptxTableAddition",
        +    "type": "object"
        +  },
        +  "NativePptxTableCellCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "alignment": {
        +        "default": "left",
        +        "enum": [
        +          "left",
        +          "center",
        +          "right"
        +        ],
        +        "title": "Alignment",
        +        "type": "string"
        +      },
        +      "fill_rgb": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[0-9A-Fa-f]{6}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Fill Rgb"
        +      },
        +      "margin": {
        +        "default": 91440,
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Margin",
        +        "type": "integer"
        +      },
        +      "paragraphs": {
        +        "items": {
        +          "items": {
        +            "$ref": "#/$defs/NativePptxRunCreate"
        +          },
        +          "type": "array"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Paragraphs",
        +        "type": "array"
        +      },
        +      "text_rgb": {
        +        "anyOf": [
        +          {
        +            "pattern": "^[0-9A-Fa-f]{6}$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Text Rgb"
        +      },
        +      "vertical_anchor": {
        +        "default": "middle",
        +        "enum": [
        +          "top",
        +          "middle",
        +          "bottom"
        +        ],
        +        "title": "Vertical Anchor",
        +        "type": "string"
        +      }
        +    },
        +    "title": "NativePptxTableCellCreate",
        +    "type": "object"
        +  },
        +  "NativePptxTableCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cells": {
        +        "items": {
        +          "items": {
        +            "$ref": "#/$defs/NativePptxTableCellCreate"
        +          },
        +          "maxItems": 100,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Cells",
        +        "type": "array"
        +      },
        +      "column_banding": {
        +        "default": false,
        +        "title": "Column Banding",
        +        "type": "boolean"
        +      },
        +      "column_widths": {
        +        "items": {
        +          "maximum": 100000000,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Column Widths",
        +        "type": "array"
        +      },
        +      "description": {
        +        "default": "",
        +        "maxLength": 2000,
        +        "title": "Description",
        +        "type": "string"
        +      },
        +      "first_column": {
        +        "default": false,
        +        "title": "First Column",
        +        "type": "boolean"
        +      },
        +      "first_row": {
        +        "default": true,
        +        "title": "First Row",
        +        "type": "boolean"
        +      },
        +      "last_column": {
        +        "default": false,
        +        "title": "Last Column",
        +        "type": "boolean"
        +      },
        +      "last_row": {
        +        "default": false,
        +        "title": "Last Row",
        +        "type": "boolean"
        +      },
        +      "left": {
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Left",
        +        "type": "integer"
        +      },
        +      "merges": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxTableMerge"
        +        },
        +        "maxItems": 5000,
        +        "title": "Merges",
        +        "type": "array"
        +      },
        +      "name": {
        +        "default": "Table",
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "row_banding": {
        +        "default": true,
        +        "title": "Row Banding",
        +        "type": "boolean"
        +      },
        +      "row_heights": {
        +        "items": {
        +          "maximum": 100000000,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Row Heights",
        +        "type": "array"
        +      },
        +      "top": {
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Top",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "left",
        +      "top",
        +      "column_widths",
        +      "row_heights",
        +      "cells"
        +    ],
        +    "title": "NativePptxTableCreate",
        +    "type": "object"
        +  },
        +  "NativePptxTableGridEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "delete": "#/$defs/NativePptxGridDelete",
        +              "insert": "#/$defs/NativePptxGridInsert",
        +              "merge": "#/$defs/NativePptxGridMerge",
        +              "resize": "#/$defs/NativePptxGridResize",
        +              "split": "#/$defs/NativePptxGridSplit"
        +            },
        +            "propertyName": "op"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativePptxGridInsert"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePptxGridDelete"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePptxGridResize"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePptxGridMerge"
        +            },
        +            {
        +              "$ref": "#/$defs/NativePptxGridSplit"
        +            }
        +          ]
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "reference": {
        +        "$ref": "#/$defs/NativePptxReference"
        +      }
        +    },
        +    "required": [
        +      "reference",
        +      "edits"
        +    ],
        +    "title": "NativePptxTableGridEdit",
        +    "type": "object"
        +  },
        +  "NativePptxTableMerge": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "end_column": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Column",
        +        "type": "integer"
        +      },
        +      "end_row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "End Row",
        +        "type": "integer"
        +      },
        +      "row": {
        +        "maximum": 99,
        +        "minimum": 0,
        +        "title": "Row",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "row",
        +      "column",
        +      "end_row",
        +      "end_column"
        +    ],
        +    "title": "NativePptxTableMerge",
        +    "type": "object"
        +  },
        +  "NativePptxTextBoxCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "height": {
        +        "default": 914400,
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Height",
        +        "type": "integer"
        +      },
        +      "left": {
        +        "default": 914400,
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Left",
        +        "type": "integer"
        +      },
        +      "paragraphs": {
        +        "items": {
        +          "items": {
        +            "$ref": "#/$defs/NativePptxRunCreate"
        +          },
        +          "type": "array"
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Paragraphs",
        +        "type": "array"
        +      },
        +      "top": {
        +        "default": 914400,
        +        "maximum": 100000000,
        +        "minimum": 0,
        +        "title": "Top",
        +        "type": "integer"
        +      },
        +      "width": {
        +        "default": 7315200,
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Width",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "paragraphs"
        +    ],
        +    "title": "NativePptxTextBoxCreate",
        +    "type": "object"
        +  },
        +  "NativePptxTextEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "expected_text_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Text Sha256",
        +        "type": "string"
        +      },
        +      "locator": {
        +        "$ref": "#/$defs/NativePptxRunLocator"
        +      },
        +      "text": {
        +        "maxLength": 32767,
        +        "title": "Text",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "locator",
        +      "expected_text_sha256",
        +      "text"
        +    ],
        +    "title": "NativePptxTextEdit",
        +    "type": "object"
        +  },
        +  "NativePresentationCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "height": {
        +        "default": 6858000,
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Height",
        +        "type": "integer"
        +      },
        +      "name": {
        +        "maxLength": 200,
        +        "minLength": 6,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "slides": {
        +        "items": {
        +          "$ref": "#/$defs/NativePptxSlideCreate"
        +        },
        +        "maxItems": 200,
        +        "minItems": 1,
        +        "title": "Slides",
        +        "type": "array"
        +      },
        +      "width": {
        +        "default": 12192000,
        +        "maximum": 100000000,
        +        "minimum": 1,
        +        "title": "Width",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "slides"
        +    ],
        +    "title": "NativePresentationCreate",
        +    "type": "object"
        +  },
        +  "NativeSelectionReference": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_id": {
        +        "pattern": "^file_[a-f0-9]{32}$",
        +        "title": "Asset Id",
        +        "type": "string"
        +      },
        +      "parent": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCellReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDocxBlockReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxStoryReference"
        +          },
        +          {
        +            "$ref": "#/$defs/DocxNoteReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePptxReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativePdfRegionReference"
        +          },
        +          {
        +            "$ref": "#/$defs/NativeDelimitedReference"
        +          }
        +        ],
        +        "title": "Parent"
        +      },
        +      "revision": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Revision",
        +        "type": "string"
        +      },
        +      "schema_version": {
        +        "const": "native-selection-ref-v1",
        +        "default": "native-selection-ref-v1",
        +        "title": "Schema Version",
        +        "type": "string"
        +      },
        +      "selector": {
        +        "$ref": "#/$defs/NativeSelectionSelector"
        +      },
        +      "value_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Value Sha256",
        +        "type": "string"
        +      },
        +      "verification_scope": {
        +        "const": "immutable_representation_selection",
        +        "default": "immutable_representation_selection",
        +        "title": "Verification Scope",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "asset_id",
        +      "revision",
        +      "parent",
        +      "selector",
        +      "value_sha256"
        +    ],
        +    "title": "NativeSelectionReference",
        +    "type": "object"
        +  },
        +  "NativeSelectionSelector": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "char_range": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCharacterRange"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "pointer": {
        +        "default": "",
        +        "maxLength": 2048,
        +        "title": "Pointer",
        +        "type": "string"
        +      }
        +    },
        +    "title": "NativeSelectionSelector",
        +    "type": "object"
        +  },
        +  "NativeTableColumnCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "calculated": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCalculatedEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "name": {
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "totals": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTotalsEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      }
        +    },
        +    "required": [
        +      "name"
        +    ],
        +    "title": "NativeTableColumnCreate",
        +    "type": "object"
        +  },
        +  "NativeTableColumnEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "calculated": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeCalculatedEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      },
        +      "column_id": {
        +        "maximum": 4294967295,
        +        "minimum": 1,
        +        "title": "Column Id",
        +        "type": "integer"
        +      },
        +      "expected_name": {
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "title": "Expected Name",
        +        "type": "string"
        +      },
        +      "header_runs": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "type": "string"
        +            },
        +            "maxItems": 128,
        +            "minItems": 1,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Header Runs"
        +      },
        +      "name": {
        +        "anyOf": [
        +          {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Name"
        +      },
        +      "totals": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/NativeTotalsEdit"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null
        +      }
        +    },
        +    "required": [
        +      "column_id",
        +      "expected_name"
        +    ],
        +    "title": "NativeTableColumnEdit",
        +    "type": "object"
        +  },
        +  "NativeTableCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "autofilter": {
        +        "default": true,
        +        "title": "Autofilter",
        +        "type": "boolean"
        +      },
        +      "columns": {
        +        "items": {
        +          "$ref": "#/$defs/NativeTableColumnCreate"
        +        },
        +        "maxItems": 256,
        +        "minItems": 1,
        +        "title": "Columns",
        +        "type": "array"
        +      },
        +      "header_policy": {
        +        "default": "require_matching",
        +        "enum": [
        +          "require_matching",
        +          "fill_blank"
        +        ],
        +        "title": "Header Policy",
        +        "type": "string"
        +      },
        +      "header_row": {
        +        "default": true,
        +        "title": "Header Row",
        +        "type": "boolean"
        +      },
        +      "name": {
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "ref": {
        +        "maxLength": 21,
        +        "minLength": 2,
        +        "title": "Ref",
        +        "type": "string"
        +      },
        +      "style": {
        +        "$ref": "#/$defs/NativeTableStyle"
        +      },
        +      "totals_row": {
        +        "default": false,
        +        "title": "Totals Row",
        +        "type": "boolean"
        +      },
        +      "worksheet": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      }
        +    },
        +    "required": [
        +      "worksheet",
        +      "ref",
        +      "name",
        +      "columns"
        +    ],
        +    "title": "NativeTableCreate",
        +    "type": "object"
        +  },
        +  "NativeTableExpansion": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "expected_ref": {
        +        "maxLength": 21,
        +        "minLength": 2,
        +        "title": "Expected Ref",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "part",
        +      "expected_ref"
        +    ],
        +    "title": "NativeTableExpansion",
        +    "type": "object"
        +  },
        +  "NativeTableProjection": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "end_cell": {
        +        "maxLength": 10,
        +        "minLength": 2,
        +        "title": "End Cell",
        +        "type": "string"
        +      },
        +      "start_cell": {
        +        "maxLength": 10,
        +        "minLength": 2,
        +        "title": "Start Cell",
        +        "type": "string"
        +      },
        +      "title": {
        +        "default": "Native workbook range",
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "title": "Title",
        +        "type": "string"
        +      },
        +      "worksheet": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      }
        +    },
        +    "required": [
        +      "worksheet",
        +      "start_cell",
        +      "end_cell"
        +    ],
        +    "title": "NativeTableProjection",
        +    "type": "object"
        +  },
        +  "NativeTableStyle": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "anyOf": [
        +          {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": "TableStyleMedium2",
        +        "title": "Name"
        +      },
        +      "show_column_stripes": {
        +        "default": false,
        +        "title": "Show Column Stripes",
        +        "type": "boolean"
        +      },
        +      "show_first_column": {
        +        "default": false,
        +        "title": "Show First Column",
        +        "type": "boolean"
        +      },
        +      "show_last_column": {
        +        "default": false,
        +        "title": "Show Last Column",
        +        "type": "boolean"
        +      },
        +      "show_row_stripes": {
        +        "default": true,
        +        "title": "Show Row Stripes",
        +        "type": "boolean"
        +      }
        +    },
        +    "title": "NativeTableStyle",
        +    "type": "object"
        +  },
        +  "NativeTableUpdate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "columns": {
        +        "items": {
        +          "$ref": "#/$defs/NativeTableColumnEdit"
        +        },
        +        "maxItems": 256,
        +        "title": "Columns",
        +        "type": "array"
        +      },
        +      "expected_ref": {
        +        "maxLength": 21,
        +        "minLength": 2,
        +        "title": "Expected Ref",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "totals_row": {
        +        "anyOf": [
        +          {
        +            "discriminator": {
        +              "mapping": {
        +                "add": "#/$defs/NativeTotalsRowAdd",
        +                "remove": "#/$defs/NativeTotalsRowRemove"
        +              },
        +              "propertyName": "action"
        +            },
        +            "oneOf": [
        +              {
        +                "$ref": "#/$defs/NativeTotalsRowAdd"
        +              },
        +              {
        +                "$ref": "#/$defs/NativeTotalsRowRemove"
        +              }
        +            ]
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Totals Row"
        +      },
        +      "worksheet": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      }
        +    },
        +    "required": [
        +      "worksheet",
        +      "part",
        +      "expected_ref"
        +    ],
        +    "title": "NativeTableUpdate",
        +    "type": "object"
        +  },
        +  "NativeTableWorkbookCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "include_headers": {
        +        "default": false,
        +        "title": "Include Headers",
        +        "type": "boolean"
        +      },
        +      "name": {
        +        "default": "table.xlsx",
        +        "maxLength": 200,
        +        "minLength": 6,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "sheet": {
        +        "default": "Data",
        +        "maxLength": 31,
        +        "minLength": 1,
        +        "title": "Sheet",
        +        "type": "string"
        +      }
        +    },
        +    "title": "NativeTableWorkbookCreate",
        +    "type": "object"
        +  },
        +  "NativeTotalsEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "kind": {
        +        "enum": [
        +          "blank",
        +          "label",
        +          "formula",
        +          "function"
        +        ],
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "value": {
        +        "anyOf": [
        +          {
        +            "maxLength": 8192,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "title": "Value"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "title": "NativeTotalsEdit",
        +    "type": "object"
        +  },
        +  "NativeTotalsRowAdd": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "const": "add",
        +        "title": "Action",
        +        "type": "string"
        +      },
        +      "cell_styles": {
        +        "default": "preserve",
        +        "enum": [
        +          "preserve",
        +          "last_data_row"
        +        ],
        +        "title": "Cell Styles",
        +        "type": "string"
        +      },
        +      "reuse_definitions": {
        +        "default": true,
        +        "title": "Reuse Definitions",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "action"
        +    ],
        +    "title": "NativeTotalsRowAdd",
        +    "type": "object"
        +  },
        +  "NativeTotalsRowRemove": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "const": "remove",
        +        "title": "Action",
        +        "type": "string"
        +      },
        +      "cells": {
        +        "enum": [
        +          "clear",
        +          "keep_cells"
        +        ],
        +        "title": "Cells",
        +        "type": "string"
        +      },
        +      "retain_definitions": {
        +        "default": true,
        +        "title": "Retain Definitions",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "cells"
        +    ],
        +    "title": "NativeTotalsRowRemove",
        +    "type": "object"
        +  },
        +  "NativeWorkbookCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "edits": {
        +        "items": {
        +          "$ref": "#/$defs/NativeCellEdit"
        +        },
        +        "maxItems": 20000,
        +        "title": "Edits",
        +        "type": "array"
        +      },
        +      "name": {
        +        "default": "workbook.xlsx",
        +        "maxLength": 200,
        +        "minLength": 6,
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "sheets": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "maxItems": 256,
        +        "minItems": 1,
        +        "title": "Sheets",
        +        "type": "array"
        +      }
        +    },
        +    "title": "NativeWorkbookCreate",
        +    "type": "object"
        +  },
        +  "NativeWorkbookRendition": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "calculation": {
        +        "enum": [
        +          "recalculate",
        +          "prefer_cache"
        +        ],
        +        "title": "Calculation",
        +        "type": "string"
        +      },
        +      "mode": {
        +        "enum": [
        +          "print",
        +          "whole_sheet"
        +        ],
        +        "title": "Mode",
        +        "type": "string"
        +      },
        +      "name": {
        +        "default": "workbook-preview.pdf",
        +        "maxLength": 200,
        +        "minLength": 5,
        +        "title": "Name",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "calculation"
        +    ],
        +    "title": "NativeWorkbookRendition",
        +    "type": "object"
        +  },
        +  "NativeWorksheetInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "index": {
        +        "maximum": 256,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "names": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "maxItems": 32,
        +        "minItems": 1,
        +        "title": "Names",
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "index",
        +      "names"
        +    ],
        +    "title": "NativeWorksheetInsert",
        +    "type": "object"
        +  },
        +  "NativeWorksheetKey": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "sheet_id": {
        +        "pattern": "^[1-9][0-9]{0,9}$",
        +        "title": "Sheet Id",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "sheet_id",
        +      "part"
        +    ],
        +    "title": "NativeWorksheetKey",
        +    "type": "object"
        +  },
        +  "NativeWorksheetRename": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "key": {
        +        "$ref": "#/$defs/NativeWorksheetKey"
        +      },
        +      "name": {
        +        "maxLength": 31,
        +        "minLength": 1,
        +        "title": "Name",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "key",
        +      "name"
        +    ],
        +    "title": "NativeWorksheetRename",
        +    "type": "object"
        +  },
        +  "StoryBind": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "op": {
        +        "const": "bind",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "part": {
        +        "anyOf": [
        +          {
        +            "maxLength": 1024,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Part"
        +      },
        +      "section_index": {
        +        "exclusiveMaximum": 2000,
        +        "minimum": 0,
        +        "title": "Section Index",
        +        "type": "integer"
        +      },
        +      "story_kind": {
        +        "enum": [
        +          "header",
        +          "footer"
        +        ],
        +        "title": "Story Kind",
        +        "type": "string"
        +      },
        +      "variant": {
        +        "enum": [
        +          "default",
        +          "first",
        +          "even"
        +        ],
        +        "title": "Variant",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "section_index",
        +      "story_kind",
        +      "variant",
        +      "part"
        +    ],
        +    "title": "StoryBind",
        +    "type": "object"
        +  },
        +  "StoryClone": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "op": {
        +        "const": "clone",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "pattern": "^word/(?:[A-Za-z0-9-]+/)*[A-Za-z0-9_-]+\\.xml$",
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "source_part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Source Part",
        +        "type": "string"
        +      },
        +      "source_part_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Source Part Sha256",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "source_part",
        +      "source_part_sha256",
        +      "part"
        +    ],
        +    "title": "StoryClone",
        +    "type": "object"
        +  },
        +  "StoryCreate": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "blocks": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "paragraph": "#/$defs/NativeDocxParagraph",
        +              "table": "#/$defs/NativeDocxTable"
        +            },
        +            "propertyName": "kind"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativeDocxParagraph"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxTable"
        +            }
        +          ]
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Blocks",
        +        "type": "array"
        +      },
        +      "op": {
        +        "const": "create",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "pattern": "^word/(?:[A-Za-z0-9-]+/)*[A-Za-z0-9_-]+\\.xml$",
        +        "title": "Part",
        +        "type": "string"
        +      },
        +      "story_kind": {
        +        "enum": [
        +          "header",
        +          "footer"
        +        ],
        +        "title": "Story Kind",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "part",
        +      "story_kind",
        +      "blocks"
        +    ],
        +    "title": "StoryCreate",
        +    "type": "object"
        +  },
        +  "StoryDelete": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "maximum": 100,
        +        "minimum": 1,
        +        "title": "Count",
        +        "type": "integer"
        +      },
        +      "index": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "delete_blocks",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "index",
        +      "count"
        +    ],
        +    "title": "StoryDelete",
        +    "type": "object"
        +  },
        +  "StoryEvenPages": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "enabled": {
        +        "title": "Enabled",
        +        "type": "boolean"
        +      },
        +      "op": {
        +        "const": "even_pages",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "enabled"
        +    ],
        +    "title": "StoryEvenPages",
        +    "type": "object"
        +  },
        +  "StoryFirstPage": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "enabled": {
        +        "title": "Enabled",
        +        "type": "boolean"
        +      },
        +      "op": {
        +        "const": "first_page",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "section_index": {
        +        "exclusiveMaximum": 2000,
        +        "minimum": 0,
        +        "title": "Section Index",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "section_index",
        +      "enabled"
        +    ],
        +    "title": "StoryFirstPage",
        +    "type": "object"
        +  },
        +  "StoryInsert": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "blocks": {
        +        "items": {
        +          "discriminator": {
        +            "mapping": {
        +              "paragraph": "#/$defs/NativeDocxParagraph",
        +              "table": "#/$defs/NativeDocxTable"
        +            },
        +            "propertyName": "kind"
        +          },
        +          "oneOf": [
        +            {
        +              "$ref": "#/$defs/NativeDocxParagraph"
        +            },
        +            {
        +              "$ref": "#/$defs/NativeDocxTable"
        +            }
        +          ]
        +        },
        +        "maxItems": 100,
        +        "minItems": 1,
        +        "title": "Blocks",
        +        "type": "array"
        +      },
        +      "index": {
        +        "maximum": 20000,
        +        "minimum": 0,
        +        "title": "Index",
        +        "type": "integer"
        +      },
        +      "op": {
        +        "const": "insert_blocks",
        +        "title": "Op",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "index",
        +      "blocks"
        +    ],
        +    "title": "StoryInsert",
        +    "type": "object"
        +  },
        +  "StoryRemove": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "expected_part_sha256": {
        +        "pattern": "^[a-f0-9]{64}$",
        +        "title": "Expected Part Sha256",
        +        "type": "string"
        +      },
        +      "op": {
        +        "const": "delete",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "part": {
        +        "maxLength": 1024,
        +        "minLength": 1,
        +        "title": "Part",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "part",
        +      "expected_part_sha256"
        +    ],
        +    "title": "StoryRemove",
        +    "type": "object"
        +  },
        +  "StoryTextEdit": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "op": {
        +        "const": "set_text",
        +        "title": "Op",
        +        "type": "string"
        +      },
        +      "path": {
        +        "items": {
        +          "maximum": 20000,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "maxItems": 64,
        +        "minItems": 1,
        +        "title": "Path",
        +        "type": "array"
        +      },
        +      "text": {
        +        "maxLength": 8000,
        +        "title": "Text",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "op",
        +      "path",
        +      "text"
        +    ],
        +    "title": "StoryTextEdit",
        +    "type": "object"
        +  }
        +}
      • addedInput schema / properties / citation_contract
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Contract"
        +}
      • addedInput schema / properties / citation_metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Metadata"
        +}
      • addedInput schema / properties / native_request
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NativeDocumentRequest"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
    • Changedevidence7 fields changed
      • addedInput schema / properties / citation_contract
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Contract"
        +}
      • addedInput schema / properties / citation_document
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Document"
        +}
      • addedInput schema / properties / citation_metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Citation Metadata"
        +}
      • addedInput schema / properties / expected_text_sha256
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[0-9a-f]{64}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Expected Text Sha256"
        +}
      • addedInput schema / properties / render_size
        Added value: +{
        +  "default": 1024,
        +  "maximum": 2048,
        +  "minimum": 64,
        +  "title": "Render Size",
        +  "type": "integer"
        +}
      • addedInput schema / properties / text_limit
        Added value: +{
        +  "default": 4000,
        +  "maximum": 8000,
        +  "minimum": 1,
        +  "title": "Text Limit",
        +  "type": "integer"
        +}
      • addedInput schema / properties / text_offset
        Added value: +{
        +  "default": 0,
        +  "minimum": 0,
        +  "title": "Text Offset",
        +  "type": "integer"
        +}
    • Changedfetch_document_asset1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "$defs": {
        -    "Annotations": {
        -      "description": "Optional annotations the client can use to inform how objects are used or displayed.",
        -      "properties": {
        -        "audience": {
        -          "anyOf": [
        -            {
        -              "items": {
        -                "enum": [
        -                  "user",
        -                  "assistant"
        -                ],
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null,
        -          "title": "Audience"
        -        },
        -        "lastModified": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null,
        -          "title": "Lastmodified"
        -        },
        -        "priority": {
        -          "anyOf": [
        -            {
        -              "maximum": 1,
        -              "minimum": 0,
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null,
        -          "title": "Priority"
        -        }
        -      },
        -      "title": "Annotations",
        -      "type": "object"
        -    },
        -    "ImageContent": {
        -      "description": "An image provided to or from an LLM.",
        -      "properties": {
        -        "_meta": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null,
        -          "title": "Meta"
        -        },
        -        "annotations": {
        -          "anyOf": [
        -            {
        -              "$ref": "#/$defs/Annotations"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null
        -        },
        -        "data": {
        -          "title": "Data",
        -          "type": "string"
        -        },
        -        "mimeType": {
        -          "title": "Mimetype",
        -          "type": "string"
        -        },
        -        "type": {
        -          "const": "image",
        -          "default": "image",
        -          "title": "Type",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "data",
        -        "mimeType"
        -      ],
        -      "title": "ImageContent",
        -      "type": "object"
        -    },
        -    "TextContent": {
        -      "description": "Text provided to or from an LLM.",
        -      "properties": {
        -        "_meta": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null,
        -          "title": "Meta"
        -        },
        -        "annotations": {
        -          "anyOf": [
        -            {
        -              "$ref": "#/$defs/Annotations"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "default": null
        -        },
        -        "text": {
        -          "title": "Text",
        -          "type": "string"
        -        },
        -        "type": {
        -          "const": "text",
        -          "default": "text",
        -          "title": "Type",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "text"
        -      ],
        -      "title": "TextContent",
        -      "type": "object"
        -    }
        -  },
        -  "properties": {
        -    "result": {
        -      "items": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/TextContent"
        -          },
        -          {
        -            "$ref": "#/$defs/ImageContent"
        -          }
        -        ]
        -      },
        -      "title": "Result",
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "fetch_document_assetOutput",
        -  "type": "object"
        -}New value: +null
    • Changedtable_cite4 fields changed
      • addedInput schema / properties / citation_sha256
        Added value: +{
        +  "default": "",
        +  "title": "Citation Sha256",
        +  "type": "string"
        +}
      • changedInput schema / properties / operation / enum
        Previous value: -[
        -  "add",
        -  "get",
        -  "remove",
        -  "cell_history",
        -  "coverage"
        -]New value: +[
        +  "add",
        +  "get",
        +  "read",
        +  "remove",
        +  "cell_history",
        +  "coverage"
        +]
      • addedInput schema / properties / text_limit
        Added value: +{
        +  "default": 4000,
        +  "title": "Text Limit",
        +  "type": "integer"
        +}
      • addedInput schema / properties / text_offset
        Added value: +{
        +  "default": 0,
        +  "title": "Text Offset",
        +  "type": "integer"
        +}
    • Changedtable_data1 field changed
      • removedInput schema / properties / value / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
    • Changedtable_manage1 field changed
      • removedInput schema / properties / default_value / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
  3. 11 tool updatesv1.0.1
    • Changedconvert_document1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changeddocument6 fields changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
      • addedInput schema / properties / doc_id / description
        Added value: +"Identifier of an already ingested document; required by inspect, prepare_ai, audit, retrieval, and export_assets operations."
      • addedInput schema / properties / file_paths / description
        Added value: +"Source document paths for auto, ingest, or import. This batch field is not accepted by preflight; pass exactly one PDF through pdf_path."
      • addedInput schema / properties / op / description
        Added value: +"Facade operation name. preflight requires pdf_path; auto/ingest/import use file_paths; export_assets/agent_assets require doc_id."
      • addedInput schema / properties / output_dir / description
        Added value: +"Managed child output directory. For export_assets it is resolved inside the document directory and defaults to agent-assets."
      • addedInput schema / properties / pdf_path / description
        Added value: +"Single PDF path required by preflight and used by PDF-specific facade operations. preflight never consumes file_paths."
    • Changeddocument_asset2 fields changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
      • addedInput schema / properties / response_format / enum
        Added value: +[
        +  "tree",
        +  "flat",
        +  "json"
        +]
    • Changeddocx1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedfetch_document_asset12 fields changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
      • removedOutput schema / $defs / Annotations / additionalProperties
        Removed value: -true
      • addedOutput schema / $defs / Annotations / description
        Added value: +"Optional annotations the client can use to inform how objects are used or displayed."
      • addedOutput schema / $defs / Annotations / properties / lastModified
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Lastmodified"
        +}
      • removedOutput schema / $defs / ImageContent / additionalProperties
        Removed value: -true
      • changedOutput schema / $defs / ImageContent / description
        Previous value: -"Image content for a message."New value: +"An image provided to or from an LLM."
      • addedOutput schema / $defs / ImageContent / properties / type / default
        Added value: +"image"
      • changedOutput schema / $defs / ImageContent / required
        Previous value: -[
        -  "type",
        -  "data",
        -  "mimeType"
        -]New value: +[
        +  "data",
        +  "mimeType"
        +]
      • removedOutput schema / $defs / TextContent / additionalProperties
        Removed value: -true
      • changedOutput schema / $defs / TextContent / description
        Previous value: -"Text content for a message."New value: +"Text provided to or from an LLM."
      • addedOutput schema / $defs / TextContent / properties / type / default
        Added value: +"text"
      • changedOutput schema / $defs / TextContent / required
        Previous value: -[
        -  "type",
        -  "text"
        -]New value: +[
        +  "text"
        +]
    • Changedingest_documents1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedingest_docx1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedknowledge1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedparse_pdf_structure1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedsave_docx1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
    • Changedtable_manage1 field changed
      • removedInput schema / properties / ctx
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Ctx"
        -}
  4. 30 tool updatesv0.7.0
    • First observedcitation_bundle
    • First observedconvert_document
    • First observeddiscover_sources
    • First observeddocument
    • First observeddocument_asset
    • First observeddocx
    • First observeddocx_table
    • First observeddocx_table_edit_plan
    • First observedetl_profile
    • First observedevidence
    • First observedfetch_document_asset
    • First observedfind_evidence_spans
    • First observedget_docx_content
    • First observedget_job_status
    • First observedingest_documents
    • First observedingest_docx
    • First observedjob
    • First observedknowledge
    • First observedlist_documents
    • First observedlist_jobs
    • First observedparse_pdf_structure
    • First observedplan_table
    • First observedsave_docx
    • First observedsection
    • First observedtable_cite
    • First observedtable_data
    • First observedtable_draft
    • First observedtable_history
    • First observedtable_manage
    • First observedverify_citation_ref

TDQS

C2.4/5.0

Scored across 30 tools

Disambiguation2/5

The tool set contains multiple consolidated facades and direct tools that heavily overlap: document, document_asset, fetch_document_asset, section, docx, docx_table, and evidence all cover document/asset territory, while job duplicates get_job_status/list_jobs. Even with detailed descriptions, an agent must read long contracts to pick the right entrypoint. Several tools have unclear boundaries despite some well-written individual descriptions.

Naming Consistency3/5

Names are consistently lowercase and snake_case, but they follow no single pattern: action-first names like ingest_documents and get_docx_content coexist with noun-only entrypoints like document, job, section, and evidence, plus the mixed table_manage/table_data versus plan_table style. Most names are readable and descriptive, but the generic single-word facades are vague and the overall convention is uneven.

Tool Count2/5

30 tools exceeds the 25-tool threshold and is inflated by redundant consolidated/direct pairs, e.g., document vs document_asset vs docx, and job vs get_job_status/list_jobs. The underlying domain is broad, but many tools could be merged or removed without losing capability, making the surface feel heavy for agents to navigate.

Completeness4/5

The server covers the document lifecycle well: PDF/DOCX ingestion, document listing and asset retrieval, table CRUD/drafts/citations, evidence spans/bundles, DOCX write-back, and job tracking. Minor gaps remain, such as the lack of a clearly exposed direct PDF create/update/delete tool outside the monolithic document facade and no OCR path, but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers