Within a molecular tree, atoms and bonds play complementary roles. Atoms define nuclear particle counts, valence electron counts, and configuration. Bonds define bonding electron counts and conformation. Constitution, configuration, and conformation are all influenced by the individual and collective behavior of atoms and bonds. At the lowest level, atom and bond behavior are governed by their respective attributes. An attribute is a key/value pair in which the key is a name composed of a character sequence and the value is constrained by a single, immutable type. Types can be composed, a feature supported by many programming languages.