def extractFields(self, metric):
        m = {}
        if 'name' in metric:
            m['name'] = metric['name']
        if 'description' in metric:
            m['description'] = metric['description']
        if 'displayName' in metric:
            m['displayName'] = metric['displayName']
        if 'displayNameShort' in metric:
            m['displayNameShort'] = metric['displayNameShort']
        if 'unit' in metric:
            m['unit'] = metric['unit']
        if 'defaultAggregate' in metric:
            m['defaultAggregate'] = metric['defaultAggregate']
        if 'defaultResolutionMS' in metric:
            m['defaultResolutionMS'] = metric['defaultResolutionMS']
        if 'isDisabled' in metric:
            m['isDisabled'] = metric['isDisabled']
        return m
Constructs a field. Returns one if it exists, else creates one
dataset/ETHPy150Open boundary/pulse-api-cli/boundary/metric_common.py/MetricCommon.extractFields--crossover with--dataset/ETHPy150Open Widdershin/butterdb/butterdb/butterdb.py/Model._field