Assembly theory measures a string by the shortest history that builds it. We sharpen this picture in two directions. First, we attach a discrete Dirichlet energy to an assembly space and show that it splits into the size of the space and a secondary energy charging each step vertex the square of its secondary (pathway depth) increment. The assembly index does not imply minimum energy, and the assembly depth and the energy are independent complexity measures. Second, we ask how an ensemble T of strings co-assembles within a single space. Individuating step vertices by their formation histories rather than by the strings they carry yields three joint assembly spaces: the collectively (\( \omega_T \)), multiplicity (\( \mu_T \)), and singly (\( \pi_T \)) optimal ones, where the latter need not exist for certain ensembles and \( |\omega_T| \le |\mu_T| \le |\pi_T| \). All three sizes can differ, and multiplicity can lower the singly optimal size only for ensembles with \( |\pi_T| - |\omega_T| \ge 2 \). Collective optimization is NP-complete, while singly and multiplicity optimizations are NP-hard and lie a priori in the second level of the polynomial hierarchy.