  Unlike classical modular forms, there is currently no general way to
implement the computation of Siegel modular forms of arbitrary weight, level
and character, even in degree two. There is however, a way to do it in a
unified way. After providing a survey of known computations we describe the
implementation of a class modeling Siegel modular forms of degree two in Sage.
In particular, we describe algorithms to compute a variety of rings of Siegel
modular forms, many of which are implemented in our class. A wide variety of
Siegel modular forms (e.g., both vector- and scalar-valued) can be modeled via
this class and we unify these via a construct we call a formal Siegel modular
form. We define this notion and discuss it in detail.
