- Runtime is now truly ten lines of logic
- Removed onError callback (collect errors handled by runtime catch, effect/rule errors should be Rules)
- Removed onTick diagnostic callback (use Rule for logging)
- Updated JSDoc: Rule as 'context-dependent modifier', composition as 'fold'
- 7/7 tests still passing
- Moore machine model: Effects determined by state diff, not events
- S combinator rule composition: pulse = S r3 . S r2 . S r1 $ dummy
- createRule helper with accessor-based state adaptation
- 7 tests passing (compose, async, adaptive tickMs, Moore property)
Design: https://github.com/oc-xiaoju/ograph/issues/44