anchor.diff:              let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'trySetEntityFacetNames' due to: " + scstring exn, None)
               struct (violation, World.choose oldWorld)
   
  +    let getEyePosition3d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyePosition3d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector3> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyePosition3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setEyePosition3d value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<Vector3> value world with
  +                | Some value -> value :?> Vector3
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to Vector3."
  +            let result = World.setEyePosition3d value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setEyePosition3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyeRotation3d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyeRotation3d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Quaternion> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyeRotation3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setEyeRotation3d value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<Quaternion> value world with
  +                | Some value -> value :?> Quaternion
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to Quaternion."
  +            let result = World.setEyeRotation3d value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setEyeRotation3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyeProjection3d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyeProjection3d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Matrix4x4> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyeProjection3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setEyeProjection3d value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<Matrix4x4> value world with
  +                | Some value -> value :?> Matrix4x4
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to Matrix4x4."
  +            let result = World.setEyeProjection3d value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setEyeProjection3d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyePosition2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyePosition2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyePosition2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setEyePosition2d value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<Vector2> value world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to Vector2."
  +            let result = World.setEyePosition2d value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setEyePosition2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyeSize2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyeSize2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyeSize2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyeMargin2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyeMargin2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyeMargin2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setEyeSize2d value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<Vector2> value world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to Vector2."
  +            let result = World.setEyeSize2d value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setEyeSize2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getEyeBounds2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getEyeBounds2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Box2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getEyeBounds2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getOmniScreenOpt world =
  +        let oldWorld = world
  +        try
  +            let result = World.getOmniScreenOpt world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<FSharpOption<Screen>> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getOmniScreenOpt' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setOmniScreenOpt value world =
  +        let oldWorld = world
  +        try
  +            let value =
  +                match ScriptingSystem.tryExport typeof<FSharpOption<Screen>> value world with
  +                | Some value -> value :?> FSharpOption<Screen>
  +                | None -> failwith "Invalid argument type for 'value'; expecting a value convertable to FSharpOption`1."
  +            let result = World.setOmniScreenOpt value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setOmniScreenOpt' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getOmniScreen world =
  +        let oldWorld = world
  +        try
  +            let result = World.getOmniScreen world
  +            let value = result
  +            let value = let str = scstring value in if Symbol.shouldBeExplicit str then Scripting.String str else Scripting.Keyword str
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getOmniScreen' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setOmniScreen value world =
  +        let oldWorld = world
  +        try
  +            let struct (value, world) =
  +                let context = World.getScriptContext world
  +                match World.evalInternal value world with
  +                | struct (Scripting.String str, world)
  +                | struct (Scripting.Keyword str, world) ->
  +                    let relation = Relation.makeFromString str
  +                    let address = Relation.resolve context.SimulantAddress relation
  +                    struct (Screen address, world)
  +                | struct (Scripting.Violation (_, error, _), _) -> failwith error
  +                | struct (_, _) -> failwith "Relation must be either a String or Keyword."
  +            let result = World.setOmniScreen value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setOmniScreen' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getSelectedScreenOpt world =
  +        let oldWorld = world
  +        try
  +            let result = World.getSelectedScreenOpt world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<FSharpOption<Screen>> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getSelectedScreenOpt' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let constrainEyeBounds2d bounds world =
  +        let oldWorld = world
  +        try
  +            let bounds =
  +                match ScriptingSystem.tryExport typeof<Box2> bounds world with
  +                | Some value -> value :?> Box2
  +                | None -> failwith "Invalid argument type for 'bounds'; expecting a value convertable to Box2."
  +            let result = World.constrainEyeBounds2d bounds world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'constrainEyeBounds2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getSelectedScreen world =
  +        let oldWorld = world
  +        try
  +            let result = World.getSelectedScreen world
  +            let value = result
  +            let value = let str = scstring value in if Symbol.shouldBeExplicit str then Scripting.String str else Scripting.Keyword str
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getSelectedScreen' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let setSelectedScreen value world =
  +        let oldWorld = world
  +        try
  +            let struct (value, world) =
  +                let context = World.getScriptContext world
  +                match World.evalInternal value world with
  +                | struct (Scripting.String str, world)
  +                | struct (Scripting.Keyword str, world) ->
  +                    let relation = Relation.makeFromString str
  +                    let address = Relation.resolve context.SimulantAddress relation
  +                    struct (Screen address, world)
  +                | struct (Scripting.Violation (_, error, _), _) -> failwith error
  +                | struct (_, _) -> failwith "Relation must be either a String or Keyword."
  +            let result = World.setSelectedScreen value world
  +            struct (Scripting.Unit, result)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'setSelectedScreen' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getViewBoundsRelative2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getViewBoundsRelative2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Box2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getViewBoundsRelative2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getViewBoundsAbsolute2d world =
  +        let oldWorld = world
  +        try
  +            let result = World.getViewBoundsAbsolute2d world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Box2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getViewBoundsAbsolute2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let getViewBounds2d absolute world =
  +        let oldWorld = world
  +        try
  +            let absolute =
  +                match ScriptingSystem.tryExport typeof<Boolean> absolute world with
  +                | Some value -> value :?> Boolean
  +                | None -> failwith "Invalid argument type for 'absolute'; expecting a value convertable to Boolean."
  +            let result = World.getViewBounds2d absolute world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Box2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'getViewBounds2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let isBoundsInView2d absolute bounds world =
  +        let oldWorld = world
  +        try
  +            let absolute =
  +                match ScriptingSystem.tryExport typeof<Boolean> absolute world with
  +                | Some value -> value :?> Boolean
  +                | None -> failwith "Invalid argument type for 'absolute'; expecting a value convertable to Boolean."
  +            let bounds =
  +                match ScriptingSystem.tryExport typeof<Box2> bounds world with
  +                | Some value -> value :?> Box2
  +                | None -> failwith "Invalid argument type for 'bounds'; expecting a value convertable to Box2."
  +            let result = World.isBoundsInView2d absolute bounds world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Boolean> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'isBoundsInView2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let mouseToScreen2d mousePosition world =
  +        let oldWorld = world
  +        try
  +            let mousePosition =
  +                match ScriptingSystem.tryExport typeof<Vector2> mousePosition world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'mousePosition'; expecting a value convertable to Vector2."
  +            let result = World.mouseToScreen2d mousePosition world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'mouseToScreen2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let mouseToWorld2d absolute mousePosition world =
  +        let oldWorld = world
  +        try
  +            let absolute =
  +                match ScriptingSystem.tryExport typeof<Boolean> absolute world with
  +                | Some value -> value :?> Boolean
  +                | None -> failwith "Invalid argument type for 'absolute'; expecting a value convertable to Boolean."
  +            let mousePosition =
  +                match ScriptingSystem.tryExport typeof<Vector2> mousePosition world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'mousePosition'; expecting a value convertable to Vector2."
  +            let result = World.mouseToWorld2d absolute mousePosition world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'mouseToWorld2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
  +    let mouseToEntity2d absolute entityPosition mousePosition world =
  +        let oldWorld = world
  +        try
  +            let absolute =
  +                match ScriptingSystem.tryExport typeof<Boolean> absolute world with
  +                | Some value -> value :?> Boolean
  +                | None -> failwith "Invalid argument type for 'absolute'; expecting a value convertable to Boolean."
  +            let entityPosition =
  +                match ScriptingSystem.tryExport typeof<Vector2> entityPosition world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'entityPosition'; expecting a value convertable to Vector2."
  +            let mousePosition =
  +                match ScriptingSystem.tryExport typeof<Vector2> mousePosition world with
  +                | Some value -> value :?> Vector2
  +                | None -> failwith "Invalid argument type for 'mousePosition'; expecting a value convertable to Vector2."
  +            let result = World.mouseToEntity2d absolute entityPosition mousePosition world
  +            let value = result
  +            let value = ScriptingSystem.tryImport typeof<Vector2> value world |> Option.get
  +            struct (value, world)
  +        with exn ->
  +            let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'mouseToEntity2d' due to: " + scstring exn, None)
  +            struct (violation, World.choose oldWorld)
  +
       let getImperative world =
           let oldWorld = world
           try
  
positive.code:             struct (value, world)
          with exn ->
              let violation = Scripting.Violation (["InvalidBindingInvocation"], "Could not invoke binding 'isMouseButtonDown' due to: " + scstring exn, None)
              struct (violation, World.choose oldWorld)
  
      let isKeyboardKeyDown key world =
  
negative.code:              ("hintAudioPackageUse", { Fn = evalHintAudioPackageUseBinding; Pars = [|"packageName"|]; DocOpt = None })
               ("hintAudioPackageDisuse", { Fn = evalHintAudioPackageDisuseBinding; Pars = [|"packageName"|]; DocOpt = None })
               ("reloadAudioAssets", { Fn = evalReloadAudioAssetsBinding; Pars = [||]; DocOpt = None })
               ("hintRenderPackageUse2d", { Fn = evalHintRenderPackageUse2dBinding; Pars = [|"packageName"|]; DocOpt = None })
               ("hintRenderPackageDisuse2d", { Fn = evalHintRenderPackageDisuse2dBinding; Pars = [|"packageName"|]; DocOpt = None })
               ("reloadRenderAssets2d", { Fn = evalReloadRenderAssets2dBinding; Pars = [||]; DocOpt = None })
               ("localizeBodyShape", { Fn = evalLocalizeBodyShapeBinding; Pars = [|"extent"; "bodyShape"|]; DocOpt = None })
               ("bodyExists2d", { Fn = evalBodyExists2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("getBodyContactNormals2d", { Fn = evalGetBodyContactNormals2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("getBodyLinearVelocity2d", { Fn = evalGetBodyLinearVelocity2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("getBodyToGroundContactNormals2d", { Fn = evalGetBodyToGroundContactNormals2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("getBodyToGroundContactNormalOpt2d", { Fn = evalGetBodyToGroundContactNormalOpt2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("getBodyToGroundContactTangentOpt2d", { Fn = evalGetBodyToGroundContactTangentOpt2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("isBodyOnGround2d", { Fn = evalIsBodyOnGround2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("createBody2d", { Fn = evalCreateBody2dBinding; Pars = [|"entity"; "entityId"; "bodyProperties"|]; DocOpt = None })
               ("createBodies2d", { Fn = evalCreateBodies2dBinding; Pars = [|"entity"; "entityId"; "bodiesProperties"|]; DocOpt = None })
               ("destroyBody2d", { Fn = evalDestroyBody2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("destroyBodies2d", { Fn = evalDestroyBodies2dBinding; Pars = [|"physicsIds"|]; DocOpt = None })
               ("createJoint2d", { Fn = evalCreateJoint2dBinding; Pars = [|"entity"; "entityId"; "jointProperties"|]; DocOpt = None })
               ("createJoints2d", { Fn = evalCreateJoints2dBinding; Pars = [|"entity"; "entityId"; "jointsProperties"|]; DocOpt = None })
               ("destroyJoint2d", { Fn = evalDestroyJoint2dBinding; Pars = [|"physicsId"|]; DocOpt = None })
               ("destroyJoints2d", { Fn = evalDestroyJoints2dBinding; Pars = [|"physicsIds"|]; DocOpt = None })
               ("setBodyEnabled2d", { Fn = evalSetBodyEnabled2dBinding; Pars = [|"enabled"; "physicsId"|]; DocOpt = None })
               ("setBodyPosition2d", { Fn = evalSetBodyPosition2dBinding; Pars = [|"position"; "physicsId"|]; DocOpt = None })
               ("setBodyRotation", { Fn = evalSetBodyRotationBinding; Pars = [|"rotation"; "physicsId"|]; DocOpt = None })
               ("setBodyLinearVelocity2d", { Fn = evalSetBodyLinearVelocity2dBinding; Pars = [|"linearVelocity"; "physicsId"|]; DocOpt = None })
               ("applyBodyLinearImpulse2d", { Fn = evalApplyBodyLinearImpulse2dBinding; Pars = [|"linearImpulse"; "physicsId"|]; DocOpt = None })
               ("setBodyAngularVelocity2d", { Fn = evalSetBodyAngularVelocity2dBinding; Pars = [|"angularVelocity"; "physicsId"|]; DocOpt = None })
               ("applyBodyAngularImpulse2d", { Fn = evalApplyBodyAngularImpulse2dBinding; Pars = [|"angularImpulse"; "physicsId"|]; DocOpt = None })
               ("applyBodyForce2d", { Fn = evalApplyBodyForce2dBinding; Pars = [|"force"; "physicsId"|]; DocOpt = None })
               ("isMouseButtonDown", { Fn = evalIsMouseButtonDownBinding; Pars = [|"mouseButton"|]; DocOpt = None })
               ("getMousePosition2d", { Fn = evalGetMousePosition2dBinding; Pars = [||]; DocOpt = None })
               ("isKeyboardKeyDown", { Fn = evalIsKeyboardKeyDownBinding; Pars = [|"key"|]; DocOpt = None })
               ("expandContent", { Fn = evalExpandContentBinding; Pars = [|"setScreenSplash"; "content"; "origin"; "owner"; "parent"|]; DocOpt = None })
               ("destroyImmediate", { Fn = evalDestroyImmediateBinding; Pars = [|"simulant"|]; DocOpt = None })
  