Report spec

@jackparmer creating a PR to make adding commentary a bit easier!
I think we don't need a `print` method. Maybe just override the `__str__` / `__repr_`_ methods?