diff options
| author | main <main@swarm.moe> | 2026-03-20 20:14:50 -0400 |
|---|---|---|
| committer | main <main@swarm.moe> | 2026-03-20 20:14:50 -0400 |
| commit | bb92a05eb5446e07c6288e266bd06d7b5899eee5 (patch) | |
| tree | 56846c754fdf7c89c4e090d18d8269a2ce9f53f7 /docs/spec.md | |
| parent | 84e898d9ba699451d5d13fe384e7bbe220564bc1 (diff) | |
| download | libmcp-bb92a05eb5446e07c6288e266bd06d7b5899eee5.zip | |
Add projection traits and doctrine testkit
Diffstat (limited to 'docs/spec.md')
| -rw-r--r-- | docs/spec.md | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/spec.md b/docs/spec.md index 80e464b..6d1f3c6 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -180,6 +180,8 @@ The library should therefore provide reusable primitives for: - render mode selection - detail selection +- explicit projection traits separating domain records from model-facing output +- derive-macro happy paths for concise/full projection structs - bounded/truncated text shaping - stable note emission - path rendering @@ -187,6 +189,16 @@ The library should therefore provide reusable primitives for: - generic JSON-to-porcelain projection for consumers that have not yet earned bespoke renderers +The intended happy path is not “serialize whatever domain object you already +have.” The intended happy path is: + +1. define a model-facing projection +2. declare its surface policy +3. render porcelain from that projection + +Consumers may still use generic JSON fallbacks, but they should feel like an +explicit escape hatch rather than the primary design path. + `libmcp` standardizes only the minimal shared detail axis `concise|full`. Consumers may add richer local taxonomies when their tool surface actually needs them. |