def project
import bendvy-ecs-core@0.1.0.4/restored_row.bend as RestoredRowimport Base
28def project(~S:Data,~C:Type,~V:Data,~project:C -> C & V,cell:Cell<S,C>) -> Projected<S,C,V>:
29 match cell:
30 case Taken{id,None{},stamp,dirty,cold}: Projected{Taken{id,None{},stamp,dirty,cold},None{}}
31 case Taken{id,Some{owner},stamp,dirty,cold}: projected_owner(~S,~C,~V,id,stamp,dirty,cold,project(owner))
32 case Untaken{column}: Deferred{Untaken{column}}