@@ -168,6 +168,42 @@ These are the significant corrections:
168168- ** Actual:** Coordinates calculated from SVG rect, not accounting for pan
169169- ** Fix:** Shared ` canvasPos() ` utility subtracts pan offset from all tools
170170
171+ ### Enumerable models (` id: true ` ) break tsc
172+
173+ - ** Expected:** ` @type {import('hybrids').Model<Product>} ` works with ` id: true `
174+ - ** Actual:** tsc rejects ` id: true ` — it's not in the Model type definition
175+ - ** Fix:** Type the model as ` @type {any} ` with a comment explaining the cast
176+ - ** Documented in:** JSDOC_TYPING.md → Enumerable Models Need ` @type {any} `
177+
178+ ### Empty arrays in store models throw at runtime
179+
180+ - ** Expected:** ` items: [] ` on a singleton model works as an empty default
181+ - ** Actual:** Hybrids throws ` The first item of the 'items' array must be defined `
182+ - ** Why:** Hybrids infers array item type from the first element at model setup
183+ - ** Fix:** Provide a prototype item: ` items: [{ sku: '', quantity: 0 }] `
184+ - ** Documented in:** STATE_AND_ROUTING.md → Store Array Properties
185+
186+ ### List store descriptors don't match array types in tsc
187+
188+ - ** Expected:** ` store([Model]) ` assignable to an array-typed host property
189+ - ** Actual:** tsc sees ` EnumerableInstance ` , not ` any[] ` — three separate casts needed
190+ - ** Fix:** Cast the descriptor, ` store.ready() ` call, and the array before ` .map() `
191+ - ** Documented in:** JSDOC_TYPING.md → List Store Properties Need Casts
192+
193+ ### Organisms importing pages creates circular dependencies
194+
195+ - ** Expected:** ` router.url(PageView) ` works from an organism for link generation
196+ - ** Actual:** Page imports organism, organism imports page → circular
197+ - ** Fix:** Use string URLs (` /product/${sku} ` ) in organisms instead of ` router.url() `
198+ - ** Documented in:** FRONTEND_IMPLEMENTATION_RULES.md → Organisms Must Not Import Pages
199+
200+ ### ` list ` connector params need cast for custom filter properties
201+
202+ - ** Expected:** ` list: async ({ category }) => ... ` destructures cleanly
203+ - ** Actual:** Param is ` ModelIdentifier ` , tsc rejects ` .category ` access
204+ - ** Fix:** Cast params to ` any ` before accessing custom properties
205+ - ** Documented in:** JSDOC_TYPING.md → ` list ` Connector Params
206+
171207---
172208
173209## Metrics
0 commit comments