An object kind names a family of objects. The set of kinds is open: the
kernel ships the grammar, not the nouns, and each kind is contributed by
the biome whose behaviour it describes. A kind is a lower-case kebab-case
word list of at most 64 characters (work-item, mount-source), which
slots directly into XemaObjectRef paths. The kernel
validates the shape of every kind with XemaObjectKindNameSchema; it does
not keep a list of allowed kinds.
XemaObjectKind is the kernel's constant for the kinds that the kernel
and the system biomes own (XemaObjectKind.Biome, XemaObjectKind.Skill,
and so on). Use it to name one of those kinds in code. Never treat it as
the complete set: a consumer that lists, filters or switches over kinds
takes them from the objects it reads, not from that constant.
To introduce a kind, the owning biome defines the producer service that owns the projection and the kind's payload schema, and ships a contribution entry. No kernel change is needed.