jmap-contacts-types 0.1.0

JMAP Contacts extension data types (draft-ietf-jmap-contacts-*)
Documentation
# jmap-contacts-types — Implementation Plan

Data types for the JMAP Contacts extension.

## Spec

- `~/PROJECT/jmap-chat-spec/references/draft-ietf-jmap-contacts-10.txt`
- `~/PROJECT/jmap-chat-spec/references/draft-ietf-jmap-jscontact-10.txt`
- `~/PROJECT/jmap-chat-spec/references/draft-ietf-jmap-jscontact-vcard-09.txt`

## Crate Family Position

```
jmap-types
    └── jmap-contacts-types  ← this crate
            ├── jmap-contacts-server
            └── jmap-contacts-client
```

## What This Crate Is

Serde-serializable data types for JMAP Contacts:
- `Contact` — JSContact Card object (RFC 9553)
- `ContactGroup` — group of contacts
- `AddressBook` — container for contacts (analogous to Mailbox for email)

No async, no I/O. Depends only on `jmap-types` and `serde`.

## Key Types (draft-ietf-jmap-contacts-10)

- `AddressBook``id`, `name`, `isDefault`, `isSubscribed`, `shareWith`, `myRights`
- `Contact` / `Card` — JSContact Card (name, emails, phones, addresses, etc.)
- `ContactGroup``id`, `name`, `cardIds`

## Source Material

The JSContact Card format is defined in RFC 9553 (JSContact). The JMAP binding is in
draft-ietf-jmap-contacts-10. The jscontact-vcard draft defines round-trip conversion.