posthog-js supports person.set_once but our backend doesn't. Make sure we can pass through `$set_once` on an `$identify` call, and only set the properties within if the properties aren't already set on the user.
posthog/tasks/process_event.py
distinct_id: str, ip: str, site_url: str, data: dict, team_id: int, now: str, sent_at: Optional[str],
) -> None:
    properties = data.get("properties", {})
    if data.get("$set"):
        properties["$set"] = data["$set"]
    handle_identify_or_alias(data["event"], properties, distinct_id, team_id)
    if data["event"] == "$snapshot":
        _store_session_recording_event(
            team_id=team_id,
            distinct_id=distinct_id,
            session_id=data["properties"]["$session_id"],
            timestamp=handle_timestamp(data, now, sent_at),
            snapshot_data=data["properties"]["$snapshot_data"],
        )
        return
    _capture(
        ip=ip,
        site_url=site_url,
        team_id=team_id,
        event=data["event"],
        distinct_id=distinct_id,
        properties=properties,
        timestamp=handle_timestamp(data, now, sent_at),
    )