diff --git a/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/IcarusScriptObjectModelConverter.cs b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/IcarusScriptObjectModelConverter.cs
new file mode 100644
index 00000000..b2448481
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/IcarusScriptObjectModelConverter.cs
@@ -0,0 +1,49 @@
+//
+// MyClass.cs
+//
+// Author:
+// beckermj <>
+//
+// Copyright (c) 2023 ${CopyrightHolder}
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+using UniversalEditor.ObjectModels.Icarus;
+using UniversalEditor.ObjectModels.SourceCode;
+
+namespace UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator
+{
+ public class IcarusScriptObjectModelConverter : ObjectModelConverter
+ {
+ protected override void ConvertInternal(ObjectModel source, ObjectModel destination)
+ {
+ if (destination is CodeObjectModel)
+ {
+
+ }
+ }
+ protected override ObjectModelConversion[] GetSupportedConversionsInternal()
+ {
+ ObjectModelConversion[] supported = new ObjectModelConversion[]
+ {
+ new ObjectModelConversion
+ (
+ new ObjectModelReference(typeof(IcarusScriptObjectModel)),
+ new ObjectModelReference(typeof(CodeObjectModel))
+ )
+ };
+ return supported;
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/Properties/AssemblyInfo.cs b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8ea11f4b
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/Properties/AssemblyInfo.cs
@@ -0,0 +1,46 @@
+//
+// AssemblyInfo.cs
+//
+// Author:
+// beckermj <>
+//
+// Copyright (c) 2023 ${CopyrightHolder}
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator.csproj b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator.csproj
new file mode 100644
index 00000000..5ae35f47
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator/UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator.csproj
@@ -0,0 +1,56 @@
+
+
+
+ Debug
+ AnyCPU
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367}
+ Library
+ UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator
+ UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator
+ v4.7
+ 4.0.2019.12
+
+
+ true
+ full
+ false
+ ..\..\Output\Debug\Plugins
+ DEBUG;
+ prompt
+ 4
+ false
+
+
+ true
+ ..\..\Output\Release\Plugins
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+
+ {2D4737E6-6D95-408A-90DB-8DFF38147E85}
+ UniversalEditor.Core
+
+
+ {30467E5C-05BC-4856-AADC-13906EF4CADD}
+ UniversalEditor.Essential
+
+
+ {B2DFA94A-A468-48A1-AB31-04EE432E7B2B}
+ UniversalEditor.Plugins.RavenSoftware
+
+
+ {CC5C9010-83EF-491D-9262-2CED509D895D}
+ UniversalEditor.Plugins.SoftwareDevelopment
+
+
+
+
diff --git a/UniversalEditor.sln b/UniversalEditor.sln
index 80549a2f..ef906810 100644
--- a/UniversalEditor.sln
+++ b/UniversalEditor.sln
@@ -227,6 +227,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Rol
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Roland.UserInterface", "Plugins.UserInterface\UniversalEditor.Plugins.Roland.UserInterface\UniversalEditor.Plugins.Roland.UserInterface.csproj", "{5C61A834-5BC7-4A61-B839-C84724ACBAF4}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator", "Plugins\UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator\UniversalEditor.Plugins.RavenSoftware.IcarusCodeGenerator.csproj", "{B793A424-4EC1-41ED-A807-B12B2F6D1367}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -659,6 +661,10 @@ Global
{5C61A834-5BC7-4A61-B839-C84724ACBAF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5C61A834-5BC7-4A61-B839-C84724ACBAF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5C61A834-5BC7-4A61-B839-C84724ACBAF4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{6F0AB1AF-E1A1-4D19-B19C-05BBB15C94B2} = {05D15661-E684-4EC9-8FBD-C014BA433CC5}
@@ -767,6 +773,7 @@ Global
{17A0F754-C902-49EB-A21D-93A4EE75059B} = {7B535D74-5496-4802-B809-89ED88274A91}
{51428C2D-24FB-474A-BEC5-4F1369B5001C} = {2ED32D16-6C06-4450-909A-40D32DA67FB4}
{5C61A834-5BC7-4A61-B839-C84724ACBAF4} = {7B535D74-5496-4802-B809-89ED88274A91}
+ {B793A424-4EC1-41ED-A807-B12B2F6D1367} = {2ED32D16-6C06-4450-909A-40D32DA67FB4}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0