@zio.dev/zio-blocks 0.0.21 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/sidebars.js CHANGED
@@ -11,17 +11,34 @@ const sidebars = {
11
11
  "reference/binding",
12
12
  "reference/registers",
13
13
  "reference/typeid",
14
+ "reference/modifier",
14
15
  "reference/dynamic-value",
15
16
  "reference/optics",
17
+ "reference/schema-expr",
18
+ "reference/dynamic-optic",
19
+ "reference/type-class-derivation",
20
+ "reference/codec",
21
+ "reference/formats",
22
+ "path-interpolator",
16
23
  "reference/chunk",
17
24
  "reference/validation",
18
25
  "reference/schema-evolution",
19
26
  "reference/context",
20
27
  "reference/docs",
21
- "reference/formats",
22
28
  "reference/json",
23
29
  "reference/json-schema",
24
30
  "reference/syntax",
31
+ "reference/media-type",
32
+ ]
33
+ },
34
+ {
35
+ type: "category",
36
+ label: "Guides",
37
+ items: [
38
+ "guides/query-dsl-reified-optics",
39
+ "guides/query-dsl-sql",
40
+ "guides/query-dsl-extending",
41
+ "guides/query-dsl-fluent-builder",
25
42
  ]
26
43
  }
27
44
  ]
@@ -0,0 +1,331 @@
1
+ ---
2
+ id: undocumented-report
3
+ title: "Documentation Coverage Report"
4
+ ---
5
+
6
+ # Documentation Coverage Report
7
+
8
+ Comprehensive analysis of documentation gaps in ZIO Blocks, combining automated scanning with manual source-code review.
9
+
10
+ ## Summary
11
+
12
+ | Metric | Count |
13
+ |--------|-------|
14
+ | Total public types found | 552 |
15
+ | Types with documentation | 302 |
16
+ | Types lacking documentation | 250 |
17
+ | Documentation coverage | 54% |
18
+ | Existing reference pages | 24 |
19
+ | Missing methods in existing pages | ~44 |
20
+ | Missing examples in existing pages | ~39 |
21
+ | Conceptual docs (guides, how-tos) | 0 |
22
+
23
+ ---
24
+
25
+ ## Critical: Missing Reference Pages
26
+
27
+ These are core public API types that users interact with directly. Each needs a dedicated reference page or a substantial new section in an existing page.
28
+
29
+ - [ ] **`MediaType`** (module `mediatype`) — Public API for media type parsing and matching; essential for content negotiation. The entire `zio.blocks.mediatype` package has zero documentation. **Scope: new page**. Source: `mediatype/shared/src/main/scala/zio/blocks/mediatype/MediaType.scala`
30
+ - [ ] **`MediaTypes`** (module `mediatype`) — Predefined media type instances (application/json, text/html, etc.). Should be part of the `MediaType` page. **Scope: new section**. Source: `mediatype/shared/src/main/scala/zio/blocks/mediatype/MediaTypes.scala`
31
+ - [ ] **`SchemaExpr`** (module `schema`) — Core trait for expression evaluation on schema-described types; central to the validation DSL. **Scope: new page**. Source: `schema/shared/src/main/scala/zio/blocks/schema/SchemaExpr.scala`
32
+ - [ ] **`SchemaError`** (module `schema`) — Primary error type returned from schema operations (ConversionFailed, MissingField, DuplicatedField, ExpectationMismatch, UnknownCase). Users handle these constantly. **Scope: new page or major section in schema.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/SchemaError.scala`
33
+ - [ ] **`Into`** (module `schema`) — Core conversion type class appearing in all cross-type transformations. **Scope: new page**. Source: `schema/shared/src/main/scala/zio/blocks/schema/Into.scala`
34
+ - [ ] **`JsonPatch`** (module `schema`) — Main public API for JSON patching and diffing operations. **Scope: new section in json.md or patch.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/json/JsonPatch.scala`
35
+
36
+ ---
37
+
38
+ ## High Priority: Incomplete Coverage
39
+
40
+ ### Types needing at least a dedicated section in an existing page
41
+
42
+ **schema module — Binding subsystem:**
43
+ - [ ] **`BindingResolver`** — Essential for type binding resolution; critical for schema rebinding. Referenced in 6 source files. **Scope: new section in binding.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/binding/BindingResolver.scala`
44
+ - [ ] **`MapConstructor` / `MapDeconstructor`** — Public traits for customizing map handling in bindings. Referenced in 7 files each. **Scope: new section in binding.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/binding/MapConstructor.scala`
45
+ - [ ] **`ConstantConstructor` / `ConstantDeconstructor`** — Binding helpers for constant values. Referenced in 11 files each. **Scope: brief section in binding.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/binding/Constructor.scala`
46
+ - [ ] **`RegisterType`** — Type-safe register representation. Referenced in 5 files. **Scope: brief section in registers.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/binding/RegisterType.scala`
47
+
48
+ **schema module — Derivation subsystem:**
49
+ - [ ] **`InstanceOverride`** — Used for customizing schema derivation. Referenced in 8 files. **Scope: new section in type-class-derivation.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/derive/InstanceOverride.scala`
50
+ - [ ] **`ModifierOverride`** — Used for overriding modifiers during derivation. Referenced in 3 files. **Scope: new section in type-class-derivation.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/derive/ModifierOverride.scala`
51
+
52
+ **schema module — Type classes:**
53
+ - [ ] **`IsNumeric`** — Type class for arithmetic operations. Referenced in 3 files. **Scope: brief section in schema.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/IsNumeric.scala`
54
+ - [ ] **`IsCollection`** — Type class for collection operations. **Scope: brief section in schema.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/IsCollection.scala`
55
+ - [ ] **`IsMap`** — Type class for map operations. **Scope: brief section in schema.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/IsMap.scala`
56
+ - [ ] **`Reflectable`** — Trait for types with reflectable modifiers. Referenced in 3 files. **Scope: brief section in reflect.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/Reflectable.scala`
57
+ - [ ] **`ToStructural`** — Converts nominal to structural schemas. **Scope: brief section in reflect.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/ToStructural.scala`
58
+
59
+ **schema module — JSON subsystem:**
60
+ - [ ] **`Keyable`** — Type class for JSON key support. Referenced in 5 files. **Scope: new section in json.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/json/Keyable.scala`
61
+ - [ ] **`NameMapper`** (`CamelCase`, `KebabCase`, `PascalCase`) — Public field name transformations. **Scope: new section in json.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/json/NameMapper.scala`
62
+ - [ ] **`JsonBinaryCodecError`** — Custom exception for JSON codec errors. Referenced in 7 files. **Scope: brief section in json.md**. Source: `schema/shared/src/main/scala/zio/blocks/schema/json/JsonBinaryCodecError.scala`
63
+
64
+ **typeid module:**
65
+ - [ ] **`TypeRepr`** — Central type representation (24 subtypes: ThisType, TypeLambda, Singleton, Repeated, etc.). Referenced across 4-8 files each. **Scope: new section in typeid.md**. Source: `typeid/shared/src/main/scala/zio/blocks/typeid/TypeRepr.scala`
66
+ - [ ] **`TypeDefKind`** — Type definition classifier (AbstractType, EnumCase, TypeAlias, etc.). **Scope: new section in typeid.md**. Source: `typeid/shared/src/main/scala/zio/blocks/typeid/TypeDefKind.scala`
67
+ - [ ] **`Kind`** and **`Arrow`** — Higher-kinded type expressions. **Scope: new section in typeid.md**. Source: `typeid/shared/src/main/scala/zio/blocks/typeid/Kind.scala`
68
+ - [ ] **`Annotation`** — Type annotation metadata (ArrayArg, ClassOf, EnumValue). **Scope: new section in typeid.md**. Source: `typeid/shared/src/main/scala/zio/blocks/typeid/Annotation.scala`
69
+ - [ ] **`Owner`** and **`Segment`** — Type ownership path. **Scope: new section in typeid.md**. Source: `typeid/shared/src/main/scala/zio/blocks/typeid/Owner.scala`
70
+
71
+ **context module:**
72
+ - [ ] **`IsNominalType`** — Type class for nominal type extraction. Referenced in 6 files. **Scope: new section in context.md**. Source: `context/shared/src/main/scala/zio/blocks/context/IsNominalType.scala`
73
+ - [ ] **`IsNominalIntersection`** — Type class for intersection type handling. Referenced in 4 files. **Scope: new section in context.md**. Source: `context/shared/src/main/scala/zio/blocks/context/IsNominalIntersection.scala`
74
+
75
+ **Format codec modules:**
76
+ - [ ] **`BsonEncoder` / `BsonDecoder` / `BsonCodec`** (schema-bson) — Core encoding/decoding types for BSON. **Scope: expand formats.md BSON section**. Source: `schema-bson/src/main/scala/zio/blocks/schema/bson/BsonTypes.scala`
77
+ - [ ] **`MessagePackBinaryCodec`** (schema-messagepack) — Public codec for MessagePack. **Scope: expand formats.md MessagePack section**. Source: `schema-messagepack/src/main/scala/zio/blocks/schema/msgpack/MessagePackBinaryCodec.scala`
78
+ - [ ] **`ThriftBinaryCodec`** (schema-thrift) — Public codec for Thrift. **Scope: expand formats.md Thrift section**. Source: `schema-thrift/src/main/scala/zio/blocks/schema/thrift/ThriftBinaryCodec.scala`
79
+ - [ ] **`ToonReader` / `ToonWriter`** (schema-toon) — Public codec for TOON. Referenced in 9-10 files. **Scope: expand formats.md TOON section**. Source: `schema-toon/src/main/scala/zio/blocks/schema/toon/`
80
+
81
+ **markdown module:**
82
+ - [ ] **`Block`** subtypes (`BlockQuote`, `BulletList`, `CodeBlock`, `HtmlBlock`, `OrderedList`, `ThematicBreak`) — Core markdown AST elements. **Scope: new section in docs.md**. Source: `markdown/shared/src/main/scala/zio/blocks/docs/Block.scala`
83
+ - [ ] **`Inline`** subtypes (`Autolink`, `HtmlInline`, `Image`, `HardBreak`, `SoftBreak`) — Core markdown AST elements. **Scope: new section in docs.md**. Source: `markdown/shared/src/main/scala/zio/blocks/docs/Inline.scala`
84
+
85
+ ---
86
+
87
+ ## Medium Priority: Brief Mentions Needed
88
+
89
+ Types that should be mentioned in related pages but don't need dedicated sections.
90
+
91
+ **schema module:**
92
+ - [ ] `SchemaMetadata` / `Folder` — metadata traversal infrastructure. **Mention in: schema.md**
93
+ - [ ] `FromBinding` — type class for binding conversion. **Mention in: binding.md**
94
+ - [ ] `UnapplySeq` / `UnapplyMap` — implicit evidence for seq/map operations. **Mention in: binding.md**
95
+ - [ ] `OpticCheck` subtypes (`EmptyMap`, `MissingKey`, `SequenceIndexOutOfBounds`, `WrappingError`) — validation results from optic operations. **Mention in: optics.md**
96
+ - [ ] `RebindException` — thrown during schema rebinding. **Mention in: binding.md**
97
+ - [ ] `JsonDiffer` — JSON diffing utility. **Mention in: json.md**
98
+ - [ ] `JsonSchemaType` / `SchemaType` — JSON Schema type system. **Mention in: json-schema.md**
99
+ - [ ] `ContextDetector` parsing states — JSON interpolator internals. **Mention in: json.md**
100
+ - [ ] `TypeIdSchemas` — hand-rolled schema instances for TypeId. **Mention in: typeid.md**
101
+
102
+ **chunk module:**
103
+ - [ ] `ChunkIterator` — streaming iterator for chunks. **Mention in: chunk.md**
104
+ - [ ] `IsText` — type class for chunk-to-string conversion. **Mention in: chunk.md**
105
+
106
+ **scope module:**
107
+ - [ ] `InStack` — trait for stack-like containment. **Mention in: scope.md**
108
+
109
+ **markdown module:**
110
+ - [ ] `Alignment` / `Center` — table column alignment. **Mention in: docs.md**
111
+ - [ ] `HeadingLevel` (`H4`, `H5`) — heading levels. **Mention in: docs.md**
112
+ - [ ] `TerminalRenderer` — ANSI terminal rendering. **Mention in: docs.md**
113
+ - [ ] `MdInterpolatorRuntime` — runtime support for `md"..."`. **Mention in: docs.md**
114
+
115
+ **schema-toon module:**
116
+ - [ ] `Delimiter` / `Comma` / `Pipe` / `Tab` — array delimiters. **Mention in: formats.md**
117
+ - [ ] `ArrayFormat` — array encoding strategy. **Mention in: formats.md**
118
+ - [ ] `KeyFolding` / `PathExpansion` — TOON reader/writer config. **Mention in: formats.md**
119
+
120
+ **schema-bson module:**
121
+ - [ ] `DiscriminatorField` / `NoDiscriminator` / `WrapperWithClassNameField` — sum type encoding strategies. **Mention in: formats.md**
122
+
123
+ ---
124
+
125
+ ## Documentation Depth Issues
126
+
127
+ Existing pages that need updates — missing methods, examples, or cross-references.
128
+
129
+ ### Schema (`schema.md`)
130
+ - [ ] Missing examples of schema serialization to JSON Schema and back
131
+ - [ ] Missing example of caching behavior with `derive(format)`
132
+ - [ ] Missing example of using modifiers on schemas
133
+ - [ ] No mention of `TypeId` integration in schema derivation
134
+ - [ ] Missing reference to schema validation with `DynamicSchema`
135
+
136
+ ### Reflect (`reflect.md`)
137
+ - [ ] `Reflect#noBinding` — critical for understanding serialization, not documented
138
+ - [ ] `Reflect#transform` — used extensively but not documented
139
+ - [ ] `Reflect.Extractors` — pattern matching helpers not documented
140
+ - [ ] Missing example of working with `Reflect.Unbound` for serialization
141
+ - [ ] Missing example of recursive type handling with `Deferred`
142
+ - [ ] Should reference `Binding` more clearly for each reflect type
143
+
144
+ ### Binding (`binding.md`)
145
+ - [ ] Missing documentation on `Register` and `RegisterOffset` API — critical for zero-allocation architecture
146
+ - [ ] Missing `SpecializedIndexed` documentation for array-based performance
147
+ - [ ] No detailed example of `RegisterOffset` calculation
148
+ - [ ] No example of implementing custom `SeqConstructor` for new collection types
149
+ - [ ] No example of `MapConstructor` / `MapDeconstructor` implementation
150
+ - [ ] Missing explanation of why specialized constructors exist
151
+
152
+ ### Chunk (`chunk.md`)
153
+ - [ ] `Chunk.BitChunk` and bit operations barely documented
154
+ - [ ] No example of the `BitChunk` operations with endianness
155
+ - [ ] Missing performance comparison with `Vector` for various operations
156
+ - [ ] `Chunk.materialize` automatic triggering conditions are vague
157
+ - [ ] Missing `NonEmptyChunk#flatMap` documentation
158
+
159
+ ### JSON (`json.md`)
160
+ - [ ] Missing `Keyable` typeclass documentation
161
+ - [ ] `Json#diff` operation types not documented
162
+ - [ ] No example of complex querying with predicates
163
+ - [ ] No example of recursive transformation with `transformDown` vs `transformUp`
164
+ - [ ] No example of merging strategies in detail
165
+ - [ ] Should reference `JsonSchema` more thoroughly
166
+
167
+ ### Codec (`codec.md`)
168
+ - [ ] Missing explanation of `Format` trait interface
169
+ - [ ] Missing documentation of `Deriver` pattern for custom codecs
170
+ - [ ] No example of implementing a custom `Format`
171
+ - [ ] No example of `DerivationBuilder` advanced usage
172
+ - [ ] Codec instance caching mechanism not explained
173
+ - [ ] JSON codec configuration incomplete — missing validation options
174
+
175
+ ### Patch (`patch.md`)
176
+ - [ ] `DynamicPatch` operations not fully documented
177
+ - [ ] No example of `modifyKey` on maps with type parameters
178
+ - [ ] No example of composing patches across different types
179
+ - [ ] Missing example of serialization and storage of patches
180
+ - [ ] Should explain relationship to `DynamicValue.diff`
181
+
182
+ ### TypeId (`typeid.md`)
183
+ - [ ] `TypeRepr` subtypes barely documented (24 variants)
184
+ - [ ] `TypeDefKind` variants incomplete
185
+ - [ ] `Member` API — parameter modifiers underdocumented
186
+ - [ ] `TermPath` and singleton types barely covered
187
+ - [ ] No mention of Scala 2 vs Scala 3 differences in TypeId derivation
188
+
189
+ ### Context (`context.md`)
190
+ - [ ] `IsNominalType` typeclass not explained
191
+ - [ ] No mention of performance characteristics
192
+ - [ ] Missing explanation of why only nominal types are supported
193
+ - [ ] Missing example of context composition in larger applications
194
+
195
+ ### Validation (`validation.md`)
196
+ - [ ] Composition/chaining methods not documented
197
+ - [ ] No example of using validations directly on `PrimitiveType`
198
+ - [ ] No example of validation in format derivers
199
+ - [ ] Missing guidance on validation composition workarounds
200
+ - [ ] Missing integration examples with JSON Schema
201
+
202
+ ---
203
+
204
+ ## Conceptual Gaps
205
+
206
+ Missing guides, overviews, and tutorials — none of these exist today.
207
+
208
+ - [ ] **Getting Started Guide** — No quick-start for new users. Should cover: adding dependencies, defining a case class, deriving a schema, encoding/decoding JSON. **Scope: new page `docs/getting-started.md`**
209
+ - [ ] **Architecture Overview** — No high-level design document. Should cover: module dependency graph, register-based zero-allocation architecture, the Reflect/Binding/Schema layering, and the Deriver pattern. **Scope: new page `docs/architecture.md`**
210
+ - [ ] **How-To: Custom Codec** — No guide for implementing a custom `Format` and its `Deriver`. **Scope: new page `docs/how-to-custom-codec.md`**
211
+ - [ ] **How-To: Schema Derivation** — No guide walking through `Schema.derived` vs manual schema construction. **Scope: new section in schema.md or new page**
212
+ - [ ] **How-To: Working with DynamicValue** — No guide on converting between typed and dynamic representations. **Scope: new section in dynamic-value.md**
213
+ - [ ] **End-to-End Pipeline Example** — No documentation showing the full Schema -> Codec -> Encoding -> Decoding -> Validation pipeline. **Scope: new page or section in index.md**
214
+ - [ ] **Migration Guide** — No version migration docs (may not be needed yet if pre-1.0, but placeholder is useful)
215
+ - [ ] **Performance Guide** — No guidance on when to use `materialize` on Chunks, binding register allocation strategies, caching behavior in schema derivation, or JSON encoder/decoder performance characteristics
216
+
217
+ ---
218
+
219
+ ## Low Priority / Skip
220
+
221
+ Internal types that don't need documentation.
222
+
223
+ | Type | Module | Reason |
224
+ |------|--------|--------|
225
+ | `LittleEndian` | chunk | Endianness marker for bit operations; specialized internal |
226
+ | `ChunkMapBuilder` | chunk | Internal builder behind `ChunkMap.newBuilder` |
227
+ | `PlatformSpecific` | schema | Platform-specific trait for JVM/JS split |
228
+ | `Extractors` | schema | Internal pattern matching helpers on `Reflect` |
229
+ | `AsLowPriorityImplicits` | schema | Implicit resolution priority helper |
230
+ | `IntoPrimitiveInstances` / `IntoContainerInstances` | schema | Implicit instance providers (infrastructure) |
231
+ | `HasInstances` | schema | Derivation infrastructure |
232
+ | `UnapplySeqLowPriority` | schema | Implicit priority helper |
233
+ | `Leaf` (in Doc) | schema | Internal documentation node type |
234
+ | `Folder` | schema | Internal metadata traversal helper |
235
+ | All `*Delta` / `*Dummy` types in `DynamicPatch` | schema | Internal patch operation representations (BigDecimalDelta, ByteDelta, DoubleDelta, DurationDelta, DurationDummy, FloatDelta, InstantDelta, IntDelta, LocalDateDelta, LocalDateTimeDelta, LongDelta, PeriodDelta, PeriodDummy, ShortDelta) |
236
+ | All `PathParser` error types | schema | Internal parser errors (EmptyChar, InvalidEscape, InvalidIdentifier, InvalidSyntax, IntegerOverflow, MultiCharLiteral, UnexpectedChar, UnexpectedEnd, UnterminatedChar, UnterminatedString) |
237
+ | `ContextDetector` / parsing states | schema | Internal JSON interpolator state machine (AfterValue, ExpectingColon, ExpectingKey, ExpectingValue, InString, TopLevel) |
238
+ | `JsonSchemaToReflect` helpers | schema | Internal conversion types (FieldVariant, KeyVariant, MapShape, OptionOf, PrimKind) |
239
+ | `CaseInfo` / `EnumInfo` | schema | Internal JSON codec deriver helpers |
240
+ | `DynamicValueMergeStrategy` / `KeepLeft` | schema | Internal merge strategy implementation |
241
+ | `DynamicValueSelection` | schema | Internal selection helper |
242
+ | `NoBinding` | schema | Internal marker type |
243
+ | `ReflectPrinter` | schema | Internal debug printing |
244
+ | `Registry` / `Registry.Entry` | schema | Internal binding resolver storage |
245
+ | `ObjectIdSupport` | schema-bson | Internal BSON ObjectId helper |
246
+ | `BsonBuilder` / `BsonTrace` / `EncoderContext` / `BsonDecoderContext` | schema-bson | Internal codec implementation |
247
+ | `MessagePackBinaryCodecDeriver` | schema-messagepack | Internal deriver |
248
+ | `MessagePackReader` / `MessagePackWriter` | schema-messagepack | Internal binary readers/writers |
249
+ | `Mixed` / `UniformRecords` | schema-toon | Internal codec strategy types |
250
+ | `ArrayHeader` | schema-toon | Internal reader state |
251
+ | `Off` | schema-toon | Internal config value |
252
+ | All `scope/internal/*` types | scope | Internal error rendering (Colors, DepNode, DepStatus, ErrorMessages, Found, Missing, Pending, ProviderInfo) |
253
+ | `Destroyed` / `Uninitialized` | scope | Internal resource lifecycle states |
254
+ | `FlatMap` / `ZSink` / `ZSinkFiber` / `ZSource` / `ZSourceFiber` | streams | Experimental/WIP module |
255
+ | `TypeIdInstances` | typeid | Internal implicit provider trait |
256
+ | `TypeIdPrinter` | typeid | Internal rendering utility |
257
+ | `Owners` | typeid | Internal namespace helper |
258
+ | All `*Const` types in `TypeRepr` | typeid | Internal literal type representations (BooleanConst, CharConst, ClassOfConst, DoubleConst, FloatConst, IntConst, LongConst, NullConst, StringConst, UnitConst) |
259
+ | `AnyKindType` / `AnyType` / `NothingType` / `NullType` / `UnitType` | typeid | Internal special type representations |
260
+
261
+ ---
262
+
263
+ ## Suggested Actions
264
+
265
+ Ordered TODO checklist grouped by module, with estimated scope.
266
+
267
+ ### Conceptual Documentation (highest impact)
268
+
269
+ 1. - [ ] Write **Getting Started Guide** — `docs/getting-started.md` — *new page*
270
+ 2. - [ ] Write **Architecture Overview** — `docs/architecture.md` — *new page*
271
+ 3. - [ ] Write **End-to-End Pipeline Example** — Schema -> Codec -> Encode -> Decode -> Validate — *new page or section*
272
+
273
+ ### Module: `mediatype` (entirely undocumented)
274
+
275
+ 4. - [ ] Write **MediaType reference page** — `docs/reference/media-type.md` — *new page*
276
+
277
+ ### Module: `schema` (core gaps)
278
+
279
+ 5. - [ ] Write **SchemaError reference** — error types, handling patterns — *new page or new section in schema.md*
280
+ 6. - [ ] Write **SchemaExpr reference** — expression DSL, validation expressions — *new page*
281
+ 7. - [ ] Write **Into reference** — cross-type conversions — *new page*
282
+ 8. - [ ] Add **BindingResolver, MapConstructor, MapDeconstructor** sections to `binding.md` — *update existing*
283
+ 9. - [ ] Add **InstanceOverride, ModifierOverride** sections to `type-class-derivation.md` — *update existing*
284
+ 10. - [ ] Add **IsNumeric, IsCollection, IsMap** section to `schema.md` — *update existing*
285
+ 11. - [ ] Add **Keyable, NameMapper** section to `json.md` — *update existing*
286
+ 12. - [ ] Add **JsonPatch operations** section to `json.md` or `patch.md` — *update existing*
287
+ 13. - [ ] Add **Reflectable, ToStructural** sections to `reflect.md` — *update existing*
288
+ 14. - [ ] Expand **Register/RegisterOffset** explanation in `binding.md` and `registers.md` — *update existing*
289
+
290
+ ### Module: `typeid` (many subtypes undocumented)
291
+
292
+ 15. - [ ] Add **TypeRepr** section with key subtypes to `typeid.md` — *update existing*
293
+ 16. - [ ] Add **TypeDefKind** section to `typeid.md` — *update existing*
294
+ 17. - [ ] Add **Kind/Arrow** section to `typeid.md` — *update existing*
295
+ 18. - [ ] Add **Annotation** subtypes section to `typeid.md` — *update existing*
296
+ 19. - [ ] Add **Owner/Segment** section to `typeid.md` — *update existing*
297
+
298
+ ### Module: `context`
299
+
300
+ 20. - [ ] Add **IsNominalType, IsNominalIntersection** section to `context.md` — *update existing*
301
+
302
+ ### Module: `markdown`
303
+
304
+ 21. - [ ] Add **Block subtypes** reference section to `docs.md` — *update existing*
305
+ 22. - [ ] Add **Inline subtypes** reference section to `docs.md` — *update existing*
306
+ 23. - [ ] Add **Alignment, HeadingLevel, TerminalRenderer** mentions to `docs.md` — *update existing*
307
+
308
+ ### Module: `chunk`
309
+
310
+ 24. - [ ] Add **BitChunk operations** section to `chunk.md` — *update existing*
311
+ 25. - [ ] Add **ChunkIterator** mention to `chunk.md` — *update existing*
312
+
313
+ ### Format modules (expand `formats.md`)
314
+
315
+ 26. - [ ] Expand **BSON section** in `formats.md` with BsonEncoder/BsonDecoder API — *update existing*
316
+ 27. - [ ] Expand **MessagePack section** in `formats.md` with MessagePackBinaryCodec API — *update existing*
317
+ 28. - [ ] Expand **Thrift section** in `formats.md` with ThriftBinaryCodec API — *update existing*
318
+ 29. - [ ] Expand **TOON section** in `formats.md` with ToonReader/ToonWriter, Delimiter, config — *update existing*
319
+
320
+ ### Depth improvements (existing pages)
321
+
322
+ 30. - [ ] Add missing **Reflect#transform** and **Reflect#noBinding** to `reflect.md`
323
+ 31. - [ ] Add missing **Format trait interface** and **custom Format** example to `codec.md`
324
+ 32. - [ ] Add missing **DynamicPatch** operations and **patch serialization** example to `patch.md`
325
+ 33. - [ ] Add missing **Validation composition** guidance and **JSON Schema integration** to `validation.md`
326
+ 34. - [ ] Add missing **TypeRepr pattern matching** and **Scala 2/3 differences** to `typeid.md`
327
+ 35. - [ ] Add missing **Cache behavior** and **intersection type** examples to `context.md`
328
+
329
+ ---
330
+
331
+ *Report generated on 2026-02-13. Scan performed by `scan-undocumented.sh`; manual enrichment by AI review of 250 undocumented types across 12 modules and 10 existing reference pages.*