construct with 'name' and 'format', a pointer to a static method
with 'param_callback' signature, and up to 4 offsets relative to a
base pointer that will be used in constructing the contents of another
object during a de-serialization process (an istream constructor).
Also possible to specify an 'indirection' amount used when adding
offsets to the base.
fourth offset from base. If this is not enough either an array can
can be passed by using the first two, or these can be ignored
all together and you can use fixed locations within the object being
deserialized.