# Miqayel Publisher Network 0.2 This project protocol covers explicit participating websites. It is not a registered standard or a general crawler. This release implements static feeds and optional publisher-side search endpoints. No external search engine is used by this workflow. ## Opt in Publish `/miqayel/manifest.json` over HTTPS on the content's origin, advertise it with ``, and give its URL to the network operator. Adding a script alone cannot make an unknown domain discoverable. The operator reviews the submission and adds it to `registry.json`; arbitrary visitors cannot alter the server registry. Browser visitors may test an HTTPS manifest for their current page session when its CORS policy permits reading it. The manifest declares `version: "miqayel-publisher/0.2"`, `origin`, `name`, `allowSearch: true`, a `license`, and a `rights` statement. Serving it on the origin demonstrates technical control of that resource, not a guarantee of ownership or every content right. No remote JavaScript is imported or evaluated. ## Static data The manifest has `feed`, `sha256` (64 hex characters), `bytes`, and `documents`. The feed is same-origin JSON with `version`, `origin`, `encoding: "prefix-path-v1"`, and `rows`. Each sorted row is `[sharedPrefixLength, remainingPath, title, text]`. The first prefix is zero. Reconstruct the path from the previous path; resolve it only on the manifest origin. Data is bounded to 2,000,000 bytes, 5,000 documents, 240 title characters, and 12,000 excerpt characters per document. Digests bind the feed bytes to the manifest; they do not establish truth or protect against a malicious publisher serving both. Short references contain `{origin, revision: fullSHA256, id: rowIndexInBase36}`. The revision makes row IDs unambiguous within a particular feed. Retaining only `id` loses the source and mapping. The complete mapping lives in the publisher feed. There is no global hash-to-URL reverse lookup. ## Optional search endpoint A manifest may advertise a same-origin `endpoint`. Fusion POSTs JSON `{version, q, limit, retentionRequested:"none"}`. Return `{version, results:[{url,title,snippet}]}`. The endpoint response is capped at 131,072 bytes and 100 results. The Node starter adapter is limited to 60 searches/minute per process, with HTTP 429 and Retry-After. Endpoint results are reranked by the coordinator, so publisher scores cannot control global ranking. The adapter is a starter service, not a distributed quota or capacity guarantee. ## Client behavior Configured manifests: 1–64. Concurrency: 4 by default, configurable to 8. Deadline: 5 seconds per publisher by default, at most 15 seconds. One to eight topics use commas, semicolons, or `(Miqayel)` separators. The caller chooses 1–100 returned results. Token-based BM25-style ranking uses term rarity, title weighting, and 50% content-word coverage. Topic lists are interleaved before URL deduplication. This is deterministic retrieval, not an AI model or factual verification. A publisher error is reported; healthy participants still contribute. No automatic retries or challenge bypasses occur. Server transport validates public DNS answers during connection lookup, rejects redirects and private addresses, bounds response bytes, and cancels deadlines. Browser transport uses standard Fetch with no cookies, no referrer, redirect refusal, and no cache. Direct cross-origin browser use requires CORS. Loopback development is an explicit caller configuration unavailable to public API inputs. ## Retention and scale The coordinator does not persist queries or results. Documents/configuration are stored at publishers, and a registry exists at the coordinator. The adapter can retain public feed data in process memory. JavaScript memory release is not secure erasure. Infrastructure and publishers may maintain logs; `retentionRequested` does not enforce remote deletion. Every response states `coverage.entireWeb: false` and distinguishes collections, distinct responding origins, and documents received. The first hosted collection is original Fusion documentation, not an independent worldwide index. No unlimited service, complete web coverage, billion-query capacity, or universal legal clearance is claimed. Related standards: [HTTP and CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS), [Base encodings, RFC 4648](https://www.rfc-editor.org/rfc/rfc4648.html), [W3C federated query](https://www.w3.org/TR/sparql11-federated-query/). This protocol is a project design that builds on established ideas.