def METHOD_NAME(cls: Type, values: dict) -> dict:
    values.setdefault("urns", [])
    for old_field, mapped_type in mapping.items():
        if old_field not in values:
            continue
        value = values.pop(old_field)
        if mapped_type == "dataset":
            values["urns"] += [
                CheckpointStateUtil.get_urn_from_encoded_dataset(encoded_urn)
                for encoded_urn in value
            ]
        elif mapped_type == "topic":
            values["urns"] += [
                CheckpointStateUtil.get_urn_from_encoded_topic(encoded_urn)
                for encoded_urn in value
            ]
        elif mapped_type == "container":
            values["urns"] += [make_container_urn(guid) for guid in value]
        elif mapped_type == "assertion":
            values["urns"] += [make_assertion_urn(encoded) for encoded in value]
        else:
            raise ValueError(f"Unsupported type {mapped_type}")
    return values