{"serverId":"mcp-registry/swiss.openhelvetia/gateway","tools":[{"name":"directory.get","fixed":{"name":"directory_get","description":"The directory envelope (v0.2, authority: manifest). Real entries only — a data source enters on one of three admission routes (E21); an empty list is the honest state, never padded.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"directory.get\" → \"directory_get\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"facts.badge","fixed":{"name":"facts_badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain","subject"],"properties":{"domain":{"type":"string"},"subject":{"type":"string","description":"Subject key (e.g. «slug#0»)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"facts.badge\" → \"facts_badge\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"facts.latest","fixed":{"name":"facts_latest","description":"Latest effective facts per subject+metric from the versioned fact table — the bitemporal as_of cutoff is exposed; an absent store is the honest empty view.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain"],"properties":{"as_of":{"type":["string","null"],"description":"Optional bitemporal cutoff (RFC 3339)."},"domain":{"type":"string","description":"Measured domain («checker», «benchmark»)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"facts.latest\" → \"facts_latest\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"fedlex.check_in_force","fixed":{"name":"fedlex_check_in_force","description":"Check whether an act was in force on a date; false is a valid answer, never an error: use for «gilt das noch?» questions. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli","as_of"],"properties":{"eli":{"type":"string"},"as_of":{"type":"string","description":"ISO date YYYY-MM-DD."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.check_in_force\" → \"fedlex_check_in_force\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"fedlex.check_quote","fixed":{"name":"fedlex_check_quote","description":"Check a quote (Zitat) against the norm text of one element: use before citing, to prove the wording is in what was read (Belegkette). norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version","eid","quote"],"properties":{"eid":{"type":"string","description":"The element that was read: an eId such as «art_6» or a path eId\nsuch as «art_6/para_1» or «annex_3/lvl_u1/lvl_2»."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"quote":{"type":"string","description":"The wording to check, verbatim; «…» or «[...]» marks an omission\n(each part must occur, in order)."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>` — the version that was read."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.check_quote\" → \"fedlex_check_quote\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":278,"tokensAfter":278},{"name":"fedlex.cite","fixed":{"name":"fedlex_cite","description":"Cite an element as its canonical Fundstelle («Art. 7 Abs. 1 Bst. b LSV») from eli_version and eId: use to label a read place in the Belegkette. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version","eid"],"properties":{"eid":{"type":"string","description":"The place to label: an eId such as «art_7/para_1/lbl_b», «art_23_a»\nor «annex_3/lvl_u1»."},"lang":{"type":["string","null"],"description":"Label language (de|fr|it|en|rm) — the manifestation read and the\nabbreviation used; default de."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.cite\" → \"fedlex_cite\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"fedlex.compare_versions","fixed":{"name":"fedlex_compare_versions","description":"Compare an element or every article between two Fassungen of an act — added, removed, changed paragraphs with wording: use for «was hat sich geändert?». norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli","from_version","to_version"],"properties":{"eid":{"type":["string","null"],"description":"Optional scope: one element (article or path eId); default every article."},"eli":{"type":"string","description":"Fedlex ELI of the act (consolidation abstract)."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"to_version":{"type":"string","description":"The newer consolidation: a version IRI or a date."},"from_version":{"type":"string","description":"The older consolidation: a version IRI or a date (YYYY-MM-DD / YYYYMMDD)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.compare_versions\" → \"fedlex_compare_versions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":289,"tokensAfter":289},{"name":"fedlex.detect_foreign_content","fixed":{"name":"fedlex_detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.detect_foreign_content\" → \"fedlex_detect_foreign_content\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"fedlex.explore_node","fixed":{"name":"fedlex_explore_node","description":"Explore a JOLux node's edges (predicates and neighbours, both directions, capped): use to debug what the graph holds about an IRI; never as proof. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["iri"],"properties":{"iri":{"type":"string","description":"Any Fedlex IRI (https://fedlex.data.admin.ch/…)."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Edges per direction (default 20, at most 50)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.explore_node\" → \"fedlex_explore_node\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"fedlex.extract_tables","fixed":{"name":"fedlex_extract_tables","description":"Extract the tables of a consolidation or of one element (annex limit values, tariffs) as header and rows: use when a norm is a table, not prose. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"eid":{"type":["string","null"],"description":"Optional scope: an eId (an annex level such as «annex_3/lvl_u1/lvl_2», an article)."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.extract_tables\" → \"fedlex_extract_tables\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"fedlex.find_related_topic","fixed":{"name":"fedlex_find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"sr":{"type":["string","null"],"description":"SR number as an alternative entry, e.g. «832.10»."},"eli":{"type":["string","null"],"description":"Fedlex ELI of the act — or give `sr`."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max candidates (default 20, at most 50)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.find_related_topic\" → \"fedlex_find_related_topic\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"fedlex.find_treaties","fixed":{"name":"fedlex_find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max hits (default 20, at most 50)."},"query":{"type":["string","null"],"description":"A word of the treaty title (case-insensitive)."},"country":{"type":["string","null"],"description":"Partner country as a Fedlex country vocabulary IRI."},"bilateral":{"type":["boolean","null"],"description":"true = bilateral only, false = multilateral only."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.find_treaties\" → \"fedlex_find_treaties\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":209,"tokensAfter":209},{"name":"fedlex.get_article_history","fixed":{"name":"fedlex_get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli","eid"],"properties":{"eid":{"type":"string","description":"Akoma-Ntoso eId of the element, e.g. «art_14a» or «art_2/para_1»."},"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_article_history\" → \"fedlex_get_article_history\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"fedlex.get_citations","fixed":{"name":"fedlex_get_citations","description":"List an act's relations: cites|cited_by (formal citations, act level) or in|out (foreseen impacts, mostly consultation drafts): use to see who cites X. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli","direction"],"properties":{"eli":{"type":"string"},"direction":{"type":"string","description":"«in» | «out» (the foreseen-impact graph) or «cites» | «cited_by»\n(the formal citation graph, act level)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_citations\" → \"fedlex_get_citations\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":152,"tokensAfter":152},{"name":"fedlex.get_consultation_documents","fixed":{"name":"fedlex_get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["consultation"],"properties":{"consultation":{"type":"string","description":"The consultation IRI (from get_consultations)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_consultation_documents\" → \"fedlex_get_consultation_documents\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"fedlex.get_consultations","fixed":{"name":"fedlex_get_consultations","description":"List the consultations (Vernehmlassungen) of an act's drafts or of one draft, with status and dates: use for the genesis, never for law in force. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"eli":{"type":["string","null"],"description":"Fedlex ELI of the act — its drafts are resolved first (at most five)."},"draft":{"type":["string","null"],"description":"Or a draft IRI (from get_drafts)."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max consultations (default 20, at most 50)."},"status":{"type":["string","null"],"description":"Optional status filter: the consultation-status IRI or its last segment."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_consultations\" → \"fedlex_get_consultations\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":220,"tokensAfter":220},{"name":"fedlex.get_drafts","fixed":{"name":"fedlex_get_drafts","description":"List the legislative drafts (Entwürfe, eli/proj) an act came from, with the Curia Vista number: use as the entry to consultations and materials. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_drafts\" → \"fedlex_get_drafts\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"fedlex.get_fga_documents","fixed":{"name":"fedlex_get_fga_documents","description":"List the Federal Gazette (BBl) documents of an act's genesis — Botschaft, reports — with genre and date: use for materials, never for law in force. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_fga_documents\" → \"fedlex_get_fga_documents\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"fedlex.get_law_metadata","fixed":{"name":"fedlex_get_law_metadata","description":"Read the JOLux profile of an act (titles de/fr/it, status, dates, identifier) for an ELI: use to confirm a search hit before you cite. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string"},"as_of":{"type":["string","null"],"description":"Optional ISO date; absent = today, echoed back resolved."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_law_metadata\" → \"fedlex_get_law_metadata\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"fedlex.get_memorial","fixed":{"name":"fedlex_get_memorial","description":"List the AS/BBl issue (memorial) an oc publication appeared in and the acts of that issue: use after get_oc_act to locate the volume. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"The AS publication ELI (https://fedlex.data.admin.ch/eli/oc/…), from get_oc_act."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max acts of the issue (default 20, at most 50)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_memorial\" → \"fedlex_get_memorial\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"fedlex.get_modifications","fixed":{"name":"fedlex_get_modifications","description":"List the amendment notes («Fassung gemäss …», AS refs) per element of a consolidation: use for «wann und wodurch wurde Art. X geändert?». norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"eid":{"type":["string","null"],"description":"Optional scope: only notes anchored at this eId or below."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_modifications\" → \"fedlex_get_modifications\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"fedlex.get_oc_act","fixed":{"name":"fedlex_get_oc_act","description":"Resolve an act's binding AS/RO publication (oc ELI, date, genre, office, memorial) from its consolidation ELI: use to cite the Amtliche Sammlung. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_oc_act\" → \"fedlex_get_oc_act\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"fedlex.get_references","fixed":{"name":"fedlex_get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"eid":{"type":["string","null"],"description":"Optional scope: only references made from this eId or below."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Page size (default 200, at most 1000)."},"offset":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Continuation: the `next_offset` of the previous answer."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_references\" → \"fedlex_get_references\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":288,"tokensAfter":288},{"name":"fedlex.get_structure","fixed":{"name":"fedlex_get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"depth":{"type":["string","null"],"description":"«article» (default: the skeleton down to articles) or «full»\n(the whole tree down to paragraphs and items)."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_structure\" → \"fedlex_get_structure\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"fedlex.get_subdivisions","fixed":{"name":"fedlex_get_subdivisions","description":"List the subdivisions JOLux knows for an act (amended elements only, a gap catalogue): use to see which Artikel carry amendments; outline: get_structure. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_subdivisions\" → \"fedlex_get_subdivisions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"fedlex.get_taxonomy","fixed":{"name":"fedlex_get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_taxonomy\" → \"fedlex_get_taxonomy\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"fedlex.get_treaty_info","fixed":{"name":"fedlex_get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"The treaty process IRI (https://fedlex.data.admin.ch/eli/treaty/…), from find_treaties."},"lang":{"type":["string","null"],"description":"Preferred title language (de|fr|it|en|rm); default de."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.get_treaty_info\" → \"fedlex_get_treaty_info\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"fedlex.list_annexes","fixed":{"name":"fedlex_list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.list_annexes\" → \"fedlex_list_annexes\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"fedlex.list_expressions","fixed":{"name":"fedlex_list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.list_expressions\" → \"fedlex_list_expressions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"fedlex.list_versions","fixed":{"name":"fedlex_list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli"],"properties":{"eli":{"type":"string","description":"Fedlex ELI of the consolidation abstract."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.list_versions\" → \"fedlex_list_versions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"fedlex.parse_reference","fixed":{"name":"fedlex_parse_reference","description":"Parse a citation («Art. 7 Abs. 1 lit. b LSV») into act, article eId and path proposal: use to turn a quoted Fundstelle into what read_article can open. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["text"],"properties":{"text":{"type":"string","description":"A citation in plain text, e.g. «Art. 7 Abs. 1 lit. b LSV», «Anhang 3\nZiff. 2 LSV», «Art. 8 EMRK i.V.m. Art. 36 BV», «SR 832.10»."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.parse_reference\" → \"fedlex_parse_reference\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"fedlex.read_article","fixed":{"name":"fedlex_read_article","description":"Read one element (Artikel, Absatz, Anhang) of a dated consolidation by eId, e.g. art_6 or annex_u1/lvl_u1: use to quote a norm. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version","eid"],"properties":{"eid":{"type":"string","description":"Akoma-Ntoso eId, e.g. «art_10a», or a path eId such as\n«art_2/para_1» or «annex_u1/lvl_u1»."},"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.read_article\" → \"fedlex_read_article\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":221,"tokensAfter":221},{"name":"fedlex.read_document","fixed":{"name":"fedlex_read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version"],"properties":{"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"offset":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Continuation: the `next_offset` of the previous answer."},"max_chars":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Character budget (default 120 000, at most 400 000)."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.read_document\" → \"fedlex_read_document\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":263,"tokensAfter":263},{"name":"fedlex.resolve_consolidation_at","fixed":{"name":"fedlex_resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli","as_of"],"properties":{"eli":{"type":"string"},"as_of":{"type":"string","description":"ISO date YYYY-MM-DD."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.resolve_consolidation_at\" → \"fedlex_resolve_consolidation_at\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"fedlex.resolve_sr","fixed":{"name":"fedlex_resolve_sr","description":"Resolve an SR number (e.g. 832.10) to the act's ELI, titles and in-force status: use when a question names an SR; predecessors stay visible. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["sr"],"properties":{"sr":{"type":"string","description":"Systematic (SR) number, e.g. «832.10»."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.resolve_sr\" → \"fedlex_resolve_sr\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"fedlex.resolve_vocabulary_label","fixed":{"name":"fedlex_resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["vocabulary","query"],"properties":{"lang":{"type":["string","null"],"description":"Label language (de|fr|it|en|rm); default de."},"query":{"type":"string","description":"A label fragment (case-insensitive, any language) or a\nvocabulary IRI to decode."},"vocabulary":{"type":"string","description":"Scheme id: «enforcement-status», «subdivision-type»,\n«legal-taxonomy», «impact-type», «resource-type», «language», …"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.resolve_vocabulary_label\" → \"fedlex_resolve_vocabulary_label\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":208,"tokensAfter":208},{"name":"fedlex.search_law","fixed":{"name":"fedlex_search_law","description":"Search acts by title keyword or official abbreviation (KVG, StPO, OR): use when you know the name but not the SR or ELI; in-force acts rank first. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"query":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.search_law\" → \"fedlex_search_law\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"fedlex.search_text","fixed":{"name":"fedlex_search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["eli_version","query"],"properties":{"lang":{"type":["string","null"],"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max hits (default 20, at most 100); `total` counts beyond it."},"query":{"type":"string","description":"Word or phrase; case-insensitive substring."},"eli_version":{"type":"string","description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"fedlex.search_text\" → \"fedlex_search_text\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":250,"tokensAfter":250},{"name":"i14y.api_status","fixed":{"name":"i14y_api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.api_status\" → \"i14y_api_status\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"i14y.get_concept","fixed":{"name":"i14y_get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["concept_id"],"properties":{"lang":{"type":["string","null"]},"concept_id":{"type":"string","description":"The concept's `id` from `i14y.list_concepts`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.get_concept\" → \"i14y_get_concept\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"i14y.get_data_service","fixed":{"name":"i14y_get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["data_service_id"],"properties":{"lang":{"type":["string","null"]},"data_service_id":{"type":"string","description":"The service's `id` from `i14y.list_data_services`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.get_data_service\" → \"i14y_get_data_service\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"i14y.get_dataset","fixed":{"name":"i14y_get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["dataset_id"],"properties":{"lang":{"type":["string","null"]},"dataset_id":{"type":"string","description":"The record's `id` as a hit or a list row carries it — a GUID,\nnever the publisher's `identifier`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.get_dataset\" → \"i14y_get_dataset\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"i14y.get_dataset_distributions","fixed":{"name":"i14y_get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["dataset_id"],"properties":{"lang":{"type":["string","null"]},"dataset_id":{"type":"string","description":"The record's `id` as a hit or a list row carries it — a GUID,\nnever the publisher's `identifier`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.get_dataset_distributions\" → \"i14y_get_dataset_distributions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"i14y.list_catalogs","fixed":{"name":"i14y_list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"]},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Catalogues per page, 1–100, default 50."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_catalogs\" → \"i14y_list_catalogs\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"i14y.list_concepts","fixed":{"name":"i14y_list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"]},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"publisher":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_concepts\" → \"i14y_list_concepts\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"i14y.list_data_services","fixed":{"name":"i14y_list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"]},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"publisher":{"type":["string","null"]},"access_rights":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_data_services\" → \"i14y_list_data_services\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"i14y.list_datasets","fixed":{"name":"i14y_list_datasets","description":"List the registered datasets, paged, with publisher, themes and access right (Datensätze, Metadaten, Open Data): use for a census or a publisher's list. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"],"description":"Label language (de|fr|it|en|rm); default de."},"page":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"1-based page, default 1."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Records per page, 1–100, default 25."},"publisher":{"type":["string","null"],"description":"Publisher code («CH_BAZG»), from `i14y.list_publishers`."},"access_rights":{"type":["string","null"],"description":"PUBLIC | RESTRICTED | NON_PUBLIC | CONFIDENTIAL. A listing is\nmetadata, never a grant of access."},"registration_status":{"type":["string","null"],"description":"One of the eight: Incomplete, Candidate, Recorded, Qualified,\nStandard, PreferredStandard, Superseded, Retired."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_datasets\" → \"i14y_list_datasets\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":307,"tokensAfter":307},{"name":"i14y.list_public_services","fixed":{"name":"i14y_list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"]},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"publisher":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_public_services\" → \"i14y_list_public_services\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"i14y.list_publishers","fixed":{"name":"i14y_list_publishers","description":"List the bodies that publish into I14Y with identifier and Swiss UID (Herausgeber, Bundesamt, Kanton, UID): use to find a publisher's code for a filter. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"uid":{"type":["string","null"],"description":"Exact Swiss UID as the register writes it («CHE116244755»)."},"lang":{"type":["string","null"]},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Publishers per page, 1–100, default 50."},"identifier":{"type":["string","null"],"description":"Exact publisher code («CH_BAZG»)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.list_publishers\" → \"i14y_list_publishers\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":211,"tokensAfter":211},{"name":"i14y.search_catalog","fixed":{"name":"i14y_search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"lang":{"type":["string","null"],"description":"The language searched AND served (de|fr|it|en|rm); default de."},"page":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"1-based page, default 1."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Hits per page, 1–100, default 25."},"query":{"type":"string","description":"Free text, e.g. «Sonderpädagogik», «Zoll», «API»; empty lists\nthe whole index one page at a time. Matched in `lang`."},"types":{"type":["array","null"],"items":{"type":"string"},"description":"Restrict to resource types: Dataset | DataService |\nPublicService | Concept | MappingTable. Each of them answers."},"themes":{"type":["array","null"],"items":{"type":"string"},"description":"Theme CODES as a hit carries them under `themes[].code`\n(«103» is Bildung) — never a word."},"publishers":{"type":["array","null"],"items":{"type":"string"},"description":"Publisher CODES — the `identifier` `i14y.list_publishers`\nserves («CH1» is the Federal Statistical Office) — never a name."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.search_catalog\" → \"i14y_search_catalog\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":394,"tokensAfter":394},{"name":"i14y.search_codelist_entries","fixed":{"name":"i14y_search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["concept_id"],"properties":{"lang":{"type":["string","null"],"description":"The language matched and served (de|fr|it|en|rm); default de."},"page":{"type":["integer","null"],"format":"uint32","minimum":0},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Entries per page, 1–200, default 50."},"query":{"type":["string","null"],"description":"A word of an entry's name, `*` for any characters; absent =\nevery entry. Matched in `lang` only."},"concept_id":{"type":"string","description":"The `id` of a concept whose `concept_type` is CodeList."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"i14y.search_codelist_entries\" → \"i14y_search_codelist_entries\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":257,"tokensAfter":257},{"name":"lindas.describe","fixed":{"name":"lindas_describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["iri"],"properties":{"iri":{"type":"string","description":"Any IRI — the store is asked about it; no host is fetched."},"lang":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"offset":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.describe\" → \"lindas_describe\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"lindas.describe_cube","fixed":{"name":"lindas_describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["cube"],"properties":{"cube":{"type":"string","description":"A cube IRI of the served scope, e.g.\n`https://politics.ld.admin.ch/political-rights/popular-vote/1`."},"lang":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"offset":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.describe_cube\" → \"lindas_describe_cube\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"lindas.dimension_values","fixed":{"name":"lindas_dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["cube","dimension"],"properties":{"cube":{"type":"string"},"lang":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"dimension":{"type":"string","description":"The dimension IRI as `lindas.describe_cube` served it — never\nbuilt by appending to the cube IRI."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.dimension_values\" → \"lindas_dimension_values\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"lindas.find_cube","fixed":{"name":"lindas_find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"lang":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"query":{"type":"string","description":"A word of the cube's name, 2–100 characters\n(«Abstimmung», «Interessenbindung»)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.find_cube\" → \"lindas_find_cube\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"lindas.list_cubes","fixed":{"name":"lindas_list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"type":["string","null"],"description":"Label language (de|fr|it|en|rm); default de. The answer names\nthe language it served, and «und» where a name carries no tag."},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"family":{"type":["string","null"],"description":"One of `fc`, `fch/apg`, `national-council-election`,\n`political-rights`; absent = all 44."},"offset":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.list_cubes\" → \"lindas_list_cubes\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":215,"tokensAfter":215},{"name":"lindas.list_versions","fixed":{"name":"lindas_list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["cube"],"properties":{"cube":{"type":"string","description":"Any version of the family, e.g.\n`…/national-council-election/candidates/2019`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.list_versions\" → \"lindas_list_versions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"lindas.observations","fixed":{"name":"lindas_observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["cube"],"properties":{"cube":{"type":"string"},"lang":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"uint32","minimum":0},"offset":{"type":["integer","null"],"format":"uint32","minimum":0},"filters":{"type":["array","null"],"items":{"anyOf":[{"type":"object","required":["dimension","value"],"properties":{"value":{"type":"string","description":"An IRI (matched exactly) or a plain literal."},"dimension":{"type":"string","description":"The dimension IRI as `lindas.describe_cube` served it."}},"description":"`{dimension, value}` — the canonical form.","additionalProperties":false},{"type":"string","description":"`dimension=value` — the FIRST `=` separates them."}],"description":"One filter: the object `{dimension, value}`, or the string\n`dimension=value`."},"description":"Filters, one per entry: the object `{dimension, value}` —\n`{\"dimension\": \"https://politics.ld.admin.ch/political-rights/popular-vote/date\",\n\"value\": \"1971-02-07\"}` — or, equally accepted, the string\n`dimension=value`. The dimension is the full IRI\n`lindas.describe_cube` served, the value an IRI or a plain\nliteral. A dimension the shape does not declare is admitted\nwhen the cube's observations carry it, and the answer says so."},"dimensions":{"type":["array","null"],"items":{"type":"string"},"description":"The dimension IRIs to project — the cells a row comes back\nwith. Absent = every cell the row carries, which is up to 51 in\nthe vote cube; naming the three or four a question needs is one\ncall instead of paging the same table at a smaller limit."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.observations\" → \"lindas_observations\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":527,"tokensAfter":527},{"name":"lindas.resolve_label","fixed":{"name":"lindas_resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["iri"],"properties":{"iri":{"type":"string","description":"Any IRI, of any host (canton, country, legal form, gender)."},"lang":{"type":["string","null"]}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"lindas.resolve_label\" → \"lindas_resolve_label\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"manifest.get","fixed":{"name":"manifest_get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["slug"],"properties":{"slug":{"type":"string","description":"Entry slug (filename = @id slug, oh-validate-enforced)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"manifest.get\" → \"manifest_get\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"meta.capabilities","fixed":{"name":"meta_capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"meta.capabilities\" → \"meta_capabilities\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"meta.schemas","fixed":{"name":"meta_schemas","description":"Stage two of two-stage discovery: the full input schemas of the named tools, byte-identical to what tools/list carries, because both are read from the same router. An unknown id is refused by name rather than silently dropped.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["names"],"properties":{"names":{"type":"array","items":{"type":"string"},"description":"The capability ids whose input schemas are wanted, as stage one\nlisted them."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"meta.schemas\" → \"meta_schemas\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"meta.tools","fixed":{"name":"meta_tools","description":"Stage one of two-stage discovery: every mounted tool with its capability id, domain, one-line summary and budget weight — and NO input schemas. Ask this first to learn what exists, then pull the schemas of the few tools you intend to call (meta.schemas). Context economy as a capability, not a client convention (E16 Ziff. 1).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"meta.tools\" → \"meta_tools\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"publish.info","fixed":{"name":"publish_info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"publish.info\" → \"publish_info\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":55,"tokensAfter":55},{"name":"standard.artifacts","fixed":{"name":"standard_artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"standard.artifacts\" → \"standard_artifacts\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":61,"tokensAfter":61}],"toolsChanged":65,"tokensSaved":0,"todo":[{"tool":"facts_badge","params":["domain"]},{"tool":"fedlex_check_in_force","params":["eli"]},{"tool":"fedlex_get_citations","params":["eli"]},{"tool":"fedlex_get_law_metadata","params":["eli"]},{"tool":"fedlex_resolve_consolidation_at","params":["eli"]},{"tool":"fedlex_search_law","params":["limit","query"]},{"tool":"i14y_get_concept","params":["lang"]},{"tool":"i14y_get_data_service","params":["lang"]},{"tool":"i14y_get_dataset","params":["lang"]},{"tool":"i14y_get_dataset_distributions","params":["lang"]},{"tool":"i14y_list_catalogs","params":["lang","page"]},{"tool":"i14y_list_concepts","params":["lang","page","limit","publisher","registration_status"]},{"tool":"i14y_list_data_services","params":["lang","page","limit","publisher","access_rights","registration_status"]},{"tool":"i14y_list_public_services","params":["lang","page","limit","publisher","registration_status"]},{"tool":"i14y_list_publishers","params":["lang","page"]},{"tool":"i14y_search_codelist_entries","params":["page"]},{"tool":"lindas_describe","params":["lang","limit","offset"]},{"tool":"lindas_describe_cube","params":["lang","limit","offset"]},{"tool":"lindas_dimension_values","params":["cube","lang","limit"]},{"tool":"lindas_find_cube","params":["lang","limit"]},{"tool":"lindas_list_cubes","params":["limit","offset"]},{"tool":"lindas_observations","params":["cube","lang","limit","offset"]},{"tool":"lindas_resolve_label","params":["lang"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}