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/test/test_process_event.py
distinct_id = "777"
            person_before_event = Person.objects.create(team=self.team, distinct_ids=[distinct_id])
            self.assertFalse(person_before_event.is_identified)
            process_event(
                distinct_id,
                "",
                "",
                {"event": "$identify", "properties": {},},
                self.team.pk,
                now().isoformat(),
                now().isoformat(),
            )
            person_after_event = Person.objects.get(team=self.team, persondistinctid__distinct_id=distinct_id)
            self.assertTrue(person_after_event.is_identified)
        def test_team_event_properties(self) -> None:
            self.assertListEqual(self.team.event_properties_numerical, [])
            process_event(
                "xxx",
                "",
                "",
                {"event": "purchase", "properties": {"price": 299.99, "name": "AirPods Pro"},},
                self.team.pk,
                now().isoformat(),
                now().isoformat(),
            )
            self.team.refresh_from_db()
            self.assertListEqual(self.team.event_properties, ["price", "name", "$ip"])
            self.assertListEqual(self.team.event_properties_numerical, ["price"])
        def test_add_feature_flags_if_missing(self) -> None: