SyncVar with custom structs bug?

I have a custom struct with 2 private ints, i set the values in the constructor and get the value with public properties, my syncVar struct has a hook method and when i update the struct variable the server/host has the right struct, but the client gets a “zero struct” my private ints are 0, I added a public variable to the struct and it looks like only public variables are updated.
What’s the point of SyncVar on structs if private variables are ignored, it should be easy to serialize a struct with private fields, so is this a bug or is there any reason why it doesn’t work with private fields?

Far as I know it’s made like that, private variables are not serialized.
But giving it a fast shot, does it fix the problem to mark the field as [Serialized] ??

Hello again, the struct is marked as [System.Serializable] and the fields as [UnityEngine.SerializeField], but it didn’t change anything, the values are still 0 on the client.
But I can see the struct including private fields in the editor menu, so they “should” be serialized or are they using a other serialize method for syncvars?
Still not sure if this is a bug or if they have any good reason why it doesn’t work, i have to change all my properties to public variables to use the struct with syncvar, this takes time and it’s not really good, because i don’t want to be able to change the “private” values of the struct after it is created, i guess it’s okay since the struct is only a private variable of my class but it’s still not a nice solution, i would like to hear if anyone has a fix or if unity could answer if this is a bug or not.