Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-01-24
Changed the definition of "lookup_character"
⟨641 unchanged words⟩ "},{"type":"null"}]},"inferred":{"type":"boolean"},"pronunciation":{"type":"string"},"tone" ⟨11 unchanged words⟩ string"}},"required":["type","pronunciation","inferred"],"type":"object"},"type": ⟨46 unchanged words⟩
Changed the definition of "convert_text"
⟨84 unchanged words⟩ character that looks plausible. Input is truncated past120500 characters.
⟨39 unchanged words⟩ Chữ Nôm for \"to_viet\". Up to120500 characters.","minLength":1,"type":"string ⟨4 unchanged words⟩
⟨15 unchanged words⟩ ,"original":{"type":"string"},"ranking":{"description":"to_nom only. \"context\": the contextual ranker ordered the ambiguous words. \"frequency\": corpus frequency alone ordered them, either because no word needed ranking (one candidate each, or a hand-set primary) or because the ranker did not answer.","enum":["context","frequency"],"type":"string"},"
Changed the definition of "lookup_character" and "lookup_dictionary_entry"
⟨144 unchanged words⟩ string"},"han":{"description":"Thesingleheadword's Hán/Nômcodepointform, or nullforwhenIDS-onlythereentries.is none. One codepoint in character dictionaries; in word-level works (ntqatd) it can be a whole word such as 別咍, so do not treat it as a single character.","type":["string","null"]} ⟨3 unchanged words⟩ unicode\" | \"pua\" | \"image_only\" | \"none\" (the work prints no glyph for this headword).","type":"string"},"headword": ⟨499 unchanged words⟩
Changed the definition of "lookup_dictionary_entry"
⟨788 unchanged words⟩ :"object"},"type":"array"},"crossReference":{"anyOf":[{"additionalProperties":false,"properties":{"entryId":{"description":"The target entry in this same work — pass it back to lookup_dictionary_entry.","type":"string"},"han":{"type":["string","null"]},"reading":{"type":["string","null"]}},"required":["entryId"],"type":"object"},{"type":"null"}],"description":"Where a definition points instead of defining. 5,676 senses read \"Như __\" — \"same as ___\" — with the blank never printed; this is the ___. When it is present the definition is a pointer, so follow it rather than reporting the sense as empty or the reference as unresolvable."},"definition":{"type":"string"},"groupOrder":{ ⟨24 unchanged words⟩ "minimum":-9007199254740991,"type":"integer"},"phonology":{"description":"A reconstructed initial cluster and its modern reflex, verbatim, e.g. \"*kl- → tr-\". This is the evidence for why a Hán glyph was borrowed for a Vietnamese word that sounds unrelated today. Quote it; do not elaborate on it.","type":["string","null"]},"structCode":{"description":"NômFirst structural code only. Prefer structCodes, which carries all of them.","type":["string","null"]},"structCodes":{"description":"Every structural
Added "lookup_dictionary_entry"; changed the definition of "convert_text", "lookup_character" and "search_corpus" (3 tools before, 4 now)
before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"converted":{"type":"string"},"direction":{"enum":["to_nom","to_viet"],"type":"string"},"original":{"type":"string"},"segments":{"items":{"additionalProperties":false,"properties":{"alternatives":{"items":{"type":"string"},"type":"array"},"codepoints":{"items":{"type":"string"},"type":"array"},"source":{"type":"string"},"target":{"type":["string","null"]}},"required":["source","target"],"type":"object"},"type":"array"},"truncated":{"type":"boolean"},"unmatched":{"description":"Words with NO dictionary entry. Report as gaps; never fill them in.","items":{"type":"string"},"type":"array"}},"required":["direction","original","converted","unmatched","segments"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true,"title":"Convert between Vietnamese and Chữ Nôm"}Certificate recorded, valid to 2026-11-26
Authorization not required
First tool surface recorded: 3 tools (server version 1.65.1)
Showing the latest 9 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"entry":{"additionalProperties":false,"properties":{"corrections":{"description":"Editorial corrections recorded by the source, when present.","items":{},"type":"array"},"definition":{"description":"May be empty — 545 entries carry their sense only in subentries.","type":["string","null"]},"entryId":{"description":"Unique WITHIN this work only, e.g. \"B-0123\". Always pass it together with workKey.","type":"string"},"globalId":{"type":["string","null"]},"han":{"description":"The single Hán/Nôm codepoint, or null for IDS-only entries.","type":["string","null"]},"hanImage":{"description":"Scan reference for image-only glyphs, when the source carried one."},"hanStatus":{"description":"\"unicode\" | \"pua\" | \"image_only\".","type":"string"},"headword":{"description":"Quốc-ngữ headword in ORIGINAL 19th-century orthography.","type":"string"},"orderInWork":{"description":"Position in the WHOLE work, 0-based across every section — not a position within the section. B-0123 is 196 because 74 entries precede letter B. It equals globalId minus one: the same count, not a different basis. Use it for ordering only; cite entryId to identify an entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"readingNote":{"description":"Printed alternate reading.","type":["string","null"]},"sourceLetter":{"description":"The printed alphabetical SECTION this entry sits in — not the headword's own first letter. The tail of a section can spill into the next word, so \"Cạ\" is filed under \"B\". Never infer the headword's spelling from it.","type":["string","null"]},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Page of the scanned volume this entry is printed on. Cite it as a page number."},"typeMarker":{"description":"The printed marker verbatim: \"n.\" means nôm (script origin), NOT noun.","type":["string","null"]}},"required":["entryId","headword","hanStatus","orderInWork"],"type":"object"},"guidance":{"type":"string"},"matchCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"matches":{"description":"Headword search results. Exact matches first, then prefix matches.","items":{"additionalProperties":false,"properties":{"citationCount":{"description":"How many attested citations sit under those senses.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"definition":{"description":"May be empty — 545 entries carry their sense only in subentries.","type":["string","null"]},"entryId":{"description":"Unique WITHIN this work only, e.g. \"B-0123\". Always pass it together with workKey.","type":"string"},"han":{"description":"The single Hán/Nôm codepoint, or null for IDS-only entries.","type":["string","null"]},"hanStatus":{"description":"\"unicode\" | \"pua\" | \"image_only\".","type":"string"},"headword":{"description":"Quốc-ngữ headword in ORIGINAL 19th-century orthography.","type":"string"},"orderInWork":{"description":"Position in the WHOLE work, 0-based across every section — not a position within the section. B-0123 is 196 because 74 entries precede letter B. It equals globalId minus one: the same count, not a different basis. Use it for ordering only; cite entryId to identify an entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"senseCount":{"description":"How many numbered senses this entry has. Zero for works that print subentries instead.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sourceLetter":{"description":"The printed alphabetical SECTION this entry sits in — not the headword's own first letter. The tail of a section can spill into the next word, so \"Cạ\" is filed under \"B\". Never infer the headword's spelling from it.","type":["string","null"]},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Page of the scanned volume this entry is printed on. Cite it as a page number."},"subentryCount":{"description":"How many subentries this entry HAS. None of them are included here — call lookup_dictionary_entry with entryId to read them.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"typeMarker":{"description":"The printed marker verbatim: \"n.\" means nôm (script origin), NOT noun.","type":["string","null"]},"workKey":{"description":"Stable key of the work, e.g. \"dnqatv\". Pass it back as `work`.","type":"string"},"workTitle":{"description":"The work's title as it prints it — \"Quấc\", not the modern \"Quốc\".","type":"string"}},"required":["workKey","workTitle","entryId","headword","hanStatus","orderInWork","subentryCount","senseCount","citationCount"],"type":"object"},"type":"array"},"senses":{"description":"Every sense of this entry, complete. Not paged — if the field is present, it is all of them.","items":{"additionalProperties":false,"properties":{"citations":{"description":"Attested usages for THIS sense. Always complete — never paged.","items":{"additionalProperties":false,"properties":{"order":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"references":{"items":{"additionalProperties":false,"properties":{"fullTitle":{"description":"The work's full title where the source's reference list gives one.","type":["string","null"]},"locus":{"description":"Folio or locator within that work, e.g. \"48b\". Cite it.","type":["string","null"]},"raw":{"description":"The reference exactly as printed, e.g. \"Truyện Kiều, 48b\".","type":"string"},"work":{"description":"Short title, e.g. \"Truyện Kiều\".","type":["string","null"]}},"required":["raw"],"type":"object"},"type":"array"},"sourceText":{"description":"The passage in Chữ Nôm as printed. Null when the source printed none.","type":["string","null"]},"transliteration":{"description":"Its Quốc-ngữ reading as printed.","type":["string","null"]}},"required":["order","references"],"type":"object"},"type":"array"},"crossReference":{"anyOf":[{"additionalProperties":false,"properties":{"entryId":{"description":"The target entry in this same work — pass it back to lookup_dictionary_entry.","type":"string"},"han":{"type":["string","null"]},"reading":{"type":["string","null"]}},"required":["entryId"],"type":"object"},{"type":"null"}],"description":"Where a definition points instead of defining. 5,676 senses read \"Như __\" — \"same as ___\" — with the blank never printed; this is the ___. When it is present the definition is a pointer, so follow it rather than reporting the sense as empty or the reference as unresolvable."},"definition":{"type":"string"},"groupOrder":{"description":"Which printed sense group this belongs to.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"order":{"description":"0-based position across the whole entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"phonology":{"description":"A reconstructed initial cluster and its modern reflex, verbatim, e.g. \"*kl- → tr-\". This is the evidence for why a Hán glyph was borrowed for a Vietnamese word that sounds unrelated today. Quote it; do not elaborate on it.","type":["string","null"]},"structCode":{"description":"First structural code only. Prefer structCodes, which carries all of them.","type":["string","null"]},"structCodes":{"description":"Every structural classification the source prints for this sense, in printed order (A1, C2, F2, …) — how the glyph was formed or borrowed FOR THIS SENSE, which is why one headword can carry senses under different codes. Their meanings are supplied in structLabels — use those words rather than your own.","items":{"type":"string"},"type":"array"},"structLabels":{"description":"What each code MEANS, from the published taxonomy. Use these words; do not compose your own explanation of a code. An entry with `vi`/`en` null is a code the taxonomy does not define — say it is unexplained rather than guessing.","items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"en":{"description":"A plain-English reading of that path.","type":["string","null"]},"vi":{"description":"The taxonomic path in the source's own terms.","type":["string","null"]}},"required":["code"],"type":"object"},"type":"array"},"structRaw":{"description":"The classification line verbatim, e.g. \"A1: 照 chiếu\".","type":["string","null"]},"structRelation":{"anyOf":[{"enum":["single","derivation","alternative"],"type":"string"},{"type":"null"}],"description":"How the codes relate. \"derivation\" means the source printed an arrow — this class became that one, a claim about the glyph's origin. \"alternative\" means a pipe: either classification applies. Say which; do not collapse two codes into one."},"typeMarker":{"description":"The printed marker as set (◎ or 〄). Report it verbatim; do not translate it into a claim.","type":["string","null"]}},"required":["order","groupOrder","structCodes","structLabels","definition","citations"],"type":"object"},"type":"array"},"subentries":{"additionalProperties":false,"properties":{"coverage":{"description":"States exactly what this response covers. Repeat its claim; do not assert more than it says.","type":"string"},"items":{"description":"This page only — `returned` of `total`, starting at `offset`.","items":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"display":{"description":"As printed, dash placeholder intact.","type":["string","null"]},"han":{"description":"Only 2,986 of 64,283 carry one. Null means the source printed none.","type":["string","null"]},"order":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"term":{"description":"Dash placeholder expanded; original orthography.","type":"string"}},"required":["order","term","definition"],"type":"object"},"type":"array"},"nextOffset":{"description":"Present only while more remain. Call again with subentryOffset set to it.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"offset":{"description":"0-based index of the first item in this page.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"returned":{"description":"How many subentries are in THIS response.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"total":{"description":"How many the entry has in total. Correct at any offset, including past the end.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["items","returned","total","offset","coverage"],"type":"object"},"truncated":{"description":"True when headword results hit the 20-result cap.","type":"boolean"},"work":{"additionalProperties":false,"properties":{"attribution":{"description":"Credit line to render wherever this work is quoted.","type":["string","null"]},"author":{"type":["string","null"]},"edition":{"type":["string","null"]},"key":{"type":"string"},"license":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]},"title":{"type":"string"},"volume":{"type":["string","null"]}},"required":["key","title"],"type":"object"}},"required":["work"],"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"entry":{"additionalProperties":false,"properties":{"corrections":{"description":"Editorial corrections recorded by the source, when present.","items":{},"type":"array"},"definition":{"description":"May be empty — 545 entries carry their sense only in subentries.","type":["string","null"]},"entryId":{"description":"Unique WITHIN this work only, e.g. \"B-0123\". Always pass it together with workKey.","type":"string"},"etymology":{"description":"The source's etymology note verbatim — cognates and their references, e.g. Mường forms. Quote it; do not extend it.","type":"string"},"forms":{"additionalProperties":false,"description":"Every written form the source prints, variants included, in printed order. `han` above is only the first.","properties":{"han":{"items":{"type":"string"},"type":"array"},"nom":{"items":{"type":"string"},"type":"array"}},"required":["nom","han"],"type":"object"},"globalId":{"type":["string","null"]},"han":{"description":"The headword's Hán/Nôm form, or null when there is none. One codepoint in character dictionaries; in word-level works (ntqatd) it can be a whole word such as 別咍, so do not treat it as a single character.","type":["string","null"]},"hanImage":{"description":"Scan reference for image-only glyphs, when the source carried one."},"hanStatus":{"description":"\"unicode\" | \"pua\" | \"image_only\" | \"none\" (the work prints no glyph for this headword).","type":"string"},"headword":{"description":"Quốc-ngữ headword in ORIGINAL 19th-century orthography.","type":"string"},"orderInWork":{"description":"Position in the WHOLE work, 0-based across every section — not a position within the section. B-0123 is 196 because 74 entries precede letter B. It equals globalId minus one: the same count, not a different basis. Use it for ordering only; cite entryId to identify an entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"readingNote":{"description":"Printed alternate reading.","type":["string","null"]},"sourceLetter":{"description":"The printed alphabetical SECTION this entry sits in — not the headword's own first letter. The tail of a section can spill into the next word, so \"Cạ\" is filed under \"B\". Never infer the headword's spelling from it.","type":["string","null"]},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Page of the scanned volume this entry is printed on. Cite it as a page number."},"typeMarker":{"description":"The printed marker verbatim: \"n.\" means nôm (script origin), NOT noun.","type":["string","null"]}},"required":["entryId","headword","hanStatus","orderInWork"],"type":"object"},"guidance":{"type":"string"},"matchCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"matches":{"description":"Headword search results. Exact matches first, then prefix matches.","items":{"additionalProperties":false,"properties":{"citationCount":{"description":"How many attested citations sit under those senses.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"definition":{"description":"May be empty — 545 entries carry their sense only in subentries.","type":["string","null"]},"entryId":{"description":"Unique WITHIN this work only, e.g. \"B-0123\". Always pass it together with workKey.","type":"string"},"han":{"description":"The headword's Hán/Nôm form, or null when there is none. One codepoint in character dictionaries; in word-level works (ntqatd) it can be a whole word such as 別咍, so do not treat it as a single character.","type":["string","null"]},"hanStatus":{"description":"\"unicode\" | \"pua\" | \"image_only\" | \"none\" (the work prints no glyph for this headword).","type":"string"},"headword":{"description":"Quốc-ngữ headword in ORIGINAL 19th-century orthography.","type":"string"},"orderInWork":{"description":"Position in the WHOLE work, 0-based across every section — not a position within the section. B-0123 is 196 because 74 entries precede letter B. It equals globalId minus one: the same count, not a different basis. Use it for ordering only; cite entryId to identify an entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"senseCount":{"description":"How many numbered senses this entry has. Zero for works that print subentries instead.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sourceLetter":{"description":"The printed alphabetical SECTION this entry sits in — not the headword's own first letter. The tail of a section can spill into the next word, so \"Cạ\" is filed under \"B\". Never infer the headword's spelling from it.","type":["string","null"]},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Page of the scanned volume this entry is printed on. Cite it as a page number."},"subentryCount":{"description":"How many subentries this entry HAS. None of them are included here — call lookup_dictionary_entry with entryId to read them.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"typeMarker":{"description":"The printed marker verbatim: \"n.\" means nôm (script origin), NOT noun.","type":["string","null"]},"workKey":{"description":"Stable key of the work, e.g. \"dnqatv\". Pass it back as `work`.","type":"string"},"workTitle":{"description":"The work's title as it prints it — \"Quấc\", not the modern \"Quốc\".","type":"string"}},"required":["workKey","workTitle","entryId","headword","hanStatus","orderInWork","subentryCount","senseCount","citationCount"],"type":"object"},"type":"array"},"senses":{"description":"Every sense of this entry, complete. Not paged — if the field is present, it is all of them.","items":{"additionalProperties":false,"properties":{"citations":{"description":"Attested usages for THIS sense. Always complete — never paged.","items":{"additionalProperties":false,"properties":{"kind":{"description":"Present for works that print both shapes (ntqatd). \"reference\" means the source printed only where the word occurs — a poem.line locus such as \"Tự thán 85.7\" — and no line of text: cite the locus, never present it as a quotation.","enum":["quotation","reference"],"type":"string"},"order":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"references":{"items":{"additionalProperties":false,"properties":{"fullTitle":{"description":"The work's full title where the source's reference list gives one.","type":["string","null"]},"locus":{"description":"Folio or locator within that work, e.g. \"48b\". Cite it.","type":["string","null"]},"raw":{"description":"The reference exactly as printed, e.g. \"Truyện Kiều, 48b\".","type":"string"},"work":{"description":"Short title, e.g. \"Truyện Kiều\".","type":["string","null"]}},"required":["raw"],"type":"object"},"type":"array"},"sourceText":{"description":"The passage in Chữ Nôm as printed. Null when the source printed none.","type":["string","null"]},"transliteration":{"description":"Its Quốc-ngữ reading as printed.","type":["string","null"]}},"required":["order","references"],"type":"object"},"type":"array"},"crossReference":{"anyOf":[{"additionalProperties":false,"properties":{"entryId":{"description":"The target entry in this same work — pass it back to lookup_dictionary_entry.","type":"string"},"han":{"type":["string","null"]},"reading":{"type":["string","null"]}},"required":["entryId"],"type":"object"},{"type":"null"}],"description":"Where a definition points instead of defining. 5,676 senses read \"Như __\" — \"same as ___\" — with the blank never printed; this is the ___. When it is present the definition is a pointer, so follow it rather than reporting the sense as empty or the reference as unresolvable."},"definition":{"type":"string"},"fullText":{"description":"The whole sense as printed, quotations inline. `definition` is only the gloss before the first citation; the commentary after it — source passages, comparisons with other dictionaries — is here.","type":"string"},"groupOrder":{"description":"Which printed sense group this belongs to.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"leadAbbr":{"description":"The abbreviation the sense opens with, verbatim (ntqatd): usually a part of speech — \"dt.\" danh từ, \"đgt.\" động từ, \"tt.\" tính từ — but sometimes a category such as \"Thng\" (thành ngữ) or \"cd\" (ca dao). Quote it; do not map it to an English part of speech.","type":"string"},"order":{"description":"0-based position across the whole entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"phonology":{"description":"A reconstructed initial cluster and its modern reflex, verbatim, e.g. \"*kl- → tr-\". This is the evidence for why a Hán glyph was borrowed for a Vietnamese word that sounds unrelated today. Quote it; do not elaborate on it.","type":["string","null"]},"relatedHeadwords":{"description":"Headwords this sense points the reader to, in the same work. Look them up by headword.","items":{"type":"string"},"type":"array"},"structCode":{"description":"First structural code only. Prefer structCodes, which carries all of them.","type":["string","null"]},"structCodes":{"description":"Every structural classification the source prints for this sense, in printed order (A1, C2, F2, …) — how the glyph was formed or borrowed FOR THIS SENSE, which is why one headword can carry senses under different codes. Their meanings are supplied in structLabels — use those words rather than your own.","items":{"type":"string"},"type":"array"},"structLabels":{"description":"What each code MEANS, from the published taxonomy. Use these words; do not compose your own explanation of a code. An entry with `vi`/`en` null is a code the taxonomy does not define — say it is unexplained rather than guessing.","items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"en":{"description":"A plain-English reading of that path.","type":["string","null"]},"vi":{"description":"The taxonomic path in the source's own terms.","type":["string","null"]}},"required":["code"],"type":"object"},"type":"array"},"structRaw":{"description":"The classification line verbatim, e.g. \"A1: 照 chiếu\".","type":["string","null"]},"structRelation":{"anyOf":[{"enum":["single","derivation","alternative"],"type":"string"},{"type":"null"}],"description":"How the codes relate. \"derivation\" means the source printed an arrow — this class became that one, a claim about the glyph's origin. \"alternative\" means a pipe: either classification applies. Say which; do not collapse two codes into one."},"typeMarker":{"description":"The printed marker as set (◎ or 〄). Report it verbatim; do not translate it into a claim.","type":["string","null"]},"usage":{"description":"Usage labels as printed, e.g. { time: \"archaic\", text: \"từ cổ\" } or { dom: \"Confucian\", text: \"Nho\" }.","items":{"additionalProperties":false,"properties":{"dom":{"type":"string"},"text":{"type":"string"},"time":{"type":"string"}},"required":["text"],"type":"object"},"type":"array"}},"required":["order","groupOrder","structCodes","structLabels","definition","citations"],"type":"object"},"type":"array"},"subentries":{"additionalProperties":false,"properties":{"coverage":{"description":"States exactly what this response covers. Repeat its claim; do not assert more than it says.","type":"string"},"items":{"description":"This page only — `returned` of `total`, starting at `offset`.","items":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"display":{"description":"As printed, dash placeholder intact.","type":["string","null"]},"han":{"description":"Only 2,986 of 64,283 carry one. Null means the source printed none.","type":["string","null"]},"order":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"term":{"description":"Dash placeholder expanded; original orthography.","type":"string"}},"required":["order","term","definition"],"type":"object"},"type":"array"},"nextOffset":{"description":"Present only while more remain. Call again with subentryOffset set to it.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"offset":{"description":"0-based index of the first item in this page.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"returned":{"description":"How many subentries are in THIS response.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"total":{"description":"How many the entry has in total. Correct at any offset, including past the end.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["items","returned","total","offset","coverage"],"type":"object"},"truncated":{"description":"True when headword results hit the 20-result cap.","type":"boolean"},"work":{"additionalProperties":false,"properties":{"attribution":{"description":"Credit line to render wherever this work is quoted.","type":["string","null"]},"author":{"type":["string","null"]},"edition":{"type":["string","null"]},"key":{"type":"string"},"license":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]},"title":{"type":"string"},"volume":{"type":["string","null"]}},"required":["key","title"],"type":"object"}},"required":["work"],"type":"object"}⟨59 unchanged words⟩ Kangxi radical, Middle-Chinese fanqie, and Vietnamese meanings. Each meaning carries the dictionary it came from and the reading it belongs to, so senses under different readings are never confused. Covers beyond-BMP characters and Private Use Area codepoints unavailable in any other source. "historicalEntries" lists entries in historical dictionaries (e.g. Đại Nam Quấc âm tự vị, 1895) that print this character — summaries only. Pass an entryId to lookup_dictionary_entry for the original wording and its subentries. Use for Vietnamese Hán Nôm. Not for modern ⟨12 unchanged words⟩
before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"character":{"type":"string"},"characterType":{"type":"string"},"codepoint":{"type":"string"},"compounds":{"items":{"additionalProperties":false,"properties":{"characters":{"type":"string"},"meaning":{"type":"string"},"reading":{"type":"string"}},"required":["characters"],"type":"object"},"type":"array"},"decomposition":{"additionalProperties":false,"properties":{"components":{"items":{"type":"string"},"type":"array"},"ids":{"type":"string"},"kangxiRadical":{"type":"string"},"residualStrokes":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"type":"object"},"found":{"type":"boolean"},"historicalEntries":{"description":"Canonical entries from historical dictionaries that print this glyph. Summaries only — call lookup_dictionary_entry with an entryId for the full entry and its subentries.","items":{"additionalProperties":false,"properties":{"citationCount":{"description":"How many attested citations sit under those senses.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"definition":{"description":"May be empty — 545 entries carry their sense only in subentries.","type":["string","null"]},"entryId":{"description":"Unique WITHIN this work only, e.g. \"B-0123\". Always pass it together with workKey.","type":"string"},"han":{"description":"The single Hán/Nôm codepoint, or null for IDS-only entries.","type":["string","null"]},"hanStatus":{"description":"\"unicode\" | \"pua\" | \"image_only\".","type":"string"},"headword":{"description":"Quốc-ngữ headword in ORIGINAL 19th-century orthography.","type":"string"},"orderInWork":{"description":"Position in the WHOLE work, 0-based across every section — not a position within the section. B-0123 is 196 because 74 entries precede letter B. It equals globalId minus one: the same count, not a different basis. Use it for ordering only; cite entryId to identify an entry.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"senseCount":{"description":"How many numbered senses this entry has. Zero for works that print subentries instead.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sourceLetter":{"description":"The printed alphabetical SECTION this entry sits in — not the headword's own first letter. The tail of a section can spill into the next word, so \"Cạ\" is filed under \"B\". Never infer the headword's spelling from it.","type":["string","null"]},"sourcePage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Page of the scanned volume this entry is printed on. Cite it as a page number."},"subentryCount":{"description":"How many subentries this entry HAS. None of them are included here — call lookup_dictionary_entry with entryId to read them.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"typeMarker":{"description":"The printed marker verbatim: \"n.\" means nôm (script origin), NOT noun.","type":["string","null"]},"workKey":{"description":"Stable key of the work, e.g. \"dnqatv\". Pass it back as `work`.","type":"string"},"workTitle":{"description":"The work's title as it prints it — \"Quấc\", not the modern \"Quốc\".","type":"string"}},"required":["workKey","workTitle","entryId","headword","hanStatus","orderInWork","subentryCount","senseCount","citationCount"],"type":"object"},"type":"array"},"isPrivateUseArea":{"type":"boolean"},"meanings":{"items":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"entryRef":{"additionalProperties":false,"description":"Present only when this definition maps unambiguously to one canonical historical entry. Pass it to lookup_dictionary_entry.","properties":{"entryId":{"description":"Entry id within that work, e.g. \"B-0123\".","type":"string"},"workKey":{"description":"Work key, e.g. \"dnqatv\".","type":"string"}},"required":["workKey","entryId"],"type":"object"},"isPrimary":{"type":"boolean"},"partOfSpeech":{"type":["string","null"]},"reading":{"description":"The reading this sense is filed under, when known.","type":["string","null"]},"source":{"description":"Internal source key, e.g. \"dnqatv\". Null means the row predates source tracking — report the definition as unattributed, never guess which dictionary it came from.","type":["string","null"]},"sourceTitle":{"description":"Human-readable dictionary name.","type":"string"}},"required":["definition"],"type":"object"},"type":"array"},"middleChinese":{"additionalProperties":false,"properties":{"derivedReading":{"type":"string"},"finalCategory":{"type":"string"},"initialCategory":{"type":"string"},"isEstimated":{"type":"boolean"},"notation":{"type":"string"},"romanization":{"type":"string"},"tone":{"type":"string"}},"required":["notation"],"type":"object"},"radical":{"type":"string"},"readings":{"items":{"additionalProperties":false,"properties":{"frequencyRank":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"pronunciation":{"type":"string"},"tone":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"type":{"type":"string"}},"required":["type","pronunciation"],"type":"object"},"type":"array"},"strokeCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"variants":{"items":{"additionalProperties":false,"properties":{"character":{"type":"string"},"codepoint":{"type":"string"},"relation":{"type":"string"},"source":{"type":"string"}},"required":["character","codepoint","relation","source"],"type":"object"},"type":"array"}},"required":["character","codepoint","isPrivateUseArea","found","readings","meanings","variants","compounds","historicalEntries"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true,"title":"Look up a Hán Nôm character"}⟨30 unchanged words⟩ call lookup_character on the result for full detail. Each result reports what actually matched — "matchedOn" is "reading" or "meaning", and "match" carries the exact reading or the definition containing your query, with its source. Do not treat that definition as the character's only sense; call lookup_character for the rest. Returns at most 20 characters per call, with no pagination. This dictionary's readings andsupportsmeaningsnocomepaginationfrom—sourcesitunderisCCforBY-SAdiscovery4.0,notsoenumeration.bulk redistribution carries ShareAlike obligations — the cap keeps ordinary use well inside that. Cite the source on each result rather than presenting the corpus as your own.
before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"limit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"query":{"type":"string"},"results":{"items":{"additionalProperties":false,"properties":{"character":{"type":"string"},"codepoint":{"type":"string"},"match":{"additionalProperties":false,"properties":{"definition":{"description":"Set when matchedOn is \"meaning\": the definition containing the query.","type":"string"},"entryRef":{"additionalProperties":false,"properties":{"entryId":{"description":"Entry id within that work, e.g. \"B-0123\".","type":"string"},"workKey":{"description":"Work key, e.g. \"dnqatv\".","type":"string"}},"required":["workKey","entryId"],"type":"object"},"reading":{"description":"Set when matchedOn is \"reading\": the exact reading that matched.","type":"string"},"source":{"type":"string"},"sourceTitle":{"type":"string"}},"type":"object"},"matchedOn":{"enum":["reading","meaning"],"type":"string"},"readings":{"description":"ALL readings of this character, not only the matched one.","items":{"type":"string"},"type":"array"}},"required":["character","codepoint","readings","matchedOn","match"],"type":"object"},"type":"array"},"truncated":{"description":"True when the cap was reached. There is deliberately no pagination.","type":"boolean"}},"required":["query","results","limit","truncated"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true,"title":"Search characters by Vietnamese reading or meaning"}Retrieve an entry from a historical Vietnamese dictionary — Use this to retrieve an original entry from a historical Vietnamese dictionary such as Đại Nam Quấc âm tự vị (Huình-Tịnh Paulus Của, 1895–96). Search by Quốc-ngữ headword when you do not know the character, or pass an entryId returned by lookup_character or by a headword search to retrieve the source-faithful entry and its ordered subentries. Do not infer missing glyphs or modernize historical spelling. Pass EXACTLY ONE of entryId or headword — never both, never neither. Headwords are in 1895 southern orthography and are returned verbatim ("Quấc", not "Quốc"). "typeMarker" is the printed ma…