{"serviceContract":{"role":"Shared lexical service for Vanagon and Gerry. Preserved Vanagon.com bus terminology and mailing-list slang, separately sourced contemporary parts references, and clearly labeled machine-assisted translations.","repository":"https://github.com/mbarbine/vanagon-dictionary","origin":"https://dictionary.vanagon.com","consumers":{"vanagon":"https://vanagon.com","gerry":"https://gerry.vanagon.com"},"productionOrigins":{"dictionary":"https://dictionary.vanagon.com","vanagon":"https://vanagon.com","gerry":"https://gerry.vanagon.com"},"productionActivation":"Configured for dictionary.vanagon.com with the retained dictionary.ja1.io alias. Consult deployment acceptance evidence for current DNS/TLS status.","ownership":{"dictionary":"Canonical terms, definitions, translations, provenance, editorial revisions, lexical APIs and exports.","vanagon":"Historical page/capture presentation, editorial pages, navigation, and its own feeds and protocols.","gerry":"Messages, discussions, archives, community accounts, and its own feeds and protocols."},"independentServices":"Shared community footer and lexical service; each site retains its own feeds, API/MCP registry, credentials, and deployment. Dictionary RSS/Atom publishes dictionary events only; it does not mirror Vanagon or Gerry activity.","backendStatus":"Cloudflare Workers and D1 are the only configured persistence and operational backend. The API Worker also configures Queues, R2, Workflows, and Workers AI. The Neon client, legacy docs publisher, and optional Trace/Graph/event-sink destinations were removed. Frontend data routes delegate to the canonical Cloudflare Dictionary API Worker; the legacy SQL compatibility shim fails closed. Gerry’s bounded public archive-search API remains a first-party read integration and does not store Dictionary data.","gerryContext":"The Dictionary queries Gerry’s bounded public community-search API for up to three contextual matches and links to Gerry’s full archive search. Gerry remains the sole owner of those messages; matches are not imported definitions or reviewed lexical relationships.","serviceReads":"Dictionary service reads and ordinary proxies bound the wait for headers and response bytes to 10 seconds; Gerry context reads use 6 seconds. Federated search preserves available source results and labels unavailable sources. Requests are not retried automatically. Proxy request bodies have a separate 10-second deadline (408 REQUEST_TIMEOUT before dispatch); protected snapshot dispatch retains its 60-second deadline. A timeout after dispatch does not prove a mutation was rolled back; inspect its receipt before retrying.","mcpCompatibility":"The Dictionary, Gerry, and Vanagon MCP registries are independent. Dictionary exposes stateless Streamable HTTP at /api/mcp/streamable for MCP 2026-07-28 modern clients and preserves 2025-03-26 legacy Streamable HTTP behavior on the same endpoint; both paths use the same read-only registry. Both eras passed official SDK acceptance on dictionary.ja1.io after deployment. The legacy JSON-RPC endpoints /api/mcp and /api/v1/mcp remain available (2024-11-05). Gerry and Vanagon expose their independent Streamable HTTP registries at /api/mcp. Cross-service MCP tool invocation is not configured; lexical integrations use the public Dictionary REST API and Gerry community-search API.","contributions":"Dictionary browser drafts remain local. Authenticated Gerry members can submit genuine editorial proposals through the restricted service binding. Proposals remain pending until separately reviewed and applied; receipt acceptance is not publication. Operator writes require the server-configured key.","shortDefinitions":"Canonical lexical reads include nullable short_definition from the selected definition locale. Only separately recorded, bounded text is returned; absent summaries are not generated. Protected publication, import and edits support this field. Explicit null clears it. Legacy submission notes remain private; only their recorded short text is projected. Historical originals remain immutable.","definitionHistory":"GET /api/v1/definitions/{id}/history is an operator-only, no-store read of retained definition snapshots. Older unrecorded changes are not reconstructed. Snapshots can include removed or private content and never enter public search, feeds or MCP. Optional expectedRevision on protected edits rejects stale writes without mutation. See OpenAPI for limits and coverage.","translationPolicy":"Machine-assisted drafts are not human-reviewed. Missing translations return explicitly labeled source English.","termLabels":"Canonical term detail, search, browse, category/tag and author reads include term_label: a recorded requested-locale name with an eligible definition, or explicit canonical_fallback in the origin locale. Canonical IDs, URLs and alphabetical order remain unchanged. Repeated canonical labels do not establish translation coverage; label review state is unrecorded. Differing recorded names appear alongside canonical headings. This read contract does not add editorial label writes or invent translations.","sourceReferences":"GET /api/v1/terms/{slug}/sources and MCP get_term_sources enumerate recorded public definition citations and applied source annotations. Omit locale for all definition languages; explicit locale does not substitute English. References preserve record identity and source/capture provenance, are not fetched, and do not certify technical correctness. Follow nextOffset and omitted_invalid_references; unavailable storage never substitutes seed citations."},"service":"Vanagon Dictionary","canonicalBaseUrl":"https://dictionary.vanagon.com","publicContentAccessPolicy":"Approved public dictionary pages, definitions, docs, feeds, discovery files, OpenAPI, and read-only introspection may be fetched publicly.","trainingPreference":"Public reading and citation do not establish a blanket training license. Respect each source's rights, attribution, and restrictions. Private and protected content is excluded.","searchIndexingPreference":"Search indexing and answer-engine use are allowed for public-safe pages and discovery files with canonical URL attribution.","answerEnginePreference":"Answer engines may cite and summarize approved public definitions. They must not represent pending, rejected, private, or generated suggestions as approved content.","citationAttributionRequirement":"Quote, summarize, or reuse archived definitions with attribution to Vanagon.com, the preserved source URL, and the canonical dictionary term URL where practical.","cachingGuidance":"Cache public-safe discovery and approved definition content according to HTTP cache headers; refresh frequently for term pages, RSS/feed, sitemap, and policy files.","freshnessGuidance":"Prefer sitemap, RSS/feed, llms-index.json, and API timestamps for freshness. Do not infer approval status from cached pending content.","robotsTxtAlignment":"https://dictionary.vanagon.com/robots.txt","llmsTxtAlignment":"https://dictionary.vanagon.com/llms.txt","apiMcpDiscoveryGuidance":"Use /api/docs, /openapi.yaml, /.well-known/mcp.json, and GET /api/mcp for machine-readable API and MCP discovery.","protectedActionPolicy":"Submissions, votes, removal requests, definition edits, retained definition history, moderation, import, admin, audit logs, reports, registry mutation, and destructive actions require PLATPHORM_API_KEY.","prohibitedUses":["access or expose private moderation data","publish raw Cloudflare or JA4 fingerprint-adjacent metadata","submit spam or automated abusive content","claim generated suggestions are approved definitions","bypass PLATPHORM_API_KEY for protected actions"],"contactUrl":"https://dictionary.vanagon.com/faq","updatedAt":"2026-10-26T00:00:00.000Z","version":"2026-10-26.vanagon.shared-service"}