... it's an idea to be considered, as a feature for 'Ola AH' Programming Language.
... this way LightPoint objects can be formed by combining parts (states & strategies) coming from multiple sources.
- using a reflection feature, one or more of strategies with state can form a LightPoint object,
- 'sunsail aware' strategy is a strategy with access to a state & a router ... is aware of sunsail's coordinates in space as well,
- there can be a 'CasedStrategy' class (a subclass of a 'sunsail aware' strategy) that depending on a given value in state executes a proper strategy it contains,
- initial state, state changes & state after strategy execution can be used to emulate a method call in a LightPoint object,
- certificates should be used with state, values of certificate's owner & a timestamp value synchronized with local clock will allow for 'case identification' for methods' execution. that way in the case of concurrent method calls, there won't be any disambiguity & disparity between method call & callee's order,
- concurrent priority of method calls' are still a matter to consider,
- certificates in state shouldn't stay there forever,
- strategies & state parts forming a new LightPoint object might (but don't have to) originate from many different surrounding objects, then be mixed & joined together.
- perhaps state change events can be used to trigger 'return message delivery code part' that affects other objects - or there can be different way.