Named here for the same reason Tier is: a tier reports one, the
runtime carries it, and a ledger entry records it, so the vocabulary
belongs to the crate none of the three can avoid depending on.
Enforcement::Kernel and Enforcement::None are the easy cases. The
interesting one is Enforcement::Interposed: the host stands between the
tool and the resource, which is real enforcement for everything that goes
through the handle it was given, and no enforcement at all against a tool
that makes its own syscall. An in-process tool is in exactly that position.
Collapsing that into “enforced” would be a lie and collapsing it into “not
enforced” would make the in-process tier unusable, so it is its own value
and the caller decides what it is worth. Profile C decides it is worth
nothing.
Real for everything reached through the handle the tool was given, and
worth nothing against a tool that makes its own syscall. See the type
documentation on why this is its own value rather than rounded to one of
the other two.