Structs

Model wraps model_type and provides common ID functionality (a struct field and associated accessor method). The simulator requires all models to have an ID.