As complex autonomous robotic systems become more widespread, the goals of transparent and reusable Artificial Intelligence (AI) become more important. In this paper we analyse how the principles behind Behavior Trees (BTs), an increasingly popular tree-structured control architecture, are applicable to these goals. Using structured programming as a guide, we analyse the BT principles of reactiveness and modularity in a formal framework of action selection. Proceeding from these principles, we review a number of challenging use-cases of BTs in the literature, and show that reasoning via these principles leads to compatible solutions. Extending these arguments, we introduce a new class of control architectures we call generalised BTs or $k$-BTs and show how they can extend the applicability of BTs to some of the aforementioned challenging BT use-cases while preserving the BT principles. We compare BTs to a number of other control architectures within this framework, and show which forms of decision-making can and cannot be equivalently represented by BTs. This allows us to construct a hierarchy of architectures and to show how BTs fit into such a hierarchy.