Bounded atom vocabulary preparation for SafeRPC clients.
SafeRPC decodes protocol frames with :safe, so replies can only contain atoms
that already exist in the client VM. A service may expose a bounded vocabulary
as strings; clients validate that vocabulary and intentionally intern accepted
atoms before making calls that may return them.
Summary
Functions
Normalizes atoms and module names to unique strings.
Validates and interns an atom vocabulary.
Types
@type policy() :: [ max_atoms: pos_integer(), max_atom_length: pos_integer(), allow: [Regex.t() | (String.t() -> as_boolean(term()))] ]