Don't enforce completeness at the sp constructors. Enforce at database create! time
(Outstanding bug: we can break required? ness via updates)
Helper functions to normalize sp things to allow for easier testing.
(These probably should live somewhere else.)
forgot we may want lazy lists as collections in sps when doing our various mask calculations. This check is more forgiving.