It's more flexible than schema's constructor. Primarily meant to be used from tests, but not necessarily only there.