use Rivet objects?

Investigate the use of Rivet objects to replace custom objects.

These types will need extensions:

  • rec level variables
  • variations

Specialisations too specific to CMS (random example) should however be left for a CMS implementation (e.g. DAS).