We believe that the bottom level architecture of XFS should be as simple as possible, and the interfaces to XFS (including high level programming languages for developers and the user interface for users) should be as easy to understand as possible. Where complexity is inevitable, it should be pushed into the "middle layers" of the protocol, that are not part of the core consensus but are also not seen by end users, argument serialization and deserialization scripts, storage data structure models, the badger storage interface and the wire protocol, etc.