.. used to create a 'specification' against which we match
a rideitem when plotting etc.
.. so rather than passing an array/vector/list of data when
calling a plot, we pass the 'specification' to use instead.
.. the plots themselves should now iterate across the shared
ride cache only plotting the items that pass the specification.
.. this should reduce memory usage and increase performance.