spec metamodel