Before software can be developed its requirements must be stated. Before requirements can be expressed the application domain must be described. In this report we outline some of the basic facets of domain engineering. Domains seem, it is our experience, far more stable than computing requirements, and these again seem more stable then software designs. Perhaps a way in which to more rapidly develop trustworthy software from believable requirements is to secure comprehensive domain theories. An brief example will be given on the basis of which we briefly discuss, in this report, the notions of: domain intrinsics, domain support technologies, domain management & organisation, domain rules & regulations, domain human behaviour, etc. We show elsewhere how to "derive" requirements from domain descriptions: domain requirements: by domain projection, instantiation, extension and initialisation; interface requirements: multi-media, dialogue, etc.; and machine requirements: performance, dependability (reliability, availability, accessability, safety, etc.).