
# Design discussion

- 1-to-1 relation between fact classes and .pm files?  If so, we need to fix
  our test facts elsewhere (C::M::Fact at least)

- Where should fact classes be loaded?  Anywhere that facts are deserialized,
  we need the class for the type to be loaded. Who deserializes? gateway does
  it, archives do it, even report does it for facts it contains

- We validate submissions at the gateway, but we don't validate things coming
  out directly from the librarian.  Should we?  Per last point, someone using
  librarian or archive might need them to load classes for facts.  Should they
  be restricted to a defined list?

