diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.go b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.go
index 7aa0f7c..46af5f2 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.go
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.go
@@ -45,50 +45,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 type EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0
 
-// Enum for event groups (Metric Dimension A second group)
-type EventGroupsMetricDimensionASecondGroup uint32
+// Enum for project (Metric Dimension A second group)
+type ProjectMetricDimensionASecondGroup uint32
 const (
-_ EventGroupsMetricDimensionASecondGroup = iota
+_ ProjectMetricDimensionASecondGroup = iota
   This = 1
   Is = 2
   Another = 3
   Test = 4
 )
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+type EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup
 
-// Enum for event groups (Metric Dimension 2)
-type EventGroupsMetricDimension2 uint32
+// Enum for project (Metric Dimension 2)
+type ProjectMetricDimension2 uint32
 const (
-_ EventGroupsMetricDimension2 = iota
+_ ProjectMetricDimension2 = iota
   ThisMetric = 0
   HasNo = 2
   Name = 4
 )
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+type EventGroupsMetricDimension2 = ProjectMetricDimension2
 
-// Enum for metric (Metric Dimension First)
-type MetricMetricDimensionFirst uint32
+// Enum for project (Metric Dimension First)
+type ProjectMetricDimensionFirst uint32
 const (
-_ MetricMetricDimensionFirst = iota
+_ ProjectMetricDimensionFirst = iota
   A = 1
   Set = 2
   OfEvent = 3
   Codes = 4
 )
+// Alias for metric (Metric Dimension First) which has the same event codes
+type MetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-type SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst
+type SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
-// Enum for metric (Metric Dimension Second)
-type MetricMetricDimensionSecond uint32
+// Enum for project (Metric Dimension Second)
+type ProjectMetricDimensionSecond uint32
 const (
-_ MetricMetricDimensionSecond = iota
+_ ProjectMetricDimensionSecond = iota
   Some = 0
   More = 4
   Event = 8
   Codes = 16
 )
+// Alias for metric (Metric Dimension Second) which has the same event codes
+type MetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-type SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond
+type SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 const Config string = "KooHCghjdXN0b21lchAKGvsGCgdwcm9qZWN0EAUaVQoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYA3IIY3VzdG9tZXJ6B3Byb2plY3QafwoVdGhlX290aGVyX21ldHJpY19uYW1lEAoYBSDIASgBUAFiEAoKdGhlX3JlcG9ydBAKGAdyCGN1c3RvbWVyegdwcm9qZWN0ggE1EgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYyAEa+gEKDGV2ZW50IGdyb3VwcxAKGAUgrAIoAVABYhAKCnRoZV9yZXBvcnQQHhgHcghjdXN0b21lcnoHcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjMKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIIY3VzdG9tZXJ6B3Byb2plY3QaRQoTZXhwb25lbnRpYWwgYnVja2V0cxAKGAUg9ANiFAoGcmVwb3J0EChSCAoGEAMYAiACcghjdXN0b21lcnoHcHJvamVjdBqJAQoGbWV0cmljEAoYBSDYBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpABCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
index f7584e1..70d7880 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
@@ -56,75 +56,83 @@
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
-// Enum for event groups (Metric Dimension A second group)
-namespace __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension A second group)
+namespace __project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
 enum Enum {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 };
-}  // __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__
-using EventGroupsMetricDimensionASecondGroup = __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_a_second_group_internal_scope_do_not_use__
+using ProjectMetricDimensionASecondGroup = __project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+using EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
-// Enum for event groups (Metric Dimension 2)
-namespace __event_groups_metric_dimension_2_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension 2)
+namespace __project_metric_dimension_2_internal_scope_do_not_use__ {
 enum Enum {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
   Alias = HasNo,
 };
-}  // __event_groups_metric_dimension_2_internal_scope_do_not_use__
-using EventGroupsMetricDimension2 = __event_groups_metric_dimension_2_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_2_internal_scope_do_not_use__
+using ProjectMetricDimension2 = __project_metric_dimension_2_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+using EventGroupsMetricDimension2 = ProjectMetricDimension2;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
-// Enum for metric (Metric Dimension First)
-namespace __metric_metric_dimension_first_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension First)
+namespace __project_metric_dimension_first_internal_scope_do_not_use__ {
 enum Enum {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 };
-}  // __metric_metric_dimension_first_internal_scope_do_not_use__
-using MetricMetricDimensionFirst = __metric_metric_dimension_first_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_first_internal_scope_do_not_use__
+using ProjectMetricDimensionFirst = __project_metric_dimension_first_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension First) which has the same event codes
+using MetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-using SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst;
+using SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
-// Enum for metric (Metric Dimension Second)
-namespace __metric_metric_dimension_second_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension Second)
+namespace __project_metric_dimension_second_internal_scope_do_not_use__ {
 enum Enum {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 };
-}  // __metric_metric_dimension_second_internal_scope_do_not_use__
-using MetricMetricDimensionSecond = __metric_metric_dimension_second_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_second_internal_scope_do_not_use__
+using ProjectMetricDimensionSecond = __project_metric_dimension_second_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension Second) which has the same event codes
+using MetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-using SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond;
+using SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.rs b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.rs
index ba779d1..e51e740 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.rs
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.rs
@@ -43,50 +43,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 pub use TheOtherMetricNameMetricDimension0 as EventGroupsMetricDimensionTheFirstGroup;
 
-// Enum for event groups (Metric Dimension A second group)
+// Enum for project (Metric Dimension A second group)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimensionASecondGroup {
+pub enum ProjectMetricDimensionASecondGroup {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 }
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+pub use ProjectMetricDimensionASecondGroup as EventGroupsMetricDimensionASecondGroup;
 
-// Enum for event groups (Metric Dimension 2)
+// Enum for project (Metric Dimension 2)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimension2 {
+pub enum ProjectMetricDimension2 {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
 }
-impl EventGroupsMetricDimension2 {
+impl ProjectMetricDimension2 {
   #[allow(non_upper_case_globals)]
-  pub const Alias: EventGroupsMetricDimension2 = EventGroupsMetricDimension2::HasNo;
+  pub const Alias: ProjectMetricDimension2 = ProjectMetricDimension2::HasNo;
 }
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+pub use ProjectMetricDimension2 as EventGroupsMetricDimension2;
 
-// Enum for metric (Metric Dimension First)
+// Enum for project (Metric Dimension First)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionFirst {
+pub enum ProjectMetricDimensionFirst {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 }
+// Alias for metric (Metric Dimension First) which has the same event codes
+pub use ProjectMetricDimensionFirst as MetricMetricDimensionFirst;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-pub use MetricMetricDimensionFirst as SecondMetricMetricDimensionFirst;
+pub use ProjectMetricDimensionFirst as SecondMetricMetricDimensionFirst;
 
-// Enum for metric (Metric Dimension Second)
+// Enum for project (Metric Dimension Second)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionSecond {
+pub enum ProjectMetricDimensionSecond {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 }
+// Alias for metric (Metric Dimension Second) which has the same event codes
+pub use ProjectMetricDimensionSecond as MetricMetricDimensionSecond;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-pub use MetricMetricDimensionSecond as SecondMetricMetricDimensionSecond;
+pub use ProjectMetricDimensionSecond as SecondMetricMetricDimensionSecond;
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 pub const CONFIG: &str = "KooHCghjdXN0b21lchAKGvsGCgdwcm9qZWN0EAUaVQoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYA3IIY3VzdG9tZXJ6B3Byb2plY3QafwoVdGhlX290aGVyX21ldHJpY19uYW1lEAoYBSDIASgBUAFiEAoKdGhlX3JlcG9ydBAKGAdyCGN1c3RvbWVyegdwcm9qZWN0ggE1EgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYyAEa+gEKDGV2ZW50IGdyb3VwcxAKGAUgrAIoAVABYhAKCnRoZV9yZXBvcnQQHhgHcghjdXN0b21lcnoHcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjMKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIIY3VzdG9tZXJ6B3Byb2plY3QaRQoTZXhwb25lbnRpYWwgYnVja2V0cxAKGAUg9ANiFAoGcmVwb3J0EChSCAoGEAMYAiACcghjdXN0b21lcnoHcHJvamVjdBqJAQoGbWV0cmljEAoYBSDYBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpABCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.go b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.go
index 0bb936a..27918d9 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.go
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.go
@@ -45,50 +45,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 type EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0
 
-// Enum for event groups (Metric Dimension A second group)
-type EventGroupsMetricDimensionASecondGroup uint32
+// Enum for project (Metric Dimension A second group)
+type ProjectMetricDimensionASecondGroup uint32
 const (
-_ EventGroupsMetricDimensionASecondGroup = iota
+_ ProjectMetricDimensionASecondGroup = iota
   This = 1
   Is = 2
   Another = 3
   Test = 4
 )
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+type EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup
 
-// Enum for event groups (Metric Dimension 2)
-type EventGroupsMetricDimension2 uint32
+// Enum for project (Metric Dimension 2)
+type ProjectMetricDimension2 uint32
 const (
-_ EventGroupsMetricDimension2 = iota
+_ ProjectMetricDimension2 = iota
   ThisMetric = 0
   HasNo = 2
   Name = 4
 )
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+type EventGroupsMetricDimension2 = ProjectMetricDimension2
 
-// Enum for metric (Metric Dimension First)
-type MetricMetricDimensionFirst uint32
+// Enum for project (Metric Dimension First)
+type ProjectMetricDimensionFirst uint32
 const (
-_ MetricMetricDimensionFirst = iota
+_ ProjectMetricDimensionFirst = iota
   A = 1
   Set = 2
   OfEvent = 3
   Codes = 4
 )
+// Alias for metric (Metric Dimension First) which has the same event codes
+type MetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-type SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst
+type SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
-// Enum for metric (Metric Dimension Second)
-type MetricMetricDimensionSecond uint32
+// Enum for project (Metric Dimension Second)
+type ProjectMetricDimensionSecond uint32
 const (
-_ MetricMetricDimensionSecond = iota
+_ ProjectMetricDimensionSecond = iota
   Some = 0
   More = 4
   Event = 8
   Codes = 16
 )
+// Alias for metric (Metric Dimension Second) which has the same event codes
+type MetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-type SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond
+type SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 const Config string = "KoMGCghjdXN0b21lchAKGvQFCgdwcm9qZWN0EAUaQgoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYAxpsChV0aGVfb3RoZXJfbWV0cmljX25hbWUQChgFIMgBKAFQAWIQCgp0aGVfcmVwb3J0EAoYB4IBNRILCAASB0FuRXZlbnQSEAgBEgxBbm90aGVyRXZlbnQSEQgCEg1BIHRoaXJkIGV2ZW50GMgBGucBCgxldmVudCBncm91cHMQChgFIKwCKAFQAWIQCgp0aGVfcmVwb3J0EB4YB4IBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGiAKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBRoyChNleHBvbmVudGlhbCBidWNrZXRzEAoYBSD0A2IUCgZyZXBvcnQQKFIICgYQAxgCIAIadgoGbWV0cmljEAoYBSDYBIIBLwoFRmlyc3QSBQgBEgFBEgcIAhIDU2V0EgsIAxIHT2ZFdmVudBIJCAQSBUNvZGVzggEyCgZTZWNvbmQSCAgAEgRTb21lEggIBBIETW9yZRIJCAgSBUV2ZW50EgkIEBIFQ29kZXMafQoNc2Vjb25kIG1ldHJpYxAKGAUg2QSCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
index 71d99ab..b770db4 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
@@ -56,75 +56,83 @@
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
-// Enum for event groups (Metric Dimension A second group)
-namespace __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension A second group)
+namespace __project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
 enum Enum {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 };
-}  // __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__
-using EventGroupsMetricDimensionASecondGroup = __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_a_second_group_internal_scope_do_not_use__
+using ProjectMetricDimensionASecondGroup = __project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+using EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
-// Enum for event groups (Metric Dimension 2)
-namespace __event_groups_metric_dimension_2_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension 2)
+namespace __project_metric_dimension_2_internal_scope_do_not_use__ {
 enum Enum {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
   Alias = HasNo,
 };
-}  // __event_groups_metric_dimension_2_internal_scope_do_not_use__
-using EventGroupsMetricDimension2 = __event_groups_metric_dimension_2_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_2_internal_scope_do_not_use__
+using ProjectMetricDimension2 = __project_metric_dimension_2_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+using EventGroupsMetricDimension2 = ProjectMetricDimension2;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
-// Enum for metric (Metric Dimension First)
-namespace __metric_metric_dimension_first_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension First)
+namespace __project_metric_dimension_first_internal_scope_do_not_use__ {
 enum Enum {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 };
-}  // __metric_metric_dimension_first_internal_scope_do_not_use__
-using MetricMetricDimensionFirst = __metric_metric_dimension_first_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_first_internal_scope_do_not_use__
+using ProjectMetricDimensionFirst = __project_metric_dimension_first_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension First) which has the same event codes
+using MetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-using SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst;
+using SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
-// Enum for metric (Metric Dimension Second)
-namespace __metric_metric_dimension_second_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension Second)
+namespace __project_metric_dimension_second_internal_scope_do_not_use__ {
 enum Enum {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 };
-}  // __metric_metric_dimension_second_internal_scope_do_not_use__
-using MetricMetricDimensionSecond = __metric_metric_dimension_second_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_second_internal_scope_do_not_use__
+using ProjectMetricDimensionSecond = __project_metric_dimension_second_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension Second) which has the same event codes
+using MetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-using SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond;
+using SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.rs b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.rs
index 28ea75c..36bbdc4 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.rs
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.rs
@@ -43,50 +43,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 pub use TheOtherMetricNameMetricDimension0 as EventGroupsMetricDimensionTheFirstGroup;
 
-// Enum for event groups (Metric Dimension A second group)
+// Enum for project (Metric Dimension A second group)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimensionASecondGroup {
+pub enum ProjectMetricDimensionASecondGroup {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 }
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+pub use ProjectMetricDimensionASecondGroup as EventGroupsMetricDimensionASecondGroup;
 
-// Enum for event groups (Metric Dimension 2)
+// Enum for project (Metric Dimension 2)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimension2 {
+pub enum ProjectMetricDimension2 {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
 }
-impl EventGroupsMetricDimension2 {
+impl ProjectMetricDimension2 {
   #[allow(non_upper_case_globals)]
-  pub const Alias: EventGroupsMetricDimension2 = EventGroupsMetricDimension2::HasNo;
+  pub const Alias: ProjectMetricDimension2 = ProjectMetricDimension2::HasNo;
 }
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+pub use ProjectMetricDimension2 as EventGroupsMetricDimension2;
 
-// Enum for metric (Metric Dimension First)
+// Enum for project (Metric Dimension First)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionFirst {
+pub enum ProjectMetricDimensionFirst {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 }
+// Alias for metric (Metric Dimension First) which has the same event codes
+pub use ProjectMetricDimensionFirst as MetricMetricDimensionFirst;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-pub use MetricMetricDimensionFirst as SecondMetricMetricDimensionFirst;
+pub use ProjectMetricDimensionFirst as SecondMetricMetricDimensionFirst;
 
-// Enum for metric (Metric Dimension Second)
+// Enum for project (Metric Dimension Second)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionSecond {
+pub enum ProjectMetricDimensionSecond {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 }
+// Alias for metric (Metric Dimension Second) which has the same event codes
+pub use ProjectMetricDimensionSecond as MetricMetricDimensionSecond;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-pub use MetricMetricDimensionSecond as SecondMetricMetricDimensionSecond;
+pub use ProjectMetricDimensionSecond as SecondMetricMetricDimensionSecond;
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 pub const CONFIG: &str = "KoMGCghjdXN0b21lchAKGvQFCgdwcm9qZWN0EAUaQgoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYAxpsChV0aGVfb3RoZXJfbWV0cmljX25hbWUQChgFIMgBKAFQAWIQCgp0aGVfcmVwb3J0EAoYB4IBNRILCAASB0FuRXZlbnQSEAgBEgxBbm90aGVyRXZlbnQSEQgCEg1BIHRoaXJkIGV2ZW50GMgBGucBCgxldmVudCBncm91cHMQChgFIKwCKAFQAWIQCgp0aGVfcmVwb3J0EB4YB4IBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGiAKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBRoyChNleHBvbmVudGlhbCBidWNrZXRzEAoYBSD0A2IUCgZyZXBvcnQQKFIICgYQAxgCIAIadgoGbWV0cmljEAoYBSDYBIIBLwoFRmlyc3QSBQgBEgFBEgcIAhIDU2V0EgsIAxIHT2ZFdmVudBIJCAQSBUNvZGVzggEyCgZTZWNvbmQSCAgAEgRTb21lEggIBBIETW9yZRIJCAgSBUV2ZW50EgkIEBIFQ29kZXMafQoNc2Vjb25kIG1ldHJpYxAKGAUg2QSCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.go b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.go
index 5050a6a..16bf9a1 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.go
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.go
@@ -57,50 +57,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 type EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0
 
-// Enum for event groups (Metric Dimension A second group)
-type EventGroupsMetricDimensionASecondGroup uint32
+// Enum for project (Metric Dimension A second group)
+type ProjectMetricDimensionASecondGroup uint32
 const (
-_ EventGroupsMetricDimensionASecondGroup = iota
+_ ProjectMetricDimensionASecondGroup = iota
   This = 1
   Is = 2
   Another = 3
   Test = 4
 )
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+type EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup
 
-// Enum for event groups (Metric Dimension 2)
-type EventGroupsMetricDimension2 uint32
+// Enum for project (Metric Dimension 2)
+type ProjectMetricDimension2 uint32
 const (
-_ EventGroupsMetricDimension2 = iota
+_ ProjectMetricDimension2 = iota
   ThisMetric = 0
   HasNo = 2
   Name = 4
 )
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+type EventGroupsMetricDimension2 = ProjectMetricDimension2
 
-// Enum for metric (Metric Dimension First)
-type MetricMetricDimensionFirst uint32
+// Enum for project (Metric Dimension First)
+type ProjectMetricDimensionFirst uint32
 const (
-_ MetricMetricDimensionFirst = iota
+_ ProjectMetricDimensionFirst = iota
   A = 1
   Set = 2
   OfEvent = 3
   Codes = 4
 )
+// Alias for metric (Metric Dimension First) which has the same event codes
+type MetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-type SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst
+type SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst
 
-// Enum for metric (Metric Dimension Second)
-type MetricMetricDimensionSecond uint32
+// Enum for project (Metric Dimension Second)
+type ProjectMetricDimensionSecond uint32
 const (
-_ MetricMetricDimensionSecond = iota
+_ ProjectMetricDimensionSecond = iota
   Some = 0
   More = 4
   Event = 8
   Codes = 16
 )
+// Alias for metric (Metric Dimension Second) which has the same event codes
+type MetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-type SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond
+type SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 const Config string = "KooHCghjdXN0b21lchAKGvsGCgdwcm9qZWN0EAUaVQoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYA3IIY3VzdG9tZXJ6B3Byb2plY3QafwoVdGhlX290aGVyX21ldHJpY19uYW1lEAoYBSDIASgBUAFiEAoKdGhlX3JlcG9ydBAKGAdyCGN1c3RvbWVyegdwcm9qZWN0ggE1EgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYyAEa+gEKDGV2ZW50IGdyb3VwcxAKGAUgrAIoAVABYhAKCnRoZV9yZXBvcnQQHhgHcghjdXN0b21lcnoHcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjMKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIIY3VzdG9tZXJ6B3Byb2plY3QaRQoTZXhwb25lbnRpYWwgYnVja2V0cxAKGAUg9ANiFAoGcmVwb3J0EChSCAoGEAMYAiACcghjdXN0b21lcnoHcHJvamVjdBqJAQoGbWV0cmljEAoYBSDYBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpABCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
index c1190b4..841475d 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
@@ -68,75 +68,83 @@
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
-// Enum for event groups (Metric Dimension A second group)
-namespace __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension A second group)
+namespace __project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
 enum Enum {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 };
-}  // __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__
-using EventGroupsMetricDimensionASecondGroup = __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_a_second_group_internal_scope_do_not_use__
+using ProjectMetricDimensionASecondGroup = __project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+using EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
-// Enum for event groups (Metric Dimension 2)
-namespace __event_groups_metric_dimension_2_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension 2)
+namespace __project_metric_dimension_2_internal_scope_do_not_use__ {
 enum Enum {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
   Alias = HasNo,
 };
-}  // __event_groups_metric_dimension_2_internal_scope_do_not_use__
-using EventGroupsMetricDimension2 = __event_groups_metric_dimension_2_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_2_internal_scope_do_not_use__
+using ProjectMetricDimension2 = __project_metric_dimension_2_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+using EventGroupsMetricDimension2 = ProjectMetricDimension2;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
-// Enum for metric (Metric Dimension First)
-namespace __metric_metric_dimension_first_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension First)
+namespace __project_metric_dimension_first_internal_scope_do_not_use__ {
 enum Enum {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 };
-}  // __metric_metric_dimension_first_internal_scope_do_not_use__
-using MetricMetricDimensionFirst = __metric_metric_dimension_first_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_first_internal_scope_do_not_use__
+using ProjectMetricDimensionFirst = __project_metric_dimension_first_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension First) which has the same event codes
+using MetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-using SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst;
+using SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
-// Enum for metric (Metric Dimension Second)
-namespace __metric_metric_dimension_second_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension Second)
+namespace __project_metric_dimension_second_internal_scope_do_not_use__ {
 enum Enum {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 };
-}  // __metric_metric_dimension_second_internal_scope_do_not_use__
-using MetricMetricDimensionSecond = __metric_metric_dimension_second_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_second_internal_scope_do_not_use__
+using ProjectMetricDimensionSecond = __project_metric_dimension_second_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension Second) which has the same event codes
+using MetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-using SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond;
+using SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.rs b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.rs
index 23d85fc..7ce06ca 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.rs
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.rs
@@ -55,50 +55,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 pub use TheOtherMetricNameMetricDimension0 as EventGroupsMetricDimensionTheFirstGroup;
 
-// Enum for event groups (Metric Dimension A second group)
+// Enum for project (Metric Dimension A second group)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimensionASecondGroup {
+pub enum ProjectMetricDimensionASecondGroup {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 }
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+pub use ProjectMetricDimensionASecondGroup as EventGroupsMetricDimensionASecondGroup;
 
-// Enum for event groups (Metric Dimension 2)
+// Enum for project (Metric Dimension 2)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimension2 {
+pub enum ProjectMetricDimension2 {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
 }
-impl EventGroupsMetricDimension2 {
+impl ProjectMetricDimension2 {
   #[allow(non_upper_case_globals)]
-  pub const Alias: EventGroupsMetricDimension2 = EventGroupsMetricDimension2::HasNo;
+  pub const Alias: ProjectMetricDimension2 = ProjectMetricDimension2::HasNo;
 }
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+pub use ProjectMetricDimension2 as EventGroupsMetricDimension2;
 
-// Enum for metric (Metric Dimension First)
+// Enum for project (Metric Dimension First)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionFirst {
+pub enum ProjectMetricDimensionFirst {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 }
+// Alias for metric (Metric Dimension First) which has the same event codes
+pub use ProjectMetricDimensionFirst as MetricMetricDimensionFirst;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-pub use MetricMetricDimensionFirst as SecondMetricMetricDimensionFirst;
+pub use ProjectMetricDimensionFirst as SecondMetricMetricDimensionFirst;
 
-// Enum for metric (Metric Dimension Second)
+// Enum for project (Metric Dimension Second)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionSecond {
+pub enum ProjectMetricDimensionSecond {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 }
+// Alias for metric (Metric Dimension Second) which has the same event codes
+pub use ProjectMetricDimensionSecond as MetricMetricDimensionSecond;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-pub use MetricMetricDimensionSecond as SecondMetricMetricDimensionSecond;
+pub use ProjectMetricDimensionSecond as SecondMetricMetricDimensionSecond;
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 pub const CONFIG: &str = "KooHCghjdXN0b21lchAKGvsGCgdwcm9qZWN0EAUaVQoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYA3IIY3VzdG9tZXJ6B3Byb2plY3QafwoVdGhlX290aGVyX21ldHJpY19uYW1lEAoYBSDIASgBUAFiEAoKdGhlX3JlcG9ydBAKGAdyCGN1c3RvbWVyegdwcm9qZWN0ggE1EgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYyAEa+gEKDGV2ZW50IGdyb3VwcxAKGAUgrAIoAVABYhAKCnRoZV9yZXBvcnQQHhgHcghjdXN0b21lcnoHcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjMKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIIY3VzdG9tZXJ6B3Byb2plY3QaRQoTZXhwb25lbnRpYWwgYnVja2V0cxAKGAUg9ANiFAoGcmVwb3J0EChSCAoGEAMYAiACcghjdXN0b21lcnoHcHJvamVjdBqJAQoGbWV0cmljEAoYBSDYBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpABCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
index 1406e4c..e9076a5 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
@@ -57,75 +57,83 @@
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
 const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
-// Enum for event groups (Metric Dimension A second group)
-namespace __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension A second group)
+namespace __project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
 enum Enum {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 };
-}  // __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__
-using EventGroupsMetricDimensionASecondGroup = __event_groups_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_a_second_group_internal_scope_do_not_use__
+using ProjectMetricDimensionASecondGroup = __project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+using EventGroupsMetricDimensionASecondGroup = ProjectMetricDimensionASecondGroup;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
 const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
-// Enum for event groups (Metric Dimension 2)
-namespace __event_groups_metric_dimension_2_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension 2)
+namespace __project_metric_dimension_2_internal_scope_do_not_use__ {
 enum Enum {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
   Alias = HasNo,
 };
-}  // __event_groups_metric_dimension_2_internal_scope_do_not_use__
-using EventGroupsMetricDimension2 = __event_groups_metric_dimension_2_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_2_internal_scope_do_not_use__
+using ProjectMetricDimension2 = __project_metric_dimension_2_internal_scope_do_not_use__::Enum;
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+using EventGroupsMetricDimension2 = ProjectMetricDimension2;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
 const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
-// Enum for metric (Metric Dimension First)
-namespace __metric_metric_dimension_first_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension First)
+namespace __project_metric_dimension_first_internal_scope_do_not_use__ {
 enum Enum {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 };
-}  // __metric_metric_dimension_first_internal_scope_do_not_use__
-using MetricMetricDimensionFirst = __metric_metric_dimension_first_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_first_internal_scope_do_not_use__
+using ProjectMetricDimensionFirst = __project_metric_dimension_first_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension First) which has the same event codes
+using MetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
 const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-using SecondMetricMetricDimensionFirst = MetricMetricDimensionFirst;
+using SecondMetricMetricDimensionFirst = ProjectMetricDimensionFirst;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
 const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
-// Enum for metric (Metric Dimension Second)
-namespace __metric_metric_dimension_second_internal_scope_do_not_use__ {
+// Enum for project (Metric Dimension Second)
+namespace __project_metric_dimension_second_internal_scope_do_not_use__ {
 enum Enum {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 };
-}  // __metric_metric_dimension_second_internal_scope_do_not_use__
-using MetricMetricDimensionSecond = __metric_metric_dimension_second_internal_scope_do_not_use__::Enum;
+}  // __project_metric_dimension_second_internal_scope_do_not_use__
+using ProjectMetricDimensionSecond = __project_metric_dimension_second_internal_scope_do_not_use__::Enum;
+// Alias for metric (Metric Dimension Second) which has the same event codes
+using MetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
 const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-using SecondMetricMetricDimensionSecond = MetricMetricDimensionSecond;
+using SecondMetricMetricDimensionSecond = ProjectMetricDimensionSecond;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
 const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.rs b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.rs
index c105d6b..fe35271 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.rs
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.rs
@@ -44,50 +44,58 @@
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 pub use TheOtherMetricNameMetricDimension0 as EventGroupsMetricDimensionTheFirstGroup;
 
-// Enum for event groups (Metric Dimension A second group)
+// Enum for project (Metric Dimension A second group)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimensionASecondGroup {
+pub enum ProjectMetricDimensionASecondGroup {
   This = 1,
   Is = 2,
   Another = 3,
   Test = 4,
 }
+// Alias for event groups (Metric Dimension A second group) which has the same event codes
+pub use ProjectMetricDimensionASecondGroup as EventGroupsMetricDimensionASecondGroup;
 
-// Enum for event groups (Metric Dimension 2)
+// Enum for project (Metric Dimension 2)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum EventGroupsMetricDimension2 {
+pub enum ProjectMetricDimension2 {
   ThisMetric = 0,
   HasNo = 2,
   Name = 4,
 }
-impl EventGroupsMetricDimension2 {
+impl ProjectMetricDimension2 {
   #[allow(non_upper_case_globals)]
-  pub const Alias: EventGroupsMetricDimension2 = EventGroupsMetricDimension2::HasNo;
+  pub const Alias: ProjectMetricDimension2 = ProjectMetricDimension2::HasNo;
 }
+// Alias for event groups (Metric Dimension 2) which has the same event codes
+pub use ProjectMetricDimension2 as EventGroupsMetricDimension2;
 
-// Enum for metric (Metric Dimension First)
+// Enum for project (Metric Dimension First)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionFirst {
+pub enum ProjectMetricDimensionFirst {
   A = 1,
   Set = 2,
   OfEvent = 3,
   Codes = 4,
 }
+// Alias for metric (Metric Dimension First) which has the same event codes
+pub use ProjectMetricDimensionFirst as MetricMetricDimensionFirst;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
-pub use MetricMetricDimensionFirst as SecondMetricMetricDimensionFirst;
+pub use ProjectMetricDimensionFirst as SecondMetricMetricDimensionFirst;
 
-// Enum for metric (Metric Dimension Second)
+// Enum for project (Metric Dimension Second)
 #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
-pub enum MetricMetricDimensionSecond {
+pub enum ProjectMetricDimensionSecond {
   Some = 0,
   More = 4,
   Event = 8,
   Codes = 16,
 }
+// Alias for metric (Metric Dimension Second) which has the same event codes
+pub use ProjectMetricDimensionSecond as MetricMetricDimensionSecond;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
-pub use MetricMetricDimensionSecond as SecondMetricMetricDimensionSecond;
+pub use ProjectMetricDimensionSecond as SecondMetricMetricDimensionSecond;
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
 pub const CONFIG: &str = "KooHCghjdXN0b21lchAKGvsGCgdwcm9qZWN0EAUaVQoPdGhlX21ldHJpY19uYW1lEAoYBSBkYhEKCnRoZV9yZXBvcnQQChiPTmIWChB0aGVfb3RoZXJfcmVwb3J0EBQYA3IIY3VzdG9tZXJ6B3Byb2plY3QafwoVdGhlX290aGVyX21ldHJpY19uYW1lEAoYBSDIASgBUAFiEAoKdGhlX3JlcG9ydBAKGAdyCGN1c3RvbWVyegdwcm9qZWN0ggE1EgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYyAEa+gEKDGV2ZW50IGdyb3VwcxAKGAUgrAIoAVABYhAKCnRoZV9yZXBvcnQQHhgHcghjdXN0b21lcnoHcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjMKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIIY3VzdG9tZXJ6B3Byb2plY3QaRQoTZXhwb25lbnRpYWwgYnVja2V0cxAKGAUg9ANiFAoGcmVwb3J0EChSCAoGEAMYAiACcghjdXN0b21lcnoHcHJvamVjdBqJAQoGbWV0cmljEAoYBSDYBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpABCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIIY3VzdG9tZXJ6B3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVz";
diff --git a/src/bin/config_parser/src/source_generator/source_outputter.go b/src/bin/config_parser/src/source_generator/source_outputter.go
index 4a62693..2a850cc 100644
--- a/src/bin/config_parser/src/source_generator/source_outputter.go
+++ b/src/bin/config_parser/src/source_generator/source_outputter.go
@@ -129,7 +129,7 @@
 // export the enum values. For a metric called "foo_bar" with a event named
 // "baz", it would generate the constant:
 // "FooBarEventCode_Baz = FooBarEventCode::Baz"
-func (so *sourceOutputter) writeEnum(entry EnumEntry) {
+func (so *sourceOutputter) writeEnum(entry EnumEntry, projectName string, allEnums []EnumEntry) {
 	if len(entry.events) == 0 {
 		return
 	}
@@ -144,23 +144,59 @@
 	}
 	sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
 
+	hasGlobalName := so.language.supportsTypeAlias()
+	firstSuffix := entry.names[0].suffix
+
+	if so.language.supportsTypeAlias() {
+		// Verify that all suffixes are the same for this entry
+		for _, name := range entry.names {
+			if name.suffix != firstSuffix {
+				hasGlobalName = false
+			}
+		}
+
+		// Verify that no other entry has this suffix
+		for _, enum := range allEnums {
+			if !reflect.DeepEqual(enum, entry) {
+				for _, name := range enum.names {
+					if name.suffix == firstSuffix {
+						hasGlobalName = false
+					}
+				}
+			}
+		}
+	}
+
+	projectNamePrefix := projectName
+
 	for i, name := range entry.names {
 		if i == 0 || !so.language.supportsTypeAlias() {
-			so.writeCommentFmt("Enum for %s (%s)", name.prefix, name.suffix)
-			so.language.writeEnumBegin(so, name.prefix, name.suffix)
+			prefix := name.prefix
+			if hasGlobalName {
+				prefix = projectNamePrefix
+			}
+			so.writeCommentFmt("Enum for %s (%s)", prefix, name.suffix)
+			so.language.writeEnumBegin(so, prefix, name.suffix)
 			for _, id := range keys {
 				name := entry.events[id]
 				so.language.writeEnumEntry(so, id, name)
 			}
 			if len(entry.aliases) > 0 {
-				so.language.writeEnumAliasesBegin(so, name.prefix, name.suffix)
+				so.language.writeEnumAliasesBegin(so, prefix, name.suffix)
 				for from, to := range entry.aliases {
-					so.language.writeEnumAlias(so, []string{name.prefix, name.suffix}, []string{from}, []string{to})
+					so.language.writeEnumAlias(so, []string{prefix, name.suffix}, []string{from}, []string{to})
 				}
 			}
-			so.language.writeEnumEnd(so, name.prefix, name.suffix)
+			so.language.writeEnumEnd(so, prefix, name.suffix)
+			if hasGlobalName {
+				so.writeCommentFmt("Alias for %s (%s) which has the same event codes", name.prefix, name.suffix)
+				so.language.writeTypeAlias(so, []string{prefix, name.suffix}, []string{name.prefix, name.suffix})
+			}
 		} else {
 			first := entry.names[0]
+			if hasGlobalName {
+				first = EnumName{prefix: projectNamePrefix, suffix: first.suffix}
+			}
 			so.writeCommentFmt("Alias for %s (%s) which has the same event codes", name.prefix, name.suffix)
 			so.language.writeTypeAlias(so, []string{first.prefix, first.suffix}, []string{name.prefix, name.suffix})
 		}
@@ -269,7 +305,7 @@
 	}
 
 	for _, e := range enums {
-		so.writeEnum(e)
+		so.writeEnum(e, c.Customers[0].Projects[0].ProjectName, enums)
 	}
 
 	return nil
