Represents a single Die, with a certain number of sides, weights, and current result.
@type t() :: %WeightedRandom.Die{ preprocessed: struct(), result: any(), sides: integer(), weights: list() }