Model Citizen is an annotation based model factory for Java. A Model is mapped by a Blueprint using annotated fields. Blueprints contain default values and references to other blueprinted models. The ModelFactory can create Models based on registered Blueprints. A Model already created can be passed into the ModelFactory as a Reference Model, which will be used as the basis for the new Model.