///|
/// Configures an inclusive, bounded Roman numeral sequence.
pub(all) struct RomanRangeConfig {
  start : Int
  end : Int
  step : Int
  format_config : FormatConfig
  max_items : Int
} derive(Eq, Debug)

///|
/// Associates one generated numeral with its integer value.
pub(all) struct RomanRangeEntry {
  value : Int
  text : String
} derive(Eq, Debug)

///|
/// Reports invalid sequence controls or an exact formatting failure.
pub(all) enum RomanRangeError {
  ZeroRangeStep
  RangeDirectionMismatch(Int, Int, Int)
  InvalidRangeItemLimit(Int)
  RangeItemLimitExceeded(Int, Int)
  RangeValueFormatFailed(Int, FormatError)
} derive(Eq, Debug)