The idea is to have something like this:
type StateProcessor struct {
chainReader ChainReader
}
With ChainReader being:
type ChainReader interface {
consensus.ChainHeaderReader
ChainContext
}
This allows someone using state processor as a library to run it on top of a custom data format.