Canonical facet structs shared by the Orkestra.ES subsystem.
Facets model a library-defined, fixed structure — an attribute
(code/name) that owns an ordered list of values (code/name/count).
The content is dynamic (it arrives with the documents), but the shape is
always the same, which lets the schema declare a single facets slot instead
of one mapping per attribute.
This module is pure: it has no dependency on Snap and performs no I/O.
See Orkestra.ES.Facet.Attribute and Orkestra.ES.Facet.Value.