1 import Base 2 import ./ordinary_app_event_family_runtime.bend as App 3 import ./ordinary_app_observation_data.bend as DTO 4 import ./ordinary_app_registration_fields.bend as Records 5 import ./ordinary_app_event_family_reader.bend as AppReader 6 import ./ordinary_event_declaration.bend as Event 7 import ./execution_context.bend as Ctx 8 import ./trace_facts.bend as Facts 9 import ./owned_event_family_maintenance.bend as Maintenance 10 import ./owned_event_family_catalog.bend as Catalog 11 import ./owned_event_family_lifecycle.bend as Life 12 import ./world.bend as W 13 import ./system.bend as Sys 14 import ./transaction.bend as T 15 import ./capabilities.bend as Cap 16 import ./owner_product.bend as Product 17 import ./owned_event_log.bend as Log 18 import ./ordinary_owned_event.bend as Pub 19 import ./ordinary_owned_event_family_reader_binding.bend as Setup 20 import ./owned_event_family_reader_runtime.bend as Core 21 import ./event_runtime.bend as Ev 22 import ./event_stream.bend as Stream 23 import ./event_family_runtime.bend as FR 24 import ./event_family_routing.bend as Route 25 # Public setup carries the coupled log route and operational stream selection. 26 # All callbacks below are erased indices derived by its canonical constructors. 27 # Initialize the selected family runtime from its coupled owned-log/stream setup, 28 # retaining actual World and supplied family owners. Stream entries are Nat keys; 29 # affine payload P remains in the resource log. Raw routes/lenses are trusted setup. 30 def setup(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~Owners:Type,descriptor:Setup.Setup,world:W.World,owners:Owners,capacity:Nat) -> Route.Runtime>: 31 match descriptor: 32 case Setup.Setup{_,provision,_}:FR.setup(~S,~C,~R,~E,~Domains,~F,~Owners,~make,~sync,~frame,~retain,~inventory,world,provision,owners,capacity) 33 # Register a confined payload reader without executing the body. at consumes and 34 # returns actual P with detached Projection; the body receives only that scoped 35 # request and threads actual Args. Failure returns the runtime rather than losing 36 # its owned family state; registry/reader admission remain the routing layer's job. 37 def register(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),runtime:Route.Runtime>,name:String) -> Route.Registration,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>: 38 Core.register(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),runtime,name) 39 # Read unread selected keys in stream order, resolving each against the owned log. 40 # Return runtime, reader and registry through the routing result. Inspect Reply 41 # outcome as well as transport status: semantic body/missing-payload failure retains 42 # Args, stops the fold and preserves unread position under failed-reader activation 43 # rules. lagged reports bounded retention loss. Projection/request providers remain 44 # trusted; they do not grant moving P out of the log or universal mutation rollback. 45 def run(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),runtime:Route.Runtime>,reader:Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>,registry:Sys.Registry,Unit,Core.Reply,Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>,args:Args) -> Route.RunResult,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>: 46 Core.run(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~FR.synchronize(~S,~C,~R,~E,~F,~Owners,~sync),runtime,reader,registry,args) 47 # Trace-aware run returning fact state separately. Semantic acceptance, rather 48 # than transport success alone, decides reader advancement; inspect Reply.outcome. 49 # Tracing does not expand the scoped payload request or own a copied payload log. 50 def run_traced(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),runtime:Route.Runtime>,reader:Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>,registry:Sys.Registry,Unit,Core.Reply,Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>,args:Args,trace:Facts.State) -> Route.RunResult,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)> & Facts.State: 51 Core.run_traced(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~FR.synchronize(~S,~C,~R,~E,~F,~Owners,~sync),runtime,reader,registry,args,trace) 52 # Return runtime and reader, moving an existing selected-stream position to the 53 # current tick when namespace matches. Does not invoke body, activate a missing 54 # position or retire actual payloads by itself. 55 def skip(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,runtime:Route.Runtime>,reader:Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>) -> Route.Runtime> & Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>: 56 Life.skip(~S,~C,~R,~E,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),runtime,reader) 57 # Return runtime and a detached copy of the selected Nat-key Stream. Does not 58 # advance a reader or expose/copy affine payload P; log ownership stays in World. 59 def inspect(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,runtime:Route.Runtime>) -> Route.Runtime> & Stream.Stream: 60 Life.inspect(~S,~C,~R,~E,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),runtime) 61 # Explicitly remove the validated registry and its reader position. Success returns 62 # runtime; refusal retains runtime, reader and registry. Does not drain the payload 63 # log or invoke an implicit payload destructor; retirement is separate maintenance. 64 def dispose(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),runtime:Route.Runtime>,reader:Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>,registry:Sys.Registry,Unit,Core.Reply,Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>) -> Life.Disposal,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>: 65 Life.dispose(~S,~C,~R,~E,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~Args,~Unit,~Core.Reply,~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body),runtime,reader,registry) 66 def synchronized(~S:Data,~C:Type,~R:Type,~E:Data,~F:Type,~Out:Type,tick:Nat,output:Out,returned:W.World & F) -> Route.Runtime & Out: 67 match returned: 68 case (world,family):(Route.Runtime{world,family,tick},output) 69 def world_returned(~S:Data,~C:Type,~R:Type,~E:Data,~F:Type,~Owners:Type,~sync:F -> Nat -> List<&2,E> -> F,~Out:Type,state:FR.State,+tick:Nat,returned:W.World & Out) -> Route.Runtime> & Out: 70 match returned: 71 case (world,output):synchronized(~S,~C,~R,~E,~FR.State,~Out,tick,output,FR.synchronize(~S,~C,~R,~E,~F,~Owners,~sync,world,state,tick)) 72 # Advanced World action adapter: return its actual World and Out, increment the 73 # family tick and synchronize publications. Arbitrary action effects are trusted; 74 # this is not a gameplay capability or implicit structural barrier. 75 def with_world(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Out:Type,action:W.World -> W.World & Out,runtime:Route.Runtime>) -> Route.Runtime> & Out: 76 match runtime: 77 case Route.Runtime{world,state,tick}:world_returned(~S,~C,~R,~E,~F,~Owners,~sync,~Out,state,1n+tick,action(world)) 78 # Advance family frame/retention, then retire payloads no longer represented by 79 # the retained publications through the complete typed catalog. Return actual 80 # retirement Receipt with runtime; no affine payload is copied into stream metadata. 81 def frame(~S:Data,~C:Type,~User:Type,~Logs:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Log.Log

,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,P,Rest,E,Domains,F,path,inject,select,identity,make,sync,frame,retain,inventory,take,put>,~Owners:Type,~Receipt:Type,~retire:Logs -> List<&2,E> -> Logs & Receipt,~drain:Logs -> Logs & Receipt,~clear:F -> F,~catalog:Catalog.Catalog,runtime:Route.Runtime,E,FR.State>) -> Route.Runtime,E,FR.State> & Receipt: 82 Maintenance.frame(~S,~C,~User,~Logs,~E,~F,~Owners,~Receipt,~retire,~drain,~clear,~catalog,~frame,~retain,runtime) 83 # Drain all catalogued owned logs into an actual Receipt and clear family stream/ 84 # publication state. Retain runtime owners; this is not disposal of every registry 85 # or an automatic host cleanup callback. See docs/parity/affine-events.md. 86 def shutdown(~S:Data,~C:Type,~User:Type,~Logs:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Log.Log

,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,P,Rest,E,Domains,F,path,inject,select,identity,make,sync,frame,retain,inventory,take,put>,~Owners:Type,~Receipt:Type,~retire:Logs -> List<&2,E> -> Logs & Receipt,~drain:Logs -> Logs & Receipt,~clear:F -> F,~catalog:Catalog.Catalog,runtime:Route.Runtime,E,FR.State>) -> Route.Runtime,E,FR.State> & Receipt: 87 Maintenance.shutdown(~S,~C,~User,~Logs,~E,~F,~Owners,~Receipt,~retire,~drain,~clear,~catalog,runtime) 88 89 # Advanced context-preserving trace bridge to run, returning context, actual family 90 # state/reader/registry and reply through ContextRunResult. No new payload authority. 91 def run_context(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),context:Ctx.Context>,family:FR.State,tick:Nat,reader:Route.Reader,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>,registry:Sys.Registry,Unit,Core.Reply,Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>,args:Args) -> Route.ContextRunResult,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>: 92 match context: 93 case Ctx.Context{world,trace}:Route.context_returned(~S,~C,~R,~E,~Nat,~FR.State,~Args,~Unit,~Core.Reply,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body),Core.run_traced(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~FR.synchronize(~S,~C,~R,~E,~F,~Owners,~sync),Route.Runtime{world,family,tick},reader,registry,args,trace)) 94 95 # Register a confined reader and wrap its actual reader/registry with the matching 96 # ordinary event-domain declaration for App metadata. No body invocation occurs. 97 def register_app(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),runtime:Route.Runtime>,name:String) -> AppReader.Registration,Args,Unit,Core.Reply,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body)>: 98 AppReader.registered(~S,~C,~R,~E,~Nat,~FR.State,~Args,~Unit,~Core.Reply,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body),Event.read(~S,~Nat,Setup.domain(~S,~P,identity)),Core.register(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,~FR.State,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),runtime,name)) 99 100 # Install onto an ordinary family App. done receives the extended actual owners; 101 # failed receives the prior App shape with returned runtime on admission refusal. 102 # Preserves prior observers/debug and adds metadata, not a new gameplay payload grant. 103 def install(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream,~put:F -> Stream.Stream -> F,~descriptor:Setup.Setup,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request -> H -> Args -> H & (T.Outcome & Args),~Previous:Type,~Rows:Data,~prior:W.World -> W.World & DTO.Observation,~fold:Previous -> Previous & List<&2,Records.Fields>,~Output:Type,done:AppReader.Application(~S,~C,~R,~E,~Nat,~FR.State,~Args,~Unit,~Core.Reply,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body),~Previous,~Rows,~prior,~fold) -> Output,failed:App.Application,Previous,Rows,prior,fold> -> Output,value:App.Application,Previous,Rows,prior,fold>,name:String) -> Output: 104 match value: 105 case App.Application{schema,runtime,previous,recipe,debug}:AppReader.installed(~S,~C,~R,~E,~Nat,~FR.State,~Args,~Unit,~Core.Reply,~FR.take(~S,~Nat,~E,~F,~Owners,~take),~FR.put(~S,~Nat,~E,~F,~Owners,~put),~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body),~Previous,~Rows,~prior,~fold,~Output,done,failed,schema,previous,recipe,debug,register_app(~S,~C,~R,~P,~Rest,~E,~Domains,~F,~path,~inject,~select,~identity,~make,~sync,~frame,~retain,~inventory,~take,~put,~descriptor,~Owners,~Request,~Projection,~Args,~Error,~at,~body,runtime,name))