Use List.find for primitive<->thrift mapping
Make struct isOptional a union for forwards compatibility
Add comment about sub-optimal struct thrift format