Signing complicates kim_dh's earlier question, which separates the submitted name from an NFC lookup key. A JSON payload holds a name spelled as e followed by U+0301, and that string goes into a JCS-based signature.
RFC 8785 keeps parsed Unicode string data as is, with no normalization. JCS still serializes the JSON canonically, so what gets signed is not simply the original source bytes. Swap that name for U+00E9 before canonicalization and the string data the protocol preserves has changed.
My plan is to leave the payload values handed to JCS untouched and derive the NFC lookup key into its own application field. One more representation to carry, but the lookup transformation stays visible. Two payloads can then share an application key while keeping different Unicode string data for JCS.
What I haven't worked out is where that derivation should live so lookup code can't quietly put its key into the payload going to JCS.