Took a little play with this, and there's some stuff you might want to try.
Let's think about the type of data in the game.
You already know types like int, string, etc (more on types in https://nikclayton.writeas.com/on-values-types-variables-functions-and-function-hoisting).
We can also create our own types, and decide what are legal values for those types to have. This is especially useful when we're trying to model something like a game, where there's generally a restricted set of values that are valid at any given time.
You already know that it's possible for types to have a limited number of possible values. Whether it's an integer type that can't be used for floating point values, or a boolean type that can only be used for the values true and false.