| Field | Constraint | Response on violation |
|---|---|---|
key | 1–128 bytes UTF-8, no whitespace or newline allowed | E bad_key |
lease | u16 (seconds). 0 is rejected | E bad_ttl |
wait | u16 (seconds). 0 = wait indefinitely | — (always valid since it's a u16) |
| fixed fields | A requires 4 bytes (wait+lease) after the op | E bad_request |
| op | A or R | E bad_op |
Since wait/lease are u16 (2 bytes), their range is fixed by the type at 0–65535 seconds. The response on violation follows the Response · Error E format.