If you look at other large scale efforts that are intended to be used in a variety of situations you will find a common 'template' already -- XML. SQL Report Definition Language = XML Microsoft XPS = XML SOAP = XML ADO.NET DataSets and DataTables both can serialize as XML and XML Schema. XML is the world's best glue because it is self-describing and completely system, network and transport agnostic. It can carry any type, the objects created from it are automatically native and correct and its support is widespread -- XSLT can output just about any object you care to -- HTML, XML, JSON, etc. If you begin with XML -- you can always replace it easily with something more specific -- but if you start with something specific and your design is not frozen -- you will struggle to complete it at all, much less on time.