Routes are the unit
Why a package captures routes, not feeds or pages, and what collection and item mean.
Earlier manifests had a "feed" that did two jobs: what people follow, and what the package captures. Those are different things. A person follows a newsletter; the package captures an archive page and, for each entry, an article page. Schema 3 makes the route the unit and derives everything else.
A route answers three questions
What it yields. kind: collection is the master: a page that lists many entries, each of which gets a stable id, becomes Activity when new, and is re-observed on a schedule. kind: item is the detail: one thing that stands alone, an article, a post, a video, and enriches an entry.
How it is reached.
feed: people follow a collection or save an item. Only routes with a feed appear in Explore and Activity.detailOf: the master this item is the detail of. Each entry of the named record type has a URL at the given pointer, and that URL is captured through this route, one hop, bounded by the platform.- Neither: the route only handles a pasted URL.
How the page becomes a record. binding names a pinned binding, and the binding names an engine. The engine decides what the page turns into, and what the route may declare.
Follow and save are derived
There is no feed.kind. A collection with a feed is followed on its schedule; an item with a feed is saved once. The product infers the verb from the route's kind, so a package cannot describe a page as one thing and capture it as another.
Why detailOf replaces "linked captures"
A list page that links to articles used to be a second, separately configured capture. detailOf names the relationship instead: the record type whose entries carry the URL, and the pointer to that URL. The frontier is read off Activity items after the transform runs, which is why detailOf.record must be the render root, and why it must be pinned in transform.records.
Route ids are forever
A route with a feed is pinned into installs and provenance under its id. Renaming it orphans every follower. Choose kebab-case ids that describe the page, not its current markup: submissions, article, company-posts.
Reference: route, feed, recordSource.