def buildType(valtype, extra=[], display=False, control=False, valueAlarm=False):
        """Build a Type

        :param str valtype: A type code to be used with the 'value' field.  See :ref:`valuecodes`
        :param list extra: A list of tuples describing additional non-standard fields
        :param bool display: Include optional fields for display meta-data
        :param bool control: Include optional fields for control meta-data
        :param bool valueAlarm: Include optional fields for alarm level meta-data
        :returns: A :py:class:`Type`
        """
        isarray = valtype[:1] == 'a'
        F = [
            ('value', valtype),
            ('alarm', alarm),
            ('timeStamp', timeStamp),
        ]
        _metaHelper(F, valtype, display=display, control=control, valueAlarm=valueAlarm)
        F.extend(extra)
        return Type(id="epics:nt/NTScalarArray:1.0" if isarray else "epics:nt/NTScalar:1.0",
                    spec=F)