def Program
bendvy-ecs-core@0.1.0.3 · execution_command_system.bend:26
import bendvy-ecs-core@0.1.0.3/execution_command_system.bend as ExecutionCommandSystem
import Base
import bendvy-ecs-core@0.1.0.3/execution_effects.bend as E
import bendvy-ecs-core@0.1.0.3/execution_builder.bend as Build
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_command_local.bend as Local
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as Permission
26def Program(~S:Data,~C:Type,~R:Type,~layout:Layout.Layout,~resources:Layout.Layout,~route:Layout.Route,~Ops:Data -> (Type -> Type) -> Type -> Type -> Type) -> Type:
27 @-Permit:Data -> @-F:(Type -> Type) -> @-effects:E.Effects<F> -> @-H:Type -> @-Q:Type -> @-commands:Local.Commands<Q,S,Layout.payload(layout,route)> -> @-B:Type -> @-builder:Build.Builder(~S,~(Layout.columns(~S,layout)),~C,~R,~Permit,~F,~H,~B) -> @-K:Type -> @-entity:Permission.Grant(~S,~layout,~Permit,~F,~Q,~K) -> @-relations:Permission.RelationGrant(~S,~resources,~Q,~K) -> @-scopes:Permission.ScopeGrant(~S,~resources,~Q,~K) -> B -> K -> B & (K & Ops(Permit,F,H,Q))