but why does it need to return the ExperimentConfiguration object, rather than having the method either a) convert it to a map instead (`func GetMetadata() map[string]string`)  or b) even better, having a `Describe(..)` method that can tell a Metadata interface about the fields it wants to store.. the method that implements that will be in laboratory.go, and will have access to the ExperimentConfiguration, but we won't be exposing the ExperimentConfiguration out everywhere