Immutable data structure for top-to-bottom properties in React