Design the Block Data Model
Problem
Design Notion's core abstraction: the block model where everything (text, page, table, toggle) is a block.
Requirements
- A block has type, content, parent, ordered children
- Move/insert/delete blocks
- Different render behavior per type
- Permissions inherited from ancestors
What evaluators look for
- Uniform block interface with type-specific behavior
- Ordering of children (fractional indexing)
- Reference vs containment
Extension
Support a block appearing in multiple places (references/mentions).
added …