@@ -17,22 +17,22 @@ with whole-number floats collapsed to integers.
1717
1818## Exact behaviours this port implements
1919
20- 1 . ** NFC normalization** — every string ** value** and every object ** key** is
20+ 1 . ** NFC normalization** : every string ** value** and every object ** key** is
2121 ` Normalizer.normalize(s, Form.NFC) ` before serialization. (` "cafe"+U+0301 ` →
2222 ` café ` .) This is the main divergence from RFC 8785, which does * not* normalize.
23- 2 . ** Key sorting** — object keys sorted by Unicode ** code point** ascending,
23+ 2 . ** Key sorting** : object keys sorted by Unicode ** code point** ascending,
2424 recursively. NFC is applied to keys * before* sorting.
25- 3 . ** Separators** — ` , ` between items, ` : ` between key and value. No whitespace.
26- 4 . ** Raw UTF-8, no ` \uXXXX ` ** — non-ASCII characters are emitted as raw UTF-8
25+ 3 . ** Separators** : ` , ` between items, ` : ` between key and value. No whitespace.
26+ 4 . ** Raw UTF-8, no ` \uXXXX ` ** : non-ASCII characters are emitted as raw UTF-8
2727 bytes (` ensure_ascii=False ` ). ` é ` = ` c3 a9 ` , ` ☃ ` = ` e2 98 83 ` , ` 😀 ` =
2828 ` f0 9f 98 80 ` .
29- 5 . ** Whole-number floats → integers** — ` 1.0 ` → ` 1 ` , ` 2.00 ` → ` 2 ` . A non-whole
29+ 5 . ** Whole-number floats → integers** : ` 1.0 ` → ` 1 ` , ` 2.00 ` → ` 2 ` . A non-whole
3030 float keeps its value: ` 1.5 ` → ` 1.5 ` . (Implemented via ` BigDecimal ` :
3131 ` stripTrailingZeros().scale() <= 0 ` means whole.)
32- 6 . ** Integers stay integers, arbitrary precision** — ` 9007199254740993 ` is
32+ 6 . ** Integers stay integers, arbitrary precision** : ` 9007199254740993 ` is
3333 serialized exactly. This port parses integral JSON numbers into
3434 ` java.math.BigInteger ` , so there is no ` 2^53 ` precision loss.
35- 7 . ** Control-char escaping** — only ` " ` , ` \ ` , and U+0000– U+001F are escaped,
35+ 7 . ** Control-char escaping** : only ` " ` , ` \ ` , and U+0000 to U+001F are escaped,
3636 using ` \b \t \n \f \r ` where applicable and ` \uXXXX ` otherwise. ` / ` is ** not**
3737 escaped. This matches Python's ` json.dumps ` .
3838
@@ -44,10 +44,10 @@ agree. **Signed payloads should avoid non-trivial floats** (e.g. `0.1 + 0.2`).
4444
4545## Signing & encoding
4646
47- - ** VC** — signed payload is the credential minus ` proof ` and ` credentialStatus ` ,
47+ - ** VC** : signed payload is the credential minus ` proof ` and ` credentialStatus ` ,
4848 canonicalized as above, Ed25519-signed; ` proof.proofValue ` is base64url ** with
4949 padding** .
50- - ** UCAN** — EdDSA JWTs (compact form). The signed message is
50+ - ** UCAN** : EdDSA JWTs (compact form). The signed message is
5151 ` base64url(header) + "." + base64url(payload) ` (base64url ** without** padding,
5252 per the JWT spec). Only ` alg=EdDSA ` is accepted.
53- - ** did: key ** — ` did:key:z ` + base58btc(` 0xed 0x01 ` ‖ raw-32-byte key).
53+ - ** did: key ** : ` did:key:z ` + base58btc(` 0xed 0x01 ` ‖ raw-32-byte key).
0 commit comments