Diffo could have expectations which are attributes on the resource, intrinsically paired with attributes, calculation, aggregates or relationships.. This means records would be capable of implementing Diffo.Outstanding.outstanding/1, where the expectations are known and don't need to be injected.
Expectations are likely to be calculations, and would be derived from persistent data, however they could be persisted data.
The nice part about that is we are closer to intent, because if we have actions that are related to receiving intent they can just change expectations directly.
These expectations can differ in type from actual, particularly when functions are used. Action code can manipulate extensions (for example state change).
Module.outstanding(actual)
Diffo could have expectations which are attributes on the resource, intrinsically paired with attributes, calculation, aggregates or relationships.. This means records would be capable of implementing Diffo.Outstanding.outstanding/1, where the expectations are known and don't need to be injected.
Expectations are likely to be calculations, and would be derived from persistent data, however they could be persisted data.
The nice part about that is we are closer to intent, because if we have actions that are related to receiving intent they can just change expectations directly.
These expectations can differ in type from actual, particularly when functions are used. Action code can manipulate extensions (for example state change).
Module.outstanding(actual)