def checked
bendvy-ecs-core@0.1.0.3 · execution_relation_world_publication.bend:22
import bendvy-ecs-core@0.1.0.3/execution_relation_world_publication.bend as ExecutionRelationWorldPublication
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_relation_context.bend as Context
import bendvy-ecs-core@0.1.0.3/execution_relation_resource_publication.bend as Resource
import bendvy-ecs-core@0.1.0.3/execution_relation_store.bend as Store
import bendvy-ecs-core@0.1.0.3/execution_relation_operation.bend as O
import bendvy-ecs-core@0.1.0.3/execution_resource_policy.bend as Policy
import bendvy-ecs-core@0.1.0.3/relation_types.bend as T
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
22def checked(~S:Data,~C:Type,~WR:Type,~E:Data,~resources:Layout.Layout,~same:{WR == Layout.resources(~S,resources) : Type},~route:Layout.Route,~valid:{Layout.grant_valid(~resources,~route) == True{} : Bool},~descriptor:T.Descriptor<S>,~payload:{Layout.payload(resources,route) == Store.Store<S,descriptor> : Type},~view:{Layout.view(resources,route) == Store.View<S,descriptor> : Data},~protected:{Layout.policy(resources,route) == Policy.ProtectedRelation{S,descriptor} : Policy.Policy},allowed:Bool,binding:Context.Binding<S,WR,resources,same,route,descriptor,payload,view,protected>,world:W.World<S,C,WR,E>,operation:O.Operation<S>,tick:Tick.Tick) -> W.World<S,C,WR,E> & (Context.Binding<S,WR,resources,same,route,descriptor,payload,view,protected> & Store.Receipt<S>):
23 match allowed binding world:
24 case False{} binding world:(world,(binding,Store.Refused{operation,Store.NamespaceMismatch{}}))
25 case True{} Context.Binding{+context} W.World{+namespace,allocator,columns,owners,events,pending,registrations,nextSystem,clock,lifecycle}:restored(S,C,WR,E,Context.Binding<S,WR,resources,same,route,descriptor,payload,view,protected>,Context.Binding{context},Frame{namespace,columns,events,pending,registrations,nextSystem,clock,lifecycle},Resource.apply(~S,~WR,~resources,~same,~route,~valid,~descriptor,~payload,~view,context,namespace,allocator,owners,operation,tick))