How about the following? It is a definition of something called a
sketch:
A sketch consists of:
- A set of types
- A set of formal function symbols with domain and codomain among the types
- A set of assertions that one string of formal functions symbols is equal to another
- A set of assertions that a formal function symbol is the identity
- A set of assertions that one type is the "product" of some others, and a particular set of formal functions is the list of projections
- A set of assertions that one type is the equalizer of a pair of formal functions, and a particular formal function is the inclusion
- A set of assertions that one type is the "disjoint union"of some others, and a particular set of formal functions is the list of injections
- A set of assertions that one type is the coequalizer of a pair of formal functions, and a particular formal function is the projection
(Plus the obvious axioms on how the domain and codomain of function symbols relate to everything)
A model of a sketch consists of:
- A set for each type
- A function for each formal function symbol, with the appropriate domain and codomain
- For each identity assertion, the corresponding function should be the identity.
- For each equation of strings of formal function symbols, the corresponding composites of functions should be equal
- For each product assertion, the type should be bijective to the Cartesian product of the others, and the formal functions should be projections
- blah
- blah
- blah
And a homomorphism of models consists of one function for each formal type, whose domain and codomain are the corresponding sets in the two models. These homomorphisms should commute with all formal functions; i.e.
\varphi_T \circ f_1 = f_2 \circ \varphi_S
where \varphi is the homomorphism, \varphi_S,\varphi_T are the components corresponding to the formal types S and T, f_1, f_2 are the functions corresponding to the formal function f : S \to T.
The assertions are powerful enough to specify that certain functions must be injective or surjective. Together with products, this let's you talk about relations -- e.g. a binary relation on S and T is just a subtype of SxT; that is, injective map R --> SxT. It's also enough to talk about the union and intersection of subtypes, so you get "and" and "or" as well.
Equational axioms ala universal algebra fit into this too. e.g. the identity axiom of groups ex=x is the same as saying that the composite
G \xrightarrow{(e, 1)} G \times G \xrightarrow{\mu}
is equal to the identity, where e is the nullary function that picks out the identity element of G, 1 is the identity function on G, and \mu is multiplication. The assertion implies the function
x \mapsto \mu(e,1)x = \mu(e, x) = ex
is the identity function; so x = ex.
I suppose you wouldn't be surprised to hear this is category theory.

A sketch is:
- A small category
- A set of assertions that a particular cone must be a limit in any model
- A set of assertions that a particular cocone must be colimit in any model
Talks of cones and limits is a compact way to describe what I was saying about products and equalizers. #1 could be weakened to a presentation of a category via a graph of generators and relations, much like I did in the above.
Models of a sketch are functors satisfying the assertions, and homomorphisms of models are natural transformations of functors.