The required functions are outlined in 9.1, so here, we only enumerate suggested interfaces.
add_possible (scalar values)
values should be a reference to a hash like in set_possible, but this function should be provided for convenience to expand possible values.
int data_count ()
Will return the number of discrete data items encapsulated.
set_attribute (scalar attributes)
Takes a reference to a hash which will be used to define how the data should be displayed to end users.
set_parameters (scalar parameters)
Takes a reference to a hash defining constraints on data beyond the requirement that it be canonicalizeable.
set_format (scalar format)
Takes a reference to a hash defining how to format the canonical value when the format() function is called.