def ScopeGrant
bendvy-ecs-core@0.1.0.3 · execution_command_permission.bend:120
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as ExecutionCommandPermission
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_resource_policy.bend as Policy
import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_store.bend as ScopeStore
import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_command.bend as ScopeCommands
120def ScopeGrant(~S:Data,~resources:Layout.Layout,~Q:Type,~K:Type) -> Type:
121 @-route:Layout.Route -> @-valid:{Layout.grant_valid(~resources,~route) == True{} : Bool} -> @-payload:{Layout.payload(resources,route) == ScopeStore.Store<S> : Type} -> @-view:{Layout.view(resources,route) == ScopeStore.View<S> : Data} -> @-protected:{Layout.policy(resources,route) == Policy.ProtectedLifetimeScope{S} : Policy.Policy} -> K -> K & ScopeCommands.Commands<Q,S>