--- id: review-key-field name: Review key field implementation status: pending depends_on: [key-on-uelement, key-extraction-in-h] created: 2026-05-18T16:22:57.125725833Z modified: 2026-05-18T16:22:57.125726289Z scope: narrow risk: low impact: phase level: review --- # Description Review the implementation of the `key` field on `UElement` before proceeding to the fiber tree and reconciler phases. This is a critical checkpoint because every downstream task depends on `key` being correctly added to the schema and extracted by `h()`. Verify schema/type consistency, backward compatibility, and that ADR-004's consequences are properly handled. ## Acceptance Criteria - [ ] `UElement` TypeScript type matches TypeBox Module schema for `key` field - [ ] `key` never appears in component function props - [ ] Backward compatibility: unkeyed elements work identically to pre-key behavior - [ ] TypeBox `Value.Check` passes for both keyed and unkeyed elements - [ ] No unintended `key: undefined` serialization on unkeyed elements (verify JSON output) - [ ] All existing + new tests pass - [ ] `isUElement` guard still correctly discriminates from `URoot` ## References - docs/architecture/schema.md - docs/architecture/decisions/004-key-as-first-class-field.md - docs/architecture/element-factory.md ## Notes > To be filled on completion of review ## Summary > To be filled on completion