Function
The content key, exactly as it appears in the manifest
The parsed location manifest
Store that answers for a key matching no override and no route.
Exact key → store name, for single assets that escape their prefix.
Exact key → declared placement. Outranks every other layer.
The name of the store that owns this key
Resolution order is a declared assets entry, then an exact override, then
the LONGEST matching route prefix, then the default. Three layers because
placement comes in three shapes: a module migrates as a prefix, a stray file
moves as one key, and an asset whose real path does not follow its key needs
that path declared. Expressing any one through another is impractical.
A prefix matches on path boundaries, not as a substring, so course/ never
captures coursework/.
The store that answers for a content key.