///|
/// Rebuild a Spec from a parsed document so callers can edit fields and encode again.
pub fn Document::to_spec(self : Document) -> Spec {
  {
    layout: self.layout,
    document_code: self.document_code,
    issuer: self.issuer,
    primary_name: self.names.primary,
    secondary_name: self.names.secondary,
    document_number: self.document_number,
    nationality: self.nationality,
    birth: self.birth,
    sex: self.sex,
    expiry: self.expiry,
    optional: self.optional,
    optional_secondary: self.optional_secondary,
  }
}