1 import Base 2 import ./world.bend as W 3 import ./machine.bend as M 4 import ./machine_world.bend as MW 5 import ./ordinary_machine_declaration.bend as OD 6 import ./ordinary_app_machine.bend as Machine 7 import ./ordinary_app_composer.bend as Build 8 import ./ordinary_app_registration_fields.bend as Fields 9 import ./ordinary_app_observation_data.bend as DTO 10 # Full existing Data slot; no state transition, structural flush or reader work. 11 # Name and slot lens come from the SAME operative ordinary declaration. 12 # Detached full existing machine Slot plus declaration name, including queued and 13 # previous state metadata. This is a Data observation, not an execution capability. 14 type View is Data: 15 View{name:String,slot:M.Slot} 16 def returned(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~take:R -> R & M.Slot,~put:R -> M.Slot -> R,~same:V -> V -> Bool,~declaration:OD.Declaration,~render:V -> String,~Owners:Type,~Rows:Data,~prior:W.World -> W.World & DTO.Observation,~fold:Owners -> Owners & List<&2,Fields.Fields>,owners:Owners,recipe:Machine.Recipe(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold),result:W.World & M.Slot) -> Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold) & Maybe<&2,View>: 17 match result: 18 case (world,slot):(Build.Registered{world,owners,recipe,True{}},Some{View{OD.name(~S,~K,~V,~R,~take,declaration),slot}}) 19 # Return App with optional full declared machine Slot. Disabled returns None 20 # before slot projection; enabled retains actual World/registration owners and 21 # recipe. No state transition, queue flush, barrier or reader advancement occurs. 22 def snapshot(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~take:R -> R & M.Slot,~put:R -> M.Slot -> R,~same:V -> V -> Bool,~declaration:OD.Declaration,~render:V -> String,~Owners:Type,~Rows:Data,~prior:W.World -> W.World & DTO.Observation,~fold:Owners -> Owners & List<&2,Fields.Fields>,app:Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold)) -> Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold) & Maybe<&2,View>: 23 match app: 24 case Build.Registered{world,owners,recipe,True{}}:returned(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold,owners,recipe,MW.take(~S,~K,~V,~C,~R,~E,~take,world)) 25 case app:(app,None{})