So it basically tells what’s the issue: LastClosed/LastOpened is a ZonedDateTime, which is no primitive type (such as a boolean, number, String) but an object.
Metadata has never been intended to store objects, and storing objects there can have harmful side-effects, see Main UI JavaScript rule reload causing /rest/items failure - #10 by florian-h05.
Hence, it was decided to disallow storing objects in metadata.
I wonder how at all a ZonedDateTime is usable by consumers of the uiSemantics metadata …
If you need to store a timestamp, rather store it as string or epoch millis.