Magic Envelope
Server Details
Create and send invitations and letters in a sealed envelope, one personal link per guest.
- Status
- Healthy
- Uptime
- 100.0% over 30 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- JaimeAlonsoGA/magic-envelope
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Each tool maps to a distinct resource+action: catalog discovery (get_catalog), CRUD on letters (create/get/update/delete_letter), and a single feedback action (rate_app). There is no overlap in what any two tools do, and the create_letter description clarifies when to chain into rate_app. An agent can select correctly without hesitation.
All six tools follow a strict verb_noun snake_case pattern: create_letter, get_letter, update_letter, delete_letter, get_catalog, rate_app. The verbs are used consistently for their semantic role (get for reads, create/update/delete for mutations), so the convention is fully predictable.
Six tools is tightly scoped: full letter lifecycle, one discovery tool, and one user-initiated feedback tool. Every tool has a clear reason to exist and nothing looks like filler or a redundant variant.
Create/read/update/delete plus catalog and rating covers the letter lifecycle well, including guest RSVP readback via get_letter. The only real gap is the absence of a list operation — letters are addressed solely by editKey, so a lost or forgotten key is unrecoverable without some external record-keeping.
Available Tools
6 toolscreate_letterCreate a letterAInspect
Create and publish an invitation or letter. Match the request to a preset from get_catalog (its for list): a house party, fiesta or quedada is party; a film club, cineforum or activity is event. Tonight is today's local date. Returns its link, one personal link per guest, a link-preview image and a rendered image per guest (PNG; add &format=jpeg), and a secret editKey (keep it to edit or delete later). When this succeeds and the letter is what the person asked for, call rate_app only with a score the person gives (see rate_app). Do not rate again on later edits. Also site and guide: the public pages to link when you mention Magic Envelope. The guest url is private and not indexed. Use {name} in texts to address each guest. Dates are local: "2026-11-14" (whole day) or "2026-11-14T18:00". Block id is optional and generated when omitted. envelope.blocks is an object of slot → block (see catalog.envelope), not an array.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language guests read the letter in | en |
| seal | No | Wax seal mark: "" none, "_" plain, "icon:<id>", "ini:ABC", "duo:A|J" | |
| style | No | Look of the letter and envelope (see catalog.styles) | parchment |
| blocks | No | Letter blocks, top to bottom. Replaces all blocks. Use {name} in text to address each guest. | |
| custom | No | Overrides on top of the style: accent/paper/ink/envelope colours, head/body fonts | |
| guests | No | Each guest gets their own addressed link | |
| preset | No | Start from an occasion preset (pre-filled blocks). On update it only changes the occasion. | |
| envelope | No | Envelope. blocks is an object of slot → block (front-center, front-tl, front-tr, front-bl, back-center), not an array. See catalog.envelope. | |
| sealShape | No | ||
| nameFallback | No | What {name} reads as without a guest (default: "Dear Guest" in the letter language) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral load and does it well: it discloses the returned artifacts (public link, per-guest private links, preview and rendered PNGs, jpeg via &format=jpeg) and that editKey is a secret needed for later edit/delete. It omits failure modes, limits (e.g. 1000-guest cap, 60-block cap) and any auth or rate-limit constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Return-value and rating-policy information are front-loaded, but the paragraph is a run-on that mixes invocation semantics, return values, rating etiquette, and marketing links ('site and guide') with a garbled fragment ('its for list'). It is dense without being organized, so an agent must re-read to separate rules from trivia.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, deeply nested creation tool with no output schema, the description covers what an agent needs: preset selection, date format, block structure, guest personalization, and the full shape of what comes back including the secret editKey. Remaining gaps (limits, error behavior) are secondary for a first-success call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 90%, so baseline is 3; the description still adds real meaning: local date formats ('2026-11-14' or '2026-11-14T18:00'), that block ids are optional and server-generated, that {name} personalizes text, and that envelope.blocks is a slot→block object rather than an array. The preset-matching rules add semantic guidance the enum alone cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create and publish an invitation or letter') plus the concrete artifact produced (personalized guest links, images, editKey). It is clearly distinguishable from siblings by naming get_catalog as the preset source and rate_app as the follow-up.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use routing: pull the preset from get_catalog, map occasion words (fiesta/quedada → party; cineforum → event), and only call rate_app when the user supplies a score, never again on edits. It never explicitly says 'use update_letter to modify an existing letter', so the create-vs-update boundary is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_letterDelete a letterAInspect
Delete a letter for good (needs its editKey): its links stop working, and guest names, RSVP answers, images and its app rating are erased.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| editKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden and does so well: it discloses that the operation is permanent, that an editKey is required, and enumerates the precise cascading destruction (links stop working; guest names, RSVP answers, images and app rating erased). This is exactly the kind of consequence information an agent needs before invoking an irreversible delete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the action and the irreversibility, then lists consequences. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema, no-annotation delete tool, the description covers action, prerequisite and side effects sufficiently. It could go slightly further on what happens with an invalid or missing editKey and whether the call is idempotent, but nothing critical to correct invocation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, yet it only addresses editKey (framed as a required credential) and never mentions the 'id' parameter at all. No format, type, or lookup semantics are added for either parameter, leaving half the inputs undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (letter), with the scope qualifier 'for good' that distinguishes it from update_letter and get_letter. An agent can tell immediately this is the destructive terminal operation on a letter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a prerequisite ('needs its editKey') and implies irreversibility, which hints at when this tool is appropriate. However, it never names an alternative (e.g., update_letter for non-destructive changes) or states when NOT to use it, leaving the routing decision implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogMagic Envelope catalogAInspect
Styles, occasion presets, block types (with examples), envelope slots, stamps and seal options. Call this first. Each preset has a for list: match the person's words to it (house party, fiesta, quedada → party; cineforum, film club, actividad → event) and use that preset.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral load: it discloses the returned content categories and the prerequisite ('call this first'), implying a read-only discovery step. However, it never explicitly states read-only behavior, response size, or whether the catalog is static, leaving genuine gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content list and the 'call this first' directive are front-loaded and the mapping examples are compact and purposeful. The arrow-notation mapping sentence is somewhat dense but each element earns its place by showing real intent-matching examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless catalog tool with no output schema, the description covers what is returned, the calling order, and how to use the preset mapping, which is close to sufficient. It stops just short of confirming read-only semantics or describing the shape of the returned entries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline this is a 4. The description adds semantic value by explaining the data model interior to the catalog ('each preset has a for list') and how to map user words like 'quedada' to a preset, which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what the catalog contains (styles, occasion presets, block types with examples, envelope slots, stamps, seal options), so an agent knows what it will receive. It never states an explicit verb like 'returns' or 'lists', relying on a noun fragment, but the resource is unambiguous and clearly distinct from the letter CRUD siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this first' is an explicit ordering directive that tells the agent when to invoke it relative to other tools, which is strong usage guidance. It does not name alternatives or exclusions (e.g., when it is unnecessary), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_letterRead a letterAInspect
Read a letter you created (needs its editKey): its content, links, images, and the guests' RSVP answers (yes / maybe / no, plus who hasn't answered).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| editKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the access requirement (editKey) and the exact shape of returned data, including the RSVP answer categories (yes/maybe/no) and non-responders. It does not cover failure behavior for an invalid or missing key, keeping it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action, with the return payload summarized compactly in a trailing clause. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description usefully substitutes by enumerating the return contents. The remaining gaps are the undocumented id parameter and the absence of error/permission-failure guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains the purpose of editKey (proof you own the letter), but the id parameter is left entirely unexplained, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (a letter you created), and the description of what it returns (content, links, images, RSVP answers) further pins it down. It is clearly distinguishable from create_letter, update_letter, delete_letter, and get_catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a prerequisite ('needs its editKey') and implicitly frames the tool as owner-scoped reading, but it never says when to prefer this over siblings or what happens without a valid key. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rate_appRate Magic EnvelopeAInspect
Only if the person tells you how it went, send their own score (1–5) once for the letter, with its editKey. Never rate on your own or assume a score. Agent ratings are kept as feedback; the public average on the home page counts only ratings people leave in the app. When you recommend the product, link site and guide, not the guest url.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| stars | Yes | ||
| editKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses that agent ratings are stored separately as feedback, that the public home-page average counts only ratings people leave in the app, and that only one rating is sent per letter. It stops short of stating whether a rating can be revised or what a failure looks like, which keeps it out of the 5 range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are tight and correctly front-loaded with the gating condition. The closing sentence about linking 'site and guide, not the guest url' when recommending the product is off-topic for a rating tool and dilutes an otherwise efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, no-annotation, no-output-schema mutation, the description covers purpose, gating condition, credential requirement, and downstream side effects. Only the absence of any response/error behavior or note on whether ratings are replaceable keeps it below complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three required params, so the description must compensate. It meaningfully covers 'stars' (1–5), ties 'id' to the letter implicitly, and explains the role of 'editKey' as the credential for that letter — adding real semantics the schema lacks, though editKey's origin is never spelled out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly enough — submit a 1–5 score tied to a letter via its editKey — and the constraint 'once for the letter' pins the scope. The only wobble is the naming mismatch between 'rate_app' and the letter-centric wording, but no sibling tool competes for rating, so differentiation is a non-issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit precondition ('Only if the person tells you how it went') and an explicit prohibition ('Never rate on your own or assume a score'), which is exactly the when/when-not guidance an agent needs. Nothing is left to inference about when this tool should fire.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_letterUpdate a letterAInspect
Change a letter. Only the fields you send change (lang, style… are kept). Links keep working. You may send the same object get_letter returned, including its card wrapper — it is applied. A body with no letter fields is an error, not a silent success. guests replaces the list but keeps each existing guest's id and link (matched by id, then by name); addGuests appends without touching anyone else. Image URLs are copied at full size. Text has no character limit; italic: true (or fontStyle: "italic"); custom.frame is none | rule | ornate.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| editKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses partial-update merge semantics (lang, style kept), link stability, that guests replaces while preserving ids/links and addGuests appends, image copying at full size, and the empty-body error. It omits auth/rate-limit context and reversibility, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and merge semantics, then layered detail on body fields. Every sentence carries information, though the final sentence packs several unrelated field notes into one dense block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and 0% schema coverage, the description covers merge behavior, error handling, and body-field semantics well. The gap is the required id/editKey parameters, which an agent must infer from name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the two required params (id, editKey) are undocumented, so the description must compensate. It does for the free-form body: field-level semantics for guests, addGuests, italic/fontStyle, and custom.frame enum values. The required id/editKey params remain unexplained, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Change a letter") that cleanly separates it from create_letter, delete_letter, and get_letter. It also clarifies the scope is partial: only fields sent are changed. It doesn't explicitly name sibling alternatives, but the verb alone disambiguates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: you may send the same object get_letter returned, including its card wrapper, and warns that a body with no letter fields is an error rather than a silent success. This tells the agent both a valid calling pattern and a misuse case. No explicit when-not or named alternatives beyond get_letter's return shape.
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 tool update
- Changed
create_letter3 fields changed- changed
Input schema / properties / blocks / items / oneOfPrevious value: -[ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "italic": { - "default": false, - "type": "boolean" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "italic": { - "default": false, - "type": "boolean" - }, - "text": { - "maxLength": 50000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } -]New value: +[ + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "size": { + "default": "xl", + "enum": [ + "md", + "lg", + "xl" + ], + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "heading", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "align": { + "default": "center", + "enum": [ + "left", + "center" + ], + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "text": { + "maxLength": 50000, + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "shape": { + "default": "wide", + "enum": [ + "wide", + "square", + "round" + ], + "type": "string" + }, + "src": { + "maxLength": 2048, + "type": "string" + }, + "type": { + "const": "image", + "type": "string" + } + }, + "required": [ + "type", + "src" + ], + "type": "object" + }, + { + "properties": { + "end": { + "maxLength": 40, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "start": { + "maxLength": 40, + "type": "string" + }, + "title": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "date", + "type": "string" + } + }, + "required": [ + "type", + "start" + ], + "type": "object" + }, + { + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "place", + "type": "string" + } + }, + "required": [ + "type", + "name", + "address" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "to": { + "default": "", + "maxLength": 40, + "type": "string" + }, + "type": { + "const": "countdown", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "icon": { + "default": "link", + "enum": [ + "link", + "gift", + "music", + "video", + "map", + "camera" + ], + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "link", + "type": "string" + } + }, + "required": [ + "type", + "label", + "href" + ], + "type": "object" + }, + { + "properties": { + "caption": { + "maxLength": 200, + "type": "string" + }, + "data": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "qr", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "properties": { + "channel": { + "enum": [ + "whatsapp", + "sms", + "email" + ], + "type": "string" + }, + "contacts": { + "properties": { + "email": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "sms": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "whatsapp": { + "default": "", + "maxLength": 200, + "type": "string" + } + }, + "type": "object" + }, + "deadline": { + "maxLength": 40, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "type": { + "const": "rsvp", + "type": "string" + } + }, + "required": [ + "type", + "channel", + "contacts" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "items": { + "items": { + "properties": { + "time": { + "maxLength": 10, + "type": "string" + }, + "what": { + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "time", + "what" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "type": { + "const": "agenda", + "type": "string" + } + }, + "required": [ + "type", + "items" + ], + "type": "object" + }, + { + "properties": { + "board": { + "default": [], + "items": { + "oneOf": [ + { + "properties": { + "kind": { + "const": "color", + "type": "string" + }, + "value": { + "pattern": "^#[0-9a-f]{6}$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "emoji", + "type": "string" + }, + "value": { + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "value": { + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "image", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "maxItems": 12, + "type": "array" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "dress", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "iban": { + "maxLength": 200, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "gift", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "signature", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "style": { + "default": "flourish", + "enum": [ + "flourish", + "stars", + "line" + ], + "type": "string" + }, + "type": { + "const": "divider", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "music", + "type": "string" + } + }, + "required": [ + "type", + "href" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "stamp": { + "anyOf": [ + { + "enum": [ + "love", + "rose", + "dove", + "castle", + "moon", + "cake", + "sunflower", + "shell", + "butterfly", + "star", + "key", + "rocket", + "disco", + "invader" + ], + "type": "string" + }, + { + "const": "", + "type": "string" + } + ] + }, + "type": { + "const": "stamp", + "type": "string" + } + }, + "required": [ + "type", + "stamp" + ], + "type": "object" + } +] - changed
Input schema / properties / envelope / descriptionPrevious value: -"Envelope slot blocks, partial like letter blocks (see catalog.envelope for each slot's block type)"New value: +"Envelope. blocks is an object of slot → block (front-center, front-tl, front-tr, front-bl, back-center), not an array. See catalog.envelope." - changed
Input schema / properties / envelope / properties / blocks / additionalProperties / oneOfPrevious value: -[ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "italic": { - "default": false, - "type": "boolean" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "italic": { - "default": false, - "type": "boolean" - }, - "text": { - "maxLength": 50000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } -]New value: +[ + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "size": { + "default": "xl", + "enum": [ + "md", + "lg", + "xl" + ], + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "heading", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "align": { + "default": "center", + "enum": [ + "left", + "center" + ], + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "text": { + "maxLength": 50000, + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "shape": { + "default": "wide", + "enum": [ + "wide", + "square", + "round" + ], + "type": "string" + }, + "src": { + "maxLength": 2048, + "type": "string" + }, + "type": { + "const": "image", + "type": "string" + } + }, + "required": [ + "type", + "src" + ], + "type": "object" + }, + { + "properties": { + "end": { + "maxLength": 40, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "start": { + "maxLength": 40, + "type": "string" + }, + "title": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "date", + "type": "string" + } + }, + "required": [ + "type", + "start" + ], + "type": "object" + }, + { + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "place", + "type": "string" + } + }, + "required": [ + "type", + "name", + "address" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "to": { + "default": "", + "maxLength": 40, + "type": "string" + }, + "type": { + "const": "countdown", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "icon": { + "default": "link", + "enum": [ + "link", + "gift", + "music", + "video", + "map", + "camera" + ], + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "link", + "type": "string" + } + }, + "required": [ + "type", + "label", + "href" + ], + "type": "object" + }, + { + "properties": { + "caption": { + "maxLength": 200, + "type": "string" + }, + "data": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "qr", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "properties": { + "channel": { + "enum": [ + "whatsapp", + "sms", + "email" + ], + "type": "string" + }, + "contacts": { + "properties": { + "email": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "sms": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "whatsapp": { + "default": "", + "maxLength": 200, + "type": "string" + } + }, + "type": "object" + }, + "deadline": { + "maxLength": 40, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "type": { + "const": "rsvp", + "type": "string" + } + }, + "required": [ + "type", + "channel", + "contacts" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "items": { + "items": { + "properties": { + "time": { + "maxLength": 10, + "type": "string" + }, + "what": { + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "time", + "what" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "type": { + "const": "agenda", + "type": "string" + } + }, + "required": [ + "type", + "items" + ], + "type": "object" + }, + { + "properties": { + "board": { + "default": [], + "items": { + "oneOf": [ + { + "properties": { + "kind": { + "const": "color", + "type": "string" + }, + "value": { + "pattern": "^#[0-9a-f]{6}$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "emoji", + "type": "string" + }, + "value": { + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "value": { + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "image", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "maxItems": 12, + "type": "array" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "dress", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "iban": { + "maxLength": 200, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "gift", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "signature", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "style": { + "default": "flourish", + "enum": [ + "flourish", + "stars", + "line" + ], + "type": "string" + }, + "type": { + "const": "divider", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "music", + "type": "string" + } + }, + "required": [ + "type", + "href" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "Omitted ids are generated by the server.", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "stamp": { + "anyOf": [ + { + "enum": [ + "love", + "rose", + "dove", + "castle", + "moon", + "cake", + "sunflower", + "shell", + "butterfly", + "star", + "key", + "rocket", + "disco", + "invader" + ], + "type": "string" + }, + { + "const": "", + "type": "string" + } + ] + }, + "type": { + "const": "stamp", + "type": "string" + } + }, + "required": [ + "type", + "stamp" + ], + "type": "object" + } +]
1 tool update
- Added
rate_app
2 tool updates
- Changed
create_letter3 fields changed- changed
Input schema / properties / blocks / items / oneOfPrevious value: -[ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 4000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } -]New value: +[ + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "size": { + "default": "xl", + "enum": [ + "md", + "lg", + "xl" + ], + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "heading", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "align": { + "default": "center", + "enum": [ + "left", + "center" + ], + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "text": { + "maxLength": 50000, + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "shape": { + "default": "wide", + "enum": [ + "wide", + "square", + "round" + ], + "type": "string" + }, + "src": { + "maxLength": 2048, + "type": "string" + }, + "type": { + "const": "image", + "type": "string" + } + }, + "required": [ + "id", + "type", + "src" + ], + "type": "object" + }, + { + "properties": { + "end": { + "maxLength": 40, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "start": { + "maxLength": 40, + "type": "string" + }, + "title": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "date", + "type": "string" + } + }, + "required": [ + "id", + "type", + "start" + ], + "type": "object" + }, + { + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "place", + "type": "string" + } + }, + "required": [ + "id", + "type", + "name", + "address" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "to": { + "default": "", + "maxLength": 40, + "type": "string" + }, + "type": { + "const": "countdown", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "icon": { + "default": "link", + "enum": [ + "link", + "gift", + "music", + "video", + "map", + "camera" + ], + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "link", + "type": "string" + } + }, + "required": [ + "id", + "type", + "label", + "href" + ], + "type": "object" + }, + { + "properties": { + "caption": { + "maxLength": 200, + "type": "string" + }, + "data": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "qr", + "type": "string" + } + }, + "required": [ + "id", + "type", + "data" + ], + "type": "object" + }, + { + "properties": { + "channel": { + "enum": [ + "whatsapp", + "sms", + "email" + ], + "type": "string" + }, + "contacts": { + "properties": { + "email": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "sms": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "whatsapp": { + "default": "", + "maxLength": 200, + "type": "string" + } + }, + "type": "object" + }, + "deadline": { + "maxLength": 40, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "type": { + "const": "rsvp", + "type": "string" + } + }, + "required": [ + "id", + "type", + "channel", + "contacts" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "items": { + "items": { + "properties": { + "time": { + "maxLength": 10, + "type": "string" + }, + "what": { + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "time", + "what" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "type": { + "const": "agenda", + "type": "string" + } + }, + "required": [ + "id", + "type", + "items" + ], + "type": "object" + }, + { + "properties": { + "board": { + "default": [], + "items": { + "oneOf": [ + { + "properties": { + "kind": { + "const": "color", + "type": "string" + }, + "value": { + "pattern": "^#[0-9a-f]{6}$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "emoji", + "type": "string" + }, + "value": { + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "value": { + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "image", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "maxItems": 12, + "type": "array" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "dress", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "iban": { + "maxLength": 200, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "gift", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "signature", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "style": { + "default": "flourish", + "enum": [ + "flourish", + "stars", + "line" + ], + "type": "string" + }, + "type": { + "const": "divider", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "music", + "type": "string" + } + }, + "required": [ + "id", + "type", + "href" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "stamp": { + "anyOf": [ + { + "enum": [ + "love", + "rose", + "dove", + "castle", + "moon", + "cake", + "sunflower", + "shell", + "butterfly", + "star", + "key", + "rocket", + "disco", + "invader" + ], + "type": "string" + }, + { + "const": "", + "type": "string" + } + ] + }, + "type": { + "const": "stamp", + "type": "string" + } + }, + "required": [ + "id", + "type", + "stamp" + ], + "type": "object" + } +] - added
Input schema / properties / custom / properties / frameAdded value: +{ + "enum": [ + "none", + "rule", + "ornate" + ], + "type": "string" +} - changed
Input schema / properties / envelope / properties / blocks / additionalProperties / oneOfPrevious value: -[ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 4000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } -]New value: +[ + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "size": { + "default": "xl", + "enum": [ + "md", + "lg", + "xl" + ], + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "heading", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "align": { + "default": "center", + "enum": [ + "left", + "center" + ], + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "italic": { + "default": false, + "type": "boolean" + }, + "text": { + "maxLength": 50000, + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "shape": { + "default": "wide", + "enum": [ + "wide", + "square", + "round" + ], + "type": "string" + }, + "src": { + "maxLength": 2048, + "type": "string" + }, + "type": { + "const": "image", + "type": "string" + } + }, + "required": [ + "id", + "type", + "src" + ], + "type": "object" + }, + { + "properties": { + "end": { + "maxLength": 40, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "start": { + "maxLength": 40, + "type": "string" + }, + "title": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "date", + "type": "string" + } + }, + "required": [ + "id", + "type", + "start" + ], + "type": "object" + }, + { + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "place", + "type": "string" + } + }, + "required": [ + "id", + "type", + "name", + "address" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "to": { + "default": "", + "maxLength": 40, + "type": "string" + }, + "type": { + "const": "countdown", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "icon": { + "default": "link", + "enum": [ + "link", + "gift", + "music", + "video", + "map", + "camera" + ], + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "link", + "type": "string" + } + }, + "required": [ + "id", + "type", + "label", + "href" + ], + "type": "object" + }, + { + "properties": { + "caption": { + "maxLength": 200, + "type": "string" + }, + "data": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "qr", + "type": "string" + } + }, + "required": [ + "id", + "type", + "data" + ], + "type": "object" + }, + { + "properties": { + "channel": { + "enum": [ + "whatsapp", + "sms", + "email" + ], + "type": "string" + }, + "contacts": { + "properties": { + "email": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "sms": { + "default": "", + "maxLength": 200, + "type": "string" + }, + "whatsapp": { + "default": "", + "maxLength": 200, + "type": "string" + } + }, + "type": "object" + }, + "deadline": { + "maxLength": 40, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "type": { + "const": "rsvp", + "type": "string" + } + }, + "required": [ + "id", + "type", + "channel", + "contacts" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "items": { + "items": { + "properties": { + "time": { + "maxLength": 10, + "type": "string" + }, + "what": { + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "time", + "what" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "type": { + "const": "agenda", + "type": "string" + } + }, + "required": [ + "id", + "type", + "items" + ], + "type": "object" + }, + { + "properties": { + "board": { + "default": [], + "items": { + "oneOf": [ + { + "properties": { + "kind": { + "const": "color", + "type": "string" + }, + "value": { + "pattern": "^#[0-9a-f]{6}$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "emoji", + "type": "string" + }, + "value": { + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "value": { + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "image", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "maxItems": 12, + "type": "array" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "dress", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "iban": { + "maxLength": 200, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "interactive": { + "default": true, + "type": "boolean" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "gift", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "text": { + "maxLength": 200, + "type": "string" + }, + "type": { + "const": "signature", + "type": "string" + } + }, + "required": [ + "id", + "type", + "text" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "style": { + "default": "flourish", + "enum": [ + "flourish", + "stars", + "line" + ], + "type": "string" + }, + "type": { + "const": "divider", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "properties": { + "href": { + "maxLength": 2048, + "type": "string" + }, + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "music", + "type": "string" + } + }, + "required": [ + "id", + "type", + "href" + ], + "type": "object" + }, + { + "properties": { + "id": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "stamp": { + "anyOf": [ + { + "enum": [ + "love", + "rose", + "dove", + "castle", + "moon", + "cake", + "sunflower", + "shell", + "butterfly", + "star", + "key", + "rocket", + "disco", + "invader" + ], + "type": "string" + }, + { + "const": "", + "type": "string" + } + ] + }, + "type": { + "const": "stamp", + "type": "string" + } + }, + "required": [ + "id", + "type", + "stamp" + ], + "type": "object" + } +]
- Changed
update_letter12 fields changed- added
Input schema / additionalPropertiesAdded value: +{} - removed
Input schema / properties / addGuestsRemoved value: -{ - "description": "Guests to append; existing guests and links are untouched.", - "items": { - "properties": { - "name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" -} - removed
Input schema / properties / blocksRemoved value: -{ - "description": "Letter blocks, top to bottom. Replaces all blocks. Use {name} in text to address each guest.", - "items": { - "oneOf": [ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 4000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } - ] - }, - "maxItems": 60, - "minItems": 1, - "type": "array" -} - removed
Input schema / properties / customRemoved value: -{ - "description": "Overrides on top of the style: accent/paper/ink/envelope colours, head/body fonts", - "properties": { - "accent": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - }, - "body": { - "enum": [ - "medieval", - "fell", - "playfair", - "kalam", - "inter", - "grotesk", - "monoton", - "righteous", - "pixel", - "vt323", - "cinzel", - "fredoka", - "courier", - "bebas" - ], - "type": "string" - }, - "envelope": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - }, - "head": { - "enum": [ - "medieval", - "fell", - "playfair", - "kalam", - "inter", - "grotesk", - "monoton", - "righteous", - "pixel", - "vt323", - "cinzel", - "fredoka", - "courier", - "bebas" - ], - "type": "string" - }, - "ink": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - }, - "paper": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "type": "object" -} - removed
Input schema / properties / envelopeRemoved value: -{ - "description": "Envelope slot blocks, partial like letter blocks (see catalog.envelope for each slot's block type)", - "properties": { - "blocks": { - "additionalProperties": { - "oneOf": [ - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "size": { - "default": "xl", - "enum": [ - "md", - "lg", - "xl" - ], - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "heading", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "align": { - "default": "center", - "enum": [ - "left", - "center" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 4000, - "type": "string" - }, - "type": { - "const": "text", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "shape": { - "default": "wide", - "enum": [ - "wide", - "square", - "round" - ], - "type": "string" - }, - "src": { - "maxLength": 2048, - "type": "string" - }, - "type": { - "const": "image", - "type": "string" - } - }, - "required": [ - "id", - "type", - "src" - ], - "type": "object" - }, - { - "properties": { - "end": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "start": { - "maxLength": 40, - "type": "string" - }, - "title": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "date", - "type": "string" - } - }, - "required": [ - "id", - "type", - "start" - ], - "type": "object" - }, - { - "properties": { - "address": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "name": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "place", - "type": "string" - } - }, - "required": [ - "id", - "type", - "name", - "address" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "to": { - "default": "", - "maxLength": 40, - "type": "string" - }, - "type": { - "const": "countdown", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "icon": { - "default": "link", - "enum": [ - "link", - "gift", - "music", - "video", - "map", - "camera" - ], - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "label": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "link", - "type": "string" - } - }, - "required": [ - "id", - "type", - "label", - "href" - ], - "type": "object" - }, - { - "properties": { - "caption": { - "maxLength": 200, - "type": "string" - }, - "data": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "qr", - "type": "string" - } - }, - "required": [ - "id", - "type", - "data" - ], - "type": "object" - }, - { - "properties": { - "channel": { - "enum": [ - "whatsapp", - "sms", - "email" - ], - "type": "string" - }, - "contacts": { - "properties": { - "email": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "sms": { - "default": "", - "maxLength": 200, - "type": "string" - }, - "whatsapp": { - "default": "", - "maxLength": 200, - "type": "string" - } - }, - "type": "object" - }, - "deadline": { - "maxLength": 40, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "type": { - "const": "rsvp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "channel", - "contacts" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "items": { - "items": { - "properties": { - "time": { - "maxLength": 10, - "type": "string" - }, - "what": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "time", - "what" - ], - "type": "object" - }, - "maxItems": 20, - "type": "array" - }, - "type": { - "const": "agenda", - "type": "string" - } - }, - "required": [ - "id", - "type", - "items" - ], - "type": "object" - }, - { - "properties": { - "board": { - "default": [], - "items": { - "oneOf": [ - { - "properties": { - "kind": { - "const": "color", - "type": "string" - }, - "value": { - "pattern": "^#[0-9a-f]{6}$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "emoji", - "type": "string" - }, - "value": { - "maxLength": 16, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "value": { - "maxLength": 60, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "properties": { - "kind": { - "const": "image", - "type": "string" - }, - "value": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "maxItems": 12, - "type": "array" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "dress", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "iban": { - "maxLength": 200, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "interactive": { - "default": true, - "type": "boolean" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "gift", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "text": { - "maxLength": 200, - "type": "string" - }, - "type": { - "const": "signature", - "type": "string" - } - }, - "required": [ - "id", - "type", - "text" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "style": { - "default": "flourish", - "enum": [ - "flourish", - "stars", - "line" - ], - "type": "string" - }, - "type": { - "const": "divider", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "properties": { - "href": { - "maxLength": 2048, - "type": "string" - }, - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "music", - "type": "string" - } - }, - "required": [ - "id", - "type", - "href" - ], - "type": "object" - }, - { - "properties": { - "id": { - "maxLength": 32, - "minLength": 1, - "type": "string" - }, - "stamp": { - "anyOf": [ - { - "enum": [ - "love", - "rose", - "dove", - "castle", - "moon", - "cake", - "sunflower", - "shell", - "butterfly", - "star", - "key", - "rocket", - "disco", - "invader" - ], - "type": "string" - }, - { - "const": "", - "type": "string" - } - ] - }, - "type": { - "const": "stamp", - "type": "string" - } - }, - "required": [ - "id", - "type", - "stamp" - ], - "type": "object" - } - ] - }, - "propertyNames": { - "enum": [ - "front-center", - "front-tl", - "front-tr", - "front-bl", - "back-center" - ], - "type": "string" - }, - "type": "object" - } - }, - "required": [ - "blocks" - ], - "type": "object" -} - removed
Input schema / properties / guestsRemoved value: -{ - "description": "The full guest list. Guests keep their id and link when matched by id or, failing that, by name.", - "items": { - "properties": { - "id": { - "type": "string" - }, - "name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" -} - removed
Input schema / properties / langRemoved value: -{ - "description": "Language guests read the letter in", - "enum": [ - "es", - "en", - "fr", - "pt", - "it", - "de" - ], - "type": "string" -} - removed
Input schema / properties / nameFallbackRemoved value: -{ - "description": "What {name} reads as without a guest (default: \"Dear Guest\" in the letter language)", - "maxLength": 60, - "type": "string" -} - removed
Input schema / properties / presetRemoved value: -{ - "description": "Start from an occasion preset (pre-filled blocks). On update it only changes the occasion.", - "enum": [ - "birthday", - "wedding", - "party", - "baby", - "dinner", - "graduation", - "event", - "letter" - ], - "type": "string" -} - removed
Input schema / properties / sealRemoved value: -{ - "description": "Wax seal mark: \"\" none, \"_\" plain, \"icon:<id>\", \"ini:ABC\", \"duo:A|J\"", - "maxLength": 16, - "type": "string" -} - removed
Input schema / properties / sealShapeRemoved value: -{ - "enum": [ - "scallop", - "round", - "flower", - "octagon" - ], - "type": "string" -} - removed
Input schema / properties / styleRemoved value: -{ - "description": "Look of the letter and envelope (see catalog.styles)", - "enum": [ - "parchment", - "midnight", - "romance", - "botanical", - "notebook", - "minimal", - "launch", - "groovy", - "deco", - "ivory", - "brutal", - "bubblegum", - "confetti", - "typewriter", - "pocket" - ], - "type": "string" -}
5 tool updates
- First observed
create_letter - First observed
delete_letter - First observed
get_catalog - First observed
get_letter - First observed
update_letter
Related MCP Connectors
Create, design and send event invitations, manage guest lists, and track RSVPs.
Design letters and cards, and prepare, review, pay for, and send letters and postcards.
Manage digital invitations, guest lists, RSVPs and seating for weddings and events.
Your AI writes letters. We send them as real post to 31 countries, with status and e-mail updates.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables hosts and developers to create and manage invitas invitations and guest lists from AI assistants, including editing invitation text, sharing personal guest links, recording attendance confirmations, arranging tables, and preparing reminders. Connects over Streamable HTTP with OAuth 2.1 and scoped read/write permissions for events, guests, and seating.CC BY-4.0- AlicenseNot gradedqualityDmaintenanceEnables creating and customizing mobile wedding invitations through natural language, with support for multiple designs, RSVP, maps, gallery, and share tokens.Creative Commons Attribution Non Commercial 4.0 International
- AlicenseAqualityAmaintenanceEnables sending physical letters (including registered mail) from PDFs via the Pingen API, with tools to manage drafts, submit, track, and cancel letters.919 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to prepare, price, review, pay for, and send real physical letters and postcards via a hosted MCP server.-
Glama MCP Gateway
Add one secure layer between your agents and this server.