Within the domain of interactive system development and design, particularly for safety-critical systems, there is an inherent tension between formalisms used for software engineering methodologies and the creative aspects of design. In this paper we consider how we might better unify these by way of a framework for design spaces and design artefacts. We present formal definitions for simple and complex design spaces and then describe how they are incorporated into traces. We then discuss how these can be used to reason about considerations such as preservation of requirements and iterative changes throughout the design process and provide some small examples of this.