Fix all odoc documentation warnings in ocaml-matrix
Fixes for "dune build @doc-full" warnings:
- Escape @room as \@room in rooms.mli to avoid unknown tag warning
- Escape {roomId} as \{roomId\} in spaces.ml to fix bad markup
- Fix {!restore_session} -> {!with_session} in client.mli (wrong function name)
- Fix {!Matrix_id} etc. -> {!module-Id} etc. in matrix_proto.ml
- Remove open statements from matrix_event.mli and matrix_sync.mli,
using fully qualified paths (Matrix_id.User_id.t etc.) instead
- Create matrix_proto.mli that re-exports internal modules with
@canonical tags to resolve "Hidden fields" warnings
The hidden fields warnings occurred because types in .mli files
referenced Matrix_id types via open statements, but odoc couldn't
resolve these through the Matrix_proto wrapper. The fix re-exports
the internal modules so odoc can resolve type paths in documentation.
Sources used:
- ocaml-dev:ocaml-docs skill for odoc v3 reference syntax and
hidden fields resolution patterns (@canonical, module re-exports)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>