torchcell.datamodels.ontology_checks.lane_membership

lane_membership() → dict[str, frozenset[type[BaseModel]]][source]

The three record lanes, each closed under inheritance AND composition.

A lane is what an experiment’s three slots point at: the genotype it applied, the environment it applied it in, and the phenotype it observed. Keeping these disjoint is what makes a persistent entity separable from a contingent observation: a medium that could also be reached from a phenotype would mean the observation carries part of the thing observed.