{"id":"email-address-list-format","version":"1.0.0","description":"Format mailboxes and groups as one deterministic RFC 5322 address-list.","supported_operations":["format an rfc 5322 address list","render structured mailboxes as a recipient list","write a canonical to header from mailboxes and groups","quote a display name for an address list","serialize groups and addr-specs","build an address list from mailbox parts"],"unsupported_operations":["parse free-form header text","remove duplicate recipients","send the formatted header"],"semantics":["Dot-atom-text is 1*atext *(\".\" 1*atext) per RFC 5322 section 3.2.3, used by section 3.4.1. U+002E is not atext. A leading dot, a trailing dot, or two dots in a row is rejected in a local-part and in a domain, in both ascii and utf-8 modes. Inside a domain-literal or a quoted-string, a dot is ordinary text.","mode ascii accepts only Unicode scalar values U+0000 through U+007F. mode utf-8 also treats U+0080 through U+10FFFF as atext, qtext, ctext, dtext and VCHAR, which is the RFC 6532 section 3.2 extension. The dot separator stays U+002E only.","Canonical form drops comments and folding white space. A local-part that is a dot-atom is written unquoted; any other local-part is a quoted-string. A display name that is atoms separated by one space is written unquoted; otherwise it is a quoted-string. A mailbox with no display name is a bare addr-spec. Top-level addresses are joined by a comma and one space. Group members are joined by a comma with no space, with no space around the colon, and an empty group is name:; .","A domain that is not a dot-atom or a domain-literal, including a leading, trailing, or doubled dot, is invalid_input. A local-part that is not a dot-atom is quoted rather than rejected.","The same structured input always produces the same text. No clock, locale, or network.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_input_bytes":4096,"max_addresses":32,"max_groups":32,"max_output_bytes":65536},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["mode","addresses"],"properties":{"mode":{"type":"string","enum":["ascii","utf-8"]},"addresses":{"type":"array","minItems":1,"maxItems":32,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","display_name","local_part","domain"],"properties":{"kind":{"const":"mailbox"},"display_name":{"type":"string","maxLength":4096},"local_part":{"type":"string","maxLength":4096},"domain":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["kind","display_name","members"],"properties":{"kind":{"const":"group"},"display_name":{"type":"string","minLength":1,"maxLength":4096},"members":{"type":"array","maxItems":32,"items":{"type":"object","additionalProperties":false,"required":["kind","display_name","local_part","domain"],"properties":{"kind":{"const":"mailbox"},"display_name":{"type":"string","maxLength":4096},"local_part":{"type":"string","maxLength":4096},"domain":{"type":"string","minLength":1,"maxLength":4096}}}}}}]}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["mode","text","address_count","mailbox_count","group_count"],"properties":{"mode":{"type":"string","enum":["ascii","utf-8"]},"text":{"type":"string","minLength":1,"maxLength":8192},"address_count":{"type":"integer","minimum":1,"maximum":32},"mailbox_count":{"type":"integer","minimum":0,"maximum":32},"group_count":{"type":"integer","minimum":0,"maximum":32}}},"examples":[{"input":{"mode":"ascii","addresses":[{"kind":"mailbox","display_name":"Mary Smith","local_part":"mary","domain":"x.test"}]},"output":{"mode":"ascii","text":"Mary Smith <mary@x.test>","address_count":1,"mailbox_count":1,"group_count":0}},{"input":{"mode":"ascii","addresses":[{"kind":"group","display_name":"Undisclosed recipients","members":[]}]},"output":{"mode":"ascii","text":"Undisclosed recipients:;","address_count":1,"mailbox_count":0,"group_count":1}}],"execute_url":"/v1/tools/email-address-list-format/versions/1.0.0/execute"}