After learning why and how to separate code from data in the previous chapter, let’s talk about data on its own. In contrast to traditional OOP, where system design tends to involve a rigid class hierarchy, DOP prescribes that we represent our data model as a flexible combination of maps and arrays (or lists), where we can access each piece of information via an information path. This chapter is a deep dive into the second principle of DOP.