{"_id":"@adhd/apigen-base-logical","_rev":"11-60df7c089143956eff2b2cae4f45bece","name":"@adhd/apigen-base-logical","dist-tags":{"latest":"0.1.4"},"versions":{"0.0.1":{"name":"@adhd/apigen-base-logical","version":"0.0.1","_id":"@adhd/apigen-base-logical@0.0.1","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"d0c95444dc829884108d6acca3293a17d3836cab","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.1.tgz","fileCount":17,"integrity":"sha512-8vaIKy3G6Nnp2LZxUhAcBXu/CXToXAARyRYN2CoJGhtyLT0XZ8tytUB/cinxpxJ6EyY7ZJ/HBkx3DUijgdw+pA==","signatures":[{"sig":"MEUCIQCM2P4ZCIL+plSXfipTw355vm8q88W2j16EPDIXC8UbnQIgaC7IQbdF1vdBWtxo72h+GAMY7cBMHINklbtPHbMypok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58060},"main":"./index.js","module":"./index.mjs","gitHead":"36e7fe6e3b1dd5a9356fb1dab93d9eb1746df8b0","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.1_1784686879668_0.704890833732978","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@adhd/apigen-base-logical","version":"0.0.2","_id":"@adhd/apigen-base-logical@0.0.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"a27a2edb06f2bf079be6b533e44b503b11ca8901","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.2.tgz","fileCount":19,"integrity":"sha512-Qs/R/riFB00tJqboGvKeUEK65i0AtClu9TVvzpyRdlICVzwsgGeD8ZO7CSa4zU2eAx6n7VFY/ovR0Zdf+LBZsQ==","signatures":[{"sig":"MEUCIBNIH2+NPkdrplC7zdLRGR6GYPl/eK0Co7g4jL6UbyQxAiEAmPlOQPlaT0Jod+EcJDEsegY4+IL+R0gK2ZM54PpJmAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60924},"main":"./index.js","module":"./index.mjs","gitHead":"afca4fc9097845a32a9e371ce6cd1252cbc0be6b","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.2_1784773898127_0.35619309371915975","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@adhd/apigen-base-logical","version":"0.0.3","_id":"@adhd/apigen-base-logical@0.0.3","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"173bba7bec5f69ea4b4affb19ba507aecb9b9629","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.3.tgz","fileCount":19,"integrity":"sha512-E/8nekRJK9R9nNQCuXHQdE0yuDhfJ0xPt/a+5rWowzJ6yTQpu5VpOIZJX2d4oQhB2C1BgvJ3AZZJcuc5roEzlg==","signatures":[{"sig":"MEYCIQCxXU0bRYghyoxSJrcDqkq+RSDrBptUz5JuJ1NM58hmWQIhANbTU8ZHis4BYb0Dm3+/ABeixVy3QDn9hMceFfmT/tat","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61191},"main":"./index.js","module":"./index.mjs","gitHead":"eb0fd170825539850ae91a64393f8a8f376d8c7b","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.3_1784831114752_0.5886509796808845","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@adhd/apigen-base-logical","version":"0.0.4","_id":"@adhd/apigen-base-logical@0.0.4","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"5157548cec3f4af77d341242c2f2e78ec6056f46","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.4.tgz","fileCount":19,"integrity":"sha512-TqEpg/F+W6lsLusFxMGXuA+qwgqNzTM9HzT7qzZJdPjj4nA1H18w3j2V9FGmhNN3TvOFgI8ooQKqEprRfnqTzQ==","signatures":[{"sig":"MEUCICyyShFLKcpxtca/XUOX1OdZNs5gbXTRubEvwFSJM/4fAiEAntzvKNpP6i9ymxr1LizGx1bMXiN8ymC9vz04NV/fynU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61329},"main":"./index.js","module":"./index.mjs","gitHead":"60d30f61a52a3cb55285346e534382df02258264","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.4_1784934751962_0.634021752889161","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@adhd/apigen-base-logical","version":"0.0.5","_id":"@adhd/apigen-base-logical@0.0.5","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"b4c27008da3697b4533ac07eb1163db17e184d53","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.5.tgz","fileCount":19,"integrity":"sha512-4yfihRsQrUcIjJD2Zw2lG8iKODAVt0smVaCOri1jb6T0mX9Py2o3e/EpREA0nrmf6TF/OR+gtxBzgxva5W+PYw==","signatures":[{"sig":"MEUCIAtI9cpxcMMbUd779UTr96krZFd3s8vfZc8Pbq3SQOPUAiEAlfAwpsdYewhWnqZc5SCsWonAmB+TW3uu23RbmEcPH/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61467},"main":"./index.js","module":"./index.mjs","gitHead":"4a55390e41abde59d4b6c1f420851503ff727386","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.5_1784937234866_0.5116866702000478","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@adhd/apigen-base-logical","version":"0.0.6","_id":"@adhd/apigen-base-logical@0.0.6","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"73131f31ce80ba07d626648b9132f3cb7904c91a","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.0.6.tgz","fileCount":19,"integrity":"sha512-DyMI/c44o8aXVm7Hqkm5z56kHU/kfmcOC8MYF7W+s/vRP5j5OIHvMPuEJluAi6yyZOM3pkDdwQJj5Q3HR+hoWQ==","signatures":[{"sig":"MEQCIHlz/iaSfF1iC8nOySvnVsNvhcoIdbwdv0Tkmd3VVsz0AiArj6lSFsTbkdAnCeQQB+1Izr4/GGTpDXqHSrVmsz3bdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61653},"main":"./index.js","module":"./index.mjs","gitHead":"936d50dc3a4c827b29a00dcd8686ba968775cd06","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.0.6_1785008723178_0.7851032875492896","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@adhd/apigen-base-logical","version":"0.1.0","_id":"@adhd/apigen-base-logical@0.1.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"22ab67477ee1288863bfa14422825e1e81147d6b","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.1.0.tgz","fileCount":19,"integrity":"sha512-0B7x0YHIk3NXcETJpzsU/Lnof4zaYAESUL4xal++TibNxnZJ74Y1HgMEjBZ2RNJVM4lrKS5T+aly+ZwqeZ9Z4A==","signatures":[{"sig":"MEQCIHqqUSvP5Ek5aePEPU0N1Im8qdDdn6QyXlRBuLoCPU//AiBRAiLIbEfzIcLB98JTSI5F26XEOfBDr/Us4U1JlO8IWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61653},"main":"./index.js","module":"./index.mjs","gitHead":"1dbc0638f8eb1b7c961bc9359def6f4425da5c15","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.1.0_1785136496752_0.04188630210799649","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adhd/apigen-base-logical","version":"0.1.1","_id":"@adhd/apigen-base-logical@0.1.1","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"dist":{"shasum":"4eacbf6f760610bfb1e6a19cf2d9cb4c90b51390","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.1.1.tgz","fileCount":20,"integrity":"sha512-H3/J+W90/g3IRzsWTFT7i6fvu5S9mgSpEw3eVIQI0l/8IkpH3Xvly9/gjsl+HtSWviBs9zEDResrZ/Vhuv9cjw==","signatures":[{"sig":"MEUCIQCBngowNF2+5nD8PBte9xBOucL8FA4uyHFzxIddS02yGwIgb8y6dSIHqvrhYr9J08536QVvabWYTljSn94oNwom6sQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72674},"main":"./index.js","module":"./index.mjs","gitHead":"7edc5d58575a24fb9695bb3474d3e169f20eac58","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_npmVersion":"11.6.2","description":"The **contract spine** for apigen's schema-driven, registry-based logical-type transcoding — one mechanism that round-trips every non-JSON-native value (well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user classes and discriminated u","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.1.1_1786144527459_0.628056597805517","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adhd/apigen-base-logical","version":"0.1.2","keywords":["api","codegen","logical-types","schema","typescript"],"license":"MIT","_id":"@adhd/apigen-base-logical@0.1.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd/tree/main/packages/apigen/apigen-base-logical#readme","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"dist":{"shasum":"3100a26faf1f6cf2030564c19e6db7ccb3bf67d2","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.1.2.tgz","fileCount":20,"integrity":"sha512-CP9PPj4lzog1pcMk/9OLDCC+4JDeEdEGpi2BVcepCDdh9+A5g6hwY87HYCn5Biv6AZrxrX7reQfRrY8/Y/hqhw==","signatures":[{"sig":"MEYCIQCA7aOHwn4DiyZzjFPzBiK3le0jJP/vIo+Gj5aYMBr7lAIhAJk4j670FSMwNfMjrGnipJbR0g+GHFn5j9isah7xCF7b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCB07RcWGHuS0z9/57uXdN4CWwPPRPh8oz5b5vk62qXEAIgYLBNYMd/OGm54spOOJajNkLy8ohQymfQrey40nqSgBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81004},"main":"./index.js","module":"./index.mjs","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git","directory":"packages/apigen/apigen-base-logical"},"_npmVersion":"11.6.2","description":"Logical-type transcoding contracts for apigen","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.1.2_1790266581713_0.6275933101917857","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@adhd/apigen-base-logical","version":"0.1.3","keywords":["api","codegen","logical-types","schema","typescript"],"license":"MIT","_id":"@adhd/apigen-base-logical@0.1.3","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd/tree/main/packages/apigen/apigen-base-logical#readme","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"dist":{"shasum":"f0d7c9eb1292a0ad8a230234dff609f65856faba","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.1.3.tgz","fileCount":20,"integrity":"sha512-+mf6ClXze9wFZr0T7zkXRjqStVu5JzQdvM7YfbxZAPVcGztzAs2E0wUSyh4UAHZWoIJT6CmrUKhyyPtQpfv7qw==","signatures":[{"sig":"MEUCICR0acCcCnqk4sMWKZ9Lax3jW5Qs96hPCdOyBIO17aFoAiEA5IdUPp5G96ppp5zYOqZCcv8z8xYCnUnQQc4r+kit93o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHuVduSSzrzimLAlsV9pex/Ih6qnxEOh9aS969wH2KQYAiEAxJ8vFgejTEGGAyYuKiYNu1OdH+hfJIUEcSH+bomcXO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75920},"main":"./index.js","module":"./index.mjs","gitHead":"d473447c27714c6a7ab057efee178d1af8707e05","typings":"./index.d.ts","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git","directory":"packages/apigen/apigen-base-logical"},"_npmVersion":"11.6.2","description":"Logical-type transcoding contracts for apigen","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apigen-base-logical_0.1.3_1790448869715_0.5428548857991455","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"_id":"@adhd/apigen-base-logical@0.1.4","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"dist":{"shasum":"0ab60854d77dd3375abc196c9ca0d3e8d148325f","tarball":"https://registry.npmjs.org/@adhd/apigen-base-logical/-/apigen-base-logical-0.1.4.tgz","fileCount":20,"integrity":"sha512-T6A9YpIzdhI63lGK47SJgVKWduAFYhl4twBfcKQCMfq2AYD/sgCZi9B5si7N6CHswrpp2RYA2uD0GM+1I8Vfqg==","signatures":[{"sig":"MEYCIQDc6YdhKjded+iJqEMReayxDqVxcXaCE3ZGvdAINfaVBAIhAP1YKsV1imTaLDYdDeRfUzIeZUxpZPrxRRMTEL3I+uy4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGBpQaG6D/32tXhPnDIk4WbVYCGHG7sFY5kwceo6lU4IAiBKj6+bZNQWeZDnXwU6fJp0qLQQiQExapQaIaAgC5cyeg=="}],"unpackedSize":75920},"main":"./index.js","name":"@adhd/apigen-base-logical","module":"./index.mjs","gitHead":"a1a6ba024c5526b930f97c5420e920639d14e110","license":"MIT","typings":"./index.d.ts","version":"0.1.4","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"homepage":"https://github.com/PseudoSky/adhd/tree/main/packages/apigen/apigen-base-logical#readme","keywords":["api","codegen","logical-types","schema","typescript"],"repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git","directory":"packages/apigen/apigen-base-logical"},"_npmVersion":"11.6.2","description":"Logical-type transcoding contracts for apigen","directories":{},"maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apigen-base-logical_0.1.4_1790455407667_0.06468413386782035"}}},"time":{"created":"2026-07-22T02:21:19.523Z","modified":"2026-09-26T20:43:27.918Z","0.0.1":"2026-07-22T02:21:19.807Z","0.0.2":"2026-07-23T02:31:38.258Z","0.0.3":"2026-07-23T18:25:14.898Z","0.0.4":"2026-07-24T23:12:32.115Z","0.0.5":"2026-07-24T23:53:55.012Z","0.0.6":"2026-07-25T19:45:23.312Z","0.1.0":"2026-07-27T07:14:56.912Z","0.1.1":"2026-08-07T23:15:27.621Z","0.1.2":"2026-09-24T16:16:21.807Z","0.1.3":"2026-09-26T18:54:29.797Z","0.1.4":"2026-09-26T20:43:27.751Z"},"bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"license":"MIT","homepage":"https://github.com/PseudoSky/adhd/tree/main/packages/apigen/apigen-base-logical#readme","keywords":["api","codegen","logical-types","schema","typescript"],"repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git","directory":"packages/apigen/apigen-base-logical"},"description":"Logical-type transcoding contracts for apigen","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"readme":"# @adhd/apigen-base-logical\n\nThe **contract spine** for apigen's schema-driven, registry-based logical-type\ntranscoding — one mechanism that round-trips every non-JSON-native value\n(well-known scalars like `Date`/`int64`/`decimal`/`bytes`/`UUID`, plus user\nclasses and discriminated unions) over the JSON wire, identically across host\nlanguages.\n\n> **Status:** contract spine only. This package currently exports **interfaces**\n> (the codec/registry/transcoder contracts and the descriptor extension\n> vocabulary). Codec bodies, the schema-walking transcoder, and per-host\n> bindings are later plan states — see\n> [`docs/plan/apigen-base-logical-types/DESIGN.md`](../../../docs/plan/apigen-base-logical-types/DESIGN.md)\n> §4/§5/§11–§14.\n\n- **Platform:** `shared` (pure TypeScript — safe in a Node CLI and a browser).\n- **Layer:** `logic`.\n\n## Surface\n\n| Export                                                             | What it is                                                                        |\n| ------------------------------------------------------------------ | --------------------------------------------------------------------------------- |\n| `LogicalTypeId`, `LogicalKind`, `Wire`, `SchemaNode`               | Core type aliases (DESIGN §4.2).                                                  |\n| `TranscodeCtx`, `LogicalTypeCodec`                                 | The host-agnostic codec contract (DESIGN §4.2).                                   |\n| `LogicalTypeRegistry`, `createRegistry`, `CodecRegistryError`      | The registry contract + minimal dup-detecting stub (DESIGN §4.3).                 |\n| `Transcoder`                                                       | The schema-walking transcoder **interface** (impl is a later state, DESIGN §4.4). |\n| `ENVELOPE_KEY`, `ApigenEnvelope`                                   | The self-describing envelope for schema-less positions (DESIGN §4.5).             |\n| `TemplateCell`                                                     | Per-language codegen cell shape (DESIGN §13.1).                                   |\n| `X_APIGEN_*`, `LOGICAL_TYPE_VERSION`, `logicalKindOf`, `codecIdOf` | Descriptor extension vocabulary + advisory hint readers (DESIGN §4.1).            |\n\n## Invariant `[inv:hints-advisory]`\n\nThe `x-apigen-*` descriptor keys are **optional** dispatch accelerators —\nstructure (`format`/`$ref`/`oneOf`) is authoritative. `logicalKindOf` and\n`codecIdOf` therefore return `undefined` (never throw) when a key is absent or\nmalformed; correctness must never depend on a hint being present.\n\n## Schema example synthesis (shipped, unlike the contract-spine surface above)\n\n`synthesizeExample(schema)` / `renderExampleNote(schema)` — generates a\nconcrete, plausible example value from any JSON Schema: walks `properties`/\n`required`, resolves `$ref` against the schema's own `definitions`/`$defs`,\npicks a `oneOf`/`anyOf` branch, merges `allOf`, and produces format-aware\nplaceholders (`date-time`, `uuid`, `email`, `decimal`, `int64`, `byte`, etc.)\nthat satisfy `ajv-formats`. Every synthesized shape round-trips through real\nAJV validation in this package's own tests.\n\nThis exists to solve a concrete discoverability problem: an apigen-mounted\nMCP tool's description/error used to only describe the *shape* of a valid\ncall (\"all domain parameters go inside a `data` envelope\"), never a *worked\nexample* with real field names — so callers repeatedly got the call shape\nwrong on the first try. `renderExampleNote` is consumed by:\n\n- `@adhd/apigen-engine-runtime`'s `buildToolDescription` — appends a\n  synthesized example to every apigen-mounted tool's description.\n- `@adhd/apigen-engine-runtime`'s validate-Layer — appends the same\n  synthesized example to AJV validation-failure error messages, so a\n  rejected call comes back with both what was wrong *and* a working example.\n\nBecause synthesis is schema-driven (not hand-written per tool), it covers\nevery current and future apigen-mounted MCP tool automatically, including\nmount-derived tools (e.g. `apigen-plugin-batch`'s `_batch/<kind>` mounts)\nwhose top-level shape differs from the `{data:{...}}` envelope regular\nextracted operations use — the synthesized example always reflects each\ntool's own real, advertised schema, never an assumed universal convention.\n\n```ts\nimport { renderExampleNote } from '@adhd/apigen-base-logical';\n\nrenderExampleNote(someOperation.input);\n// → 'Example: {\"data\":{\"input\":{\"family\":\"<string>\",\"title\":\"<string>\",\"body\":\"<string>\",\"repo\":\"<string>\"}}}'\n```\n","readmeFilename":"README.md"}