Payments Law — EU payments legislation
Server Details
EU payments legislation: PSD2, RTS-SCA, PSD3/PSR, DORA; provisions, definitions and text changes.
- Status
- Healthy
- Uptime
- 100.0% over 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 14 tools
Most tools target distinct resources, and the descriptions explicitly tier overlapping pairs (fetch vs get_provision, search vs search_legislation) as 'simple' versus 'returns more'. The overlap is real but well-signposted, so an agent can tell them apart, with only mild misselection risk between the simple and full variants.
Nearly all tools follow a consistent verb_noun snake_case pattern (get_provision, list_instruments, search_legislation, resolve_citation, compare_versions). The two exceptions, 'fetch' and 'search', are bare verbs, but they read as an intentional 'simple tier' rather than chaotic deviation.
Fourteen tools for a multi-instrument legal corpus covering search, retrieval, definitions, version comparison, citations and metadata is well-scoped and each tool earns its place. It sits comfortably in the 3-15 sweet spot.
The surface covers the domain lifecycle well: discovery (list_instruments, list_provisions), retrieval (fetch, get_provision), citation resolution, defined terms, version/change comparison, orientation and source notes. Coverage is strong, with only minor edges (e.g. no first-class citation/export formatting) that agents can work around.
Available Tools
14 toolscompare_versionsCompare PSR or PSD3 article versionsRead-onlyIdempotentInspect
Use this to compare an article between the Commission proposal and the Council compromise text of PSR or PSD3, within the same instrument. Serves the word-level comparison the build published: a pair is servable if and only if a diff artefact exists for it — the PSR and PSD3 proposal↔compromise pairs and nothing else. Every other pair is refused, including any with a text published in the Official Journal; for every consolidated instrument's pinned as-adopted text the refusal carries the URL where that text is published. This service never recomputes a comparison. Pairs match in either direction, and a reversed request is the same artefact with the ops inverted. changes reads that artefact structurally — paragraphs added or deleted, figures and durations moved, a heading rewritten — for a caller that needs what KIND of change this was without parsing the word-level ops. It is scoped to the article, not to the page of ops, and locates each entry no more precisely than the served text allows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| to_locator | No | The article on the to side. | |
| from_locator | No | The article on the from side. Alignment is identity on the article number, so naming either side names both. | |
| instrument_id | Yes | Registry id of the instrument, e.g. "psr". | |
| to_version_id | Yes | Version id the other side. | |
| from_version_id | Yes | Version id one side of the pair. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
fetchRead EU legislative text (compatible)ARead-onlyIdempotentInspect
Use this to open and cite an EU legislative provision found by search. Simple retrieval of one provision's text by its cite anchor id (e.g. "psd-2 Art 97"), with citation metadata. A provision longer than the response ceiling arrives in part, with metadata.complete false and a metadata.next_cursor that get_provision continues. Accepts only ids this service minted — free-text citations belong to resolve_citation. get_provision returns more: paging, applicability and typed warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | An id from search, or a cite anchor such as "psd-2 Art 97" or "psd-2 Recital 12", or an instrument id such as "psd-2". An optional version qualifier, e.g. "psr (com-2023-367) Art 105", retains its edition and refuses unserved text. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | The legal text selected from the provision. Full referenced note bodies travel separately in metadata.source_notes; notes do not alter legal block counts or content_hash. |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is for extra context — and the description delivers: it discloses truncation behavior (metadata.complete false, metadata.next_cursor), that continuation happens via get_provision, and that only service-minted ids are accepted. That is rich disclosure beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences that each carry routing or behavioral information, with no filler. Slightly dense and the id-example overlaps the schema, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values needn't be explained, yet the description still covers the truncation case and its continuation path. For a single-parameter read tool with full annotation coverage, nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so examples like "psd-2 Art 97" are already documented. The description still adds a constraint the schema lacks — only ids this service minted are valid, and version qualifiers retain their edition — which meaningfully narrows what the agent should pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (open/cite) and resource (one EU legislative provision) and distinguishes itself from siblings by name — free-text citations belong to resolve_citation, and get_provision is the richer alternative. An agent can route between fetch, get_provision, and resolve_citation without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: use this for provisions 'found by search'; free-text citations go to resolve_citation; get_provision is named for when more is needed (paging, applicability, typed warnings). When-not conditions are stated, not implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_defined_termRead and compare legal definitionsARead-onlyIdempotentInspect
Use this to read and compare the held legislative definitions of a term, such as payment transaction in PSD2 and PSR. These are source definitions, not a general dictionary or a legal opinion. Every definition verbatim and resolved, clustered by what the text actually says, with the chronological and concurrent views and word-level comparisons between them. Resolution follows the CITED version, never legislative succession: a definition citing a repealed act resolves to that act and is labelled repealed, not silently replaced by its successor's wording. A term the corpus does not define is refused with suggestions — nothing is substituted. references_in gives the reverse edges: which definitions lean on this one.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The defined term, as written in the legislation ("payment account"). Matched exactly after normalisation; a term the corpus does not define is refused with suggestions, never answered with a neighbouring one. | |
| view | No | Which text clusters and comparisons run on. "resolved" (default) follows each definition's pointers to its root; "verbatim" uses the text as each instrument prints it. | |
| on_date | No | ISO date. Adds operative_on_date and temporal_state_on_date per definer, and makes the concurrent view that date's rather than the release's. | |
| comparison | No | Which comparisons to compute. "adjacent" (default) compares consecutive distinct clusters in chronological order; {baseline: cluster_id} compares one cluster against every other; {pair: [cite, cite]} compares two named definitions; {concurrent_pairs: {}} compares every pair that was in force at once. | |
| instrument | No | Narrow the definitions listed to one definer. The clusters, views and comparisons stay corpus-wide: what the term means elsewhere does not change because you asked about one instrument. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is met cheaply, yet the description adds substantial behavior beyond them: verbatim resolution, clustering by text, chronological and concurrent views, refusal-with-suggestions on undefined terms, repealed-citation labelling, and the references_in reverse edges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and then packed with dense, non-redundant detail about resolution and refusal rules. Sentences are long but each carries distinct information; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be spelled out, yet the description still covers the key response semantics (clustering, views, references_in). For a 5-parameter analytical tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the semantic intent of the parameters — the resolved-vs-verbatim view distinction, the four comparison modes, and notably that narrowing by instrument leaves clusters/views/comparisons corpus-wide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (read and compare held legislative definitions of a term) with a concrete example (payment transaction in PSD2/PSR), and immediately delimits scope by distinguishing source definitions from a dictionary or legal opinion. An agent can tell this apart from search_defined_terms or compare_versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: it reads and compares held definitions, refuses undefined terms with suggestions rather than substituting, and resolves via cited version rather than legislative succession. It does not, however, explicitly name when to reach for a sibling such as search_defined_terms instead, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instrumentCheck EU instrument status and versionRead-onlyIdempotentInspect
Use this to check an EU instrument's recorded legal status, source version, dates and amendments, including whether a held PSR or PSD3 text is a proposal, a Council compromise text or the act published in the Official Journal. Metadata, dates, lifecycle and application events, and curated relationships. Each relationship names the operative amending or repealing article where curated (openable with get_provision) and the counterpart's legal status at the release. An operative_cite can arrive without an operative_locator: the article is real but the served text has dropped it, and operative_locator_unavailable says so. An amender outside the corpus is named under source_external, whose via_article carries its article. No article index — use list_provisions. Pass on_date for the multi-axis applicability record on that date.
| Name | Required | Description | Default |
|---|---|---|---|
| on_date | No | ISO date; returns the full applicability record. | |
| instrument_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
get_orientationFind an EU payments reading pathwayARead-onlyIdempotentInspect
Use this for a starting reading order in EU payments legislation when a relevant curated pathway exists. For other subjects use search_legislation. Curated reading pathways into the corpus for a stated audience: ordered waypoints with cite anchors every other tool can open, related defined terms and known pitfalls. The prose is editorial and labelled as such — it maps the reading order, never legal weight. Omit the pathway argument for the catalogue; an unknown id is refused with the catalogue, nothing substituted. Catalogue entries and pathway waypoints paginate whole: follow pagination.next_cursor with the same pathway and limit until complete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum catalogue entries or pathway waypoints per page; whole-item byte bounds may return fewer. | |
| cursor | No | pagination.next_cursor from this tool; repeat the same pathway and limit. | |
| pathway | No | Pathway id from the catalogue. Omit for the catalogue. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely non-schema behaviour: unknown ids are refused with the catalogue and nothing is substituted, pagination is whole-item, and the prose is editorial rather than legal weight. It stops short of auth or rate-limit context, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the usage decision and alternative before describing the payload. Dense but every sentence carries routing, error, or pagination information; only the 'editorial prose' clause is slightly wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be restated; the description covers the remaining gaps an agent needs — pagination protocol, invalid-id behaviour, and the editorial nature of the content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description exceeds it by explaining the pathway/cursor semantics in context: omitting pathway yields the catalogue, and cursor must be replayed with the same pathway and limit. That is meaning beyond the schema's per-field text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('starting reading order in EU payments legislation') and explicitly carves out the sibling boundary by naming search_legislation for other subjects. An agent can distinguish this from fetch, get_instrument, and the list/search siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('when a relevant curated pathway exists'), the alternative for other cases ('use search_legislation'), and the null-pathway behaviour ('omit the pathway argument for the catalogue'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provisionRead EU legislative provisionARead-onlyIdempotentInspect
Use this to read or quote an EU legislative provision, such as PSD2 Article 97 or RTS-SCA Article 5. Returns the source text of an article, annex or recital as markdown (a sub- or superscript with no Unicode form as inline /), with its cite anchor, provenance and text-state disclosure. Large provisions paginate by structural block — never truncated silently. version_id is optional: the service serves one text per instrument, and a pinned version id is refused with the URL where it is published. include_correspondences adds the cross-instrument article equivalences — what a PSR article is amended from, or which PSR articles carry a PSD2 article's obligation — each openable by a second call.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Continue a paginated provision. Bound to the release. | |
| locator | Yes | ||
| on_date | No | ISO date; returns the provision-level applicability view. | |
| version_id | No | Omit, or pass "current", for the served text. A pinned version id returns version_not_served with the URL where that text is published. | |
| instrument_id | Yes | Registry id of the instrument, e.g. "psd-2". | |
| include_correspondences | No | Off by default. When true, an article carries `correspondences[]`: the cross-instrument article equivalences the corpus publishes — which PSD2 article a PSR article is amended from, and, from the other side, which PSR articles carry a PSD2 article's obligation. Each entry names the counterpart's own `get_provision` locator, version and cite anchor, so it opens with a second call. The relationship vocabulary is the analysis layer's own — `amended_from`, `supersedes` — plus the mechanical inverses of the reverse view, `amended_into` and `superseded_by`. An annex or a recital carries an empty list: correspondences are article-level: a request narrowed to a paragraph or a point still receives the whole article's mappings, and says so in a warning. `null` means the release predates the mapping table, which is not the same as an article having none. Where the corpus records a mapping this service will not serve — a correlation-table entry numbered against a superseded draft, or a counterpart absent from the served text — the list omits it and a `correspondence_withheld` warning names the instrument and the reason, so an empty or short list is never silently under-claimed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safe-read profile; the description goes well beyond by disclosing pagination by structural block with no silent truncation, the version_id refusal path and the URL returned, correspondence vocabulary and inverse relationships, and the correspondence_withheld warning behavior. This is unusually rich disclosure of edge cases an agent must anticipate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and output format, and every sentence carries information. Some sentences are dense and comma-heavy (the correspondence paragraphs), but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-locator, paginated, version-aware read tool with an output schema present, the definition covers output format, pagination, version handling and the optional correspondence expansion. An agent could call this correctly without further inquiry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents most fields; the description nonetheless adds real meaning for the two non-obvious ones — version_id's optional/'current' semantics and refusal behavior, and include_correspondences' null-vs-empty distinction and warning semantics. It adds little for cursor or the locator subfields, which are schema-covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (read/quote an EU legislative provision) with concrete examples (PSD2 Article 97, RTS-SCA Article 5), making it easily distinguishable from siblings like list_provisions or resolve_citation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for invocation — reading or quoting an article, annex or recital, plus the guidance to use a second call to open a correspondence locator. It stops short of naming the competing siblings (e.g. list_provisions, resolve_citation) or stating when not to use it, so it is clear but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_notesRead legislative source notesARead-onlyIdempotentInspect
Use this to read the original legislative footnotes and source-note bodies for a held instrument, including preamble and annex notes. Omit note_key for the paginated inventory; supply an exact returned key to retrieve one. Keys retain source scope because printed markers may repeat. This tool does not infer ownership by a provision. Historical versions return an explicit version_not_served link.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Notes per page, default 10; complete bodies are never truncated. | |
| cursor | No | Continue with the same arguments; bound to this corpus release. | |
| note_key | No | Exact key returned by this tool. Omit to list notes. Printed markers may be reused and are not necessarily unique keys. | |
| version_id | No | Omit or use current for the served version; pinned versions return an explicit version_not_served link. | |
| instrument_id | Yes | Registry instrument id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds real behavioral context beyond them: keys retain source scope because printed markers may repeat, the tool does not infer ownership by a provision, and historical versions return an explicit version_not_served link. These are non-obvious traits an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tight sentences, each carrying distinct information, with the core purpose front-loaded and mode selection immediately after. No filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description supplies the remaining essentials: paging vs. single-note modes, key semantics, the non-inference caveat, and historical version behavior. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning: why note_key should be omitted vs. supplied, and why the key format matters (markers can repeat, so keys carry source scope). It does not elaborate on limit/cursor/version_id beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (original legislative footnotes/source-note bodies) and scopes it to a held instrument, including preamble and annex notes. This is clearly distinguishable from siblings like get_provision or get_instrument, which return other content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit conditional usage: omit note_key to get the paginated inventory, supply an exact returned key to retrieve a single note. It does not name alternative tools or state when not to use this one, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_instrumentsDiscover held EU legislationARead-onlyIdempotentInspect
Use this to discover which EU instruments are held before a coverage question, or find their registry ids and legal status. Paginated, filterable by status, category, core/supplementary, and by whether an instrument was in force on a given date. For corpus-coverage questions, filter by category here, enumerate each instrument with list_provisions, then open what you need with get_provision.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| status | No | Legal status at the release, e.g. "in_force". | |
| is_core | No | ||
| category | No | ||
| in_force_on_date | No | ISO date; keeps instruments in force on that date. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false and closed-world scope, so safety is covered. The description adds the meaningful behavioral detail that results are paginated and filterable, though it says nothing about result size limits or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then filters then workflow; every sentence earns its place. The final workflow sentence is somewhat dense but is the highest-value content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return shape needn't be explained, and annotations carry the safety profile. Combined with the handoff workflow, the description is sufficient for correct invocation; only enum-like filter values are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description compensates by naming the filter dimensions — status, category, core/supplementary, in-force-on-date — which map onto four of the six parameters, and 'Paginated' signals limit/cursor usage. It stops short of giving value formats (e.g. valid category values).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('discover which EU instruments are held') plus the secondary affordances (registry ids, legal status). It also names the siblings it hands off to (list_provisions, get_provision), so an agent can separate it from the other list/search tools without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('before a coverage question'), explicit filtering conditions, and a concrete multi-tool workflow for corpus-coverage questions. It tells the agent not just what this tool does but where it sits in a sequence with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_provisionsBrowse an instrument's provisionsARead-onlyIdempotentInspect
Use this to browse an EU instrument's article, annex or recital index, or enumerate its topic-tagged provisions for a coverage question. Metadata only: each item carries the exact locator get_provision accepts. Articles and annexes by default; pass kind=recital for recitals.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| limit | No | ||
| topic | No | ||
| cursor | No | ||
| chapter | No | ||
| instrument_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description usefully adds that results are 'metadata only' with default kinds (articles/annexes) unless kind=recital is passed. However, with limit and cursor parameters present, it says nothing about pagination or result-size behavior, which is the main remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the primary use case, and every clause adds information: scope, metadata-only nature, locator relationship, and the recital switch. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the annotations cover the safety profile. The description is sufficient to call the tool for the common case (instrument_id, default kinds), but the absence of any pagination or chapter/limit guidance leaves a real gap for a 6-parameter listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must carry the load. It clarifies kind (default article/annex, recital option) and implies the role of topic ('topic-tagged provisions'), but limit, cursor, and chapter are left entirely unexplained in both schema and description. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: browsing an instrument's article/annex/recital index or enumerating topic-tagged provisions. It also positions itself in the workflow by noting each item carries 'the exact locator get_provision accepts', which separates it from the content-retrieval sibling. It stops short of explicitly contrasting with search_legislation or get_instrument, so it is clear rather than fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to browse ... or enumerate its topic-tagged provisions for a coverage question' gives clear context for two distinct use cases, and 'pass kind=recital for recitals' states how to select a mode. No explicit when-not-to-use or named alternative (e.g. search_legislation for finding instruments) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_version_changesBrowse PSR or PSD3 text changesRead-onlyIdempotentInspect
Use this to browse which articles changed between the Commission proposal and the Council compromise text of PSR or PSD3; no comparison with a text published in the Official Journal is held. For one article's wording changes use compare_versions. Across those two texts, lists every aligned article with its classification, filterable by status, editor's note and article range. Editor's notes travel on every response whatever the filters, because they record what the mechanical classification cannot show: a re-scoped defined term changes articles whose text did not change at all. Classifications are mechanical, and the response says on what basis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| status | No | One of the classification statuses, e.g. "amended_substantial". | |
| articles | No | Article-number range, in legal order. | |
| instrument_id | Yes | ||
| material_only | No | Keep only articles that carry an editor's note. | |
| to_version_id | No | ||
| from_version_id | No | Optional; where given, must name the published pair. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
resolve_citationResolve an EU legal citationARead-onlyIdempotentInspect
Use this to resolve a written EU legal citation, such as Article 97(1) PSD2, into an instrument and provision locator. For a topic rather than a citation, use search_legislation. Ranked candidates with ambiguity flagged and confidence stated: exact (instrument certain, provision found), strong (instrument certain, provision not verified or not named) or ambiguous (more than one reading). A citation of an instrument this corpus does not hold is named, with its CELEX and ELI, rather than guessed at.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| citation | Yes | A citation in any form a reader would write: "Article 97(1) PSD2", "Art. 5a of Regulation (EU) No 910/2014", a CELEX number, an ELI path, or a bare acronym. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world behavior, so safety is covered. The description adds genuinely new behavior: ranked candidates, a three-level confidence taxonomy (exact / strong / ambiguous), explicit ambiguity flagging, and the fallback that a citation outside the corpus is returned with CELEX and ELI rather than guessed. It does not mention pagination behavior, which is the only notable omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose, then the routing rule, then the result contract — no filler. The confidence-taxonomy sentence is tightly packed but each clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not spell out return values, yet it usefully characterizes the shape (ranked candidates, ambiguity, confidence) and the edge case of instruments absent from the corpus. The remaining gap is pagination guidance for limit/cursor, which matters for a tool that can return ranked candidate sets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: 'limit' and 'cursor' have no description in either the schema or the description, leaving pagination semantics undocumented. For the one documented parameter, the description's example (“Article 97(1) PSD2”) largely duplicates what the schema already lists, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb + resource + transformation: resolve a written EU legal citation into an instrument and provision locator. It also names the sibling it is not (search_legislation), so an agent can separate it from the topic-search tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the use case (a written citation such as "Article 97(1) PSD2") and the exclusion with a named alternative ("For a topic rather than a citation, use search_legislation"). The condition that selects the alternative is stated, not left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch EU payments legislation (compatible)ARead-onlyIdempotentInspect
Use this to find EU payments legislation on topics such as SCA, open banking and safeguarding in the held PSD2, RTS-SCA, PSD3/PSR and related instruments. Simple search returning the top hits as {id, title, url}, where id is the cite anchor fetch accepts. For filters, snippets, scores and paging use search_legislation, which returns more.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | EU payments legislative terms or citation, e.g. "strong customer authentication", "safeguarding" or "Article 97 PSD2". |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Top hits, best first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: the return shape {id, title, url} and the cross-tool contract that id is the cite anchor fetch accepts, which tells the agent this result is a handoff point. It stops short of noting limits like result counts or coverage gaps in the held corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it searches, what it returns and the id contract, then the alternative. The routing sentence is front-loaded in a position where it prevents a wrong tool choice, and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a single-parameter read whose annotations carry the safety profile and whose output schema carries the return values; the description therefore only needs purpose, handoff semantics and sibling routing, all of which are present. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already documents the query field with examples. The description reinforces the topical domain ('SCA, open banking and safeguarding') but adds no syntax, quoting or citation-format guidance beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find EU payments legislation') plus the topical scope (SCA, open banking, safeguarding) and the instrument corpus (PSD2, RTS-SCA, PSD3/PSR). It also distinguishes itself from the sibling search_legislation by calling this the 'simple' variant, so an agent can pick correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: use this for a simple top-hits lookup, use search_legislation when filters, snippets, scores or paging are needed. The condition that selects the alternative is stated outright, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_defined_termsFind EU legislative definitionsARead-onlyIdempotentInspect
Use this to find which EU instruments define a legal term, such as payment transaction or payment account, and where their definitions differ. For definition wording use get_defined_term. A listing: term, definers and divergence flags, with no definition text. Matching is over the term itself, never the definition body. Divergence is judged on the RESOLVED text as well as the verbatim one, because several instruments defining a term by pointing at the same root agree, however differently their pointers read. Pass only_divergent to find where the corpus does not agree with itself.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Term text to match. Matching is over the TERM only, never the definition body. Omit for the full alphabetical listing of every term the corpus defines. | |
| cursor | No | ||
| instrument | No | Keep only terms defined in this instrument, e.g. "psd-2". | |
| only_divergent | No | Keep only terms whose definers disagree — on the resolved text, the verbatim text, or both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/closed-world, and the description goes further by disclosing that matching is over the term and never the definition body, and that divergence is judged on resolved as well as verbatim text. That non-obvious semantic rule is real behavioral context. It leaves pagination and the limit/cursor behavior unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and the sibling disambiguation before moving to output shape and divergence semantics. It is dense but each sentence carries distinct information; only the repeated matching-over-term rule (also in the schema) is slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be enumerated, yet the description still summarizes the listing shape usefully. The essential divergence concept is fully explained; the only gap is pagination/limit/cursor guidance for a zero-required-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description restates the query-matching rule while supplying the conceptual meaning of only_divergent (why resolved-text agreement counts) that the schema's one-line gloss does not convey. The limit and cursor parameters remain unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find which EU instruments define a legal term') plus the distinctive scope ('where their definitions differ'). It explicitly separates itself from the sibling get_defined_term, which the agent would otherwise likely confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: 'For definition wording use get_defined_term,' and names the condition for only_divergent ('find where the corpus does not agree with itself'). When-to-use and which-alternative are both spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legislationFind EU payments requirementsARead-onlyIdempotentInspect
Use this to find EU legislative provisions on payment-services questions: strong customer authentication (SCA), dynamic linking, open banking, safeguarding and payment liability. The held corpus includes PSD2, RTS-SCA, PSD3/PSR and DORA. For exact wording use get_provision; for defined-term wording use get_defined_term. This searches held legislation, not national law or regulator guidance. Full-text search across articles, annexes and recitals, ranked in that order of authority. Every hit carries the exact locator get_provision accepts, its cite anchor, the matched passage and why it matched. A citation-shaped query resolves through the citation grammar first; instrument acronyms become ranking hints; initialisms of the corpus's defined terms are expanded. Absence of a result is not evidence that no relevant law exists. The matched passage is a snippet of at most 320 characters, not the provision: open the hit with get_provision before citing it, and echo the cite it serves. topic narrows these hits rather than widening them: a topic-tagged provision whose words the query misses is never reached, so a page of hits is not a sweep. For coverage questions ('everything on X', 'which instruments deal with Y') pick the instruments with list_instruments by category, enumerate each with list_provisions filtered by topic, then open them with get_provision.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Restrict to one source type. Articles, annexes and recitals are all searched by default, ranked in that order of authority. | |
| limit | No | ||
| query | Yes | EU legislative search terms, e.g. "strong customer authentication", "dynamic linking", "safeguarding" or "DORA ICT risk". Use words expected in the legal text, not an entire advice request. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query ("Article 97(1) PSD2") is resolved through the citation grammar first. | |
| topic | No | Keep only provisions carrying this topic. | |
| cursor | No | ||
| instrument_id | No | Restrict to one instrument, e.g. "rts-sca". | |
| in_force_on_date | No | ISO date; keeps hits from instruments in force on that date, on the same semantics list_instruments uses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| error | Yes | |
| coverage | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| provenance | Yes | |
| derivations | Yes | |
| corpus_release | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, idempotent, not open-world); the description adds substantive behavior beyond them: ranking order of articles/annexes/recitals, 320-character snippet limit, citation-grammar resolution first, acronym ranking hints, defined-term initialism expansion, and the caveat that absence of a result is not evidence of no law. It also warns the snippet is not the provision and must be opened before citing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then alternatives, then behavioral caveats and a workflow — a sensible order for a long description. It is dense and runs long for a search tool, with minor repetition (authority ranking appears in both description and kind schema; the snippet length is restated), but nearly every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, yet the description still tells the agent what each hit contains (locator, cite anchor, matched passage, match reason), which is what makes the follow-up get_provision call possible. Combined with sibling routing, coverage workflow and failure caveats, nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 71% schema coverage the schema already documents query, kind, topic and in_force_on_date, yet the description adds real non-obvious meaning: topic narrows rather than widens (topic-tagged provisions the query misses are never reached), instrument acronyms become ranking hints, and a citation-shaped query resolves through the citation grammar first. limit and cursor remain unexplained, and the ranking-order sentence duplicates the kind schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope ('find EU legislative provisions on payment-services questions') and enumerates the corpus (PSD2, RTS-SCA, PSD3/PSR, DORA). It explicitly distinguishes itself from get_provision, get_defined_term, list_instruments and list_provisions, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit alternatives with conditions: get_provision for exact wording, get_defined_term for defined-term wording, and a step-by-step workflow (list_instruments → list_provisions → get_provision) for coverage questions. It also states the negative boundary — held legislation only, not national law or regulator guidance — which prevents misfires.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
compare_versions1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "changes": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "type": { - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "What KIND of change this comparison evidences, read off the same artefact as pairs[]. Types: paragraph_added, paragraph_deleted, paragraph_amended (with words_changed, counting both sides of a substitution), figure_changed (with from/to quoting the served text), heading_changed, the article_* counterparts of the first three for an article's text outside any numbered paragraph, and none_detected where nothing was found — never an empty list. An entry carries `paragraph` and, where the served text settles it, `point` and `subpoint`, in the §7 locator model's own field names; an article_* entry carries none of them. Those components are a CITATION, not a promise of retrieval: a sub-point is often not a block get_provision serves, so open an entry at the enclosing point, and then the paragraph, which does serve the text the entry quotes. A roman sub-point is always qualified by its letter point (PSR Art 97(2)(a)(ii), never (ii) alone), and a list the text does not settle is left unlocated. ARTICLE-SCOPED, not page-scoped: the whole inventory travels with every page of pairs[], so a client paging through must not concatenate it. Repeated identical entries are repeated occurrences in one paragraph, not duplicates. Null means this release predates the inventory, which is not the same as none_detected." - }, - "cite": { - "type": "string" - }, - "classification_note": { - "type": "string" - }, - "direction": { - "type": "string" - }, - "editorial_review_state": { - "type": "string" - }, - "from": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - }, - "instrument_id": { - "type": "string" - }, - "pairs": { - "items": { - "additionalProperties": {}, - "properties": { - "ops": { - "items": { - "items": false, - "maxItems": 2, - "minItems": 2, - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array" - }, - "type": "array" - } - }, - "required": [ - "ops" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "type": "string" - }, - "to": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - } - }, - "required": [ - "instrument_id", - "article", - "cite", - "from", - "to", - "status", - "direction", - "editorial_review_state", - "classification_note", - "changes", - "pairs" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "changes": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "What KIND of change this comparison evidences, read off the same artefact as pairs[]. Types: paragraph_added, paragraph_deleted, paragraph_amended (with words_changed, counting both sides of a substitution), figure_changed (with from/to quoting the served text), heading_changed, the article_* counterparts of the first three for an article's text outside any numbered paragraph, and none_detected where nothing was found — never an empty list. An entry carries `paragraph` and, where the served text settles it, `point` and `subpoint`, in the §7 locator model's own field names; an article_* entry carries none of them. Those components are a CITATION, not a promise of retrieval: a sub-point is often not a block get_provision serves, so open an entry at the enclosing point, and then the paragraph, which does serve the text the entry quotes. A roman sub-point is always qualified by its letter point (PSR Art 97(2)(a)(ii), never (ii) alone), and a list the text does not settle is left unlocated. ARTICLE-SCOPED, not page-scoped: the whole inventory travels with every page of pairs[], so a client paging through must not concatenate it. Repeated identical entries are repeated occurrences in one paragraph, not duplicates. Null means this release predates the inventory, which is not the same as none_detected." + }, + "cite": { + "type": "string" + }, + "classification_note": { + "type": "string" + }, + "comparison_url": { + "type": [ + "string", + "null" + ] + }, + "direction": { + "type": "string" + }, + "editorial_review_state": { + "type": "string" + }, + "from": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + }, + "instrument_id": { + "type": "string" + }, + "pairs": { + "items": { + "additionalProperties": {}, + "properties": { + "ops": { + "items": { + "items": false, + "maxItems": 2, + "minItems": 2, + "prefixItems": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "array" + }, + "type": "array" + } + }, + "required": [ + "ops" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "type": "string" + }, + "to": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + } + }, + "required": [ + "instrument_id", + "article", + "cite", + "from", + "to", + "status", + "direction", + "editorial_review_state", + "classification_note", + "comparison_url", + "changes", + "pairs" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
list_version_changes1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "classification_note": { - "type": "string" - }, - "counts": { - "additionalProperties": { - "type": "number" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "definition_markers": { - "items": { - "additionalProperties": {}, - "properties": { - "term": { - "type": "string" - } - }, - "required": [ - "term" - ], - "type": "object" - }, - "type": "array" - }, - "instrument_id": { - "type": "string" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "required": [ - "article", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "materiality_markers": { - "items": { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - } - }, - "required": [ - "article" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "type": [ - "string", - "null" - ] - }, - "pair": { - "additionalProperties": {}, - "properties": { - "from": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - }, - "to": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - } - }, - "required": [ - "from", - "to" - ], - "type": "object" - }, - "total": { - "type": "number" - } - }, - "required": [ - "instrument_id", - "pair", - "items", - "next_cursor", - "total", - "counts", - "materiality_markers", - "definition_markers", - "classification_note" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "classification_note": { + "type": "string" + }, + "counts": { + "additionalProperties": { + "type": "number" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "definition_markers": { + "items": { + "additionalProperties": {}, + "properties": { + "term": { + "type": "string" + } + }, + "required": [ + "term" + ], + "type": "object" + }, + "type": "array" + }, + "explorer_url": { + "type": [ + "string", + "null" + ] + }, + "instrument_id": { + "type": "string" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "article", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "materiality_markers": { + "items": { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + } + }, + "required": [ + "article" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "pair": { + "additionalProperties": {}, + "properties": { + "from": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + }, + "to": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + "total": { + "type": "number" + } + }, + "required": [ + "instrument_id", + "pair", + "items", + "next_cursor", + "total", + "counts", + "materiality_markers", + "definition_markers", + "classification_note", + "explorer_url" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Changed
get_provision1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "blocks_in_page": { - "type": "number" - }, - "blocks_in_provision": { - "type": "number" - }, - "blocks_total": { - "type": "number" - }, - "cite": { - "type": "string" - }, - "content_hash": { - "type": "string" - }, - "correspondences": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "derivation": { - "type": "string" - }, - "note": { - "type": [ - "string", - "null" - ] - }, - "relationship": { - "type": "string" - }, - "target": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "locator": { - "additionalProperties": false, - "properties": { - "annex": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." - }, - "article": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Numbered paragraph within the article, e.g. \"2\"." - }, - "point": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Lettered point within the paragraph, e.g. \"b\"." - }, - "recital": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Recital number, e.g. \"95\"." - }, - "subpoint": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sub-point within the point." - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "url", - "locator" - ], - "type": "object" - } - }, - "required": [ - "relationship", - "derivation", - "note", - "target" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "deletions": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "act": { - "type": "string" - }, - "celex": { - "type": "string" - }, - "form": { - "type": "string" - }, - "instrument_id": { - "type": [ - "string", - "null" - ] - }, - "marker": { - "type": "string" - }, - "position": { - "enum": [ - "within", - "after", - "title" - ], - "type": "string" - } - }, - "required": [ - "celex", - "marker", - "form", - "position", - "act", - "instrument_id" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "EUR-Lex deletion stubs on the whole provision, in source order, each with the act that deleted what stood there. \"within\": the nth \"—————\" in the provision text; \"after\": something deleted after this provision (a whole article or chapter); \"title\": in its heading. Mechanically derived from the stub's own EUR-Lex pointer; not part of the legal text. Null means the release predates the record (see the typed warning), never that nothing was deleted." - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "narrowed": { - "type": "boolean" - }, - "source_notes": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "complete": { - "const": true, - "description": "All notes referenced in this response's text, not the whole document or later pages.", - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "marker": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "key", - "marker", - "text" - ], - "type": "object" - }, - "type": "array" - }, - "scope": { - "const": "returned_text", - "type": "string" - }, - "source_version_id": { - "type": "string" - } - }, - "required": [ - "scope", - "source_version_id", - "complete", - "items" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "kind", - "markdown", - "source_notes", - "deletions", - "narrowed", - "blocks_in_page", - "blocks_total", - "blocks_in_provision", - "content_hash", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "blocks_in_page": { + "type": "number" + }, + "blocks_in_provision": { + "type": "number" + }, + "blocks_total": { + "type": "number" + }, + "cite": { + "type": "string" + }, + "content_hash": { + "type": "string" + }, + "correspondences": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "derivation": { + "type": "string" + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "relationship": { + "type": "string" + }, + "target": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "locator": { + "additionalProperties": false, + "properties": { + "annex": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." + }, + "article": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Numbered paragraph within the article, e.g. \"2\"." + }, + "point": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Lettered point within the paragraph, e.g. \"b\"." + }, + "recital": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Recital number, e.g. \"95\"." + }, + "subpoint": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Sub-point within the point." + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "url", + "locator" + ], + "type": "object" + } + }, + "required": [ + "relationship", + "derivation", + "note", + "target" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "deletions": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "act": { + "type": "string" + }, + "celex": { + "type": "string" + }, + "form": { + "type": "string" + }, + "heading": { + "type": "string" + }, + "instrument_id": { + "type": [ + "string", + "null" + ] + }, + "marker": { + "type": "string" + }, + "position": { + "enum": [ + "within", + "after", + "title" + ], + "type": "string" + } + }, + "required": [ + "celex", + "marker", + "form", + "position", + "act", + "instrument_id" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "EUR-Lex deletion stubs on the whole provision, in source order, each with the act that deleted what stood there. \"within\": the nth \"—————\" in the provision text; \"after\": something deleted after this provision (a whole article or chapter), with `heading` naming the Title, Chapter or Section heading it stands under when one comes between them; \"title\": in its heading. Mechanically derived from the stub's own EUR-Lex pointer; not part of the legal text. Null means the release predates the record (see the typed warning), never that nothing was deleted." + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "narrowed": { + "type": "boolean" + }, + "source_notes": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "complete": { + "const": true, + "description": "All notes referenced in this response's text, not the whole document or later pages.", + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "key": { + "type": "string" + }, + "marker": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "key", + "marker", + "text" + ], + "type": "object" + }, + "type": "array" + }, + "scope": { + "const": "returned_text", + "type": "string" + }, + "source_version_id": { + "type": "string" + } + }, + "required": [ + "scope", + "source_version_id", + "complete", + "items" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "kind", + "markdown", + "source_notes", + "deletions", + "narrowed", + "blocks_in_page", + "blocks_total", + "blocks_in_provision", + "content_hash", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
2 tool updates
- Changed
get_instrument1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "instrument_id": { - "type": "string" - }, - "legal_status_at_release": { - "type": "string" - }, - "relationships": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "direction": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "operative_cite": { - "type": [ - "string", - "null" - ] - }, - "operative_locator": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "kind", - "article" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "operative_locator_unavailable": { - "type": [ - "string", - "null" - ] - }, - "source_external": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "celex": { - "type": "string" - }, - "title": { - "type": "string" - }, - "via_article": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "celex", - "title", - "via_article" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "target_external": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "celex": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "celex", - "title" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "target_instrument_id": { - "type": [ - "string", - "null" - ] - }, - "target_status": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "kind", - "direction", - "target_status", - "operative_locator", - "operative_cite", - "operative_locator_unavailable" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "text_state": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "title", - "legal_status_at_release", - "version_id", - "text_state", - "url", - "relationships" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "instrument_id": { + "type": "string" + }, + "legal_status_at_release": { + "type": "string" + }, + "lifecycle_events": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "date": { + "type": "string" + }, + "scheduled": { + "type": [ + "boolean", + "null" + ] + }, + "stage": { + "type": "string" + } + }, + "required": [ + "stage", + "date", + "scheduled" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "relationships": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "direction": { + "type": "string" + }, + "effective_from": { + "type": [ + "string", + "null" + ] + }, + "kind": { + "type": "string" + }, + "operative_cite": { + "type": [ + "string", + "null" + ] + }, + "operative_locator": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "kind", + "article" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "operative_locator_unavailable": { + "type": [ + "string", + "null" + ] + }, + "repealed_provisions": { + "type": "string" + }, + "source_external": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "celex": { + "type": "string" + }, + "title": { + "type": "string" + }, + "via_article": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "celex", + "title", + "via_article" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "target_external": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "celex": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "celex", + "title" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "target_instrument_id": { + "type": [ + "string", + "null" + ] + }, + "target_status": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind", + "direction", + "target_status", + "operative_locator", + "operative_cite", + "operative_locator_unavailable" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "text_state": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "title", + "legal_status_at_release", + "version_id", + "text_state", + "url", + "relationships", + "lifecycle_events" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_provision1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "blocks_in_page": { - "type": "number" - }, - "blocks_in_provision": { - "type": "number" - }, - "blocks_total": { - "type": "number" - }, - "cite": { - "type": "string" - }, - "content_hash": { - "type": "string" - }, - "correspondences": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "derivation": { - "type": "string" - }, - "note": { - "type": [ - "string", - "null" - ] - }, - "relationship": { - "type": "string" - }, - "target": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "locator": { - "additionalProperties": false, - "properties": { - "annex": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." - }, - "article": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Numbered paragraph within the article, e.g. \"2\"." - }, - "point": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Lettered point within the paragraph, e.g. \"b\"." - }, - "recital": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Recital number, e.g. \"95\"." - }, - "subpoint": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sub-point within the point." - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "url", - "locator" - ], - "type": "object" - } - }, - "required": [ - "relationship", - "derivation", - "note", - "target" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "narrowed": { - "type": "boolean" - }, - "source_notes": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "complete": { - "const": true, - "description": "All notes referenced in this response's text, not the whole document or later pages.", - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "marker": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "key", - "marker", - "text" - ], - "type": "object" - }, - "type": "array" - }, - "scope": { - "const": "returned_text", - "type": "string" - }, - "source_version_id": { - "type": "string" - } - }, - "required": [ - "scope", - "source_version_id", - "complete", - "items" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "kind", - "markdown", - "source_notes", - "narrowed", - "blocks_in_page", - "blocks_total", - "blocks_in_provision", - "content_hash", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "blocks_in_page": { + "type": "number" + }, + "blocks_in_provision": { + "type": "number" + }, + "blocks_total": { + "type": "number" + }, + "cite": { + "type": "string" + }, + "content_hash": { + "type": "string" + }, + "correspondences": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "derivation": { + "type": "string" + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "relationship": { + "type": "string" + }, + "target": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "locator": { + "additionalProperties": false, + "properties": { + "annex": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." + }, + "article": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Numbered paragraph within the article, e.g. \"2\"." + }, + "point": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Lettered point within the paragraph, e.g. \"b\"." + }, + "recital": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Recital number, e.g. \"95\"." + }, + "subpoint": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Sub-point within the point." + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "url", + "locator" + ], + "type": "object" + } + }, + "required": [ + "relationship", + "derivation", + "note", + "target" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "deletions": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "act": { + "type": "string" + }, + "celex": { + "type": "string" + }, + "form": { + "type": "string" + }, + "instrument_id": { + "type": [ + "string", + "null" + ] + }, + "marker": { + "type": "string" + }, + "position": { + "enum": [ + "within", + "after", + "title" + ], + "type": "string" + } + }, + "required": [ + "celex", + "marker", + "form", + "position", + "act", + "instrument_id" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "EUR-Lex deletion stubs on the whole provision, in source order, each with the act that deleted what stood there. \"within\": the nth \"—————\" in the provision text; \"after\": something deleted after this provision (a whole article or chapter); \"title\": in its heading. Mechanically derived from the stub's own EUR-Lex pointer; not part of the legal text. Null means the release predates the record (see the typed warning), never that nothing was deleted." + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "narrowed": { + "type": "boolean" + }, + "source_notes": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "complete": { + "const": true, + "description": "All notes referenced in this response's text, not the whole document or later pages.", + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "key": { + "type": "string" + }, + "marker": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "key", + "marker", + "text" + ], + "type": "object" + }, + "type": "array" + }, + "scope": { + "const": "returned_text", + "type": "string" + }, + "source_version_id": { + "type": "string" + } + }, + "required": [ + "scope", + "source_version_id", + "complete", + "items" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "kind", + "markdown", + "source_notes", + "deletions", + "narrowed", + "blocks_in_page", + "blocks_total", + "blocks_in_provision", + "content_hash", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
12 tool updates
- Changed
compare_versions10 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - changed
Input schema / properties / from_locator / anyOfPrevious value: -[ - { - "properties": { - "annex": { - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", - "type": [ - "string", - "null" - ] - }, - "article": { - "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", - "type": [ - "string", - "null" - ] - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "description": "Numbered paragraph within the article, e.g. \"2\".", - "type": [ - "string", - "null" - ] - }, - "point": { - "description": "Lettered point within the paragraph, e.g. \"b\".", - "type": [ - "string", - "null" - ] - }, - "recital": { - "description": "Recital number, e.g. \"95\".", - "type": [ - "string", - "null" - ] - }, - "subpoint": { - "description": "Sub-point within the point.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annex": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." + }, + "article": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Numbered paragraph within the article, e.g. \"2\"." + }, + "point": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Lettered point within the paragraph, e.g. \"b\"." + }, + "recital": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Recital number, e.g. \"95\"." + }, + "subpoint": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Sub-point within the point." + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / from_version_id / maxLengthAdded value: +64 - added
Input schema / properties / from_version_id / patternAdded value: +"^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$" - added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - changed
Input schema / properties / to_locator / anyOfPrevious value: -[ - { - "properties": { - "annex": { - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", - "type": [ - "string", - "null" - ] - }, - "article": { - "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", - "type": [ - "string", - "null" - ] - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "description": "Numbered paragraph within the article, e.g. \"2\".", - "type": [ - "string", - "null" - ] - }, - "point": { - "description": "Lettered point within the paragraph, e.g. \"b\".", - "type": [ - "string", - "null" - ] - }, - "recital": { - "description": "Recital number, e.g. \"95\".", - "type": [ - "string", - "null" - ] - }, - "subpoint": { - "description": "Sub-point within the point.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annex": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." + }, + "article": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Numbered paragraph within the article, e.g. \"2\"." + }, + "point": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Lettered point within the paragraph, e.g. \"b\"." + }, + "recital": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Recital number, e.g. \"95\"." + }, + "subpoint": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Sub-point within the point." + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / to_version_id / maxLengthAdded value: +64 - added
Input schema / properties / to_version_id / patternAdded value: +"^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"
- Changed
get_defined_term6 fields changed- changed
Input schema / properties / comparison / anyOfPrevious value: -[ - { - "anyOf": [ - { - "const": "adjacent", - "type": "string" - }, - { - "properties": { - "baseline": { - "type": "string" - } - }, - "required": [ - "baseline" - ], - "type": "object" - }, - { - "properties": { - "pair": { - "items": false, - "maxItems": 2, - "minItems": 2, - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array" - } - }, - "required": [ - "pair" - ], - "type": "object" - }, - { - "properties": { - "concurrent_pairs": { - "properties": { - "cursor": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - } - }, - "required": [ - "concurrent_pairs" - ], - "type": "object" - } - ] - }, - { - "type": "null" - } -]New value: +[ + { + "anyOf": [ + { + "const": "adjacent", + "type": "string" + }, + { + "properties": { + "baseline": { + "maxLength": 64, + "pattern": "^[0-9a-f]+$", + "type": "string" + } + }, + "required": [ + "baseline" + ], + "type": "object" + }, + { + "properties": { + "pair": { + "items": false, + "maxItems": 2, + "minItems": 2, + "prefixItems": [ + { + "maxLength": 128, + "pattern": "^[A-Za-z0-9 ()-]+$", + "type": "string" + }, + { + "maxLength": 128, + "pattern": "^[A-Za-z0-9 ()-]+$", + "type": "string" + } + ], + "type": "array" + } + }, + "required": [ + "pair" + ], + "type": "object" + }, + { + "properties": { + "concurrent_pairs": { + "properties": { + "cursor": { + "anyOf": [ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + } + }, + "required": [ + "concurrent_pairs" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } +] - added
Input schema / properties / instrument / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / instrument / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / on_date / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / on_date / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / term / maxLengthAdded value: +256
- Changed
get_instrument4 fields changed- added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - added
Input schema / properties / on_date / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / on_date / typeRemoved value: -[ - "string", - "null" -]
- Changed
get_orientation4 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / pathway / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / pathway / typeRemoved value: -[ - "string", - "null" -]
- Changed
get_provision21 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - added
Input schema / properties / locator / properties / annex / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / annex / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / locator / properties / article / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / article / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / locator / properties / paragraph / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / paragraph / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / locator / properties / point / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / point / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / locator / properties / recital / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / recital / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / locator / properties / subpoint / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / locator / properties / subpoint / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / on_date / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / on_date / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / version_id / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / version_id / typeRemoved value: -[ - "string", - "null" -] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "blocks_in_page": { - "type": "number" - }, - "blocks_in_provision": { - "type": "number" - }, - "blocks_total": { - "type": "number" - }, - "cite": { - "type": "string" - }, - "content_hash": { - "type": "string" - }, - "correspondences": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "derivation": { - "type": "string" - }, - "note": { - "type": [ - "string", - "null" - ] - }, - "relationship": { - "type": "string" - }, - "target": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "locator": { - "additionalProperties": false, - "properties": { - "annex": { - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", - "type": [ - "string", - "null" - ] - }, - "article": { - "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", - "type": [ - "string", - "null" - ] - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "description": "Numbered paragraph within the article, e.g. \"2\".", - "type": [ - "string", - "null" - ] - }, - "point": { - "description": "Lettered point within the paragraph, e.g. \"b\".", - "type": [ - "string", - "null" - ] - }, - "recital": { - "description": "Recital number, e.g. \"95\".", - "type": [ - "string", - "null" - ] - }, - "subpoint": { - "description": "Sub-point within the point.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "url", - "locator" - ], - "type": "object" - } - }, - "required": [ - "relationship", - "derivation", - "note", - "target" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "narrowed": { - "type": "boolean" - }, - "source_notes": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "complete": { - "const": true, - "description": "All notes referenced in this response's text, not the whole document or later pages.", - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "marker": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "key", - "marker", - "text" - ], - "type": "object" - }, - "type": "array" - }, - "scope": { - "const": "returned_text", - "type": "string" - }, - "source_version_id": { - "type": "string" - } - }, - "required": [ - "scope", - "source_version_id", - "complete", - "items" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "kind", - "markdown", - "source_notes", - "narrowed", - "blocks_in_page", - "blocks_total", - "blocks_in_provision", - "content_hash", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "blocks_in_page": { + "type": "number" + }, + "blocks_in_provision": { + "type": "number" + }, + "blocks_total": { + "type": "number" + }, + "cite": { + "type": "string" + }, + "content_hash": { + "type": "string" + }, + "correspondences": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "derivation": { + "type": "string" + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "relationship": { + "type": "string" + }, + "target": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "locator": { + "additionalProperties": false, + "properties": { + "annex": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." + }, + "article": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Numbered paragraph within the article, e.g. \"2\"." + }, + "point": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Lettered point within the paragraph, e.g. \"b\"." + }, + "recital": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Recital number, e.g. \"95\"." + }, + "subpoint": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Sub-point within the point." + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "url", + "locator" + ], + "type": "object" + } + }, + "required": [ + "relationship", + "derivation", + "note", + "target" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "narrowed": { + "type": "boolean" + }, + "source_notes": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "complete": { + "const": true, + "description": "All notes referenced in this response's text, not the whole document or later pages.", + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "key": { + "type": "string" + }, + "marker": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "key", + "marker", + "text" + ], + "type": "object" + }, + "type": "array" + }, + "scope": { + "const": "returned_text", + "type": "string" + }, + "source_version_id": { + "type": "string" + } + }, + "required": [ + "scope", + "source_version_id", + "complete", + "items" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "kind", + "markdown", + "source_notes", + "narrowed", + "blocks_in_page", + "blocks_total", + "blocks_in_provision", + "content_hash", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_source_notes7 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - changed
Input schema / properties / note_key / anyOfPrevious value: -[ - { - "minLength": 1, - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9*._-]+$", + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / version_id / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / version_id / typeRemoved value: -[ - "string", - "null" -]
- Changed
list_instruments8 fields changed- added
Input schema / properties / category / anyOfAdded value: +[ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / category / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / in_force_on_date / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / in_force_on_date / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / status / anyOfAdded value: +[ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / status / typeRemoved value: -[ - "string", - "null" -]
- Changed
list_provisions8 fields changed- added
Input schema / properties / chapter / anyOfAdded value: +[ + { + "maxLength": 256, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / chapter / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - added
Input schema / properties / topic / anyOfAdded value: +[ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / topic / typeRemoved value: -[ - "string", - "null" -]
- Changed
list_version_changes11 fields changed- changed
Input schema / properties / articles / anyOfPrevious value: -[ - { - "properties": { - "from": { - "type": [ - "string", - "null" - ] - }, - "to": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "from": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "to": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / from_version_id / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / from_version_id / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument_id / maxLengthAdded value: +64 - added
Input schema / properties / instrument_id / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - added
Input schema / properties / status / anyOfAdded value: +[ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / status / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / to_version_id / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / to_version_id / typeRemoved value: -[ - "string", - "null" -]
- Changed
resolve_citation2 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -]
- Changed
search_defined_terms6 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / instrument / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / query / anyOfAdded value: +[ + { + "maxLength": 256, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / query / typeRemoved value: -[ - "string", - "null" -]
- Changed
search_legislation8 fields changed- added
Input schema / properties / cursor / anyOfAdded value: +[ + { + "maxLength": 512, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / in_force_on_date / anyOfAdded value: +[ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / in_force_on_date / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / instrument_id / anyOfAdded value: +[ + { + "maxLength": 64, + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / instrument_id / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / topic / anyOfAdded value: +[ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / topic / typeRemoved value: -[ - "string", - "null" -]
12 tool updates
- Changed
compare_versions6 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - changed
Input schema / properties / from_locator / anyOfPrevious value: -[ - { - "properties": { - "annex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." - }, - "article": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Numbered paragraph within the article, e.g. \"2\"." - }, - "point": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Lettered point within the paragraph, e.g. \"b\"." - }, - "recital": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Recital number, e.g. \"95\"." - }, - "subpoint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sub-point within the point." - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annex": { + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", + "type": [ + "string", + "null" + ] + }, + "article": { + "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", + "type": [ + "string", + "null" + ] + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "description": "Numbered paragraph within the article, e.g. \"2\".", + "type": [ + "string", + "null" + ] + }, + "point": { + "description": "Lettered point within the paragraph, e.g. \"b\".", + "type": [ + "string", + "null" + ] + }, + "recital": { + "description": "Recital number, e.g. \"95\".", + "type": [ + "string", + "null" + ] + }, + "subpoint": { + "description": "Sub-point within the point.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / to_locator / anyOfPrevious value: -[ - { - "properties": { - "annex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." - }, - "article": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Numbered paragraph within the article, e.g. \"2\"." - }, - "point": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Lettered point within the paragraph, e.g. \"b\"." - }, - "recital": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Recital number, e.g. \"95\"." - }, - "subpoint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sub-point within the point." - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annex": { + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", + "type": [ + "string", + "null" + ] + }, + "article": { + "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", + "type": [ + "string", + "null" + ] + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "description": "Numbered paragraph within the article, e.g. \"2\".", + "type": [ + "string", + "null" + ] + }, + "point": { + "description": "Lettered point within the paragraph, e.g. \"b\".", + "type": [ + "string", + "null" + ] + }, + "recital": { + "description": "Recital number, e.g. \"95\".", + "type": [ + "string", + "null" + ] + }, + "subpoint": { + "description": "Sub-point within the point.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "changes": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "type": { - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "What KIND of change this comparison evidences, read off the same artefact as pairs[]. Types: paragraph_added, paragraph_deleted, paragraph_amended (with words_changed, counting both sides of a substitution), figure_changed (with from/to quoting the served text), heading_changed, the article_* counterparts of the first three for an article's text outside any numbered paragraph, and none_detected where nothing was found — never an empty list. An entry carries `paragraph` and, where the served text settles it, `point` and `subpoint`, in the §7 locator model's own field names; an article_* entry carries none of them. Those components are a CITATION, not a promise of retrieval: a sub-point is often not a block get_provision serves, so open an entry at the enclosing point, and then the paragraph, which does serve the text the entry quotes. A roman sub-point is always qualified by its letter point (PSR Art 97(2)(a)(ii), never (ii) alone), and a list the text does not settle is left unlocated. ARTICLE-SCOPED, not page-scoped: the whole inventory travels with every page of pairs[], so a client paging through must not concatenate it. Repeated identical entries are repeated occurrences in one paragraph, not duplicates. Null means this release predates the inventory, which is not the same as none_detected." - }, - "cite": { - "type": "string" - }, - "classification_note": { - "type": "string" - }, - "direction": { - "type": "string" - }, - "editorial_review_state": { - "type": "string" - }, - "from": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - }, - "instrument_id": { - "type": "string" - }, - "pairs": { - "items": { - "additionalProperties": {}, - "properties": { - "ops": { - "items": { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array" - }, - "type": "array" - } - }, - "required": [ - "ops" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "type": "string" - }, - "to": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - } - }, - "required": [ - "instrument_id", - "article", - "cite", - "from", - "to", - "status", - "direction", - "editorial_review_state", - "classification_note", - "changes", - "pairs" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "changes": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "What KIND of change this comparison evidences, read off the same artefact as pairs[]. Types: paragraph_added, paragraph_deleted, paragraph_amended (with words_changed, counting both sides of a substitution), figure_changed (with from/to quoting the served text), heading_changed, the article_* counterparts of the first three for an article's text outside any numbered paragraph, and none_detected where nothing was found — never an empty list. An entry carries `paragraph` and, where the served text settles it, `point` and `subpoint`, in the §7 locator model's own field names; an article_* entry carries none of them. Those components are a CITATION, not a promise of retrieval: a sub-point is often not a block get_provision serves, so open an entry at the enclosing point, and then the paragraph, which does serve the text the entry quotes. A roman sub-point is always qualified by its letter point (PSR Art 97(2)(a)(ii), never (ii) alone), and a list the text does not settle is left unlocated. ARTICLE-SCOPED, not page-scoped: the whole inventory travels with every page of pairs[], so a client paging through must not concatenate it. Repeated identical entries are repeated occurrences in one paragraph, not duplicates. Null means this release predates the inventory, which is not the same as none_detected." + }, + "cite": { + "type": "string" + }, + "classification_note": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "editorial_review_state": { + "type": "string" + }, + "from": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + }, + "instrument_id": { + "type": "string" + }, + "pairs": { + "items": { + "additionalProperties": {}, + "properties": { + "ops": { + "items": { + "items": false, + "maxItems": 2, + "minItems": 2, + "prefixItems": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "array" + }, + "type": "array" + } + }, + "required": [ + "ops" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "type": "string" + }, + "to": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + } + }, + "required": [ + "instrument_id", + "article", + "cite", + "from", + "to", + "status", + "direction", + "editorial_review_state", + "classification_note", + "changes", + "pairs" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_defined_term7 fields changed- changed
Input schema / properties / comparison / anyOfPrevious value: -[ - { - "anyOf": [ - { - "const": "adjacent", - "type": "string" - }, - { - "properties": { - "baseline": { - "type": "string" - } - }, - "required": [ - "baseline" - ], - "type": "object" - }, - { - "properties": { - "pair": { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array" - } - }, - "required": [ - "pair" - ], - "type": "object" - }, - { - "properties": { - "concurrent_pairs": { - "properties": { - "cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "concurrent_pairs" - ], - "type": "object" - } - ] - }, - { - "type": "null" - } -]New value: +[ + { + "anyOf": [ + { + "const": "adjacent", + "type": "string" + }, + { + "properties": { + "baseline": { + "type": "string" + } + }, + "required": [ + "baseline" + ], + "type": "object" + }, + { + "properties": { + "pair": { + "items": false, + "maxItems": 2, + "minItems": 2, + "prefixItems": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "array" + } + }, + "required": [ + "pair" + ], + "type": "object" + }, + { + "properties": { + "concurrent_pairs": { + "properties": { + "cursor": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + } + }, + "required": [ + "concurrent_pairs" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } +] - removed
Input schema / properties / instrument / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / instrument / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / on_date / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / on_date / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "clusters": { - "items": { - "additionalProperties": {}, - "properties": { - "cluster_id": { - "type": "string" - }, - "member_cites": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cluster_id", - "member_cites" - ], - "type": "object" - }, - "type": "array" - }, - "comparisons": { - "items": { - "additionalProperties": {}, - "properties": { - "from_cite": { - "type": "string" - }, - "ops": { - "anyOf": [ - { - "items": { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "to_cite": { - "type": "string" - } - }, - "required": [ - "from_cite", - "to_cite", - "ops" - ], - "type": "object" - }, - "type": "array" - }, - "definitions": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "defined_within": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "instrument_id": { - "type": "string" - }, - "qualifier": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "resolution_status": { - "type": "string" - }, - "resolved_definition": { - "type": "string" - }, - "verbatim_definition": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "qualifier", - "defined_within", - "cite", - "verbatim_definition", - "resolved_definition", - "resolution_status" - ], - "type": "object" - }, - "type": "array" - }, - "references_in": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "cite" - ], - "type": "object" - }, - "type": "array" - }, - "term": { - "type": "string" - }, - "view": { - "type": "string" - }, - "views": { - "additionalProperties": {}, - "properties": { - "concurrent": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - } - }, - "required": [ - "cite" - ], - "type": "object" - }, - "type": "array" - }, - "evolution": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - } - }, - "required": [ - "cite" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "evolution", - "concurrent" - ], - "type": "object" - } - }, - "required": [ - "term", - "view", - "definitions", - "clusters", - "views", - "comparisons", - "references_in" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "clusters": { + "items": { + "additionalProperties": {}, + "properties": { + "cluster_id": { + "type": "string" + }, + "member_cites": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "cluster_id", + "member_cites" + ], + "type": "object" + }, + "type": "array" + }, + "comparisons": { + "items": { + "additionalProperties": {}, + "properties": { + "from_cite": { + "type": "string" + }, + "ops": { + "anyOf": [ + { + "items": { + "items": false, + "maxItems": 2, + "minItems": 2, + "prefixItems": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "array" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "to_cite": { + "type": "string" + } + }, + "required": [ + "from_cite", + "to_cite", + "ops" + ], + "type": "object" + }, + "type": "array" + }, + "definitions": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "defined_within": { + "type": [ + "string", + "null" + ] + }, + "instrument_id": { + "type": "string" + }, + "qualifier": { + "type": [ + "string", + "null" + ] + }, + "resolution_status": { + "type": "string" + }, + "resolved_definition": { + "type": "string" + }, + "verbatim_definition": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "qualifier", + "defined_within", + "cite", + "verbatim_definition", + "resolved_definition", + "resolution_status" + ], + "type": "object" + }, + "type": "array" + }, + "references_in": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "cite" + ], + "type": "object" + }, + "type": "array" + }, + "term": { + "type": "string" + }, + "view": { + "type": "string" + }, + "views": { + "additionalProperties": {}, + "properties": { + "concurrent": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + } + }, + "required": [ + "cite" + ], + "type": "object" + }, + "type": "array" + }, + "evolution": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + } + }, + "required": [ + "cite" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "evolution", + "concurrent" + ], + "type": "object" + } + }, + "required": [ + "term", + "view", + "definitions", + "clusters", + "views", + "comparisons", + "references_in" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_instrument4 fields changed- removed
Input schema / properties / on_date / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / on_date / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "instrument_id": { - "type": "string" - }, - "legal_status_at_release": { - "type": "string" - }, - "relationships": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "direction": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "operative_cite": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "operative_locator": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "kind", - "article" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "operative_locator_unavailable": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_external": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "celex": { - "type": "string" - }, - "title": { - "type": "string" - }, - "via_article": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "celex", - "title", - "via_article" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "target_external": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "celex": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "celex", - "title" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "target_instrument_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "kind", - "direction", - "target_status", - "operative_locator", - "operative_cite", - "operative_locator_unavailable" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "text_state": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "title", - "legal_status_at_release", - "version_id", - "text_state", - "url", - "relationships" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "instrument_id": { + "type": "string" + }, + "legal_status_at_release": { + "type": "string" + }, + "relationships": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "direction": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "operative_cite": { + "type": [ + "string", + "null" + ] + }, + "operative_locator": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "kind", + "article" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "operative_locator_unavailable": { + "type": [ + "string", + "null" + ] + }, + "source_external": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "celex": { + "type": "string" + }, + "title": { + "type": "string" + }, + "via_article": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "celex", + "title", + "via_article" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "target_external": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "celex": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "celex", + "title" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "target_instrument_id": { + "type": [ + "string", + "null" + ] + }, + "target_status": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind", + "direction", + "target_status", + "operative_locator", + "operative_cite", + "operative_locator_unavailable" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "text_state": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "title", + "legal_status_at_release", + "version_id", + "text_state", + "url", + "relationships" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_orientation6 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / pathway / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / pathway / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "items": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "pathway_id": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "pathway_id", - "title" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "mode": { - "enum": [ - "catalogue", - "pathway" - ], - "type": "string" - }, - "pathway_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stages": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "stage_id": { - "type": "string" - }, - "title": { - "type": "string" - }, - "waypoints": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "why": { - "type": "string" - } - }, - "required": [ - "cite", - "why" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "stage_id", - "title", - "waypoints" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "mode" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "items": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "pathway_id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "pathway_id", + "title" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "mode": { + "enum": [ + "catalogue", + "pathway" + ], + "type": "string" + }, + "pathway_id": { + "type": [ + "string", + "null" + ] + }, + "stages": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "stage_id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "waypoints": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "why": { + "type": "string" + } + }, + "required": [ + "cite", + "why" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "stage_id", + "title", + "waypoints" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_provision22 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / include_correspondences / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Input schema / properties / include_correspondences / typeAdded value: +[ + "boolean", + "null" +] - removed
Input schema / properties / locator / properties / annex / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / annex / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / locator / properties / article / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / article / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / locator / properties / paragraph / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / paragraph / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / locator / properties / point / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / point / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / locator / properties / recital / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / recital / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / locator / properties / subpoint / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / locator / properties / subpoint / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / on_date / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / on_date / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / version_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / version_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "blocks_in_page": { - "type": "number" - }, - "blocks_in_provision": { - "type": "number" - }, - "blocks_total": { - "type": "number" - }, - "cite": { - "type": "string" - }, - "content_hash": { - "type": "string" - }, - "correspondences": { - "anyOf": [ - { - "items": { - "additionalProperties": {}, - "properties": { - "derivation": { - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "relationship": { - "type": "string" - }, - "target": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "locator": { - "additionalProperties": false, - "properties": { - "annex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered." - }, - "article": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Article number as printed: \"97\", \"45a\", \"69-a\"." - }, - "kind": { - "description": "Which kind of provision the locator names.", - "enum": [ - "article", - "annex", - "recital" - ], - "type": "string" - }, - "paragraph": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Numbered paragraph within the article, e.g. \"2\"." - }, - "point": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Lettered point within the paragraph, e.g. \"b\"." - }, - "recital": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Recital number, e.g. \"95\"." - }, - "subpoint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sub-point within the point." - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "url", - "locator" - ], - "type": "object" - } - }, - "required": [ - "relationship", - "derivation", - "note", - "target" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "narrowed": { - "type": "boolean" - }, - "source_notes": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "complete": { - "const": true, - "description": "All notes referenced in this response's text, not the whole document or later pages.", - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "marker": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "key", - "marker", - "text" - ], - "type": "object" - }, - "type": "array" - }, - "scope": { - "const": "returned_text", - "type": "string" - }, - "source_version_id": { - "type": "string" - } - }, - "required": [ - "scope", - "source_version_id", - "complete", - "items" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "cite", - "kind", - "markdown", - "source_notes", - "narrowed", - "blocks_in_page", - "blocks_total", - "blocks_in_provision", - "content_hash", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "blocks_in_page": { + "type": "number" + }, + "blocks_in_provision": { + "type": "number" + }, + "blocks_total": { + "type": "number" + }, + "cite": { + "type": "string" + }, + "content_hash": { + "type": "string" + }, + "correspondences": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "derivation": { + "type": "string" + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "relationship": { + "type": "string" + }, + "target": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "locator": { + "additionalProperties": false, + "properties": { + "annex": { + "description": "Annex number, roman or arabic (\"I\", \"1\"); omit for an instrument whose single annex is unnumbered.", + "type": [ + "string", + "null" + ] + }, + "article": { + "description": "Article number as printed: \"97\", \"45a\", \"69-a\".", + "type": [ + "string", + "null" + ] + }, + "kind": { + "description": "Which kind of provision the locator names.", + "enum": [ + "article", + "annex", + "recital" + ], + "type": "string" + }, + "paragraph": { + "description": "Numbered paragraph within the article, e.g. \"2\".", + "type": [ + "string", + "null" + ] + }, + "point": { + "description": "Lettered point within the paragraph, e.g. \"b\".", + "type": [ + "string", + "null" + ] + }, + "recital": { + "description": "Recital number, e.g. \"95\".", + "type": [ + "string", + "null" + ] + }, + "subpoint": { + "description": "Sub-point within the point.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "url", + "locator" + ], + "type": "object" + } + }, + "required": [ + "relationship", + "derivation", + "note", + "target" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "narrowed": { + "type": "boolean" + }, + "source_notes": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "complete": { + "const": true, + "description": "All notes referenced in this response's text, not the whole document or later pages.", + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "key": { + "type": "string" + }, + "marker": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "key", + "marker", + "text" + ], + "type": "object" + }, + "type": "array" + }, + "scope": { + "const": "returned_text", + "type": "string" + }, + "source_version_id": { + "type": "string" + } + }, + "required": [ + "scope", + "source_version_id", + "complete", + "items" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Null means unverified/unsupported coverage or an older release; consult the typed warning. Not an empty note inventory. Legal content_hash and block counts exclude this attachment." + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "cite", + "kind", + "markdown", + "source_notes", + "narrowed", + "blocks_in_page", + "blocks_total", + "blocks_in_provision", + "content_hash", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_source_notes6 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / version_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / version_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "instrument_id": { - "type": "string" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "instrument_id": { - "type": "string" - }, - "marker": { - "type": "string" - }, - "note_key": { - "type": "string" - }, - "text": { - "type": "string" - }, - "url": { - "type": "string" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "note_key", - "marker", - "text", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - }, - "version_id": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "version_id", - "items", - "total", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "instrument_id": { + "type": "string" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "instrument_id": { + "type": "string" + }, + "marker": { + "type": "string" + }, + "note_key": { + "type": "string" + }, + "text": { + "type": "string" + }, + "url": { + "type": "string" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "note_key", + "marker", + "text", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + }, + "version_id": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "version_id", + "items", + "total", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
list_instruments12 fields changed- removed
Input schema / properties / category / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / category / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / in_force_on_date / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / in_force_on_date / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / is_core / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Input schema / properties / is_core / typeAdded value: +[ + "boolean", + "null" +] - removed
Input schema / properties / status / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / status / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "instrument_id": { - "type": "string" - } - }, - "required": [ - "instrument_id" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "next_cursor", - "total" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "instrument_id": { + "type": "string" + } + }, + "required": [ + "instrument_id" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "next_cursor", + "total" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
list_provisions8 fields changed- removed
Input schema / properties / chapter / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / chapter / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / topic / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / topic / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "instrument_id": { - "type": "string" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - } - }, - "required": [ - "cite" - ], - "type": "object" - }, - "type": "array" - }, - "kinds_listed": { - "items": { - "type": "string" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "instrument_id", - "kinds_listed", - "items", - "next_cursor", - "total" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "instrument_id": { + "type": "string" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + } + }, + "required": [ + "cite" + ], + "type": "object" + }, + "type": "array" + }, + "kinds_listed": { + "items": { + "type": "string" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "instrument_id", + "kinds_listed", + "items", + "next_cursor", + "total" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
list_version_changes13 fields changed- changed
Input schema / properties / articles / anyOfPrevious value: -[ - { - "properties": { - "from": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "to": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } +] - removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / from_version_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / from_version_id / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / material_only / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Input schema / properties / material_only / typeAdded value: +[ + "boolean", + "null" +] - removed
Input schema / properties / status / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / status / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / to_version_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / to_version_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "classification_note": { - "type": "string" - }, - "counts": { - "additionalProperties": { - "type": "number" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "definition_markers": { - "items": { - "additionalProperties": {}, - "properties": { - "term": { - "type": "string" - } - }, - "required": [ - "term" - ], - "type": "object" - }, - "type": "array" - }, - "instrument_id": { - "type": "string" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "required": [ - "article", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "materiality_markers": { - "items": { - "additionalProperties": {}, - "properties": { - "article": { - "type": "string" - } - }, - "required": [ - "article" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "pair": { - "additionalProperties": {}, - "properties": { - "from": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - }, - "to": { - "additionalProperties": {}, - "properties": { - "version_id": { - "type": "string" - } - }, - "required": [ - "version_id" - ], - "type": "object" - } - }, - "required": [ - "from", - "to" - ], - "type": "object" - }, - "total": { - "type": "number" - } - }, - "required": [ - "instrument_id", - "pair", - "items", - "next_cursor", - "total", - "counts", - "materiality_markers", - "definition_markers", - "classification_note" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "classification_note": { + "type": "string" + }, + "counts": { + "additionalProperties": { + "type": "number" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "definition_markers": { + "items": { + "additionalProperties": {}, + "properties": { + "term": { + "type": "string" + } + }, + "required": [ + "term" + ], + "type": "object" + }, + "type": "array" + }, + "instrument_id": { + "type": "string" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "article", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "materiality_markers": { + "items": { + "additionalProperties": {}, + "properties": { + "article": { + "type": "string" + } + }, + "required": [ + "article" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "pair": { + "additionalProperties": {}, + "properties": { + "from": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + }, + "to": { + "additionalProperties": {}, + "properties": { + "version_id": { + "type": "string" + } + }, + "required": [ + "version_id" + ], + "type": "object" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + "total": { + "type": "number" + } + }, + "required": [ + "instrument_id", + "pair", + "items", + "next_cursor", + "total", + "counts", + "materiality_markers", + "definition_markers", + "classification_note" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
resolve_citation4 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "ambiguous": { - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "confidence": { - "enum": [ - "exact", - "strong", - "ambiguous" - ], - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "locator": { - "anyOf": [ - { - "additionalProperties": {}, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "url": { - "type": "string" - }, - "why": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "cite", - "kind", - "locator", - "confidence", - "why", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "not_in_corpus": { - "items": { - "additionalProperties": {}, - "properties": { - "celex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "named": { - "type": "string" - } - }, - "required": [ - "named", - "celex" - ], - "type": "object" - }, - "type": "array" - }, - "total": { - "type": "number" - }, - "unresolved": { - "type": "boolean" - } - }, - "required": [ - "items", - "next_cursor", - "total", - "ambiguous", - "unresolved", - "not_in_corpus" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "confidence": { + "enum": [ + "exact", + "strong", + "ambiguous" + ], + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "locator": { + "anyOf": [ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "type": "string" + }, + "why": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "cite", + "kind", + "locator", + "confidence", + "why", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "not_in_corpus": { + "items": { + "additionalProperties": {}, + "properties": { + "celex": { + "type": [ + "string", + "null" + ] + }, + "named": { + "type": "string" + } + }, + "required": [ + "named", + "celex" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "number" + }, + "unresolved": { + "type": "boolean" + } + }, + "required": [ + "items", + "next_cursor", + "total", + "ambiguous", + "unresolved", + "not_in_corpus" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
search_defined_terms10 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / instrument / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / instrument / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / only_divergent / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Input schema / properties / only_divergent / typeAdded value: +[ + "boolean", + "null" +] - removed
Input schema / properties / query / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / query / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "defined_in": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "defined_within": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "instrument_id": { - "type": "string" - }, - "qualifier": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "instrument_id", - "qualifier", - "defined_within", - "cite" - ], - "type": "object" - }, - "type": "array" - }, - "divergent_resolved": { - "type": "boolean" - }, - "divergent_verbatim": { - "type": "boolean" - }, - "term": { - "type": "string" - } - }, - "required": [ - "term", - "defined_in", - "divergent_verbatim", - "divergent_resolved" - ], - "type": "object" - }, - "type": "array" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "next_cursor", - "total" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "defined_in": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "defined_within": { + "type": [ + "string", + "null" + ] + }, + "instrument_id": { + "type": "string" + }, + "qualifier": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "instrument_id", + "qualifier", + "defined_within", + "cite" + ], + "type": "object" + }, + "type": "array" + }, + "divergent_resolved": { + "type": "boolean" + }, + "divergent_verbatim": { + "type": "boolean" + }, + "term": { + "type": "string" + } + }, + "required": [ + "term", + "defined_in", + "divergent_verbatim", + "divergent_resolved" + ], + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "next_cursor", + "total" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
search_legislation10 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / in_force_on_date / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / in_force_on_date / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / instrument_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / instrument_id / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / topic / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / topic / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "citation_routed": { - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "cite": { - "type": "string" - }, - "instrument_id": { - "type": "string" - }, - "locator": { - "additionalProperties": {}, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "matched_via": { - "type": "string" - }, - "score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "snippet": { - "type": "string" - }, - "source_type": { - "type": "string" - }, - "url": { - "type": "string" - }, - "why": { - "type": "string" - } - }, - "required": [ - "instrument_id", - "cite", - "source_type", - "locator", - "url", - "snippet", - "score", - "why", - "matched_via" - ], - "type": "object" - }, - "type": "array" - }, - "match_mode": { - "type": "string" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "query_terms": { - "items": { - "type": "string" - }, - "type": "array" - }, - "total": { - "type": "number" - } - }, - "required": [ - "query_terms", - "match_mode", - "citation_routed", - "items", - "next_cursor", - "total" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "citation_routed": { + "type": "boolean" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "cite": { + "type": "string" + }, + "instrument_id": { + "type": "string" + }, + "locator": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "matched_via": { + "type": "string" + }, + "score": { + "type": [ + "number", + "null" + ] + }, + "snippet": { + "type": "string" + }, + "source_type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "why": { + "type": "string" + } + }, + "required": [ + "instrument_id", + "cite", + "source_type", + "locator", + "url", + "snippet", + "score", + "why", + "matched_via" + ], + "type": "object" + }, + "type": "array" + }, + "match_mode": { + "type": "string" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "query_terms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "total": { + "type": "number" + } + }, + "required": [ + "query_terms", + "match_mode", + "citation_routed", + "items", + "next_cursor", + "total" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / pagination / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "complete": { - "type": "boolean" - }, - "next_cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total": { - "type": "number" - } - }, - "required": [ - "complete", - "next_cursor" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "complete": { + "type": "boolean" + }, + "next_cursor": { + "type": [ + "string", + "null" + ] + }, + "total": { + "type": "number" + } + }, + "required": [ + "complete", + "next_cursor" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Changed
fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"An id from search, or a cite anchor such as \"psd-2 Art 97\" or \"psd-2 Recital 12\", or an instrument id such as \"psd-2\"."New value: +"An id from search, or a cite anchor such as \"psd-2 Art 97\" or \"psd-2 Recital 12\", or an instrument id such as \"psd-2\". An optional version qualifier, e.g. \"psr (com-2023-367) Art 105\", retains its edition and refuses unserved text."
2 tool updates
- Changed
search1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"A single query string."New value: +"EU payments legislative terms or citation, e.g. \"strong customer authentication\", \"safeguarding\" or \"Article 97 PSD2\"."
- Changed
search_legislation1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"What to search for, in the words you expect in the legal text. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query (\"Article 97(1) PSD2\") is resolved through the citation grammar first."New value: +"EU legislative search terms, e.g. \"strong customer authentication\", \"dynamic linking\", \"safeguarding\" or \"DORA ICT risk\". Use words expected in the legal text, not an entire advice request. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query (\"Article 97(1) PSD2\") is resolved through the citation grammar first."
1 tool update
- Changed
get_orientation2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "pagination.next_cursor from this tool; repeat the same pathway and limit." +} - added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "Maximum catalogue entries or pathway waypoints per page; whole-item byte bounds may return fewer." +}
1 tool update
- Added
get_source_notes
13 tool updates
- First observed
compare_versions - First observed
fetch - First observed
get_defined_term - First observed
get_instrument - First observed
get_orientation - First observed
get_provision - First observed
list_instruments - First observed
list_provisions - First observed
list_version_changes - First observed
resolve_citation - First observed
search - First observed
search_defined_terms - First observed
search_legislation
Related MCP Connectors
EU financial regulatory monitoring: DORA, MiCA, MiFID II, AML, Solvency II and more.
- acquisOAuthcom.acquislaw
Verified EU law: verbatim, signed provisions with EUR-Lex links. Read-only, not legal advice.
EU regulations (GDPR, DORA, NIS2, AI Act, etc.) via Ansvar Gateway. Cited, OAuth + paid.
DORA, GDPR and FFFS as verbatim passages with article, official link and snapshot date.
1
Related MCP Servers
- AlicenseAqualityCmaintenanceEU MiCA compliance MCP for crypto-asset issuers, exchanges, and CASPs.728 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables mapping and cross-referencing obligations between DORA and NIS2 regulatory regimes for entities in scope of both.58 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and quoting EU legislation with verifiable EUR-Lex citations, including GDPR, NIS2, DORA, and the EU AI Act.251 npmMIT
- AlicenseBqualityBmaintenanceMulti-regime AI incident classification and reporting MCP supporting EU AI Act Article 73, DORA, NIS2, and GDPR breach reporting.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.