One map rather than two functions because the two directions have to agree:
a keyOf writing a key its get cannot resolve produces a document that
saves cleanly and refuses to load, which is the failure this whole seam
exists to make impossible.
A resource published under two keys keeps the first, in iteration order,
so the document a scene writes does not depend on which alias the caller
happened to look up — both keys still resolve, so nothing is lost.
FourError INVALID_APPLICATION_STATE if one key names two resources
— the read side could only pick arbitrarily, and §79 keys resolve to exactly
one thing
Builds both halves of a SceneResourceCatalog from one map of logical key → resource (§79, 2026-08-07).
One map rather than two functions because the two directions have to agree: a
keyOfwriting a key itsgetcannot resolve produces a document that saves cleanly and refuses to load, which is the failure this whole seam exists to make impossible.A resource published under two keys keeps the first, in iteration order, so the document a scene writes does not depend on which alias the caller happened to look up — both keys still resolve, so nothing is lost.