since order is important, the underlying storage is probably an array of K/V pairs. Object.entries on a dynamically generated object does not guarantee a particular order
The interface that would be most flexible would probably be a list of alternating key values, e.g. ['fieldname', datastruct(), 'fieldname'] since then you could do all the list things to it.
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
In practice the order will be maintained in the major engines, but that's still not a good reason to do rely on it.
I might consider a static `Struct.fromMap(name, mapObject)`, but as a complimentary API.