The idea is to isolate validation to a pure functional operation over a data set. The presumption is that the data set (chain) is stored and reproduced faithfully (presumed to be consensus behavior). Validation of an object is broken into context free and contextual (requiring population from other objects), with all validation methods on the objects themselves. The validation classes invoke validation and manage the determination of relative strength of a given branch. By objects self-validating against their own metadata, testing full validation becomes straightforward (functional).