Immutable data structure for top-to-bottom properties in component based libraries like React