> For the complete documentation index, see [llms.txt](https://www.conserver.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.conserver.io/mcp-server/field-name-migration.md).

# Field-Name Migration

The vCon working group renamed two fields in `draft-ietf-vcon-vcon-core-02`:

| Old name (pre-spec-02) | New name (spec-02 / current)                       |
| ---------------------- | -------------------------------------------------- |
| `appended`             | `amended`                                          |
| `must_support`         | `critical` (often surfaced as `must_understand[]`) |

The vCon MCP server has shipped a migration that handles both names at the storage layer, so existing data and clients keep working while new code uses the spec-correct names. This page documents how that works in case you're debugging it or migrating a downstream consumer.

## What the migration does

Database migration `20251120150100_field_renames.sql`:

1. Renames the underlying columns: `appended` → `amended`, `must_support` → `critical`.
2. Creates a `vcons_legacy` view that re-exposes the old names for any reader that hasn't migrated.
3. Updates the indexes accordingly.

The TypeScript schema handlers in `src/tools/handlers/schema.ts` (around lines 34–44) translate between the old and new names on the way in and out. The tools themselves always operate on the new names.

## What this means for you

### If you read from the MCP server

Your client receives responses using the **new** field names: `amended`, `critical`. If your downstream code still expects `appended` / `must_support`, either:

* Update your code to use the new names (preferred), or
* Point your reader at the `vcons_legacy` view, which still uses the old names.

### If you write to the MCP server

The server accepts either name on input — for now. Submitting `appended` or `must_support` produces a deprecation warning in the response. New code should write the spec-correct names.

### If you query the database directly

Use the new column names on the canonical tables. Use the `vcons_legacy` view if you have queries you don't want to rewrite yet.

## Other field-name pitfalls

The rename is only the tip of the field-name issue. Some other names commonly get wrong:

* **Analysis field is `schema`**, never `schema_version`. The `vcon` Python library pre-0.9.1 sometimes emitted `schema_version`; the MCP server treats that as `schema` on read.
* **Attachment field is `purpose`**, never `type` — except the `lawful_basis` extension, which is the documented exception. The server flags any other attachment with a `type` field as suspicious.

## See also

* [Tool Reference](/mcp-server/tool-reference.md) — the full surface
* [Contract Tools](/mcp-server/contract-tools.md) — the May 2026 design that bakes the new names into the contract
* [vCon Library Quickstart](/vcon-library/quickstart.md) — the same migration as it applies to Python code


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.conserver.io/mcp-server/field-name-migration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
