This is the configuration for the N Digit Number Game:
the number (N) of places in a target or guess,
and the number of digits that are used (e.g., 10, ('0'-'9')).
Each element of the 'face' array is an array of indices
into the 'vertex' array for the (co-planar) points of a
face of the polyhedron, ordered such that an adjacent pair
(and the first and last) are (the indices of) the end-points
of an edge, and the direction of a cycle produces by the
right-hand rule an outward pointing normal to the face.
A Monitor has a list of Requirements, one for each guess,
and checks that a digit conforms to those Requirements,
simply aggregating the effect of the individual Requirements.
This is a scrambler of N Digit Numbers,
which pseudorandomly remaps the places and digits of a number to disguise
the underlying sequence of some generator.
A Requirement, as part of the Monitors algorithm for generating
guesses in the N digit number game, keeps track of a set of available digits
and the number of digits that must be picked from that set, and provides
a check that those constraints are satisfied.