def process(proc_data):
    """
    Final processing to conform to the schema.

    Parameters:

        proc_data:   (List of Dictionaries) raw structured data to process

    Returns:

        List of Dictionaries. Structured data with the following schema:

        [
          {
            "name":         string,
            "maj_min":      string,
            "rm":           boolean,
            "size":         string,
            "ro":           boolean,
            "type":         string,
            "mountpoint":   string,
            "kname":        string,
            "fstype":       string,
            "label":        string,
            "uuid":         string,
            "partlabel":    string,
            "partuuid":     string,
            "ra":           integer,
            "model":        string,
            "serial":       string,
            "state":        string,
            "owner":        string,
            "group":        string,
            "mode":         string,
            "alignment":    integer,
            "min_io":       integer,
            "opt_io":       integer,
            "phy_sec":      integer,
            "log_sec":      integer,
            "rota":         boolean,
            "sched":        string,
            "rq_size":      integer,
            "disc_aln":     integer,
            "disc_gran":    string,
            "disc_max":     string,
            "disc_zero":    boolean,
            "wsame":        string,
            "wwn":          string,
            "rand":         boolean,
            "pkname":       string,
            "hctl":         string,
            "tran":         string,
            "rev":          string,
            "vendor":       string
          }
        ]
    """
    for entry in proc_data:
        # boolean changes
        bool_list = ['rm', 'ro', 'rota', 'disc_zero', 'rand']
        for key in bool_list:
            if key in entry:
                try:
                    key_bool = bool(int(entry[key]))
                    entry[key] = key_bool
                except (ValueError):
                    entry[key] = None

        # integer changes
        int_list = ['ra', 'alignment', 'min_io', 'opt_io', 'phy_sec', 'log_sec', 'rq_size', 'disc_aln']
        for key in int_list:
            if key in entry:
                try:
                    key_int = int(entry[key])
                    entry[key] = key_int
                except (ValueError):
                    entry[key] = None

    return proc_data