Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "trace_connection"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨73 unchanged words⟩ meeting attendance transcribed from agendas and minutes (250249 references across 78 meeting records; a meeting record ⟨10 unchanged words⟩ peer claims authored on an entity dossier (169162 links,4744 of them stated on both dossiers), and shared named patterns (6058 references across 15 patterns; a pattern holds a ⟨4 unchanged words⟩ and at most 10). That substrate is162161 nodes and479469 links over6968 entities, in one connected component. Place, corridor ⟨12 unchanged words⟩ as routes: the us-27-south-lake node alone carries118117 links, so a route through it would ⟨32 unchanged words⟩ and a three-step expansion reaches a median of236235 of244243 nodes, so depth returns the corpus rather ⟨41 unchanged words⟩ how many equally-short routes exist (uniqueness runs64%65% at two hops,41%40% at three,16%14% at four), and whether the two endpoints are minuted in disjoint jurisdictions, which 15 of6968 entities are positioned to be. `interior_degrees` carries every ⟨66 unchanged words⟩ Every response reports how many of the 2,346278 possible entity pairs the filters matched, splits ⟨83 unchanged words⟩ route is co-occurrence in a record; and the345347 of423425 meeting records not yet linked to an entity ⟨52 unchanged words⟩
⟨107 unchanged words⟩ set fragments the graph (minuted alone is65 components), and the response reports substrate.components and ⟨230 unchanged words⟩
⟨1027 unchanged words⟩ put in scope: one in pair mode,6867 from a named entity, 2,346278 across the corpus.","type":"number"} ⟨257 unchanged words⟩
Changed the definition of "trace_connection"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨213 unchanged words⟩ and a three-step expansion reaches a median of235236 of243244 nodes, so depth returns the corpus rather ⟨245 unchanged words⟩ route is co-occurrence in a record; and the298345 of376423 meeting records not yet linked to an entity ⟨52 unchanged words⟩
Changed the definition of "describe_corridor", "describe_entity", "describe_meeting" and 13 more
⟨38 unchanged words⟩ ,"id":{"description":"Full claim_id slug,—in the form `{scope}.{facet}.{noun}`."," ⟨33 unchanged words⟩ "properties":{"corpus_last_harvested":{"description":"YYYY-MM-DD—: most recent harvest_date in corpus.","type":"string"},"dossier_last_material_update":{"description":"YYYY-MM-DD—: when this dossier last changed.","type":["string","null"]},"page_last_rendered":{"description":"ISO 8601—: request-time stamp.","type":"string"}," ⟨53 unchanged words⟩
Changed the definition of "semantic_search"
SemanticSearch
SemanticSearchsearcheveryacrossrecordthebyfullexactcorpuswords—and
Added "trace_connection"; changed the definition of "describe_entity" (17 tools before, 18 now)
⟨124 unchanged words⟩ traversing the entity graph from a single name. This dossier answers what one node touches; trace_connection answers what joins two of them and how specific that join is.
Trace Connection — Trace how two named things in the planning record connect, and report how specific that connection is. Give `from` and `to` for the shortest route between them; give `from` alone to rank what one actor connects to; give neither to rank the corpus's most specific connections. Endpoints are entity, meeting, or named-pattern slugs — list_entities, list_meetings and list_patterns discover them. Routes run over the three layers where a shared node is a specific claim: meeting attendance transcribed from agendas and minutes (250 references across 78 meeting records; a meeting record holds a median…
Certificate recorded, valid to 2026-11-22
Authorization not required
First tool surface recorded: 17 tools (server version 2.1.0)
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Return the full structured dossier for a named entity—: the canonical citable artifact for any actor, ⟨65 unchanged words⟩ }`) is the stable cross-page Schema.org reference—(Person / Organization / Legislation / CreativeWork—) that AI agents resolve to when citing the ⟨46 unchanged words⟩
⟨15 unchanged words⟩ lens enum and default as describe_place / describe_corridor—: eight total projections (seven stakeholder lenses,—namely developer, investor, broker, attorney, business, resident,civic-leaderand—civic-leader, plus synthesis as the default). Returns the ⟨33 unchanged words⟩ / meeting_status / outcome_status / minutes_available / vote_final)—.theThe last prevents agents from summarizing agenda intent as ⟨18 unchanged words⟩
⟨38 unchanged words⟩ ,"id":{"description":"Full claim_id slug,—in the form `{scope}.{facet}.{noun}`."," ⟨33 unchanged words⟩ "properties":{"corpus_last_harvested":{"description":"YYYY-MM-DD—: most recent harvest_date in corpus.","type":"string"},"dossier_last_material_update":{"description":"YYYY-MM-DD—: when this dossier last changed.","type":["string","null"]},"page_last_rendered":{"description":"ISO 8601—: request-time stamp.","type":"string"}," ⟨86 unchanged words⟩
⟨38 unchanged words⟩ ,"id":{"description":"Full claim_id slug,—in the form `{scope}.{facet}.{noun}`."," ⟨55 unchanged words⟩ "properties":{"corpus_last_harvested":{"description":"YYYY-MM-DD—: most recent harvest_date in corpus.","type":"string"},"dossier_last_material_update":{"description":"YYYY-MM-DD—: when this dossier last changed.","type":["string","null"]},"page_last_rendered":{"description":"ISO 8601—: request-time stamp.","type":"string"}," ⟨116 unchanged words⟩
⟨32 unchanged words⟩ a single-lens value to get the focused cognitivepositionposition.—This is useful when the agent is acting on behalf ⟨23 unchanged words⟩
⟨38 unchanged words⟩ ,"id":{"description":"Full claim_id slug,—in the form `{scope}.{facet}.{noun}`."," ⟨33 unchanged words⟩ "properties":{"corpus_last_harvested":{"description":"YYYY-MM-DD—: most recent harvest_date in corpus.","type":"string"},"dossier_last_material_update":{"description":"YYYY-MM-DD—: when this dossier last changed.","type":["string","null"]},"page_last_rendered":{"description":"ISO 8601—: request-time stamp.","type":"string"}," ⟨53 unchanged words⟩
Return the full dossier for a watch item—, the observatory's forward-looking observation primitive. Returns title, ⟨42 unchanged words⟩ , prediction_assessment with directional/horizon/significance assessments, lesson, citations)—, and the lesson surfaces as a stable claim_id ⟨29 unchanged words⟩
⟨35 unchanged words⟩ ,"id":{"description":"Full claim_id slug,—in the form `{scope}.{facet}.{noun}`."," ⟨30 unchanged words⟩ "properties":{"corpus_last_harvested":{"description":"YYYY-MM-DD—: most recent harvest_date in corpus.","type":"string"},"dossier_last_material_update":{"description":"YYYY-MM-DD—: when this dossier last changed.","type":["string","null"]},"page_last_rendered":{"description":"ISO 8601—: request-time stamp.","type":"string"}," ⟨124 unchanged words⟩
Return the canonical product description for Zoning Signal—: what the observatory is, the four artifact ⟨24 unchanged words⟩
Return the observatory's public calibration scorecard—: the aggregate accuracy of past watch-item directional reads ⟨66 unchanged words⟩
List every published corridor page. A corridor is the cross-municipal economic-topology view—: the cross-jurisdiction read on a shared infrastructure spine ⟨14 unchanged words⟩
List every named entity in the Decoder Index—, the smallest citable unit of authority in the ⟨81 unchanged words⟩ ) that resolves to the canonical Schema.org node—(Person / Organization / Legislation / CreativeWork—) for AI-citation grounding.
⟨15 unchanged words⟩ response shape as meeting_index but with no requiredparameters —parameters.callCall with no args to get the full corpus ⟨33 unchanged words⟩
⟨68 unchanged words⟩ with describe_pattern for full dossier detail. Phase 12—renamed it from current_named_patterns to align with the canonical content-type ⟨13 unchanged words⟩
⟨29 unchanged words⟩ available place-level coverage before calling describe_place. Phase 12—renamed it from list_cities to align with the canonical content-type ⟨19 unchanged words⟩
Return The Watch—, the field's forward calendar of pending events, ⟨45 unchanged words⟩
⟨82 unchanged words⟩ annotated with the call sequence that produced it,—so there is no need to repeat what you tried. Operators ⟨20 unchanged words⟩
⟨48 unchanged words⟩ of what the agent was trying to do—, the user task that led to this surface. ⟨108 unchanged words⟩ "Optional: if you have a concrete proposal—(a new tool, a renamed parameter, a missing field on a response—), name it here.","type":"string"} ⟨5 unchanged words⟩
⟨45 unchanged words⟩ connections. Endpoints are entity, meeting, or named-patternslugs —slugs; list_entities, list_meetings and list_patterns discover them. Routes ⟨204 unchanged words⟩ Two more measured properties travel with every row—: how many equally-short routes exist (uniqueness runs ⟨114 unchanged words⟩ them by provenance, and accounts for the rest—, so a query that discriminated nothing says so ⟨138 unchanged words⟩
⟨19 unchanged words⟩ record-backed jurisdiction footprints are disjoint and both present—, computed from the jurisdiction on each minuted meeting ⟨121 unchanged words⟩ observatory's own briefs have yet to put together—, tested against the union of an entity's appears_in_briefs ⟨15 unchanged words⟩ order against entities, meetings, then named patterns—: the three vocabularies in which a shared node ⟨150 unchanged words⟩
before
{"properties":{"calibration":{"description":"Measured background rates for the chosen evidence layers — what to read a row against.","properties":{"distance_histogram":{"type":"object"},"max_shortest_path_count":{"type":"number"},"note":{"type":"string"},"unique_shortest_path_by_distance":{"type":"object"}},"type":"object"},"connections":{"items":{"properties":{"crosses_jurisdiction":{"description":"Both footprints are on from.jurisdictions_minuted and to.jurisdictions_minuted.","type":"boolean"},"date_span":{"description":"Populated only when every hop on the representative route runs through a meeting record; otherwise carries a reason scoped to that route.","type":"object"},"evidence_used":{"description":"The union of layers across ALL shortest routes between these two — the honest scope for a row that reports how many of them there are. The representative route’s own layers are on its hops.","items":{"enum":["minuted","authored","named_pattern"],"type":"string"},"type":"array"},"from":{"description":"slug, kind, display_name, entity_class, canonical_role, url, jurisdictions_minuted[].","type":"object"},"hops":{"type":"number"},"interior_degrees":{"description":"Every interior node's degree on the representative route, in route order.","items":{"type":"number"},"type":"array"},"provenance":{"description":"Derived from evidence_used. \"record\" = every shortest route runs on transcribed meeting attendance; \"curated\" = the whole join is authored on a dossier or grouped into a pattern, which describe_entity and describe_pattern already return.","enum":["record","mixed","curated"],"type":"string"},"published_together_in":{"items":{"type":"string"},"type":"array"},"route_also_joins":{"description":"From and sweep modes: the other pairs this same chain of intermediaries joins. A node of degree 6 yields fifteen pairs, and they are one finding rather than fifteen rows.","properties":{"count":{"type":"number"},"pairs":{"items":{"properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"}},"required":["count","pairs"],"type":"object"},"routes":{"items":{"properties":{"hops":{"items":{"properties":{"basis":{"description":"A sentence naming what kind of knowing this hop is — a record, an authored claim, or a curated grouping.","type":"string"},"detail":{"type":"string"},"evidence":{"enum":["minuted","authored","named_pattern"],"type":"string"},"from":{"type":"string"},"jurisdiction":{"description":"Present on meeting hops: the room's own jurisdiction slug, so a caller sees where a crossing happens without the tool nominating a carrier.","type":"string"},"node_degree":{"type":"number"},"to":{"type":"string"},"url":{"type":"string"}},"required":["from","to","evidence","node_degree","url","detail","basis"],"type":"object"},"type":"array"}},"required":["hops"],"type":"object"},"type":"array"},"routes_shown":{"description":"Routes displayed: five in pair mode, one in from and sweep modes. Read against shortest_path_count.","type":"number"},"shortest_path_count":{"description":"Exact, independent of how many routes are shown.","type":"number"},"summary":{"type":"string"},"to":{"type":"object"},"undetermined":{"description":"Read across all shortest routes, matching evidence_used — a row that reports eight routes and qualifies one would under-report what it leaves open.","items":{"type":"string"},"type":"array"},"widest_node":{"description":"The WIDEST node the route passes through, named rather than scored — the primary ranking key, and exactly the narrowest such node any shortest route achieves. Computed by a dynamic program over the whole predecessor DAG, so it is exact however many routes are displayed. Null at one hop.","properties":{"degree":{"type":"number"},"degree_means":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"},"url":{"type":"string"}},"type":["object","null"]}},"required":["from","to","hops","shortest_path_count","routes_shown","interior_degrees","evidence_used","provenance","crosses_jurisdiction","summary","routes","undetermined"],"type":"object"},"type":"array"},"coverage":{"description":"What the corpus covers, plus what the graph covers: meetings linked to entities against meetings in corpus, jurisdictions linked against jurisdictions in corpus, and the per-jurisdiction breakdown.","type":"object"},"declared_direct":{"description":"From and sweep modes: one-hop authored pairs, unscored, as slug pairs — describe_entity already returns each one in its dossier context.","items":{"properties":{"authored_on":{"description":"The dossiers carrying the reference — one slug for a one-way claim, both for a reciprocal one.","items":{"type":"string"},"type":"array"},"crosses_jurisdiction":{"type":"boolean"},"from":{"description":"Entity slug.","type":"string"},"published_together_in":{"items":{"type":"string"},"type":"array"},"to":{"description":"Entity slug.","type":"string"}},"required":["from","to","authored_on","crosses_jurisdiction","published_together_in"],"type":"object"},"type":"array"},"declared_direct_note":{"description":"Present whenever declared_direct carries a row: the call that reads any of them in full.","type":"string"},"limits":{"description":"Assembled per call. The coverage line is always first: absence in this tool is absence of curation.","items":{"type":"string"},"type":"array"},"no_path":{"description":"Pair mode only, when the endpoints are unreachable on the chosen layers. Null everywhere else, including in pair mode when a route exists.","properties":{"components":{"type":"number"},"evidence":{"items":{"type":"string"},"type":"array"},"fragmentation_note":{"description":"Present when the chosen layers fragment the substrate — a full-substrate retry may join the two.","type":"string"},"from":{"type":"object"},"note":{"type":"string"},"to":{"type":"object"}},"required":["from","to","evidence","components","note"],"type":["object","null"]},"query":{"properties":{"crossing":{"enum":["any","jurisdiction"],"type":"string"},"depth_parameter":{"description":"Constant. Hop count is a result the query returns; endpoints and filters are what it takes.","type":"string"},"evidence":{"items":{"enum":["minuted","authored","named_pattern"],"type":"string"},"type":"array"},"exclude_published":{"type":"boolean"},"from":{"properties":{"resolved_kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"}},"type":["object","null"]},"limit":{"type":"number"},"mode":{"description":"Set by arity — both endpoints, one, or neither. The scoring path is identical in all three.","enum":["pair","from","sweep"],"type":"string"},"normalized_as":{"description":"Present when `to` arrived without `from` and was read as `from`.","type":"string"},"resolution_note":{"description":"Present when a supplied slug also names a document of another type.","type":"string"},"to":{"properties":{"resolved_kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"}},"type":["object","null"]}},"required":["mode","evidence","crossing","exclude_published","limit","depth_parameter"],"type":"object"},"ranking":{"description":"The sort rule, verbatim, labelled a judgement call. Every integer behind it is in each row.","type":"string"},"selectivity":{"description":"How much of the population the filters kept — the tool grading its own discrimination.","properties":{"by_provenance":{"description":"Matched pairs by how the join is known. A zero on `record` says a filter has excluded the evidentiary layer — which `crossing: \"jurisdiction\"` does at two hops.","properties":{"curated":{"type":"number"},"mixed":{"type":"number"},"record":{"type":"number"}},"required":["record","mixed","curated"],"type":"object"},"declared_direct":{"description":"Matched pairs that sit at one hop and moved to declared_direct.","type":"number"},"distinct_routes":{"description":"Distinct chains of intermediaries among the matched pairs — findings behind pairs.","type":"number"},"filtered_out":{"description":"Pairs a filter rejected. matched + declared_direct + unreachable + filtered_out === of_possible.","type":"number"},"matched":{"description":"Pairs scored, filtered and ranked.","type":"number"},"of_possible":{"description":"The candidate pairs this call's arity put in scope — one in pair mode, 68 from a named entity, 2,346 across the corpus.","type":"number"},"reading":{"description":"Plain sentence naming the cause it can prove: an unreachable pair reads as unreachable, a filtered one names the filter that rejected it.","type":"string"},"returned":{"description":"Rows returned, after the roster collapse and the cut at `limit`.","type":"number"},"unreachable":{"description":"Pairs in separate components on the selected evidence layers. Attributing these to the filters would name the wrong cause.","type":"number"}},"required":["matched","of_possible","returned","declared_direct","unreachable","filtered_out","by_provenance","distinct_routes","reading"],"type":"object"},"substrate":{"description":"The graph the routes ran over, for the evidence layers this call selected.","properties":{"by_kind":{"properties":{"entity":{"type":"number"},"meeting":{"type":"number"},"pattern":{"type":"number"}},"type":"object"},"components":{"description":"Above 1, the chosen layers fragment the graph and a no_path is a property of that choice.","type":"number"},"entities_present":{"type":"string"},"excluded_layers":{"description":"The frontmatter arrays that serve as filters and citations here rather than as routes, each with the reason.","items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"}},"required":["name","reason"],"type":"object"},"type":"array"},"fragmentation_note":{"description":"Present when components > 1.","type":"string"},"layers":{"description":"Per-layer reference counts and node-size profiles, measured on the artifact.","type":"object"},"links":{"type":"number"},"nodes":{"type":"number"}},"required":["nodes","links","components","entities_present","layers","excluded_layers"],"type":"object"},"tie_note":{"description":"A sentence, present when the cut at `limit` lands inside a band of connections that tie on widest-node degree, hop count and path count — naming the band, its size, and that order within it falls back to slug.","type":["string","null"]}},"required":["query","substrate","selectivity","connections","ranking","calibration","coverage","limits"],"type":"object"}{"additionalProperties":false,"properties":{"q":{"description":"TheAnatural-languagename,query.aAnumberphrase,oranaentityquestion.name,Textormatching needs every word to appear in athematicrecord,conceptsoallextrawork.wordsAsymmetricnarrowquery-timeit;embeddingmeaninghandlesmatchingshorttoleratesqueriesanycleanly.wording. Maximum 500 characters.","type":"string"} ⟨4 unchanged words⟩
{"properties":{"count":{"type":"number"},"coverage":{"description":"What the corpus covers; present with note. Same object as the coverage resource.","type":"object"},"evidence":{"description":"strong: a top record contains the query terms or closely resembles it (cosine >= 0.5). weak: records only loosely resemble it. none: nothing returned.","enum":["strong","weak","none"],"type":"string"},"hits":{"items":{"properties":{"matched":{"description":"Which rankings found the record: its title holds every query term, its text does, and/or it is among the 50 nearest by meaning.","items":{"enum":["title","text","meaning"],"type":"string"},"type":"array"},"similarity":{"description":"True cosine between the query and the record embedding.","type":"number"},"slug":{"type" ⟨16 unchanged words⟩ ,"type","title","similarity","url","matched"],"type":"object"},"type":"array"},"note":{"description":"Present when scope is outside, evidence is weak, or nothing matched.","type":"string"},"query":{"type":"string"},"scope":{"description":"Whether the query names a covered place, a place outside coverage, or no place.","enum":["covered","outside","unknown"],"type":"string"},"weak_match":{"deprecated":true,"description":"Deprecated since 2.3.0; removed in 2.4.0. True when scope is outside or evidence is not strong. Read scope and evidence instead.","type":"boolean"}},"required":["query","hits","count","scope","evidence"],"type":"object"}
after
{"properties":{"calibration":{"description":"Measured background rates for the chosen evidence layers: what to read a row against.","properties":{"distance_histogram":{"type":"object"},"max_shortest_path_count":{"type":"number"},"note":{"type":"string"},"unique_shortest_path_by_distance":{"type":"object"}},"type":"object"},"connections":{"items":{"properties":{"crosses_jurisdiction":{"description":"Both footprints are on from.jurisdictions_minuted and to.jurisdictions_minuted.","type":"boolean"},"date_span":{"description":"Populated only when every hop on the representative route runs through a meeting record; otherwise carries a reason scoped to that route.","type":"object"},"evidence_used":{"description":"The union of layers across ALL shortest routes between these two: the honest scope for a row that reports how many of them there are. The representative route’s own layers are on its hops.","items":{"enum":["minuted","authored","named_pattern"],"type":"string"},"type":"array"},"from":{"description":"slug, kind, display_name, entity_class, canonical_role, url, jurisdictions_minuted[].","type":"object"},"hops":{"type":"number"},"interior_degrees":{"description":"Every interior node's degree on the representative route, in route order.","items":{"type":"number"},"type":"array"},"provenance":{"description":"Derived from evidence_used. \"record\" = every shortest route runs on transcribed meeting attendance; \"curated\" = the whole join is authored on a dossier or grouped into a pattern, which describe_entity and describe_pattern already return.","enum":["record","mixed","curated"],"type":"string"},"published_together_in":{"items":{"type":"string"},"type":"array"},"route_also_joins":{"description":"From and sweep modes: the other pairs this same chain of intermediaries joins. A node of degree 6 yields fifteen pairs, and they are one finding rather than fifteen rows.","properties":{"count":{"type":"number"},"pairs":{"items":{"properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"}},"required":["count","pairs"],"type":"object"},"routes":{"items":{"properties":{"hops":{"items":{"properties":{"basis":{"description":"A sentence naming what kind of knowing this hop is: a record, an authored claim, or a curated grouping.","type":"string"},"detail":{"type":"string"},"evidence":{"enum":["minuted","authored","named_pattern"],"type":"string"},"from":{"type":"string"},"jurisdiction":{"description":"Present on meeting hops: the room's own jurisdiction slug, so a caller sees where a crossing happens without the tool nominating a carrier.","type":"string"},"node_degree":{"type":"number"},"to":{"type":"string"},"url":{"type":"string"}},"required":["from","to","evidence","node_degree","url","detail","basis"],"type":"object"},"type":"array"}},"required":["hops"],"type":"object"},"type":"array"},"routes_shown":{"description":"Routes displayed: five in pair mode, one in from and sweep modes. Read against shortest_path_count.","type":"number"},"shortest_path_count":{"description":"Exact, independent of how many routes are shown.","type":"number"},"summary":{"type":"string"},"to":{"type":"object"},"undetermined":{"description":"Read across all shortest routes, matching evidence_used. A row that reports eight routes and qualifies one would under-report what it leaves open.","items":{"type":"string"},"type":"array"},"widest_node":{"description":"The WIDEST node the route passes through, named rather than scored. It is the primary ranking key, and exactly the narrowest such node any shortest route achieves. Computed by a dynamic program over the whole predecessor DAG, so it is exact however many routes are displayed. Null at one hop.","properties":{"degree":{"type":"number"},"degree_means":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"},"url":{"type":"string"}},"type":["object","null"]}},"required":["from","to","hops","shortest_path_count","routes_shown","interior_degrees","evidence_used","provenance","crosses_jurisdiction","summary","routes","undetermined"],"type":"object"},"type":"array"},"coverage":{"description":"What the corpus covers, plus what the graph covers: meetings linked to entities against meetings in corpus, jurisdictions linked against jurisdictions in corpus, and the per-jurisdiction breakdown.","type":"object"},"declared_direct":{"description":"From and sweep modes: one-hop authored pairs, unscored, as slug pairs; describe_entity already returns each one in its dossier context.","items":{"properties":{"authored_on":{"description":"The dossiers carrying the reference: one slug for a one-way claim, both for a reciprocal one.","items":{"type":"string"},"type":"array"},"crosses_jurisdiction":{"type":"boolean"},"from":{"description":"Entity slug.","type":"string"},"published_together_in":{"items":{"type":"string"},"type":"array"},"to":{"description":"Entity slug.","type":"string"}},"required":["from","to","authored_on","crosses_jurisdiction","published_together_in"],"type":"object"},"type":"array"},"declared_direct_note":{"description":"Present whenever declared_direct carries a row: the call that reads any of them in full.","type":"string"},"limits":{"description":"Assembled per call. The coverage line is always first: absence in this tool is absence of curation.","items":{"type":"string"},"type":"array"},"no_path":{"description":"Pair mode only, when the endpoints are unreachable on the chosen layers. Null everywhere else, including in pair mode when a route exists.","properties":{"components":{"type":"number"},"evidence":{"items":{"type":"string"},"type":"array"},"fragmentation_note":{"description":"Present when the chosen layers fragment the substrate; a full-substrate retry may join the two.","type":"string"},"from":{"type":"object"},"note":{"type":"string"},"to":{"type":"object"}},"required":["from","to","evidence","components","note"],"type":["object","null"]},"query":{"properties":{"crossing":{"enum":["any","jurisdiction"],"type":"string"},"depth_parameter":{"description":"Constant. Hop count is a result the query returns; endpoints and filters are what it takes.","type":"string"},"evidence":{"items":{"enum":["minuted","authored","named_pattern"],"type":"string"},"type":"array"},"exclude_published":{"type":"boolean"},"from":{"properties":{"resolved_kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"}},"type":["object","null"]},"limit":{"type":"number"},"mode":{"description":"Set by arity: both endpoints, one, or neither. The scoring path is identical in all three.","enum":["pair","from","sweep"],"type":"string"},"normalized_as":{"description":"Present when `to` arrived without `from` and was read as `from`.","type":"string"},"resolution_note":{"description":"Present when a supplied slug also names a document of another type.","type":"string"},"to":{"properties":{"resolved_kind":{"enum":["entity","meeting","pattern"],"type":"string"},"slug":{"type":"string"}},"type":["object","null"]}},"required":["mode","evidence","crossing","exclude_published","limit","depth_parameter"],"type":"object"},"ranking":{"description":"The sort rule, verbatim, labelled a judgement call. Every integer behind it is in each row.","type":"string"},"selectivity":{"description":"How much of the population the filters kept: the tool grading its own discrimination.","properties":{"by_provenance":{"description":"Matched pairs by how the join is known. A zero on `record` says a filter has excluded the evidentiary layer, which `crossing: \"jurisdiction\"` does at two hops.","properties":{"curated":{"type":"number"},"mixed":{"type":"number"},"record":{"type":"number"}},"required":["record","mixed","curated"],"type":"object"},"declared_direct":{"description":"Matched pairs that sit at one hop and moved to declared_direct.","type":"number"},"distinct_routes":{"description":"Distinct chains of intermediaries among the matched pairs: findings behind pairs.","type":"number"},"filtered_out":{"description":"Pairs a filter rejected. matched + declared_direct + unreachable + filtered_out === of_possible.","type":"number"},"matched":{"description":"Pairs scored, filtered and ranked.","type":"number"},"of_possible":{"description":"The candidate pairs this call's arity put in scope: one in pair mode, 68 from a named entity, 2,346 across the corpus.","type":"number"},"reading":{"description":"Plain sentence naming the cause it can prove: an unreachable pair reads as unreachable, a filtered one names the filter that rejected it.","type":"string"},"returned":{"description":"Rows returned, after the roster collapse and the cut at `limit`.","type":"number"},"unreachable":{"description":"Pairs in separate components on the selected evidence layers. Attributing these to the filters would name the wrong cause.","type":"number"}},"required":["matched","of_possible","returned","declared_direct","unreachable","filtered_out","by_provenance","distinct_routes","reading"],"type":"object"},"substrate":{"description":"The graph the routes ran over, for the evidence layers this call selected.","properties":{"by_kind":{"properties":{"entity":{"type":"number"},"meeting":{"type":"number"},"pattern":{"type":"number"}},"type":"object"},"components":{"description":"Above 1, the chosen layers fragment the graph and a no_path is a property of that choice.","type":"number"},"entities_present":{"type":"string"},"excluded_layers":{"description":"The frontmatter arrays that serve as filters and citations here rather than as routes, each with the reason.","items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"}},"required":["name","reason"],"type":"object"},"type":"array"},"fragmentation_note":{"description":"Present when components > 1.","type":"string"},"layers":{"description":"Per-layer reference counts and node-size profiles, measured on the artifact.","type":"object"},"links":{"type":"number"},"nodes":{"type":"number"}},"required":["nodes","links","components","entities_present","layers","excluded_layers"],"type":"object"},"tie_note":{"description":"A sentence, present when the cut at `limit` lands inside a band of connections that tie on widest-node degree, hop count and path count, naming the band, its size, and that order within it falls back to slug.","type":["string","null"]}},"required":["query","substrate","selectivity","connections","ranking","calibration","coverage","limits"],"type":"object"}